Publish the reviewed allowlisted snapshot whose exact binary completed maintenance deployment, rollback, and reactivation exercises for Gamertan and Sandwich Hime. Private-Source-Commit: 4d7094c8b7c61991bfb67b11fc1558724c874eb2 Private-Source-Tree: 54a2f74804f7acddf3755d7d4da5b97f5fc28381 AI-Assistance: OpenAI Codex assisted implementation, testing, security review, and release verification. Signed-off-by: Cole Speelman <crspeelman@gmail.com>
29 lines
1.5 KiB
Markdown
29 lines
1.5 KiB
Markdown
# Schema 1 to schema 2
|
|
|
|
Schema 2 is intentionally not loaded as schema 1. Keep the installed v0.1 Tend
|
|
binary available until the first schema-2 activation and rollback have both
|
|
been exercised.
|
|
|
|
1. Move each configuration to `/etc/tend/services/<service>.json`.
|
|
2. Set `schema_version` to `2`.
|
|
3. Add `service.environment_file` below `/etc/tend/environment/`.
|
|
4. Create that file as a regular root-owned file with mode `0600`. Move secret
|
|
values out of JSON. Do not put the environment file in Git. For a singleton,
|
|
keep its `listen_env` key out of this shared file: set the live address in
|
|
the installed unit and let Tend supply only the candidate address.
|
|
5. Set every service's `deployment.lock_file` to
|
|
`/run/lock/tend-deploy.lock`.
|
|
6. Add one or more query-free HTTPS `deployment.public_smoke` checks.
|
|
7. Update installed systemd units to read the same environment file as the
|
|
transient candidate.
|
|
8. Install a root-owned `0600` receive policy mapping each service name to its
|
|
exact configuration and artifact-size ceiling.
|
|
9. Run `tend check-server` as root before accepting a transfer.
|
|
10. Validate, activate, rollback, and reactivate one service at a time. Confirm
|
|
unrelated services never restart.
|
|
|
|
Tend does not discover `.env`, infer old values, rewrite a production file, or
|
|
silently migrate state. For local development, copy a committed `.env.example`
|
|
to an ignored `.env.local`, restrict its mode, and load it with the application's
|
|
own tooling. Tend never loads local dotenv files implicitly.
|