Veefore docs

3. Turn on ENFORCE

The promotion itself — preflight, replay, confirmation, step-up — and how to make the first one small enough to be boring.

ENFORCE is the mode Veefore exists for. Full pipeline, real refusals, real execution for what is permitted, approvals created where policy asks for them.

If you did OBSERVE and SIMULATE properly, this step should be uneventful. That is the goal — a promotion that feels like a formality means the work happened earlier.

#Promote

bash
veefore deploy --mode ENFORCE --reason "Refund policy reviewed in CHG-4411"

Four things happen, in order.

1. Preflight. Checks for agents with no policy coverage, dangerous tools permitted only by a default decision, expired trust evidence, credentials overdue for rotation, and failing policy test cases. Any of these stops the deployment.

2. Replay. Re-evaluates your recent observed traffic in ENFORCE and shows you precisely which calls start being refused — before anything changes. Read this list. "Enabling enforcement will refuse 14 of your last 400 actions, and here they are" is a decision you can make; a surprise at 3am is not.

3. Confirmation. The blast radius, then a prompt.

4. Step-up authentication. environment:set_mode requires it. --yes skips the confirmation prompt; it never skips step-up.

#Make the first one small

The thing SIMULATE genuinely cannot tell you is whether execution works — the credential material, the destination resolution, the downstream's response to your payload. All of that is exercised for the first time on your first real ENFORCE execution.

So shrink the surface:

Promote staging first

Staging in ENFORCE exercises real execution against real tools with real credentials. Surprises happen there, which is what staging is for.

In production, promote one environment, not all of them

If you have several production environments, do one. Watch it for a day.

Keep the pause control one command away

bash
# Stop all protected execution in the environment. Immediate.
curl -X POST https://veefore.example.com/v1/environments/env_01ABC/pause \
  -H "Authorization: Bearer $VEEFORE_API_KEY" \
  -H 'content-type: application/json' \
  -d '{ "reason": "Unexpected refusal volume after enforcement enabled" }'

Pause. Do not drop the mode.

If something goes wrong, the instinct is to put the environment back in OBSERVE. That is the worst option available: it stops refusing anything while leaving everything running, so a misbehaving agent gets a free pass at exactly the wrong moment.

Pause the environment, or pause the specific agent. Then diagnose.

#The first hour

Watch four things.

Refusal rate. Should match what replay predicted. Materially higher means the replay window was not representative — look at what is being refused that replay did not cover.

The approval queue. Should be being worked. Approvals timing out at APPROVAL_EXPIRED means nobody is watching, and the fix is a person, not a config change.

Agent error handling. Your agents are now receiving 403s in production for the first time. Check their logs for crashes and for retry loops against refusals.

Downstream failures. EXECUTION_FAILED and EXECUTION_TIMEOUT are not Veefore refusing — they mea Veefore permitted the action and the downstream rejected or timed out. The most common cause on a first deployment is credential material stored under a key the broker does not read for that credential type; see Broker a credential.

#What is now true that was not before

  • A policy refusal stops the action. It does not execute.
  • REQUIRE_APPROVAL creates a real approval and the action waits on a human.
  • Credentials are brokered only for permitted actions.
  • Reducing enforcement requires a reason, step-up, and writes a CRITICAL audit event.
  • A dependency outage refuses protected actions rather than allowing them. See Fail closed.

That last one is worth stating plainly: if policy evaluation becomes unavailable, protected actions get POLICY_SERVICE_UNAVAILABLE and stop. Your agents will be refused during a Veefore outage. That is the design, it is tested in the chaos suite, and the alternative — allowing everything while the authorization system is down — is not something a security product gets to do.

#Going backwards

Allowed, and never quiet. Reducing enforcement needs environment:set_mode, a recorded reason, step-up authentication, and writes a CRITICAL audit event that the Security Center surfaces.

If you need to roll back a policy rather than the mode, do that instead — it is narrower:

bash
veefore policies deploy pol_01ABC --version 3 --reason "Rolling back CHG-4411"

Rollback creates a new version with the old content, so the history stays linear. See Policy rollback.

#Next

Identity, authority, policy and enforcement for autonomous AI agents.