Documentation
¶
Overview ¶
Package operator is the repair CLIs' audited path (single-owner M4-4). A mutating run as the repair role opens an operator action (a row in operator_actions, with a role label and a reason, never a name), connects with that action's id as the session setting rivolt.operator_action, and closes the action with its outcome. The database trigger (migration 0108) refuses every write by the repair role that does not carry an open action, so a run that skipped this fails at its first write instead of leaving no trace.
The environment decides the path:
RIVOLT_REPAIR_DATABASE_URL the repair role's DSN. Set: the audited path. Unset: the legacy path (DATABASE_URL, no audit row) with a warning,
unless RIVOLT_REPAIR_REQUIRE_ROLE=1, which refuses it.
RIVOLT_OPERATOR_ROLE lead or owner (the audit row's label); required on the audited path when mutating
RIVOLT_REPAIR_REASON why this run (at most 300 characters); required on the audited path when mutating
RIVOLT_APPROVED_DIGEST the sha256 of the approved dry run (64 hex), unless the CLI passes its own --expect-sha; required when mutating
A dry run needs no audit row (it reads), and uses the repair role's DSN when one is set.
Index ¶
Constants ¶
const ( EnvDSN = "RIVOLT_REPAIR_DATABASE_URL" EnvRole = "RIVOLT_OPERATOR_ROLE" EnvReason = "RIVOLT_REPAIR_REASON" EnvDigest = "RIVOLT_APPROVED_DIGEST" EnvRequireRole = "RIVOLT_REPAIR_REQUIRE_ROLE" )
Environment variable names.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Run ¶
Run is an open repair run. Done closes the audit row (a no-op on the legacy path and on a dry run).
func Open ¶
func Open(ctx context.Context, tool string, mutate bool, digest string, getenv func(string) string, legacyDSN string, warn io.Writer) (*Run, error)
Open returns the pool a repair CLI works on. mutate is true for --apply (and a restore's --apply). digest is the approved dry run's sha256 (the CLI's --expect-sha); empty falls back to RIVOLT_APPROVED_DIGEST. legacyDSN is the DSN of today's path. warn receives the legacy-path warning (the CLI's stderr).