Python pins
Dependencies and runtimes · dependency lock. On a deployment this row is a control; the demo shows the row with the reading its source supports.
Evidence
- Running
- 91 pins, hash-checked; 25 direct in requirements.txt
- Built
- 91 pins, lock dated 2026-08-21
- Latest known
- no advisory against any pin (checked 3 days ago)
- Source
- requirements.lock
- Checked
- 3 days ago
- Cadence
- every 14 days
- Mode
- record only
- State
- current
- Backup unit
- The previous image.
- Recovery
- The previous image.
The five steps
Plan, back up, apply, verify, recover — in record only mode. On a deployment each step runs, is verified and lands on the audit trail; every component on the demo is current, so every step reads done.
- ✓ done Plan The lock's pins are compared with the set installed inside the image and with the advisory manifest; the plan names every pin that changes and the image release that carries it.
- ✓ done Back up The previous image digest stays kept; nothing is pip-installed into a running container, ever.
- ✓ done Apply Regenerate requirements.lock on the workstation, build and sign the release image, and ship it through the Running image row.
- ✓ done Verify The installed set inside the new image equals the lock, and the advisory manifest lists nothing against it.
- ✓ done Recover Run the previous image; the pins roll back with it.
Every row behind this reading (91)
| Package | Pinned | Direct spec | Via |
|---|---|---|---|
| aiohappyeyeballs | 2.7.1 | transitive | aiohttp |
| aiohttp | 3.14.3 | transitive | cloud-sql-python-connector |
| aiosignal | 1.4.0 | transitive | aiohttp |
| annotated-doc | 0.0.5 | transitive | fastapi |
| annotated-types | 0.8.0 | transitive | pydantic |
| anthropic | 0.122.0 | anthropic>=0.116 | -r requirements.txt |
| anyio | 4.14.2 | transitive | anthropic, httpx, starlette, watchfiles |
| asn1crypto | 1.5.1 | transitive | scramp |
| attrs | 26.1.0 | transitive | aiohttp |
| azure-core | 1.41.0 | transitive | azure-identity, azure-keyvault-keys, azure-storage-blob |
| azure-identity | 1.25.3 | azure-identity>=1.15 | -r requirements.txt |
| azure-keyvault-keys | 4.11.1 | azure-keyvault-keys>=4.9 | -r requirements.txt |
| azure-storage-blob | 12.30.0 | azure-storage-blob>=12.19 | -r requirements.txt |
| boto3 | 1.43.74 | boto3>=1.34 | -r requirements.txt, anthropic |
| botocore | 1.43.74 | transitive | anthropic, boto3, s3transfer |
| certifi | 2026.7.22 | transitive | httpcore, httpx, requests |
| cffi | 2.1.1 | transitive | cryptography |
| charset-normalizer | 3.5.1 | transitive | reportlab, requests |
| click | 8.4.2 | transitive | uvicorn |
| cloud-sql-python-connector | 1.22.0 | cloud-sql-python-connector>=1.9 | -r requirements.txt |
| cryptography | 50.0.0 | cryptography>=42.0 | -r requirements.txt, azure-identity, azure-keyvault-keys, azure-storage-blob, cloud-sql-python-connector, google-auth, msal, pyjwt |
| distro | 1.9.0 | transitive | anthropic |
| dnspython | 2.8.0 | transitive | cloud-sql-python-connector |
| docstring-parser | 0.18.0 | transitive | anthropic |
| fastapi | 0.141.1 | fastapi>=0.110 | -r requirements.txt |
| frozenlist | 1.8.0 | transitive | aiohttp, aiosignal |
| google-api-core | 2.34.0 | transitive | google-cloud-core, google-cloud-kms, google-cloud-storage |
| google-auth | 2.56.3 | transitive | anthropic, cloud-sql-python-connector, google-api-core, google-cloud-core, google-cloud-kms, google-cloud-storage |
| google-cloud-core | 2.6.1 | transitive | google-cloud-storage |
| google-cloud-kms | 3.16.0 | google-cloud-kms>=2.21 | -r requirements.txt |
| google-cloud-storage | 3.13.1 | google-cloud-storage>=2.16 | -r requirements.txt |
| google-crc32c | 1.8.0 | transitive | google-cloud-storage, google-resumable-media |
| google-resumable-media | 2.10.1 | transitive | google-cloud-storage |
| googleapis-common-protos | 1.75.1 | transitive | cloud-sql-python-connector, google-api-core, grpc-google-iam-v1, grpcio-status |
| grpc-google-iam-v1 | 0.14.5 | transitive | google-cloud-kms |
| grpcio | 1.83.0 | transitive | cloud-sql-python-connector, google-api-core, google-cloud-kms, googleapis-common-protos, grpc-google-iam-v1, grpcio-status |
| grpcio-status | 1.83.0 | transitive | google-api-core |
| h11 | 0.16.0 | transitive | httpcore, uvicorn |
| httpcore | 1.0.9 | transitive | httpx |
| httptools | 0.8.0 | transitive | uvicorn |
| httpx | 0.28.1 | httpx>=0.27 | -r requirements.txt, anthropic |
| idna | 3.19 | transitive | anyio, httpx, requests, yarl |
| iniconfig | 2.3.0 | transitive | pytest |
| isodate | 0.7.2 | transitive | azure-keyvault-keys, azure-storage-blob |
| itsdangerous | 2.2.0 | itsdangerous>=2.1 | -r requirements.txt |
| jinja2 | 3.1.6 | jinja2>=3.1 | -r requirements.txt |
| jiter | 0.16.0 | transitive | anthropic |
| jmespath | 1.1.0 | transitive | boto3, botocore |
| markupsafe | 3.0.3 | transitive | jinja2 |
| msal | 1.37.0 | transitive | azure-identity, msal-extensions |
| msal-extensions | 1.3.1 | transitive | azure-identity |
| multidict | 6.7.1 | transitive | aiohttp, yarl |
| packaging | 26.3 | transitive | pytesseract, pytest |
| pdf2image | 1.17.0 | pdf2image>=1.17 | -r requirements.txt |
| pg8000 | 1.31.5 | transitive | cloud-sql-python-connector |
| pillow | 12.3.0 | Pillow>=10.2 | -r requirements.txt, pdf2image, pytesseract, reportlab |
| pluggy | 1.6.0 | transitive | pytest |
| propcache | 0.5.2 | transitive | aiohttp, yarl |
| proto-plus | 1.28.3 | transitive | google-api-core, google-cloud-kms |
| protobuf | 7.35.1 | transitive | cloud-sql-python-connector, google-api-core, google-cloud-kms, googleapis-common-protos, grpc-google-iam-v1, grpcio-status, proto-plus |
| psycopg | 3.3.4 | psycopg>=3.1 | -r requirements.txt |
| psycopg-binary | 3.3.4 | transitive | psycopg |
| pyasn1 | 0.6.4 | transitive | pyasn1-modules |
| pyasn1-modules | 0.4.2 | transitive | google-auth |
| pycparser | 3.0 | transitive | cffi |
| pydantic | 2.13.4 | transitive | anthropic, fastapi |
| pydantic-core | 2.46.4 | transitive | pydantic |
| pydicom | 3.0.2 | pydicom>=3.0 | -r requirements.txt |
| pygments | 2.21.0 | transitive | pytest |
| pyjwt | 2.13.0 | PyJWT>=2.8 | -r requirements.txt, msal |
| pytesseract | 0.3.13 | pytesseract>=0.3.10 | -r requirements.txt |
| pytest | 9.1.1 | pytest>=8.0 | -r requirements.txt |
| python-dateutil | 2.9.0.post0 | transitive | botocore, pg8000 |
| python-dotenv | 1.2.3 | transitive | uvicorn |
| python-multipart | 0.0.32 | python-multipart>=0.0.18 | -r requirements.txt |
| pyyaml | 6.0.3 | PyYAML>=6.0 | -r requirements.txt, uvicorn |
| reportlab | 5.0.0 | reportlab>=4.1 | -r requirements.txt |
| requests | 2.34.2 | requests>=2.31 | -r requirements.txt, azure-core, cloud-sql-python-connector, google-api-core, google-auth, google-cloud-storage, msal |
| s3transfer | 0.19.2 | transitive | boto3 |
| scramp | 1.4.17 | transitive | pg8000 |
| six | 1.17.0 | transitive | python-dateutil |
| sniffio | 1.3.1 | transitive | anthropic |
| starlette | 1.6.0 | transitive | fastapi |
| typing-extensions | 4.16.0 | transitive | aiohttp, aiosignal, anthropic, anyio, azure-core, azure-identity, azure-keyvault-keys, azure-storage-blob, fastapi, grpcio, psycopg, pydantic, pydantic-core, starlette, typing-inspection |
| typing-inspection | 0.4.4 | transitive | fastapi, pydantic |
| urllib3 | 2.7.0 | transitive | botocore, requests |
| uvicorn | 0.52.3 | uvicorn>=0.29 | -r requirements.txt |
| uvloop | 0.22.1 | transitive | uvicorn |
| watchfiles | 1.2.0 | transitive | uvicorn |
| websockets | 17.0.1 | transitive | uvicorn |
| yarl | 1.24.5 | transitive | aiohttp |
History
Applies and recoveries of this row, from the update journal. On a deployment every apply and every recovery lands here as it completes.
No apply or recovery recorded for this row. The demo's journal holds one completed update, of Running image.
Acknowledge: keep as is until <date> because <reason> — on a deployment this line is a form, audited as system.component_acknowledged; the demo shows the words.