Skip to content

fix: add EM-DELEGATE to enforcement mode docs#32

Merged
beonde merged 3 commits intomainfrom
fix/pdp-hardening
Mar 21, 2026
Merged

fix: add EM-DELEGATE to enforcement mode docs#32
beonde merged 3 commits intomainfrom
fix/pdp-hardening

Conversation

@beonde
Copy link
Member

@beonde beonde commented Mar 21, 2026

Summary

Adds missing EM-DELEGATE enforcement mode to the policy enforcement documentation.

Changes

  • Config reference table: Updated enforcement mode values from EM-OBSERVE, EM-GUARD, EM-STRICT to EM-OBSERVE, EM-GUARD, EM-DELEGATE, EM-STRICT.
  • Enforcement tightening guide: Added EM-DELEGATE step between EM-GUARD and EM-STRICT with description of its behavior (deny + best-effort obligations).

Context

EM-DELEGATE is a valid enforcement mode in capiscio-core (RFC-008 §10.5: EM-OBSERVE < EM-GUARD < EM-DELEGATE < EM-STRICT) but was omitted from the docs when the policy enforcement guide was created.

- Add EM-DELEGATE to config reference table (was missing from the list).
- Add EM-DELEGATE step in the enforcement tightening guide.

Closes PM hardening review item.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the policy enforcement setup guide to include the missing EM-DELEGATE enforcement mode so the documentation reflects the supported enforcement-mode ladder.

Changes:

  • Added an EM-DELEGATE step in the “External PDP → Tighten Enforcement” section.
  • Updated the configuration reference to include EM-DELEGATE as an allowed value for CAPISCIO_ENFORCEMENT_MODE.

export CAPISCIO_ENFORCEMENT_MODE=EM-DELEGATE
```

In EM-DELEGATE, DENY decisions block requests and obligations are attempted. Failed obligations are logged but do not block the request (best-effort obligation enforcement).
Copy link

Copilot AI Mar 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The EM-DELEGATE behavior description is internally contradictory: it says DENY blocks requests, but then says failed obligations “do not block the request”. Since DENY already blocks, this likely intends to describe how obligation failures affect ALLOW decisions (best-effort obligations) while still enforcing DENY. Please reword to explicitly state when obligations are executed and what happens on obligation failure in EM-DELEGATE.

Suggested change
In EM-DELEGATE, DENY decisions block requests and obligations are attempted. Failed obligations are logged but do not block the request (best-effort obligation enforcement).
In EM-DELEGATE, DENY decisions always block requests. For ALLOW decisions, all attached obligations are executed on a best-effort basis: failures are logged but do not change the ALLOW decision or block the request.

Copilot uses AI. Check for mistakes.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 7829743. Rewording now explicitly separates DENY blocking from ALLOW obligation handling.

Comment on lines +213 to 215
| `CAPISCIO_ENFORCEMENT_MODE` | `EM-OBSERVE` | One of: `EM-OBSERVE`, `EM-GUARD`, `EM-DELEGATE`, `EM-STRICT` |
| `CAPISCIO_WORKSPACE` | _(empty)_ | Workspace/tenant UUID (required for embedded PDP) |
| `CAPISCIO_BUNDLE_POLL_INTERVAL` | `30s` | Embedded PDP bundle rebuild interval |
Copy link

Copilot AI Mar 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The config reference now lists EM-DELEGATE, but the earlier “Embedded PDP → Step 3: Tighten Enforcement” snippet and the “Bundle Staleness” mode table still only mention EM-OBSERVE, EM-GUARD, and EM-STRICT. To avoid conflicting guidance within the same doc, update those earlier sections to include EM-DELEGATE (and document its staleness behavior if applicable).

Copilot uses AI. Check for mistakes.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 7829743. Added EM-DELEGATE row to the Bundle Staleness behavior table. The Step 3 section already has the EM-DELEGATE code block and explanation from the initial commit.

@github-actions
Copy link

✅ Documentation Build Successful

The documentation build completed successfully and passed validation checks.

  • ✅ Build completed without errors
  • ✅ Critical files present (index.html, sitemap.xml, robots.txt)
  • ✅ Link validation completed

This PR will deploy to dev-docs.capisc.io when merged to main.

- Clarify EM-DELEGATE: DENY always blocks, ALLOW obligations are best-effort
- Add EM-DELEGATE row to Bundle Staleness behavior table
@github-actions
Copy link

✅ Documentation Build Successful

The documentation build completed successfully and passed validation checks.

  • ✅ Build completed without errors
  • ✅ Critical files present (index.html, sitemap.xml, robots.txt)
  • ✅ Link validation completed

This PR will deploy to dev-docs.capisc.io when merged to main.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment on lines +164 to +171
For stricter obligation handling, use `EM-DELEGATE`:

```bash
export CAPISCIO_ENFORCEMENT_MODE=EM-DELEGATE
```

In EM-DELEGATE, DENY decisions always block requests. For ALLOW decisions, all attached obligations are executed on a best-effort basis: failures are logged but do not change the ALLOW decision or block the request.

Copy link

Copilot AI Mar 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Embedded PDP “Step 3: Tighten Enforcement” code block earlier in this document still lists only EM-OBSERVE, EM-GUARD, and EM-STRICT (no EM-DELEGATE). Since this PR adds EM-DELEGATE to the mode progression, please update that earlier Embedded PDP snippet as well to avoid conflicting guidance within the same doc.

Suggested change
For stricter obligation handling, use `EM-DELEGATE`:
```bash
export CAPISCIO_ENFORCEMENT_MODE=EM-DELEGATE
```
In EM-DELEGATE, DENY decisions always block requests. For ALLOW decisions, all attached obligations are executed on a best-effort basis: failures are logged but do not change the ALLOW decision or block the request.

Copilot uses AI. Check for mistakes.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0c2d1f4. Added EM-DELEGATE to the Embedded PDP Step 3 code block, positioned between EM-GUARD and EM-STRICT in the enforcement mode progression.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@github-actions
Copy link

✅ Documentation Build Successful

The documentation build completed successfully and passed validation checks.

  • ✅ Build completed without errors
  • ✅ Critical files present (index.html, sitemap.xml, robots.txt)
  • ✅ Link validation completed

This PR will deploy to dev-docs.capisc.io when merged to main.

@beonde beonde merged commit 05e55fc into main Mar 21, 2026
8 checks passed
@beonde beonde deleted the fix/pdp-hardening branch March 21, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants