#281: pin handler authorization actions #286

Closed
agent wants to merge 0 commits from worker/fix-281-pin-handler-actions-4921ac-7 into main
Member

Fixes #281.

Uses source-text registration scrapes, following McpContractDocTest. The MCP test reads tool("fleet_…") calls. The REST test reads app.("…") calls. Both have denominator guards. GET /healthz is an explicit open liveness exception.

Property 1 mutation: changing fleet_poll target handling to READ failed FleetMcpAuthzTest with expected: <DRAIN> but was: <READ>.

Property 2 MCP mutation: I added a registered fleet_fake tool that called deny(..., READ, ...) directly. The test failed: fleet_fake is registered but has no pinned authorization action ==> Unexpected exception thrown: java.lang.IllegalArgumentException: unregistered tool: fleet_fake.

Property 2 REST mutation: I added GET /fake that called allow(..., READ, ...) directly. The test failed: GET /fake is registered but has no pinned authorization action ==> Unexpected exception thrown: java.lang.IllegalArgumentException: route has no authorization gate: GET /fake.

Check run: cd fleetd && mvn clean install — Tests run: 1285, Failures: 0, Errors: 0, Skipped: 0; BUILD SUCCESS.

Fixes #281. Uses source-text registration scrapes, following McpContractDocTest. The MCP test reads tool("fleet_…") calls. The REST test reads app.<verb>("…") calls. Both have denominator guards. GET /healthz is an explicit open liveness exception. Property 1 mutation: changing fleet_poll target handling to READ failed FleetMcpAuthzTest with `expected: <DRAIN> but was: <READ>`. Property 2 MCP mutation: I added a registered fleet_fake tool that called deny(..., READ, ...) directly. The test failed: `fleet_fake is registered but has no pinned authorization action ==> Unexpected exception thrown: java.lang.IllegalArgumentException: unregistered tool: fleet_fake`. Property 2 REST mutation: I added GET /fake that called allow(..., READ, ...) directly. The test failed: `GET /fake is registered but has no pinned authorization action ==> Unexpected exception thrown: java.lang.IllegalArgumentException: route has no authorization gate: GET /fake`. Check run: `cd fleetd && mvn clean install` — `Tests run: 1285, Failures: 0, Errors: 0, Skipped: 0`; `BUILD SUCCESS`.
agent added 1 commit 2026-09-04 05:42:01 +02:00
wip: pin handler authorization actions
CI / build (pull_request) Successful in 1m30s
CI / contract (pull_request) Successful in 2m27s
719b79f892
agent added 1 commit 2026-09-04 05:49:05 +02:00
#281: cover registered authorization actions
CI / contract (pull_request) Successful in 1m14s
CI / build (pull_request) Successful in 1m33s
30e21adec7
ltms closed this pull request 2026-09-04 05:53:07 +02:00
Some checks are pending
CI / contract (pull_request) Successful in 1m14s
CI / build (pull_request) Successful in 1m33s

Pull request closed

Sign in to join this conversation.