Policies
A policy is the operator's template for protection. It says when backups run, how long each is kept and which repository stores them. It can add a copy in a second repository, an instant tier, a recovery promise and a verification cadence. A project protects its servers, volumes and buckets with a plan that names a policy it is offered. Every backup the plan takes follows that policy. A policy is offered to every project (public) or only to the domains and projects it is assigned to (assigned).
📄️ List policies
A project sees the `active` and `deprecated` policies it may name, each described in a sentence. An operator sees every policy with its storage, assignments and plan count.
📄️ Create a policy
Sets when backups run, how long each is kept and where it is stored. It can also set the recovery and verification it promises. A `public` policy is offered to every project. An `assigned` one is offered only to the domains and projects in `assigned_to`.
📄️ Delete a policy
Only a policy with no plans can be deleted. Retire one that has plans instead.
📄️ Show a policy
Any reader of the project the token is scoped to.
📄️ Change a policy
A block the request does not mention is kept. An optional block is removed with its `clear_` flag. Changes apply to the backups taken from now on. With `apply_to_existing`, the existing backups that are not locked are re-dated too, and `applied` says how many changed. Moving an expiry earlier needs the `policy:shorten` permission.
📄️ Assign a policy
Offers the policy to more domains or projects or, with `remove`, withdraws it from them.
📄️ Deprecate a policy
No new plan may name it. Plans already under it keep running.
📄️ Retire a policy
Retires a policy with no plans, or moves every plan onto `successor` in one step. The successor must be another active policy, no weaker, and offered to every project whose plans move. Backups keep their dates through the move.