diff --git a/.dockerignore b/.dockerignore
index f133ecc6f14bcfe60856a17b6348bab1e7e13b06..345bdfdf86b66dfb2e1f874d3759d7cdec882e59 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,4 +1,4 @@
-.git/
+.git/modules/
 .vscode/
 docker/blockchain/
 docker/ci/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b3a4cd1732de741454867d6f816665d6fe00943e..20d48df976916cfb696ab24d91d0a20df48b1e11 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -171,7 +171,7 @@ docker-ci-runner-build:
   extends: .docker-build-template
   variables:
     BASE_REPO_NAME: ""
-    BASE_TAG: "docker-24.0.1-2"
+    BASE_TAG: "docker-24.0.1-3"
     NAME: "ci-runner"
     TARGET: "ci-runner-ci"
 
@@ -188,7 +188,7 @@ docker-setup-docker-image-build:
 sync:
   extends: .docker_image_builder_job_template
   stage: sync
-  image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-2
+  image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-3
   needs:
   - prepare_haf_image
   - prepare_haf_data
@@ -303,7 +303,7 @@ sync:
     HEALTHCHECK_TCP_PORT: 3000
 
 regression-test:
-  image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-2
+  image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-3
   stage: test
   needs:
   - job: sync
@@ -332,7 +332,7 @@ regression-test:
   - data-cache-storage
 
 setup-scripts-test:
-  image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-2
+  image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-3
   stage: test
   needs:
   - job: sync
@@ -357,7 +357,7 @@ setup-scripts-test:
   - data-cache-storage
 
 performance-test:
-  image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-2
+  image: registry.gitlab.syncad.com/hive/reputation_tracker/ci-runner:docker-24.0.1-3
   stage: test
   needs:
   - job: sync
@@ -392,6 +392,37 @@ performance-test:
   tags:
   - data-cache-storage
 
+pattern-test:
+  extends: .pytest_based_template
+  stage: test
+  needs:
+  - job: sync
+    artifacts: true
+  - job: docker-setup-docker-image-build
+    artifacts: true
+  - job: prepare_haf_image
+    artifacts: true
+  services:
+  - *hfm-only-service
+  - *postgrest-service
+  variables:
+    DATA_SOURCE: ${DATA_CACHE_HAF_PREFIX}_${HAF_COMMIT}_${CI_PIPELINE_ID}
+    JUNIT_REPORT: $CI_PROJECT_DIR/tests/tavern/report.xml
+    PYTEST_BASED_IMAGE_NAME: $BUILDER_IMAGE_PATH
+    POETRY_INSTALL_ROOT_DIR: $CI_PROJECT_DIR/haf/hive/tests/python/hive-local-tools
+    REPTRACKER_ADDRESS: postgrest-server
+    REPTRACKER_PORT: 3000
+    TAVERN_DIR: $CI_PROJECT_DIR/tests/tavern
+  script:
+  - |
+    cd $CI_PROJECT_DIR/tests/tavern
+    pytest -n $PYTEST_NUMBER_OF_PROCESSES --junitxml report.xml .
+  artifacts:
+    paths:
+    - "**/*.out.json"
+  tags:
+  - data-cache-storage
+
 build_and_publish_image:
   stage: publish
   extends: .publish_docker_image_template
diff --git a/Dockerfile b/Dockerfile
index af123327ef4a6a97396d75eff98ac4b4caecd7b4..c844e1d8a9a0593a0426954543b20629f3ade596 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,17 +1,11 @@
-# syntax=docker/dockerfile:1.5
-ARG PAAS_PSQL_VERSION=11251948d5dd4867552f9b9836a9e02110304df5
-FROM ghcr.io/alphagov/paas/psql:${PAAS_PSQL_VERSION} AS psql_client
+ARG PSQL_CLIENT_VERSION=14-1
+FROM registry.gitlab.syncad.com/hive/common-ci-configuration/psql:${PSQL_CLIENT_VERSION} AS psql_client
 
-RUN <<EOF
-  set -e
-  apk add --no-cache bash
-  adduser -s /bin/bash -G users -D "haf_admin"
-EOF
-
-USER haf_admin
-WORKDIR /home/haf_admin
+FROM psql_client as version-calculcation
 
-ENTRYPOINT [ "/bin/bash", "-c" ]
+COPY --chown=haf_admin:users . /home/haf_admin/src
+WORKDIR /home/haf_admin/src
+RUN scripts/generate_version_sql.sh $(pwd)
 
 FROM psql_client AS full
 
@@ -53,6 +47,7 @@ COPY db /app/db
 COPY endpoints /app/endpoints
 COPY account_dump /app/account_dump
 COPY docker/scripts/block-processing-healthcheck.sh /app/block-processing-healthcheck.sh
-COPY docker/scripts/docker-entrypoint.sh /app/docker-entrypoint.sh
+COPY docker/scripts/docker_entrypoint.sh /app/docker_entrypoint.sh
+COPY --from=version-calculcation --chown=haf_admin:users /home/haf_admin/src/scripts/set_version_in_sql.pgsql /app/scripts/set_version_in_sql.pgsql
 
-ENTRYPOINT ["/app/docker-entrypoint.sh"]
\ No newline at end of file
+ENTRYPOINT ["/app/docker_entrypoint.sh"]
\ No newline at end of file
diff --git a/docker-bake.hcl b/docker-bake.hcl
index 584b49407bf90779a689a5e3d227de46a15ee3fa..72099fa4951ba85a01f5fda5636ed1e83000e752 100644
--- a/docker-bake.hcl
+++ b/docker-bake.hcl
@@ -15,7 +15,7 @@ variable "CI_DEFAULT_BRANCH" {
   default = "develop"
 }
 variable "TAG_CI" {
-  default = "docker-24.0.1-2"
+  default = "docker-24.0.1-3"
 }
 variable "PSQL_CLIENT_VERSION" {
   default = "14"
diff --git a/docker/scripts/docker-entrypoint.sh b/docker/scripts/docker_entrypoint.sh
similarity index 100%
rename from docker/scripts/docker-entrypoint.sh
rename to docker/scripts/docker_entrypoint.sh
diff --git a/scripts/generate_version_sql.sh b/scripts/generate_version_sql.sh
index b517efd88f87b9d506999eb7d525f00f57077691..a32f33b51225efb833783113a63bccfb7d162764 100755
--- a/scripts/generate_version_sql.sh
+++ b/scripts/generate_version_sql.sh
@@ -4,7 +4,7 @@
 # usage: ./generate_version_sql.sh root_project_dir
 # example: ./generate_version_sql.sh $PWD
 # example: ./generate_version_sql.sh /var/my/sources
-# example: ./generate_version_sql.sh /sources/submodules/hafbe /sources/.git/modules/submodules/hafbe
+# example: ./generate_version_sql.sh /sources/submodules/reptracker /sources/.git/modules/submodules/reptracker
 
 set -euo pipefail
 
@@ -18,4 +18,4 @@ GIT_DIR=${2:-"$1/.git"}
 # Rationale:  https://www.shellcheck.net/wiki/SC2006
 GIT_HASH=$(git --git-dir="$GIT_DIR" --work-tree="$GIT_WORK_TREE" rev-parse HEAD)
 
-echo "SELECT reptracker_app.set_version('$GIT_HASH');" > "$PATH_TO_SQL_VERSION_FILE"
\ No newline at end of file
+echo "TRUNCATE TABLE version; INSERT INTO version(git_hash) VALUES ('$GIT_HASH');" > "$PATH_TO_SQL_VERSION_FILE"
\ No newline at end of file