Components
Every part of the platform that can go out of date, one row each: what is running, what it was built from, the latest known, and where each fact came from. On a deployment this screen applies updates and recovers from failed ones; the demo shows it with every component current.
| Behind or drifted | none — no row reads behind against its source |
| Unknown | none — no row reads unknown against its source |
Code and build
| Component | Running | Built | Latest known | Source | Checked | State | Mode | Action |
|---|---|---|---|---|---|---|---|---|
| Release stamp
release stamp |
1.1.0, tag 1.1 at 960264d9b3ec | 1.1.0, core tree 2d7f220f645b | 1.1.0 (CHANGELOG.md, 2026-09-08) | CHANGELOG.md | 2 hours ago | current | record only | Record only |
| Build stamp
BUILD.json |
tree 2d7f220f645b, commit 960264d9b3ec | tree 2d7f220f645b, built 2026-09-08 | release 1.1.0, tree 2d7f220f645b | git rev-parse HEAD:core | 2 hours ago | current | record only | Record only |
| Running image
compose services |
7 services on python:3.12-slim; viewer ${PHI_AI_IMAGE:-phi-ai:dev} | python:3.12-slim (Dockerfile) | release 1.1.0 image, as the signed manifest names it on a deployment | docker-compose.yml | 2 hours ago | current | direct | Apply update |
| Demo tree
tree manifest |
manifest 6996879ff411 (205 files) | manifest 6996879ff411; www-demo/app/components_data.php excluded | the same tree, hashed at build | git ls-files www-demo | git hash-object --stdin-paths | 2 hours ago | current | record only | Record only |
Dependencies and runtimes
| Component | Running | Built | Latest known | Source | Checked | State | Mode | Action |
|---|---|---|---|---|---|---|---|---|
| Python pins
dependency lock |
91 pins, hash-checked; 25 direct in requirements.txt | 91 pins, lock dated 2026-08-21 | no advisory against any pin (checked 3 days ago) | requirements.lock | 3 days ago | current | record only | Record only |
| Runtimes
runtimes |
PHP 8.3.30, 10.6.20-MariaDB-cll-lve-log (this demo) | python:3.12-slim, postgres 16 | python:3.12-slim (Dockerfile), postgres 16 (RDS engine_version) | Dockerfile | 2 hours ago | current | record only | Record only |
| Vendored front-end
vendored files |
d3 v7.9.0, ECharts 5.6.0, 6 font families in 38 files | 40 files, hashed; fonts under SIL Open Font License 1.1 | d3 v7.9.0 (banner), ECharts 5.6.0 (version string), fonts as vendored | core/web/static/fonts/README.md | 2 hours ago | current | record only | Record only |
| Infra pins
terraform pins |
terraform >= 1.10.0; aws ~> 5.40; random ~> 3.6 | as declared in deploy/aws/versions.tf; applied by the admin from the workstation, never by the platform | pinned as declared; provider releases checked 3 days ago | deploy/aws/versions.tf | 3 days ago | current | guided | Open checklist |
Reference data on someone else's cadence
| Component | Running | Built | Latest known | Source | Checked | State | Mode | Action |
|---|---|---|---|---|---|---|---|---|
| EMR vendor profiles
vendor profiles |
15 vendor profiles (PHP mirror, pinned by tests/test_emr_profiles_coverage.py) | 15 profiles (core/fhir/emr_profiles.py PROFILES); emulators on ports 9101 to 9115 | 15 vendor pages unchanged, checked 12 days ago | core/fhir/emr_profiles.py PROFILES | 12 days ago | current | guided | Open checklist |
| Terminology releases
terminology sources |
7 sources, current release each | 7 sources (core/terminology/loader.py): 1 attested_license_id, 4 committed, 2 operator_licensed | current release per publisher; loaded release id recorded per source on a deployment | core/terminology/loader.py | 3 days ago | current | direct | Apply update |
| Model catalogue
model registry |
16 registered, 16 enabled (the models table, through the Control panel) | platform default claude-sonnet-5 (core/assistant/config.py) | no registered model_id retired; provider lists checked 3 days ago | www-demo/app/emr_profiles.php models_all() | 3 days ago | current | direct | Apply update |
| Synthetic corpus
synthetic corpus |
33,311 demo patients, seed 33311 | synthea v4.0.0, seed 20260821, 33 bundles | reproducible from generator, version and seed | tests/fixtures/layer2.MANIFEST.json | 2 hours ago | current | record only | Record only |
State, schema, secrets
| Component | Running | Built | Latest known | Source | Checked | State | Mode | Action |
|---|---|---|---|---|---|---|---|---|
| Migration ledger
schema files |
35 schema files, all in the ledger (schema_migrations, core/db/components_schema.sql) | 27 in core/db, 8 in www-demo/sql; DDL held by no application role | 35 files, checksums as committed | core/db/*.sql, www-demo/sql/*.sql | 2 hours ago | current | guided | Open checklist |
| Key and credential ages
key ages |
key pair kept out of the repository (.gitignore:4:*.pem); JWKS kid phi-ai-dev-2026 (RSA RS384) | JWKS published 2026-08-21; key files kept out of the repository by .gitignore:4:*.pem | every age within 365 days, checked 14 days ago; values never shown | deploy/aws/epic_jwks_nonprod.json | 14 days ago | current | guided | Open checklist |
| Operator config files
config files |
4 files, no missing keys | 4 shipped examples (config/*.example.yaml), compared key by key | every key the release expects is present | config/*.example.yaml | 2 hours ago | current | direct | Apply update |
Verification and recovery
| Component | Running | Built | Latest known | Source | Checked | State | Mode | Action |
|---|---|---|---|---|---|---|---|---|
| Last green gates
gate record |
green: 3 gates, 1,182 tests in 72 files | release 1.1.0, tag 1.1 at 960264d9b3ec | the running build's commit had green gates | scripts/pre_push_gates.sh | 2 hours ago | current | record only | Record only |
| Backups
backup record |
6 stores backed up; restore rehearsed 20 days ago | 3 backups kept per store; older ones removed only after a newer verified backup exists | every store within its cadence; rehearsal every 180 days | deploy/aws/s3_store.tf | 2 hours ago | current | record only | Record only |
| Releases kept
release record |
2 of 2 tagged releases kept (3 images retained) | 1.0 (2026-08-29), 1.1 (2026-09-03) | 1.1 (2026-09-03) | git for-each-ref refs/tags | 2 hours ago | current | record only | Record only |
| Update journal
journal |
last update 1.1.0 to 1.1.0, 5 days ago, direct mode, 5 of 5 done | platform_updates and platform_update_steps (in core/db/components_schema.sql); the open job row is the lock across every service | no job open; nothing waiting on anyone | core/db/components_schema.sql | 2 hours ago | current | record only | Record only |
Backups and releases
Each store: its last backup, where it is, its checksum, when a restore was last rehearsed, and the retention in force. Then the releases kept to roll back to.
| Store | Last backup | Where | Checksum | Restore rehearsed | Retention |
|---|---|---|---|---|---|
| Records (object store) | 2 hours ago | S3 store bucket, versioning Enabled, KMS envelope (deploy/aws/s3_store.tf) | S3 version id and the recorded SHA-256 digest | 20 days ago | bucket versioning and lifecycle, per deploy/aws/s3_store.tf |
| Index (Postgres) | 1 day ago | RDS automated backup; rebuildable from S3 by core.db.reconcile | attested (RDS snapshot) | 20 days ago | var.db_backup_retention_days (default 1 day) |
| Operational state (platform_* tables) | 5 days ago | store bucket, system/backups/ prefix, same KMS key | SHA-256, verified by the updater | 20 days ago | 3 per store |
| config/ | 5 days ago | beside the operational-state dump | SHA-256, verified by the updater | 20 days ago | 3 per store |
| .env | 5 days ago | never copied; presence and checksum recorded | SHA-256 recorded, file never copied | 20 days ago | n/a: secrets stay where they are |
| Vocabulary schemas | 30 days ago | the previous schema, kept on swap | vocabulary counts, verified on swap | 20 days ago | one previous schema |
| Release | Date | Commit |
|---|---|---|
| 1.0 | 2026-08-29 | bf1d7d712b71 |
| 1.1 | 2026-09-03 | 960264d9b3ec |
Update journal
1.1.0 → 1.1.0, 5 days ago, direct mode — the last completed update, every step done.
| Step | Outcome |
|---|---|
| Plan | done |
| Back up | done |
| Apply | done |
| Verify | done |
| Recover | done |
Recent component actions
| When | Actor | Action | Object |
|---|---|---|---|
| just now | Ryan Gomez | system.components_reviewed | system/components |
When is the audit trail's own clock, read relative to now. The full trail, with its dates, is on the Audit screen.