From 21afac43121209c66fa200906ffb3995c30536f2 Mon Sep 17 00:00:00 2001
From: George Sedov <george.sedov@desy.de>
Date: Thu, 9 Mar 2023 19:23:58 +0100
Subject: [PATCH] update docs

---
 .gitlab-ci.yml                                | 433 +++++++++++++++++-
 deploy/build_env/services-linux/Dockerfile    |   2 +
 docs/site/docs/consumer-clients.md            |   4 +-
 docs/site/docs/cookbook/overview.md           |   2 +-
 docs/site/docs/producer-clients.md            |   2 +-
 docs/site/docusaurus.config.js                |   4 +-
 .../version-21.06.0/consumer-clients.md       |   4 +-
 .../version-21.06.0/getting-started.mdx       |   8 +-
 .../version-21.06.0/producer-clients.md       |   2 +-
 .../version-21.09.0/consumer-clients.md       |   2 +-
 .../version-21.09.0/cookbook/overview.md      |   2 +-
 .../version-21.09.0/producer-clients.md       |   2 +-
 .../version-21.12.0/consumer-clients.md       |   2 +-
 .../version-21.12.0/cookbook/overview.md      |   2 +-
 .../version-21.12.0/producer-clients.md       |   2 +-
 .../version-22.03.0/consumer-clients.md       |   2 +-
 .../version-22.03.0/cookbook/overview.md      |   2 +-
 .../version-22.03.0/producer-clients.md       |   2 +-
 18 files changed, 454 insertions(+), 25 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c5fb061d2..baf78a6ea 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,432 @@
-# The Docker image that will be used to build your app
+include:
+  - local: deploy/build_env/services-linux/gitlab-ci-build-docker.yml
+  - local: deploy/build_env/services-windows/gitlab-ci-build-docker.yml
+  - local: deploy/build_env/centos/gitlab-ci-build-docker.yml
+  - local: deploy/build_env/debians/gitlab-ci-build-docker.yml
+  - local: deploy/build_env/ubuntu/gitlab-ci-build-docker.yml
+  - local: deploy/build_env/manylinux2014/gitlab-ci-build-docker.yml
+  - local: deploy/build_env/site/gitlab-ci-build-docker.yml
+  - local: deploy/secondary_services/fluentd_elastic/gitlab-ci-build-docker.yml
+
+.go-cache:
+  variables:
+    GOPATH: $CI_PROJECT_DIR/.go
+  before_script:
+    - mkdir -p .go
+  cache:
+    paths:
+      - .go/pkg/mod/
+
+.client-packages:
+  stage: build
+  script:
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - PACKAGE_UP=${PACKAGE_TYPE^^}
+    - PACKAGE_LOW=${PACKAGE_TYPE,,}
+    - >
+      if [ -z "$WITH_LIBFABRIC" ]; then
+        ENABLE_LIBFABRIC="OFF"
+      else
+        ENABLE_LIBFABRIC="ON"
+      fi
+    - >
+      if [ -z "$WITH_PYTHON2" ]; then
+        BUILD_PYTHON2="OFF"
+      else
+        BUILD_PYTHON2="ON"
+      fi
+    - cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_LIBFABRIC=$ENABLE_LIBFABRIC -DINSTALL_EXAMPLES=ON -DBUILD_CLIENTS_ONLY=ON -DPACKAGE_RELEASE_SUFFIX=$OS_SUFFIX -DBUILD_PYTHON=OFF -DCPACK_PACKAGE_NAME="asapo-devel" -DCPACK_GENERATOR=$PACKAGE_UP ..
+    - make -j 4
+    - make package
+    - rm -f CMakeCache.txt
+    - cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_LIBFABRIC=$ENABLE_LIBFABRIC -DBUILD_CLIENTS_ONLY=ON -DNUMPY_VERSION=0 -DBUILD_PYTHON=ON -DPACKAGE_RELEASE_SUFFIX=$OS_SUFFIX -DBUILD_PYTHON_PACKAGES="source;${PACKAGE_LOW}" -DBUILD_PYTHON2_PACKAGES=$BUILD_PYTHON2 -DBUILD_PYTHON_DOCS=OFF ..
+    - make -j 1
+    - mkdir -p $CI_PROJECT_DIR/linux_packages/$PACKAGE_FOLDER
+    - cp $CI_PROJECT_DIR/build/asapo-devel* $CI_PROJECT_DIR/linux_packages/$PACKAGE_FOLDER
+    - cp $CI_PROJECT_DIR/build/*/api/python/dist_linux/dist/* $CI_PROJECT_DIR/linux_packages/$PACKAGE_FOLDER
+  tags:
+    - kubernetes-executor
+  rules:
+    - when: on_success
+  artifacts:
+    paths:
+      - linux_packages
+    expire_in: 3 hrs
+
+.client-packages-manylinux:
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-manylinux-build-env:latest
+    entrypoint: [""]
+  stage: build
+  script:
+    - python_bin=$PYTHON_PATH/bin/python
+    - pip_bin=$PYTHON_PATH/bin/pip
+    - $pip_bin install cython numpy==$NUMPY_VERSION
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - cmake -DENABLE_LIBFABRIC=ON -DCMAKE_BUILD_TYPE="Release" -DBUILD_CLIENTS_ONLY=ON -DPython_EXECUTABLE=$python_bin -DBUILD_PYTHON_PACKAGES=source -DBUILD_PYTHON2_PACKAGES=OFF -DNUMPY_VERSION=$NUMPY_VERSION ..
+    - cd $CI_PROJECT_DIR/build/consumer/api/python/dist_linux
+    - make python-dist-consumer
+    - $pip_bin wheel dist/*.tar.gz --no-deps
+    - cd $CI_PROJECT_DIR/build/producer/api/python/dist_linux
+    - make python-dist-producer
+    - $pip_bin wheel dist/*.tar.gz --no-deps
+    - mkdir -p $CI_PROJECT_DIR/wheel_packages/$WHEEL_FOLDER
+    - cp $CI_PROJECT_DIR/build/*/api/python/dist_linux/*.whl $CI_PROJECT_DIR/wheel_packages/$WHEEL_FOLDER
+  tags:
+    - kubernetes-executor
+  rules:
+    - when: on_success
+  artifacts:
+    paths:
+      - wheel_packages
+    expire_in: 3 hrs
+
+build-services-linux-debug:
+  extends: .go-cache
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
+    entrypoint: [""]
+  stage: build
+  script:
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON -DBUILD_INTEGRATION_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_CONSUMER_TOOLS=ON -DENABLE_LIBFABRIC=ON -DENABLE_LIBFABRIC_LOCALHOST=ON -DBUILD_EVENT_MONITOR_PRODUCER=ON -DSTOP_BUILD_ON_WARNINGS=ON -DENABLE_NEW_RECEIVER_MONITORING=ON ..
+    - make -j 4
+  tags:
+    - kubernetes-executor
+  rules:
+    - when: always
+  artifacts:
+    paths:
+      - build
+    exclude:
+      - build/**/CMakeFiles/**/*.o
+      - build/**/CMakeFiles/**/*.gcno
+      - build/**/CMakeFiles/**/*.gcda
+      - build/**/CMakeFiles/**/*.objlib
+      - build/**/CMakeFiles/**/*.includecache
+      - build/**/*.a
+    expire_in: 3 hrs
+
+test-services-linux-debug:
+  extends: .go-cache
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
+  stage: test
+  script:
+    - bash /services_start.sh
+    # - cd $CI_PROJECT_DIR/build/tests/automatic/common_scripts
+    # - bash start_services.sh
+    - cd $CI_PROJECT_DIR/build
+    - ctest --no-compress-output -T Test -L "unit|memcheck_unit|coverage" --output-on-failure --output-junit testResult.xml
+  tags:
+    - kubernetes-executor
+  rules:
+    - when: on_success
+  dependencies:
+    - build-services-linux-debug
+  artifacts:
+    reports:
+      junit: build/testResult.xml
+
+build-services-linux-release:
+  extends: .go-cache
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
+    entrypoint: [""]
+  variables:
+    CI_REGISTRY_IMAGE_USERNAME: "asapo-dev-registry"
+    CI_REGISTRY_IMAGE_PASSWORD: ${asapo_dev_registry_password}
+  stage: build
+  script:
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON -DBUILD_CONSUMER_TOOLS=ON -DBUILD_BROKER=ON -DBUILD_INTEGRATION_TESTS=ON -DENABLE_LIBFABRIC=ON -DBUILD_EVENT_MONITOR_PRODUCER=ON -DSTOP_BUILD_ON_WARNINGS=ON -DENABLE_NEW_RECEIVER_MONITORING=ON ..
+    - make -j 4
+    - mv $CI_PROJECT_DIR/build/docs/doxygen/html $CI_PROJECT_DIR/build/doxygen-cpp
+  tags:
+    - kubernetes-executor
+  rules:
+    - when: on_success
+  artifacts:
+    paths:
+      - build
+    exclude:
+      - build/**/CMakeFiles/**/*
+      - build/**/*.a
+    expire_in: 3 hrs
+
+build-packages-centos7:
+  extends: .client-packages
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-centos7-build-env:latest
+    entrypoint: [""]
+  variables:
+    PACKAGE_TYPE: "RPM"
+    WITH_LIBFABRIC: "YES"
+    WITH_PYTHON2: "YES"
+    OS_SUFFIX: "1.el7"
+    PACKAGE_FOLDER: "centos7.9.2009"
+
+build-packages-centos8:
+  extends: .client-packages
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-centos8-build-env:latest
+    entrypoint: [""]
+  variables:
+    PACKAGE_TYPE: "RPM"
+    WITH_LIBFABRIC: "YES"
+    OS_SUFFIX: "1.el8"
+    PACKAGE_FOLDER: "centos8.3.2011"
+
+build-packages-debian9:
+  extends: .client-packages
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-debian9-build-env:latest
+    entrypoint: [""]
+  variables:
+    PACKAGE_TYPE: "DEB"
+    WITH_PYTHON2: "YES"
+    OS_SUFFIX: "debian9.13"
+    PACKAGE_FOLDER: "debian9.13"
+
+build-packages-debian10:
+  extends: .client-packages
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-debian10-build-env:latest
+    entrypoint: [""]
+  variables:
+    PACKAGE_TYPE: "DEB"
+    WITH_LIBFABRIC: "YES"
+    WITH_PYTHON2: "YES"
+    OS_SUFFIX: "debian10.11"
+    PACKAGE_FOLDER: "debian10.11"
+
+build-packages-debian11:
+  extends: .client-packages
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-debian11-build-env:latest
+    entrypoint: [""]
+  variables:
+    PACKAGE_TYPE: "DEB"
+    WITH_LIBFABRIC: "YES"
+    OS_SUFFIX: "debian11.3"
+    PACKAGE_FOLDER: "debian11.3"
+
+build-packages-ubuntu1804:
+  extends: .client-packages
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-ubuntu1804-build-env:latest
+    entrypoint: [""]
+  variables:
+    PACKAGE_TYPE: "DEB"
+    WITH_LIBFABRIC: "YES"
+    OS_SUFFIX: "ubuntu18.04"
+    PACKAGE_FOLDER: "ubuntu18.04"
+
+build-packages-ubuntu2004:
+  extends: .client-packages
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-packages-ubuntu2004-build-env:latest
+    entrypoint: [""]
+  variables:
+    PACKAGE_TYPE: "DEB"
+    WITH_LIBFABRIC: "YES"
+    OS_SUFFIX: "ubuntu20.04"
+    PACKAGE_FOLDER: "ubuntu20.04"
+
+build-packages-python36:
+  extends: .client-packages-manylinux
+  variables:
+    PYTHON_PATH: /opt/python/cp36-cp36m
+    NUMPY_VERSION: 1.12.1
+    WHEEL_FOLDER: python36
+
+build-packages-python37:
+  extends: .client-packages-manylinux
+  variables:
+    PYTHON_PATH: /opt/python/cp37-cp37m
+    NUMPY_VERSION: 1.14.5
+    WHEEL_FOLDER: python37
+
+build-packages-python38:
+  extends: .client-packages-manylinux
+  variables:
+    PYTHON_PATH: /opt/python/cp38-cp38
+    NUMPY_VERSION: 1.17.3
+    WHEEL_FOLDER: python38
+
+build-packages-python39:
+  extends: .client-packages-manylinux
+  variables:
+    PYTHON_PATH: /opt/python/cp39-cp39
+    NUMPY_VERSION: 1.19.3
+    WHEEL_FOLDER: python39
+
+build-packages-python310:
+  extends: .client-packages-manylinux
+  variables:
+    PYTHON_PATH: /opt/python/cp310-cp310
+    NUMPY_VERSION: 1.23.4
+    WHEEL_FOLDER: python310
+
+build-docs:
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
+    entrypoint: [""]
+  stage: build
+  script:
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_CPP_DOCS=ON -DBUILD_PYTHON_DOCS=ON ..
+    - cd $CI_PROJECT_DIR/build/docs/doxygen
+    - make -j 4
+    - cd $CI_PROJECT_DIR/build/docs/sphinx
+    - make -j 4
+    - mkdir -p $CI_PROJECT_DIR/public
+    - mv $CI_PROJECT_DIR/build/docs/doxygen/html $CI_PROJECT_DIR/public/cpp
+    - mv $CI_PROJECT_DIR/build/docs/sphinx/sphinx/build/html $CI_PROJECT_DIR/public/python
+  tags:
+    - kubernetes-executor
+  rules:
+    - when: on_success
+  artifacts:
+    paths:
+      - public
+    expire_in: 3 hrs
+.build-services-docker-template:
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  stage: deploy
+  script:
+    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
+    - services="broker authorizer discovery receiver file-transfer"
+    - >
+      for service in $services; do
+          service_dir=${service//"-"/"_"}
+          /kaniko/executor --cache=false --context $CI_PROJECT_DIR/build/${service_dir} --dockerfile $CI_PROJECT_DIR/build/${service_dir}/Dockerfile --destination $CI_REGISTRY_IMAGE/asapo-${service}${CONTAINER_TAG}
+      done
+    - /kaniko/executor --cache=false --context $CI_PROJECT_DIR/build/monitoring/monitoring_server --dockerfile $CI_PROJECT_DIR/monitoring/monitoring_server/docker/Dockerfile --destination $CI_REGISTRY_IMAGE/asapo-monitoring-server${CONTAINER_TAG}
+    - /kaniko/executor --cache=false --context $CI_PROJECT_DIR/monitoring/monitoring_ui --dockerfile $CI_PROJECT_DIR/monitoring/monitoring_ui/Dockerfile --destination $CI_REGISTRY_IMAGE/asapo-monitoring-ui${CONTAINER_TAG}
+    - /kaniko/executor --cache=false --context $CI_PROJECT_DIR/build/deploy/asapo_services --dockerfile $CI_PROJECT_DIR/build/deploy/asapo_services/Dockerfile --destination $CI_REGISTRY_IMAGE/asapo-cluster${CONTAINER_TAG} --destination $CI_REGISTRY_IMAGE/asapo-cluster${CONTAINER_TAG_LATEST}
+  tags:
+    - kubernetes-executor
+  dependencies:
+    - build-services-linux-release
+
+build-services-docker-dev:
+  extends: .build-services-docker-template
+  rules:
+    - if: $CI_COMMIT_REF_NAME == "develop"
+      when: on_success
+    - when: never
+  variables:
+    CONTAINER_TAG: "-dev:${CI_COMMIT_SHORT_SHA}"
+    CONTAINER_TAG_LATEST: "-dev:latest"
+
+build-services-docker-release:
+  extends: .build-services-docker-template
+  only:
+    - tags
+  variables:
+    CONTAINER_TAG: ":${CI_COMMIT_TAG}"
+    CONTAINER_TAG_LATEST: ":latest"
+
+.upload-client-packages-template:
+  image:
+    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
+    entrypoint: [""]
+  stage: deploy
+  variables:
+    GIT_STRATEGY: none
+  script:
+    - >
+      for dist in $(ls $CI_PROJECT_DIR/linux_packages); do
+        files="asapo-devel python-asapo python3-asapo"
+        for file in $files; do
+          if ls $CI_PROJECT_DIR/linux_packages/${dist}/${file}* 1> /dev/null 2>&1; then
+            PACKAGE_ID=$(curl -s -G --header "JOB-TOKEN: $CI_JOB_TOKEN"  ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages -d package_name=$file-$dist -d package_type=generic | jq -c ".[] | select(.pipeline.ref | contains(\"$CI_COMMIT_REF_NAME\")) | (.id)")
+            if ! [ -z "$PACKAGE_ID" ]; then
+              echo Removing Package ${PACKAGE_ID}
+              curl --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/${PACKAGE_ID}"
+            fi
+            for distfile in $(ls $CI_PROJECT_DIR/linux_packages/$dist/${file}*); do
+              DIST_FILE=${distfile//"~"/"_"}
+              curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $distfile "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/$file-$dist/$DIST_VERSION/$(basename $DIST_FILE)"
+            done
+          fi
+        done
+      done
+  tags:
+    - kubernetes-executor
+  dependencies:
+    - build-packages-centos7
+    - build-packages-centos8
+    - build-packages-debian9
+    - build-packages-debian10
+    - build-packages-debian11
+    - build-packages-ubuntu1804
+    - build-packages-ubuntu2004
+
+upload-client-packages-dev:
+  extends: .upload-client-packages-template
+  rules:
+    - if: $CI_COMMIT_REF_NAME == "develop"
+      when: on_success
+    - when: never
+  variables:
+    DIST_VERSION: "100.0.dev"
+
+upload-client-packages-release:
+  extends: .upload-client-packages-template
+  only:
+    - tags
+  variables:
+    DIST_VERSION: ${CI_COMMIT_TAG}
+
+upload-python-packages:
+  image:
+    name: python:latest
+    entrypoint: [""]
+  stage: deploy
+  variables:
+    GIT_STRATEGY: none
+  script:
+    - mkdir -p ~/.ssh
+    - echo "$NIMS_SSH_KNOWN_HOST" >> ~/.ssh/known_hosts
+    - chmod 600 $NIMS_SSH_PRIVATE_KEY
+    - pip install twine
+    - >
+      for pac_id in $(curl -s -G --header "JOB-TOKEN: $CI_JOB_TOKEN"  ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages -d package_type=pypi | python -c "import sys, json; [print(x['id']) for x in json.load(sys.stdin) if ('pipeline' in x) and ('ref' in x['pipeline']) and (x['pipeline']['ref'] == '$CI_COMMIT_REF_NAME')]"); do
+        echo Removing package ${pac_id}
+        curl --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/${pac_id}"
+      done
+    - >
+      for dist in $(ls $CI_PROJECT_DIR/wheel_packages); do
+          TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi $CI_PROJECT_DIR/wheel_packages/${dist}/*
+          echo "put $CI_PROJECT_DIR/wheel_packages/${dist}/* asapo/linux_wheels/" | sftp -vvvv -i $NIMS_SSH_PRIVATE_KEY -P 2022 asapo@it-fs5.desy.de
+      done
+    - wget -q -O- http://it-fs5.desy.de/cgi-bin/asapoSync.cgi
+  tags:
+    - DESY-intern
+  rules:
+    - if: $CI_COMMIT_REF_NAME == "develop"
+      when: on_success
+    - if: $CI_COMMIT_TAG
+      when: on_success
+    - when: never
+  dependencies:
+    - build-packages-python36
+    - build-packages-python37
+    - build-packages-python38
+    - build-packages-python39
+    - build-packages-python310
+
+
 image: $CI_REGISTRY_IMAGE/asapo-site-build-env:latest
-# Functions that should be executed before the build script is run
 pages:
   stage: deploy
   script:
@@ -19,3 +445,6 @@ pages:
       - public
   rules:
     - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
+  dependencies:
+    - build-docs
+
diff --git a/deploy/build_env/services-linux/Dockerfile b/deploy/build_env/services-linux/Dockerfile
index 8a2f3abd8..d86e0eb58 100644
--- a/deploy/build_env/services-linux/Dockerfile
+++ b/deploy/build_env/services-linux/Dockerfile
@@ -22,6 +22,7 @@ RUN set -eux; \
 		grpc-proto \
 		python3-dev \
 		python3-numpy \
+		pip \
 		cython3 \
 		lcov \
 		nomad \
@@ -36,6 +37,7 @@ RUN set -eux; \
 		libprotobuf-dev \
 		jq \
 	; \
+	pip install sphinx; \
 	apt-get install -y --no-install-recommends cmake/bullseye-backports; \
 	DEBIAN_FRONTEND=noninteractive apt-get install -y slapd; \
 	rm -rf /var/lib/apt/lists/*
diff --git a/docs/site/docs/consumer-clients.md b/docs/site/docs/consumer-clients.md
index eb5c635d1..d94119b24 100644
--- a/docs/site/docs/consumer-clients.md
+++ b/docs/site/docs/consumer-clients.md
@@ -27,8 +27,6 @@ All of the above functions can return only metadata part of the message, so that
 :::note
 In case of dataset family of functions, only list of dataset messages is returned, the data can be retrieved in a separate call.
 :::
-    
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
-
 
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
diff --git a/docs/site/docs/cookbook/overview.md b/docs/site/docs/cookbook/overview.md
index 795571aff..7018767ff 100644
--- a/docs/site/docs/cookbook/overview.md
+++ b/docs/site/docs/cookbook/overview.md
@@ -6,7 +6,7 @@ Here you can find the code examples for various common asapo usecases. Make sure
 
 For the most basic usecase, see the [Simple Producer](simple-producer) and [Simple Consumer](simple-consumer). There are also the basic examples of CMake and makefile configurations for client compilation.
 
-The API documentation can be found [here](http://asapo.desy.de/cpp) (for C++) or [here](http://asapo.desy.de/python) (for python).
+The API documentation can be found [here](https://asapo.pages.desy.de/asapo/cpp) (for C++) or [here](https://asapo.pages.desy.de/asapo/python) (for python).
 
 :::tip
 You can see more examples in ASAPO [source code](https://gitlab.desy.de/asapo/asapo/-/tree/develop/examples)
diff --git a/docs/site/docs/producer-clients.md b/docs/site/docs/producer-clients.md
index 89b421a99..ccc0f1c95 100644
--- a/docs/site/docs/producer-clients.md
+++ b/docs/site/docs/producer-clients.md
@@ -17,7 +17,7 @@ multiple instances can be created (also within a single application) to send dat
     - retransfer will be attempted in case of system failure
     - a callback function can be provided to react after data was sent/process error
     
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
 
 
diff --git a/docs/site/docusaurus.config.js b/docs/site/docusaurus.config.js
index df2d8a613..aba71e72e 100644
--- a/docs/site/docusaurus.config.js
+++ b/docs/site/docusaurus.config.js
@@ -35,11 +35,11 @@ module.exports = {
                   items: [
                     {
                       label: 'C++',
-                      href: 'http://asapo.desy.de/cpp/',
+                      href: 'https://asapo.pages.desy.de/asapo/cpp/',
                     },
                     {
                       label: 'Python',
-                      href: 'http://asapo.desy.de/python/',
+                      href: 'https://asapo.pages.desy.de/asapo/python/',
                     },
                   ],
                 },
diff --git a/docs/site/versioned_docs/version-21.06.0/consumer-clients.md b/docs/site/versioned_docs/version-21.06.0/consumer-clients.md
index d04c14034..e59a7df1c 100644
--- a/docs/site/versioned_docs/version-21.06.0/consumer-clients.md
+++ b/docs/site/versioned_docs/version-21.06.0/consumer-clients.md
@@ -26,8 +26,6 @@ All of the above functions can return only metadata part of the message, so that
 :::note
 In case of dataset family of functions, only list of dataset messages is returned, the data can be retrieved in a separate call.
 :::
-    
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
-
 
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
diff --git a/docs/site/versioned_docs/version-21.06.0/getting-started.mdx b/docs/site/versioned_docs/version-21.06.0/getting-started.mdx
index 39b2cc4fb..28b9883f6 100644
--- a/docs/site/versioned_docs/version-21.06.0/getting-started.mdx
+++ b/docs/site/versioned_docs/version-21.06.0/getting-started.mdx
@@ -114,7 +114,7 @@ Now you can install Python packages or C++ libraries for ASAPO Producer and Cons
 }>
 <TabItem value="python">
 
-Now you can write a Producer client (API documentation [here](http://asapo.desy.de/python/producer.html)).
+Now you can write a Producer client (API documentation [here](https://asapo.pages.desy.de/asapo/python/producer.html)).
 
 ```shell content="./versioned_examples/version-21.06.0/python/produce.py"
 ```
@@ -129,7 +129,7 @@ $ python3 produce.py
 
 <TabItem value="cpp">
 
-Now you can write a Producer client (API documentation [here](http://asapo.desy.de/cpp/producer)).
+Now you can write a Producer client (API documentation [here](https://asapo.pages.desy.de/asapo/cpp/producer/classasapo_1_1Producer.html)).
 
 ```shell content="./versioned_examples/version-21.06.0/cpp/produce.cpp"
 ```
@@ -171,7 +171,7 @@ A consumer data that reads the message ingested during step 3. Note that a token
 }>
 <TabItem value="python">
 
-Complete API documentation [here](http://asapo.desy.de/python/consumer.html)
+Complete API documentation [here](https://asapo.pages.desy.de/asapo/python/consumer.html)
 
 ```shell content="./versioned_examples/version-21.06.0/python/consume.py"
 ```
@@ -186,6 +186,8 @@ $ python3 consumer.py
 
 <TabItem value="cpp">
 
+Complete API documentation [here](https://asapo.pages.desy.de/asapo/cpp/consumer/classasapo_1_1Consumer.html)
+
 ```shell content="./versioned_examples/version-21.06.0/cpp/consume.cpp"
 ```
 
diff --git a/docs/site/versioned_docs/version-21.06.0/producer-clients.md b/docs/site/versioned_docs/version-21.06.0/producer-clients.md
index d74adb0b6..45bf6bd8c 100644
--- a/docs/site/versioned_docs/version-21.06.0/producer-clients.md
+++ b/docs/site/versioned_docs/version-21.06.0/producer-clients.md
@@ -17,7 +17,7 @@ multiple instances can be created (also within a single application) to send dat
     - retransfer will be attempted in case of system failure
     - a callback function can be provided to react after data was sent/process error
     
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
 
 
diff --git a/docs/site/versioned_docs/version-21.09.0/consumer-clients.md b/docs/site/versioned_docs/version-21.09.0/consumer-clients.md
index d04c14034..d1264f1d8 100644
--- a/docs/site/versioned_docs/version-21.09.0/consumer-clients.md
+++ b/docs/site/versioned_docs/version-21.09.0/consumer-clients.md
@@ -27,7 +27,7 @@ All of the above functions can return only metadata part of the message, so that
 In case of dataset family of functions, only list of dataset messages is returned, the data can be retrieved in a separate call.
 :::
     
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
 
 
diff --git a/docs/site/versioned_docs/version-21.09.0/cookbook/overview.md b/docs/site/versioned_docs/version-21.09.0/cookbook/overview.md
index 795571aff..7018767ff 100644
--- a/docs/site/versioned_docs/version-21.09.0/cookbook/overview.md
+++ b/docs/site/versioned_docs/version-21.09.0/cookbook/overview.md
@@ -6,7 +6,7 @@ Here you can find the code examples for various common asapo usecases. Make sure
 
 For the most basic usecase, see the [Simple Producer](simple-producer) and [Simple Consumer](simple-consumer). There are also the basic examples of CMake and makefile configurations for client compilation.
 
-The API documentation can be found [here](http://asapo.desy.de/cpp) (for C++) or [here](http://asapo.desy.de/python) (for python).
+The API documentation can be found [here](https://asapo.pages.desy.de/asapo/cpp) (for C++) or [here](https://asapo.pages.desy.de/asapo/python) (for python).
 
 :::tip
 You can see more examples in ASAPO [source code](https://gitlab.desy.de/asapo/asapo/-/tree/develop/examples)
diff --git a/docs/site/versioned_docs/version-21.09.0/producer-clients.md b/docs/site/versioned_docs/version-21.09.0/producer-clients.md
index d74adb0b6..45bf6bd8c 100644
--- a/docs/site/versioned_docs/version-21.09.0/producer-clients.md
+++ b/docs/site/versioned_docs/version-21.09.0/producer-clients.md
@@ -17,7 +17,7 @@ multiple instances can be created (also within a single application) to send dat
     - retransfer will be attempted in case of system failure
     - a callback function can be provided to react after data was sent/process error
     
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
 
 
diff --git a/docs/site/versioned_docs/version-21.12.0/consumer-clients.md b/docs/site/versioned_docs/version-21.12.0/consumer-clients.md
index d04c14034..d1264f1d8 100644
--- a/docs/site/versioned_docs/version-21.12.0/consumer-clients.md
+++ b/docs/site/versioned_docs/version-21.12.0/consumer-clients.md
@@ -27,7 +27,7 @@ All of the above functions can return only metadata part of the message, so that
 In case of dataset family of functions, only list of dataset messages is returned, the data can be retrieved in a separate call.
 :::
     
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
 
 
diff --git a/docs/site/versioned_docs/version-21.12.0/cookbook/overview.md b/docs/site/versioned_docs/version-21.12.0/cookbook/overview.md
index 795571aff..7018767ff 100644
--- a/docs/site/versioned_docs/version-21.12.0/cookbook/overview.md
+++ b/docs/site/versioned_docs/version-21.12.0/cookbook/overview.md
@@ -6,7 +6,7 @@ Here you can find the code examples for various common asapo usecases. Make sure
 
 For the most basic usecase, see the [Simple Producer](simple-producer) and [Simple Consumer](simple-consumer). There are also the basic examples of CMake and makefile configurations for client compilation.
 
-The API documentation can be found [here](http://asapo.desy.de/cpp) (for C++) or [here](http://asapo.desy.de/python) (for python).
+The API documentation can be found [here](https://asapo.pages.desy.de/asapo/cpp) (for C++) or [here](https://asapo.pages.desy.de/asapo/python) (for python).
 
 :::tip
 You can see more examples in ASAPO [source code](https://gitlab.desy.de/asapo/asapo/-/tree/develop/examples)
diff --git a/docs/site/versioned_docs/version-21.12.0/producer-clients.md b/docs/site/versioned_docs/version-21.12.0/producer-clients.md
index d74adb0b6..45bf6bd8c 100644
--- a/docs/site/versioned_docs/version-21.12.0/producer-clients.md
+++ b/docs/site/versioned_docs/version-21.12.0/producer-clients.md
@@ -17,7 +17,7 @@ multiple instances can be created (also within a single application) to send dat
     - retransfer will be attempted in case of system failure
     - a callback function can be provided to react after data was sent/process error
     
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
 
 
diff --git a/docs/site/versioned_docs/version-22.03.0/consumer-clients.md b/docs/site/versioned_docs/version-22.03.0/consumer-clients.md
index eb5c635d1..514c5c841 100644
--- a/docs/site/versioned_docs/version-22.03.0/consumer-clients.md
+++ b/docs/site/versioned_docs/version-22.03.0/consumer-clients.md
@@ -28,7 +28,7 @@ All of the above functions can return only metadata part of the message, so that
 In case of dataset family of functions, only list of dataset messages is returned, the data can be retrieved in a separate call.
 :::
     
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
 
 
diff --git a/docs/site/versioned_docs/version-22.03.0/cookbook/overview.md b/docs/site/versioned_docs/version-22.03.0/cookbook/overview.md
index 795571aff..7018767ff 100644
--- a/docs/site/versioned_docs/version-22.03.0/cookbook/overview.md
+++ b/docs/site/versioned_docs/version-22.03.0/cookbook/overview.md
@@ -6,7 +6,7 @@ Here you can find the code examples for various common asapo usecases. Make sure
 
 For the most basic usecase, see the [Simple Producer](simple-producer) and [Simple Consumer](simple-consumer). There are also the basic examples of CMake and makefile configurations for client compilation.
 
-The API documentation can be found [here](http://asapo.desy.de/cpp) (for C++) or [here](http://asapo.desy.de/python) (for python).
+The API documentation can be found [here](https://asapo.pages.desy.de/asapo/cpp) (for C++) or [here](https://asapo.pages.desy.de/asapo/python) (for python).
 
 :::tip
 You can see more examples in ASAPO [source code](https://gitlab.desy.de/asapo/asapo/-/tree/develop/examples)
diff --git a/docs/site/versioned_docs/version-22.03.0/producer-clients.md b/docs/site/versioned_docs/version-22.03.0/producer-clients.md
index 89b421a99..ccc0f1c95 100644
--- a/docs/site/versioned_docs/version-22.03.0/producer-clients.md
+++ b/docs/site/versioned_docs/version-22.03.0/producer-clients.md
@@ -17,7 +17,7 @@ multiple instances can be created (also within a single application) to send dat
     - retransfer will be attempted in case of system failure
     - a callback function can be provided to react after data was sent/process error
     
-Please refer to [C++](http://asapo.desy.de/cpp/) and [Python](http://asapo.desy.de/python/) documentation for specific details (available from DESY intranet only).
+Please refer to [C++](https://asapo.pages.desy.de/asapo/cpp/) and [Python](https://asapo.pages.desy.de/asapo/python/) documentation for specific details (available from DESY intranet only).
 
 
 
-- 
GitLab