- Where is policy actually enforced?
- At the runtime on the managed server being changed — not in the central management layer, not in an Application, and not in a browser. A runtime answers "is this allowed under the policy I currently have installed" without calling anywhere, so an outage of central management removes no controls. A centrally published policy change reaches a runtime when it next syncs.
- Does permission in an Application let me run an operation?
- It lets you ask. Application permissions decide who may inspect resources and request operations through that purpose. The request is then relayed to the runtime that owns the resource, which governs it from scratch exactly as it would a direct request — and can refuse what the Application allowed. Nothing about an Application reaches the runtime’s policy decision.
- What happens when an approval is granted?
- The held operation continues. A request that needs approval returns without running anything; when an authorized approver approves it, the runtime re-derives its governance inputs and executes that operation. There is no separate "approved, now go and run it" step, and no approved-but-not-executed state to redeem later. An approver must be named by a runtime policy rule and cannot be the requester.
- How does resh decide whether an operation actually succeeded?
- By looking. After the operation runs, resh takes a separate observation of the resource and checks it against a post-condition the provider declared for that operation — starting a service is confirmed by reading its status, not by the start command returning. A provider return value, an exit code, and an HTTP 200 are execution results and never produce a verified outcome on their own. An operation that declares no way to be observed is reported as unsupported for verification, never as verified. Independent here means independent of the execution report: the read is a second request through the same provider, on the same runtime and host, taken once shortly after the operation. It is not a check by an outside party, and nothing is cryptographically signed.
- Can the scope of a change grow after it has been approved?
- Not silently. An approval is bound to exactly what was requested — the resource, the operation, and its arguments. Change any of it and the existing approval becomes unusable rather than broader.
- Does resh undo a change that goes wrong?
- No, and that is deliberate. resh performs no rollback, no retry, and no continue-on-error, because an undo it cannot actually guarantee is worse than an honest stop. A change that fails or does not verify is reported as exactly that, and it stops there.
- Does resh detect drift, and does it correct it?
- An operator can declare the intended state of a service, a file, or a container, and the runtime reports whether what it observes matches. Detecting drift changes nothing. A correction is a separate, explicit request for one operation on one resource, and it is governed like any other request: the same policy evaluation, the same approval where policy holds it, and the same evidence — approving a remediation does not pre-approve the change underneath it. Afterwards resh checks for drift again against a fresh observation and reports a resource that is still drifted as exactly that. Checks are invoked rather than run on a timer, nothing converges continuously, and none of this is part of the design-partner evaluation scenarios.
- What does resh need in order to govern a system?
- A provider: a bounded adapter that declares the typed operations a kind of resource supports, the risk of each, and how each can be observed afterwards. Providers in this release cover infrastructure resources on Linux — services (svc://), containers (container://), configuration (config://), files, and others — and every provider reports its own stability as experimental. A system with no provider is outside the boundary; resh does not fall back to running arbitrary commands against it.