railiance-platform/requirements/README.md
codex a8fc1a3438
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Prepare immutable application archive transfer and retention admission
Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a11538-05ea-7b63-b3c7-a2df5f38898d
2026-10-07 23:23:33 +02:00

27 lines
1.4 KiB
Markdown

# Primary application archive runtime
Use a dedicated platform-managed backup virtual environment. The app image does
not need boto3. backup-primary.in pins the boto3/botocore pair needed for conditional
multipart completion; backup-primary.lock also freezes all transitive dependencies
and accepted package hashes. Reviewed pair: boto3 1.40.18 / botocore 1.40.76.
After admission, prepare the runtime before a capture window:
```bash
uv venv /opt/railiance-platform/backup-venv
uv pip sync --python /opt/railiance-platform/backup-venv/bin/python \
--require-hashes requirements/backup-primary.lock
```
These are installation instructions, not an instruction to alter a running
workload or enable a schedule. Do not resolve dependencies during a scheduled
backup. Node/tool/actor admission remains RPF-WP-0053. Deploy these requirements
with the reviewed scripts and record installed hashes. Credentials are delivered
separately by the owner; no values belong in this directory.
An offline check with synthetic environment fields on 2026-10-07 proved the exact
installed botocore model exposes CompleteMultipartUpload.IfNoneMatch, without
provider contact. A presence check does not prove actual custody or provider
permissions. Requirements were compiled in /tmp; the comments preserve that
command's provenance. Regenerate from this repository's requirements/*.in with
uv pip compile --generate-hashes and review the new lock before installation.