forked from linux/WebHosting_DMZ
Remove CLIC archive handoff document from PR
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
# CLIC archive cutover: operator actions
|
||||
|
||||
This deployment enables the approved inventory-only Zenodo recovery and nightly backup route.
|
||||
Heroku is frozen; its database and media are retained for rollback. Do not reopen its writers
|
||||
or enable another archive publisher while PSI is authoritative.
|
||||
|
||||
1. Add `INVENTORY_ARCHIVE_TOKEN` to the existing protected
|
||||
`/mount/webhosting_dmz_write/clic/clic.env`, using the production Zenodo token supplied
|
||||
securely by Romain. Keep all existing database, Django and SMTP settings. Do not attach the
|
||||
filled env file or token to this repository, pull request or issue.
|
||||
2. Merge/deploy the Compose change and recreate all four CLIC application services. Ensure
|
||||
any host `CLIC_IMAGE` override selects `gitea.psi.ch/images/clic:ae59c15` or is removed.
|
||||
No metadata-file copy, new host mount, cron job or systemd archive timer is required.
|
||||
3. Check web and archive-worker health, the public catalog and SMTP delivery. Monitor unhealthy
|
||||
containers and host outages through normal PSI monitoring. Create local admin credentials
|
||||
separately; accounts and private data are not in the public archive.
|
||||
|
||||
## Automatic behavior
|
||||
|
||||
- Web applies migrations and restores only an empty inventory catalog, from the latest
|
||||
published record owned by `86122` in series `22850223`. It verifies checksums/schema and
|
||||
imports atomically. A failure prevents web startup; existing catalogs are not overwritten.
|
||||
- Current cutover record: https://zenodo.org/records/22850224, containing **3,377 datasets and
|
||||
3,916 versions**. SHA-256:
|
||||
`169fe991599e138ddd15eae7aa56b2c58ab80bf865e8087dfd4c303f868386ea`.
|
||||
- Both bootstrap pins are intentionally empty. After future nightly uploads, an empty database
|
||||
must recover the latest trusted version, not the original cutover snapshot.
|
||||
- Both export workers and `clic-inventory-archive` wait for web readiness before starting;
|
||||
the web healthcheck allows ten minutes for first bootstrap.
|
||||
- Approved collection metadata is bundled at `/app/config/inventory-archive-metadata.json`.
|
||||
Restored per-version redistribution approvals require no separate authorization file.
|
||||
- Only the archive application service receives the publisher token. Its first check must
|
||||
match the trusted archive and report `unchanged`; a mismatch creates no draft and alerts.
|
||||
After that handover, daily checks start at **03:00 UTC**, polling every five minutes with
|
||||
catch-up/retry. Unchanged inventories produce no new Zenodo version.
|
||||
- Its independent healthcheck emails `romain.sacchi@psi.ch` through the existing SMTP settings
|
||||
on publication failure or checks older than 26 hours. A down host or broken SMTP needs
|
||||
external monitoring; Docker does not automatically restart an unhealthy running process.
|
||||
|
||||
The image is built from application revision `ae59c154309d4c4ccd44ae2b22f6e81a7e0dcffb`.
|
||||
Registry digest: `sha256:a3cba10de3822b848cadbbedfd2ec63f70c94f580ae585ca8ff50d8250528374`
|
||||
(`linux/amd64`). Full verification passed: 855 backend tests, 20 browser tests and 108
|
||||
PostgreSQL archive/worker tests. The exact image passed token-free production restoration,
|
||||
restart idempotence, a real automatic sandbox upload (record `606103`), unchanged-content
|
||||
skipping and recovery of that new snapshot into a second empty database.
|
||||
Archive migrations `0041` and `0042` run automatically; this scheduler adds no migration.
|
||||
Private users, uploaded originals, reviews and impact scores are not restored. Keep ordinary
|
||||
private operational backups and provision licensed impact factors independently if required.
|
||||
|
||||
From the existing hosting project, inspect:
|
||||
|
||||
```sh
|
||||
docker compose logs --tail=100 clic-web clic-inventory-archive
|
||||
docker compose exec -T clic-inventory-archive python manage.py inventory_archive_status
|
||||
```
|
||||
|
||||
Old restoration-only/combined env overlays and host-timer instructions are superseded by this
|
||||
Compose configuration. Do not enable legacy archive timers alongside this container. Env changes
|
||||
require recreation, not just restart. Before rollback, stop all PSI application services including
|
||||
the archive publisher, remove its token, and coordinate with Romain before reopening Heroku.
|
||||
Independent PSI edits must be reconciled before any rollback.
|
||||
Reference in New Issue
Block a user