EXAMPLE / Execution

Stop a write before it runs

Trace a REST request through an approval gate and inspect the zero-handler-call denial assertion.

Test fixtureIntermediate
PATTERN EXPLORER

Follow the pattern. Inspect its limits.

Explore the source walkthrough, its evidence and the choices you would make in your own application.

SOURCE WALKTHROUGHRead the operation in its authored order
Choose a point to look closer
01 / Source walkthrough

Declare the boundary

The fixture defines a command with execution.effects set to write and external-side-effect, and execution.approval.required set to true.

An exploration of the inspected source; no example is executed here.

1 / 4

The situation.

A synthetic rest.approval.protected command has write and external-side-effect declarations. The fixture sends a request first without approval evidence, then with a receipt bound to the operation and input.

What you will learn

  • Declare effect and approval requirements on an operation.
  • Pass receipt evidence through the transport adapter rather than changing operation input.
  • Check that a denial happens before the handler runs.

See the boundary first.

The homepage illustration makes the approval sequence visible. It is separate from the source fixture described here.

Open the interactive illustration →

Follow the operation.

  1. 01

    Declare the boundary

    The fixture defines a command with execution.effects set to write and external-side-effect, and execution.approval.required set to true.

  2. 02

    Inspect the denied request

    The first test binds a handler with a call counter. Without a receipt, it expects HTTP 403, APPROVAL_REQUIRED with reason missing_receipt, and calls equal to zero.

  3. 03

    Inspect the approved request

    The second test provides a receipt through createFetchHandler's approvalReceipt option and an approval port with a controlled clock. The response is expected to be 200 with value ran.

  4. 04

    Apply the pattern to your side effect

    Replace the synthetic handler with your operation and trusted receipt source. Add tests for the exact subject, operation, input, expiry, and effect requirements your application uses.

What the source demonstrates.

  • The inspected denial test asserts that the handler is not invoked when a required receipt is missing.
  • The approved case adapts receipt evidence outside the operation input.
  • The fixture has an inspectable positive and negative request path.

What it does not establish.

  • A fresh successful execution in this review.
  • An end-to-end human approval UI or trusted production receipt issuer.
  • A real external write: the approved handler only returns a fixture value.

Bring it into your environment.

Use the exact source context and prerequisites below. A source walkthrough is not a verified public-package installation recipe.

  • Access to the inspected source repository and a checkout at the cited revision.
  • The repository's Bun workspace dependencies and required generated package exports. These instructions were inspected; the examples were not executed in this review.

Working directory: packages/platform/delivery/contracts-runtime-server-rest

PACKAGE-LOCAL COMMANDS
bun test src/rest-approval-enforcement.test.ts

The source assertions require a 403 denial before invocation and a 200 response for the controlled valid-receipt case.

Test source inspected; not executed here.

Read the related guide →

Make the pattern your own.

  • Use a trusted application boundary to resolve approval evidence.
  • Keep authorization and approval validation at execution time.
  • Preserve a negative test that measures whether the handler ran.
SOURCE CONTEXT

Inspect the evidence.

Reviewed 2026-10-27 · b67c376f

Pinned source links require repository access; publication and anonymous package availability were not checked for this example.

Declared maturity
experimental fixture metadata
Catalogue registration
Library test; not an example catalog entry
Inline preview
None
Execution in this review
Not rerun
Production qualification
Not assessed
Your view

Make room for your context.

Shape the presentation around this moment. You can change it whenever you need.

Your context

The different parts of you

Choose a starting point

A useful mix of context, visuals and gentle guidance.

Tune each dimension
Each dimension can change independently. Product permissions and available actions stay unchanged.

Support the way you begin and return

Tune your support

Reading comfort

Choose your language

Interface language changes text only. Markets, prices and workflows keep their own settings.

Translation coverage

Original source

Navigation151
Graph616
Categories378
Portfolio833
Examples2,035
Source preview1,542

More translations will be added as content is reviewed.

This preference is saved on this browser.

Search the website

Useful starting points

No results. Try a shorter phrase, an operation name or another search area.

A LITTLE ROOM TO EXPLORE

Find something to explore.

Open a closer look on this page, try a different perspective, or follow the detail into its own page.

How previews and controls work
01

Look before you leave

Hover a link or focus it with Tab to see a preview. Clicking the original link or pressing Enter always opens its destination.

02

Stay with the context

Move into the preview to explore its sections. Use Alt + ↓ from a focused link to enter it with the keyboard. Escape closes it.

03

Open the possibilities

Disclosure rows, perspective choices and highlighted controls reveal more. Your view changes reading comfort and the context you explore.

A separate button for a closer look

Show small preview buttons beside links where there is room. Tap the eye to inspect, or tap the link to go straight there. This choice stays in this tab.

No browsing history is collected. Reduced motion follows your device and Your view.