Compare commits
20 Commits
otcdocsthe
...
main
Author | SHA1 | Date | |
---|---|---|---|
0e65fa9f48 | |||
149ee50bfb | |||
3bd7da070b | |||
ac578d1baa | |||
516445ee34 | |||
3666984377 | |||
43500e04c6 | |||
21d8d17281 | |||
0bd0bf7e80 | |||
ecd76023b9 | |||
2540d783f0 | |||
8b5c6fa1c3 | |||
8399aba021 | |||
a1080318a8 | |||
8f34dfa644 | |||
cf016097f3 | |||
347265ea12 | |||
20cf1f7e31 | |||
0618989a8a | |||
0f2913bdb4 |
@ -8,4 +8,5 @@ reno>=3.1.0 # Apache-2.0
|
||||
otc-sphinx-directives>=0.1.0
|
||||
sphinx-minify>=0.0.1 # Apache-2.0
|
||||
git+https://gitea.eco.tsi-dev.otc-service.com/infra/otc-metadata.git#egg=otc_metadata
|
||||
setuptools
|
||||
setuptools
|
||||
gitpython
|
@ -26,4 +26,4 @@ If there is another issue/demand/request try to locate proper repository in
|
||||
https://github.com/orgs/stackmon/repositories
|
||||
|
||||
For general questions you can write an E-Mail to the `Ecosystems Squad
|
||||
<mailto:dl-pbcotcdeleco@t-systems.com>`_.
|
||||
<mailto:dl-pbcotcdeleco@t-systems.com>`_.
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
@ -40,6 +40,6 @@ Logs
|
||||
|
||||
|
||||
For further details how to work with logs please refer to
|
||||
:ref:`How To Read The Logs And Understand The Issue <working_with_logs>` FAQ
|
||||
:ref:`How To Read The Logs And Understand The Issue <working_with_logs>` FAQ
|
||||
page.
|
||||
|
@ -21,7 +21,7 @@ If the error has been acknowledged on Alerta, the new notification message for
|
||||
repeating error won't get posted again on Zulip.
|
||||
|
||||
Notifications contain further details which help to identify root cause faster
|
||||
and more effectively.
|
||||
and more effectively.
|
||||
|
||||
Notification parameters
|
||||
#######################
|
||||
@ -63,6 +63,3 @@ Th EpMon notification consists of several fields:
|
||||
+----------------------------+------------------------------------------------------------------+
|
||||
| **Request error response** | Error result of the requested API call |
|
||||
+----------------------------+------------------------------------------------------------------+
|
||||
|
||||
|
||||
|
@ -117,7 +117,7 @@ OpenStack SDK and otcextensions (otcextensions covers services which are out of
|
||||
scope of OpenStack SDK and extends its functionality with services provided by
|
||||
OTC) support metric generation natively for every single API call and ApiMon
|
||||
executor supports collection of ansible playbook statistics so every single
|
||||
scenario and task can store its result, duration and name in metric database.
|
||||
scenario and task can store its result, duration and name in metric database.
|
||||
|
||||
But in some cases there's a need to provide measurement on multiple tasks which
|
||||
represent some important aspect of the customer use case. For example measure
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 321 KiB After Width: | Height: | Size: 321 KiB |
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 157 KiB |
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 184 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 165 KiB |
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
@ -5,7 +5,7 @@ ApiMon Flow Process
|
||||
|
||||
|
||||
.. image:: training_images/apimon_data_flow.svg
|
||||
:target: training_images/apimon_data_flow.svg
|
||||
:target: /_images/apimon_data_flow.svg
|
||||
:alt: apimon_data_flow
|
||||
|
||||
|
||||
@ -25,4 +25,3 @@ ApiMon Flow Process
|
||||
alerts on Alerta.
|
||||
#. Notifications containing alert details are sent to Zulip
|
||||
#. Every test scenario stores it's job output log into Swift object storage for further analysis and investigation.
|
||||
|
8
doc/source/apimon/index.rst
Normal file
@ -0,0 +1,8 @@
|
||||
=============================
|
||||
APImon Internal Documentation
|
||||
=============================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
apimon_training/index
|
75
doc/source/captcha_service/configuration_of_a_new_site.rst
Normal file
@ -0,0 +1,75 @@
|
||||
===========================
|
||||
Configuration of a new Site
|
||||
===========================
|
||||
|
||||
Getting Started
|
||||
---------------
|
||||
|
||||
1. Open the mCaptcha website: https://captcha.otc-service.com/
|
||||
2. Log-In with your credentials
|
||||
3. Click on "New Site"
|
||||
|
||||
.. figure:: images/NewSite.png
|
||||
|
||||
4. Click on "Advance Options" for specifying more difficulty breakpoints
|
||||
|
||||
.. figure:: images/AdvanceOptions.png
|
||||
|
||||
5. Specify a description, cooldown Duration and difficulty levels
|
||||
|
||||
A good start for a contact formular would be the following paramneters:
|
||||
|
||||
.. figure:: images/ExampleOptions.png
|
||||
|
||||
6. Now you should be able to see your Captcha solution working by clicking on the "View Deployment" button.
|
||||
|
||||
.. figure:: images/ViewDeployment.png
|
||||
|
||||
|
||||
Configuring your Frontend-Website
|
||||
---------------------------------
|
||||
|
||||
As you now have properly configured everything on mCaptcha you will need to start including the Captcha in your frontend application.
|
||||
For this you will need to aquire your sitekey and the URL to the captcha. You can simply copy the URL from the "View Deployment" button. It should look something like this: https://captcha.otc-service.com/widget/?sitekey=RxZhnXBKERnTNRUAuNABst0v1Zvj5DZe
|
||||
|
||||
Once you have obtained this head over to GitHub and follow the instructions to include the Captcha on your page based on your used JavaScript framework: https://github.com/mCaptcha/glue
|
||||
|
||||
Configuring your backend
|
||||
------------------------
|
||||
|
||||
Your backend needs to check the validity of the captcha token which the user generated.
|
||||
You can do this easily by sending an request using the generated token from the client, your sitekey and your secret key to mCaptcha.
|
||||
|
||||
.. code:: Javascript
|
||||
|
||||
const postData = {
|
||||
token: captcha_token,
|
||||
key: captcha_sitekey,
|
||||
secret: process.env.MCAPTCHA_SECRET
|
||||
};
|
||||
|
||||
const response = await fetch(process.env.MCAPTCHA_URL + 'api/v1/pow/siteverify', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(postData)
|
||||
});
|
||||
|
||||
Send the request to https://captcha.otc-service.com/api/v1/pow/siteverify
|
||||
|
||||
The response then includes a data field and must have the valid field set to true.
|
||||
|
||||
.. code:: Javascript
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error('Captcha response was not ok');
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
if (data["valid"] !== true) {
|
||||
return {
|
||||
status: "fail",
|
||||
message: "Captcha verification failed!"
|
||||
};
|
||||
}
|
19
doc/source/captcha_service/getting_access.rst
Normal file
@ -0,0 +1,19 @@
|
||||
=====================================
|
||||
Getting Access to the Captcha Service
|
||||
=====================================
|
||||
|
||||
.. note::
|
||||
Due to a current issue with mCaptcha we can't provide unqiue accounts yet and will instead provide only the required keys for setting up your captcha solution.
|
||||
|
||||
If you need a captcha solution for one of your webpages please contact the Ecosystem Squad by writing an E-Mail to: `DL OTC Ecosystem Squad <mailto:otc_ecosystem_squad@t-systems.com>`
|
||||
Please state the following:
|
||||
|
||||
1. Your application name
|
||||
|
||||
.. tip::
|
||||
For example a contact formular can take ~5s for a client to solve to prevent a lot of spam, while just checking before redirecting to a webpage should be done in less than 1s.
|
||||
|
||||
2. Desired Average Solving time.
|
||||
|
||||
We will provide you with a public sitekey which you will need to integrate the captcha access as well as a secret key which your backend needs for verifying whether the captcha was solved or not.
|
||||
|
BIN
doc/source/captcha_service/images/AdvanceOptions.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
doc/source/captcha_service/images/ExampleOptions.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
doc/source/captcha_service/images/NewSite.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
doc/source/captcha_service/images/ViewDeployment.png
Normal file
After Width: | Height: | Size: 90 KiB |
30
doc/source/captcha_service/index.rst
Normal file
@ -0,0 +1,30 @@
|
||||
===============================================
|
||||
Ecosystem Captcha Service - Powered by mCaptcha
|
||||
===============================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
getting_access
|
||||
configuration_of_a_new_site
|
||||
|
||||
General informations
|
||||
--------------------
|
||||
|
||||
The Captcha Service is powered by mCaptcha, the used source can be found here: https://github.com/opentelekomcloud-infra/mCaptcha.
|
||||
|
||||
If you have any issues with the service feel free to open an issue there. If it's not related to our infrastructure we will either do an upstream fix or open an upstream issue.
|
||||
|
||||
The privacy policy can be found here: https://mcaptcha.org/privacy-policy.
|
||||
In addition to that the whole Captcha server is hosted on OTC, so no user traffic or telemetry will leave our infrastructure.
|
||||
|
||||
How it works
|
||||
------------
|
||||
|
||||
Compared to classic Captcha Solutions like Google's Recaptcha this service does not have any image challenges, audio challenges or any Cookie tracking.
|
||||
Instead it is using a proof-of-work solution. Each user will get a small puzzle which the browser needs to solve. This works by using WebAssembly to compute the solution using the CPU of the device from the client.
|
||||
Typically this will not take longer than around one second, although this time can be modified in the settings of mCaptcha for each unique site. In case there will be lots of traffic the puzzle will get more complex and the time for solving it will increase.
|
||||
This effectively makes attacks from outside very hard to impossible as they would need a lot of compute power to break the Captcha.
|
||||
ReCaptcha works in the same way, if you solve a lot of Captchas they will get harder and harder, just that you need to click on more and more pictures there instead of solving mathematical puzzles with compute power.
|
||||
|
||||
For more information on how to configure mCaptcha head over to `Configuration of a new Site <configuration_of_a_new_site>`
|
@ -16,6 +16,8 @@
|
||||
|
||||
import os
|
||||
import sys
|
||||
from git import Repo
|
||||
from datetime import datetime
|
||||
|
||||
extensions = [
|
||||
'otcdocstheme',
|
||||
@ -111,3 +113,9 @@ html_copy_source = False
|
||||
|
||||
# -- Options for PDF output --------------------------------------------------
|
||||
latex_documents = []
|
||||
|
||||
# Get the Git commit values for last updated timestamp on each page
|
||||
repo = Repo(search_parent_directories=True)
|
||||
commit = repo.head.commit
|
||||
current_commit_hash = commit.hexsha
|
||||
current_commit_time = commit.committed_datetime.strftime('%Y-%m-%d %H:%M')
|
@ -10,5 +10,5 @@ You can update the Backend by following those steps:
|
||||
1. Merge the Pull-Request
|
||||
2. Wait until the gate job has been passed
|
||||
3. Look at the Zuul-logs from the gate job. Find the line with `Successfully tagged quay.io` and remember the `:change_xx_latest` value
|
||||
4. Open a Pull-Request to adjust the kustomization config to the new tag from step 3. https://github.com/opentelekomcloud-infra/system-config/blob/main/kubernetes/circle-partner-navigator/overlays/prod/kustomization.yaml#L14
|
||||
4. Open a Pull-Request to adjust the kustomization config to the new tag from step 3. https://github.com/opentelekomcloud-infra/system-config/blob/main/kubernetes/circle-partner-navigator/overlays/prod/kustomization.yaml#L20
|
||||
5. Merge this Pull-Request and wait 10 minutes.
|
||||
|
@ -8,10 +8,9 @@ Updating the Frontend
|
||||
You can update the Frontend by following those steps:
|
||||
|
||||
1. Merge the Pull-Request
|
||||
2. Tag the desired commit and push the tag to Github. It should be visible afterwards on this page: https://github.com/opentelekomcloud-infra/circle-partner-navigator-frontend/tags
|
||||
3. Wait at least 10 minutes
|
||||
4. Check whether your tag has been successfully published to the container repository: https://quay.io/repository/opentelekomcloud/circle-partner-navigator-frontend?tab=tags
|
||||
5. Open a Pull-Request to adjust the kustomization config to the new tag. https://github.com/opentelekomcloud-infra/system-config/blob/main/kubernetes/circle-partner-navigator/overlays/prod/kustomization.yaml#L16
|
||||
6. Merge this Pull-Request and wait 10 minutes.
|
||||
2. Wait at least 10 minutes
|
||||
3. Check whether your tag has been successfully published to the container repository: https://quay.io/repository/opentelekomcloud/circle-partner-navigator-frontend?tab=tags
|
||||
4. Open a Pull-Request to adjust the kustomization config to the new tag. https://github.com/opentelekomcloud-infra/system-config/blob/main/kubernetes/circle-partner-navigator/overlays/prod/kustomization.yaml#L22
|
||||
5. Merge this Pull-Request and wait 10 minutes.
|
||||
|
||||
Be aware that updating the Frontend will also pull the data from the Backend again and as a result will also update the partner data on the website.
|
||||
|