MechaCat02
27bda66be6
test(services): pin that the per-value byte caps reject before authz
...
CLAUDE.md calls the KV/docs/pubsub/queue value-size caps an anti-DoS rail:
oversized payloads are rejected "before authz so anonymous public scripts can't
DoS Postgres." Only queue had a test, and it used an allow-all authz + anon cx —
which catches a DROPPED cap but not a REORDERED one, because an anon cx passes
script_gate regardless.
Each service now has an ordering-proof test: a DENYING authz repo + an
AUTHENTICATED member cx, so a size-check-first service returns *TooLarge while an
authz-first one would return Forbidden. Each pairs it with an under-cap control
through the same denied cx (returns Forbidden) to prove the cx really is denied,
so the *TooLarge case genuinely bypassed authz. Queue's pre-existing test is
upgraded to the same shape (+ a shared member_cx helper).
Mutation-verified: moving the KV size check after authz flips its result to
Forbidden and the test fails.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-15 19:38:51 +02:00
..
2026-06-01 21:46:45 +02:00
2026-07-11 23:47:35 +02:00
2026-05-27 19:27:52 +02:00
2026-06-12 18:12:54 +02:00
2026-05-26 22:21:37 +02:00
2026-07-11 23:47:35 +02:00
2026-06-25 20:10:20 +02:00
2026-07-01 19:32:20 +02:00
2026-05-25 21:03:05 +02:00
2026-05-27 22:00:04 +02:00
2026-06-24 19:59:00 +02:00
2026-06-24 19:59:00 +02:00
2026-06-12 17:15:09 +02:00
2026-06-06 12:10:32 +02:00
2026-06-06 18:03:51 +02:00
2026-06-07 20:50:25 +02:00
2026-06-07 20:09:31 +02:00
2026-06-05 23:17:24 +02:00
2026-06-06 12:04:09 +02:00
2026-07-11 23:47:35 +02:00
2026-07-13 20:44:50 +02:00
2026-07-11 23:47:47 +02:00
2026-07-14 21:11:49 +02:00
2026-07-11 23:47:35 +02:00
2026-05-27 19:27:52 +02:00
2026-07-11 23:47:35 +02:00
2026-06-05 23:15:47 +02:00
2026-07-13 19:46:22 +02:00
2026-06-24 22:00:32 +02:00
2026-06-26 07:07:04 +02:00
2026-07-01 21:34:14 +02:00
2026-06-01 21:46:45 +02:00
2026-06-01 22:17:25 +02:00
2026-06-09 18:34:42 +02:00
2026-06-13 15:01:04 +02:00
2026-07-14 20:38:29 +02:00
2026-06-02 19:55:14 +02:00
2026-07-14 20:32:32 +02:00
2026-07-15 19:38:51 +02:00
2026-07-11 14:58:35 +02:00
2026-06-24 19:06:52 +02:00
2026-06-29 20:31:14 +02:00
2026-07-11 23:47:35 +02:00
2026-07-14 21:11:49 +02:00
2026-07-14 20:32:32 +02:00
2026-06-30 20:04:09 +02:00
2026-06-06 15:02:21 +02:00
2026-07-11 23:47:35 +02:00
2026-07-14 20:09:03 +02:00
2026-07-11 14:41:04 +02:00
2026-07-14 19:45:26 +02:00
2026-07-14 21:12:01 +02:00
2026-07-14 20:09:03 +02:00
2026-07-14 21:12:01 +02:00
2026-07-14 19:37:11 +02:00
2026-07-14 21:12:01 +02:00
2026-06-24 19:59:00 +02:00
2026-07-15 07:27:53 +02:00
2026-07-13 22:05:32 +02:00
2026-07-15 07:27:53 +02:00
2026-07-07 20:23:10 +02:00
2026-06-29 19:32:34 +02:00
2026-07-11 23:47:47 +02:00
2026-06-10 21:03:10 +02:00
2026-07-13 21:20:20 +02:00
2026-07-13 21:20:20 +02:00
2026-07-14 20:38:29 +02:00
2026-06-13 15:01:04 +02:00
2026-07-14 21:11:49 +02:00
2026-07-15 19:38:51 +02:00
2026-07-14 20:32:32 +02:00
2026-06-13 15:01:04 +02:00
2026-06-11 20:42:51 +02:00
2026-07-13 22:31:42 +02:00
2026-05-23 00:31:08 +02:00
2026-06-29 20:07:59 +02:00
2026-07-14 19:20:41 +02:00
2026-07-14 21:12:01 +02:00
2026-06-01 22:01:42 +02:00
2026-07-11 23:47:35 +02:00
2026-07-06 21:26:10 +02:00
2026-07-02 21:48:59 +02:00
2026-07-15 19:38:51 +02:00
2026-07-13 22:05:32 +02:00
2026-07-15 19:38:51 +02:00
2026-06-09 20:03:10 +02:00
2026-07-14 20:32:32 +02:00
2026-07-11 15:33:39 +02:00
2026-06-25 21:11:59 +02:00
2026-07-13 22:17:01 +02:00
2026-07-13 22:17:01 +02:00
2026-05-23 16:26:12 +02:00
2026-05-22 23:16:32 +02:00
2026-06-24 22:00:32 +02:00
2026-06-24 22:13:00 +02:00
2026-07-11 14:58:35 +02:00
2026-06-03 20:23:18 +02:00
2026-07-01 20:04:32 +02:00
2026-06-06 15:00:47 +02:00
2026-06-24 19:59:00 +02:00
2026-07-14 20:38:29 +02:00
2026-07-14 19:20:41 +02:00
2026-07-11 14:58:35 +02:00
2026-06-07 20:50:25 +02:00
2026-07-14 20:47:58 +02:00
2026-06-24 21:11:46 +02:00
2026-06-24 21:11:46 +02:00
2026-06-24 20:59:23 +02:00
2026-07-12 18:56:44 +02:00
2026-07-12 17:30:16 +02:00
2026-07-12 18:56:44 +02:00
2026-07-12 17:48:38 +02:00
2026-07-12 16:46:32 +02:00
2026-07-12 18:56:44 +02:00