guard: the raw API passthrough keeps every limit #668

Closed
opened 2026-09-29 19:05:28 +00:00 by hexajon · 1 comment
Owner

ADR 0046 says that a passthrough call goes through the same guard as every other write, with the effects of its endpoint. A write to a path that is in no vendored spec is refused, because its effect is unknown. A GET passes.

Today madt_api_call and madtea api send any method to any path.

Scope:

  • The passthrough looks up the method and path in the vendored specs (docs/api-specs/) and takes the effects that #654 declares for that endpoint.
  • It calls the guard (#653) with those effects before it sends.
  • A write to a path that is in no vendored spec is refused. A GET passes.

Acceptance:

  • Against the live forge and a test repo, each of these is refused with the guard's refusal text: a label delete, a write to the default branch, and a content write to a populated repo outside the session's scope.
  • A GET passes, and a POST to a path in no vendored spec is refused.

Depends on #653, #654, and #660. Decision record: ADR 0046.

ADR 0046 says that a passthrough call goes through the same guard as every other write, with the effects of its endpoint. A write to a path that is in no vendored spec is refused, because its effect is unknown. A GET passes. Today `madt_api_call` and `madtea api` send any method to any path. Scope: - The passthrough looks up the method and path in the vendored specs (`docs/api-specs/`) and takes the effects that #654 declares for that endpoint. - It calls the guard (#653) with those effects before it sends. - A write to a path that is in no vendored spec is refused. A GET passes. Acceptance: - Against the live forge and a test repo, each of these is refused with the guard's refusal text: a label delete, a write to the default branch, and a content write to a populated repo outside the session's scope. - A GET passes, and a POST to a path in no vendored spec is refused. Depends on #653, #654, and #660. Decision record: ADR 0046.
Author
Owner

The v0.20.0 breaking set is complete and green on main. The code landed across the v0.20.0 branches, the full local gate passes, and the forge suite is green on both forges at both pinned versions on current main (31693766). Closing as done.

The v0.20.0 breaking set is complete and green on main. The code landed across the v0.20.0 branches, the full local gate passes, and the forge suite is green on both forges at both pinned versions on current main (31693766). Closing as done.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
sixfold-space/madtea#668
No description provided.