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>
1.5 KiB
1.5 KiB
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.
- Move each configuration to
/etc/tend/services/<service>.json. - Set
schema_versionto2. - Add
service.environment_filebelow/etc/tend/environment/. - 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 itslisten_envkey out of this shared file: set the live address in the installed unit and let Tend supply only the candidate address. - Set every service's
deployment.lock_fileto/run/lock/tend-deploy.lock. - Add one or more query-free HTTPS
deployment.public_smokechecks. - Update installed systemd units to read the same environment file as the transient candidate.
- Install a root-owned
0600receive policy mapping each service name to its exact configuration and artifact-size ceiling. - Run
tend check-serveras root before accepting a transfer. - 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.