From 7efe8ddb54550a2c76348701f504cf07644e34fc Mon Sep 17 00:00:00 2001 From: romainsacchi Date: Mon, 9 Nov 2026 12:12:14 +0100 Subject: [PATCH] Prepare CLIC approved snapshot startup update --- stacks/clic/compose.yaml | 19 ++++++++------- stacks/clic/curated-snapshot-20261109.md | 30 ++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 stacks/clic/curated-snapshot-20261109.md diff --git a/stacks/clic/compose.yaml b/stacks/clic/compose.yaml index 38edd36..84696ec 100644 --- a/stacks/clic/compose.yaml +++ b/stacks/clic/compose.yaml @@ -2,7 +2,7 @@ services: # One-time approved catalogue update; gates application startup. clic-curated-update: - image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-v1-20261102@sha256:977313385ae4836c85175ed23ebd7ff84cf7164add67bb64aa3c42a39e7e3917} + image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-snapshot-20261109-8e95ba7f4ef4@sha256:c9b140cad5e84bd3824b9d3b12de71d924e60c8f0332594db243ae8b41a20b59} container_name: clic-curated-update restart: "no" env_file: @@ -16,6 +16,7 @@ services: - CLIC_CACHE_BACKEND=redis - CLIC_REDIS_URL=redis://clic-redis:6379/0 - CLIC_REQUIRE_SHARED_CACHE=1 + - CLIC_CURATED_UPDATE_RELEASE=snapshot-20261109 - CLIC_CURATED_UPDATE_ACTOR=${CLIC_CURATED_UPDATE_ACTOR:-romainsacchi} - CLIC_CURATED_UPDATE_REPORTS=/var/lib/clic/curated-updates - CLIC_BOOTSTRAP_ADMINS_ENABLED=0 @@ -45,7 +46,7 @@ services: # Romain Sacchi # CLIC Django platform clic-web: - image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-v1-20261102@sha256:977313385ae4836c85175ed23ebd7ff84cf7164add67bb64aa3c42a39e7e3917} + image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-snapshot-20261109-8e95ba7f4ef4@sha256:c9b140cad5e84bd3824b9d3b12de71d924e60c8f0332594db243ae8b41a20b59} container_name: clic-web restart: always env_file: @@ -57,7 +58,7 @@ services: - CLIC_CACHE_BACKEND=redis - CLIC_REDIS_URL=redis://clic-redis:6379/0 - CLIC_REQUIRE_SHARED_CACHE=1 - - CLIC_CURATED_UPDATE_REQUIRED=v1 + - CLIC_CURATED_UPDATE_REQUIRED=snapshot-20261109 - BRIGHTPATH_SOURCE_DIR= - INVENTORY_ARCHIVE_ENVIRONMENT=production - INVENTORY_ARCHIVE_AUTO_RESTORE=1 @@ -94,7 +95,7 @@ services: - clic_backend clic-package-exports: - image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-v1-20261102@sha256:977313385ae4836c85175ed23ebd7ff84cf7164add67bb64aa3c42a39e7e3917} + image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-snapshot-20261109-8e95ba7f4ef4@sha256:c9b140cad5e84bd3824b9d3b12de71d924e60c8f0332594db243ae8b41a20b59} container_name: clic-package-exports restart: always env_file: @@ -106,7 +107,7 @@ services: - CLIC_CACHE_BACKEND=redis - CLIC_REDIS_URL=redis://clic-redis:6379/0 - CLIC_REQUIRE_SHARED_CACHE=1 - - CLIC_CURATED_UPDATE_REQUIRED=v1 + - CLIC_CURATED_UPDATE_REQUIRED=snapshot-20261109 - BRIGHTPATH_SOURCE_DIR= - INVENTORY_ARCHIVE_AUTO_RESTORE=0 - INVENTORY_ARCHIVE_PUBLISH_MODE=off @@ -129,7 +130,7 @@ services: - clic_backend clic-brightway-json-exports: - image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-v1-20261102@sha256:977313385ae4836c85175ed23ebd7ff84cf7164add67bb64aa3c42a39e7e3917} + image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-snapshot-20261109-8e95ba7f4ef4@sha256:c9b140cad5e84bd3824b9d3b12de71d924e60c8f0332594db243ae8b41a20b59} container_name: clic-brightway-json-exports restart: always env_file: @@ -141,7 +142,7 @@ services: - CLIC_CACHE_BACKEND=redis - CLIC_REDIS_URL=redis://clic-redis:6379/0 - CLIC_REQUIRE_SHARED_CACHE=1 - - CLIC_CURATED_UPDATE_REQUIRED=v1 + - CLIC_CURATED_UPDATE_REQUIRED=snapshot-20261109 - BRIGHTPATH_SOURCE_DIR= - INVENTORY_ARCHIVE_AUTO_RESTORE=0 - INVENTORY_ARCHIVE_PUBLISH_MODE=off @@ -171,7 +172,7 @@ services: - clic_backend clic-inventory-archive: - image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-v1-20261102@sha256:977313385ae4836c85175ed23ebd7ff84cf7164add67bb64aa3c42a39e7e3917} + image: ${CLIC_IMAGE:-gitea.psi.ch/images/clic:curated-snapshot-20261109-8e95ba7f4ef4@sha256:c9b140cad5e84bd3824b9d3b12de71d924e60c8f0332594db243ae8b41a20b59} container_name: clic-inventory-archive restart: always env_file: @@ -183,7 +184,7 @@ services: - CLIC_CACHE_BACKEND=redis - CLIC_REDIS_URL=redis://clic-redis:6379/0 - CLIC_REQUIRE_SHARED_CACHE=1 - - CLIC_CURATED_UPDATE_REQUIRED=v1 + - CLIC_CURATED_UPDATE_REQUIRED=snapshot-20261109 - BRIGHTPATH_SOURCE_DIR= - IMPACT_SCORES_ENABLED=0 - INVENTORY_ARCHIVE_ENVIRONMENT=production diff --git a/stacks/clic/curated-snapshot-20261109.md b/stacks/clic/curated-snapshot-20261109.md new file mode 100644 index 0000000..abcb7a2 --- /dev/null +++ b/stacks/clic/curated-snapshot-20261109.md @@ -0,0 +1,30 @@ +# Approved CLIC snapshot update, November 2026 + +This follows the existing startup-update workflow. The image contains the +checksum-pinned update plan; the one-shot updater checks live drift, editor +permission and unfinished private work before applying through audited services. +Web, both export workers and the archive worker wait for its completion receipt. +A conflict blocks startup. Existing database/media mounts and publisher settings +remain unchanged. Keep the normal PSI maintenance and full backup procedure. + +Scope: metadata corrections on 5597 existing public versions, 87 scientific +successor versions and four auxiliary activities. All original inventory +snapshots are retained, with no hard deletion or standalone entity merge. +Existing scientific holds remain deferred. Restarts do not reapply the release. + +Image: `gitea.psi.ch/images/clic:curated-snapshot-20261109-8e95ba7f4ef4@sha256:c9b140cad5e84bd3824b9d3b12de71d924e60c8f0332594db243ae8b41a20b59`. +Source: `sacchi_r/clic` commit `8e95ba7f4ef4465881b6bf6026c44f6e57c5dba2`. + +Validation: +- 2465 non-browser checks passed, including the additional catalogue-header + regression; four PostgreSQL-only unit cases skipped in SQLite verification. +- All 91 browser checks passed. +- Full original-snapshot PostgreSQL rehearsal applied all 91 versions and + preserved every original scientific record and the private test records. +- Independent export comparison matches all 3509 datasets and 5688 versions. +- A failed rehearsal rolled back to exactly the original database state. +- The published image verifies its completion receipt and returns `already_applied` on restart. + +The image contains the frozen payload, and the hosting PR only changes the five +CLIC image references and release selectors. No new migration or volume change. Root Compose validation passes; all other service settings are unchanged. +Do not merge this draft before the final release review.