| rule | cell (op | identity | target | variant) | detail |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo row owned by inactive |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo row owned by inactive |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo_category row owned by inactive |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo_category row owned by inactive |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo row owned by superuser |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo row owned by superuser |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo_category row owned by superuser |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo_category row owned by superuser |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo row owned by user_b |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo row owned by user_b |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo row owned by user_b |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo_category row owned by user_b |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo_category row owned by user_b |
| I3 write-isolation | DELETE /todos | user_a | - | base | user_a deleted a todo_category row owned by user_b |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by inactive |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by inactive |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by inactive |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by inactive |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by superuser |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by superuser |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by superuser |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by superuser |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by user_a |
| I3 write-isolation | DELETE /todos | user_b | - | base | user_b deleted a todo_category row owned by user_a |
PASS = no invariant violation in any probe of that pair; FAIL = at least one new violation; CHANGED = widened vs base without a violation. Letters: A=ALLOW D=DENY I=INCONCLUSIVE probe counts. Expand a cell for per-probe evidence (status, leaked canary owners, DB row changes with owner attribution); request/response bodies are not stored in the lock, and tokens/passwords are redacted.
| operation | alg_none | anonymous | deleted_user | expired | forged_sig | inactive | superuser | user_a | user_b |
DELETE /categories/{category_id} | PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS A1 D4| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | superuser | base | ALLOW 204 | - | delete:category:self, delete:todo_category:self, delete:todo_category:self | None | | | user_a | base | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | |
| PASS A1 D4| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | user_a | base | ALLOW 204 | - | delete:category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self | None | | | user_b | base | DENY 403 | - | - | None | |
| PASS A1 D4| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_b | base | ALLOW 204 | - | delete:category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self | None | |
|
DELETE /todos | PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 204 | - | delete:todo:inactive, delete:todo:inactive, delete:todo:self, delete:todo:self, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_b, delete:todo:user_b, delete:todo:user_b, delete:todo_category:inactive, delete:todo_category:inactive, delete:todo_category:self, delete:todo_category:self, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_b, delete:todo_category:user_b, delete:todo_category:user_b | None | |
| FAIL A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 204 | - | delete:todo:inactive, delete:todo:inactive, delete:todo:self, delete:todo:self, delete:todo:self, delete:todo:self, delete:todo:self, delete:todo:self, delete:todo:self, delete:todo:superuser, delete:todo:superuser, delete:todo:user_b, delete:todo:user_b, delete:todo:user_b, delete:todo_category:inactive, delete:todo_category:inactive, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:superuser, delete:todo_category:superuser, delete:todo_category:user_b, delete:todo_category:user_b, delete:todo_category:user_b | None | ⚠ I3 write-isolation: user_a deleted a todo row owned by inactive; I3 write-isolation: user_a deleted a todo row owned by inactive; I3 write-isolation: user_a deleted a todo_category row owned by inactive; I3 write-isolation: user_a deleted a todo_category row owned by inactive; I3 write-isolation: user_a deleted a todo row owned by superuser; I3 write-isolation: user_a deleted a todo row owned by superuser; I3 write-isolation: user_a deleted a todo_category row owned by superuser; I3 write-isolation: user_a deleted a todo_category row owned by superuser; I3 write-isolation: user_a deleted a todo row owned by user_b; I3 write-isolation: user_a deleted a todo row owned by user_b; I3 write-isolation: user_a deleted a todo row owned by user_b; I3 write-isolation: user_a deleted a todo_category row owned by user_b; I3 write-isolation: user_a deleted a todo_category row owned by user_b; I3 write-isolation: user_a deleted a todo_category row owned by user_b |
| FAIL A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 204 | - | delete:todo:inactive, delete:todo:inactive, delete:todo:self, delete:todo:self, delete:todo:self, delete:todo:superuser, delete:todo:superuser, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo:user_a, delete:todo_category:inactive, delete:todo_category:inactive, delete:todo_category:self, delete:todo_category:self, delete:todo_category:self, delete:todo_category:superuser, delete:todo_category:superuser, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a, delete:todo_category:user_a | None | ⚠ I3 write-isolation: user_b deleted a todo row owned by inactive; I3 write-isolation: user_b deleted a todo row owned by inactive; I3 write-isolation: user_b deleted a todo_category row owned by inactive; I3 write-isolation: user_b deleted a todo_category row owned by inactive; I3 write-isolation: user_b deleted a todo row owned by superuser; I3 write-isolation: user_b deleted a todo row owned by superuser; I3 write-isolation: user_b deleted a todo_category row owned by superuser; I3 write-isolation: user_b deleted a todo_category row owned by superuser; I3 write-isolation: user_b deleted a todo row owned by user_a; I3 write-isolation: user_b deleted a todo row owned by user_a; I3 write-isolation: user_b deleted a todo row owned by user_a; I3 write-isolation: user_b deleted a todo row owned by user_a; I3 write-isolation: user_b deleted a todo row owned by user_a; I3 write-isolation: user_b deleted a todo row owned by user_a; I3 write-isolation: user_b deleted a todo row owned by user_a; I3 write-isolation: user_b deleted a todo_category row owned by user_a; I3 write-isolation: user_b deleted a todo_category row owned by user_a; I3 write-isolation: user_b deleted a todo_category row owned by user_a; I3 write-isolation: user_b deleted a todo_category row owned by user_a; I3 write-isolation: user_b deleted a todo_category row owned by user_a; I3 write-isolation: user_b deleted a todo_category row owned by user_a; I3 write-isolation: user_b deleted a todo_category row owned by user_a |
|
DELETE /todos/{todo_id} | PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS A1 D4| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | superuser | base | ALLOW 204 | - | delete:todo:self, delete:todo_category:self | None | | | user_a | base | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | |
| PASS A1 D4| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | user_a | base | ALLOW 204 | - | delete:todo:self, delete:todo_category:self | None | | | user_b | base | DENY 403 | - | - | None | |
| PASS A1 D4| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_b | base | ALLOW 204 | - | delete:todo:self, delete:todo_category:self | None | |
|
DELETE /users/{id} | PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D2 I3| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | superuser | base | INCONCLUSIVE 500 | - | - | None | | | user_a | base | INCONCLUSIVE 500 | - | - | None | | | user_b | base | INCONCLUSIVE 500 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 403 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 403 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | |
|
GET /categories | PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
|
GET /priorities | PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | - | - | None | |
|
GET /todos | PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
|
GET /users/me | PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | - | None | |
|
GET /users/{id} | PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | |
| PASS A3 D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | superuser | base | ALLOW 200 | self | - | None | | | user_a | base | ALLOW 200 | user_a | - | None | | | user_b | base | ALLOW 200 | user_b | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 403 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | |
| PASS D5| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 403 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | |
|
PATCH /users/me | PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | update:user:self | None | | | - | hostile | ALLOW 200 | self | update:user:self | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | update:user:self | None | | | - | hostile | ALLOW 200 | self | update:user:self | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | self | update:user:self | None | | | - | hostile | ALLOW 200 | self | update:user:self | None | |
|
PATCH /users/{id} | PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS A6 D4| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | nonexistent | hostile | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | shared | hostile | DENY 404 | - | - | None | | | superuser | base | ALLOW 200 | self | update:user:self | None | | | superuser | hostile | ALLOW 200 | self | update:user:self | None | | | user_a | base | ALLOW 200 | user_a | update:user:user_a | None | | | user_a | hostile | ALLOW 200 | user_a | update:user:user_a[priv:is_superuser] | None | | | user_b | base | ALLOW 200 | user_b | update:user:user_b | None | | | user_b | hostile | ALLOW 200 | user_b | update:user:user_b[priv:is_superuser] | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 403 | - | - | None | | | nonexistent | hostile | DENY 403 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | shared | hostile | DENY 403 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | superuser | hostile | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_a | hostile | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | | | user_b | hostile | DENY 403 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 403 | - | - | None | | | nonexistent | hostile | DENY 403 | - | - | None | | | shared | base | DENY 403 | - | - | None | | | shared | hostile | DENY 403 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | superuser | hostile | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_a | hostile | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | | | user_b | hostile | DENY 403 | - | - | None | |
|
POST /auth/forgot-password | PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
|
POST /auth/login | PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
| PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
| PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
| PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
| PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
| PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
| PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
| PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
| PASS A3 D7| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | valid_creds | DENY 400 | - | - | None | | | nonexistent | wrong_password | DENY 400 | - | - | None | | | shared | valid_creds | DENY 400 | - | - | None | | | shared | wrong_password | DENY 400 | - | - | None | | | superuser | valid_creds | ALLOW 200 | - | - | None | | | superuser | wrong_password | DENY 400 | - | - | None | | | user_a | valid_creds | ALLOW 200 | - | - | None | | | user_a | wrong_password | DENY 400 | - | - | None | | | user_b | valid_creds | ALLOW 200 | - | - | None | | | user_b | wrong_password | DENY 400 | - | - | None | |
|
POST /auth/logout | PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS D1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | - | - | None | |
| PASS A1| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 200 | - | - | None | |
|
POST /auth/register | PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:user:new | None | | | - | hostile | ALLOW 201 | - | insert:user:new | None | |
|
POST /auth/request-verify-token | PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 202 | - | - | None | | | - | hostile | ALLOW 202 | - | - | None | |
|
POST /auth/reset-password | PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
|
POST /auth/verify | PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 400 | - | - | None | | | - | hostile | DENY 400 | - | - | None | |
|
POST /categories | PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:category:self | None | | | - | hostile | ALLOW 201 | - | insert:category:self | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:category:self | None | | | - | hostile | ALLOW 201 | - | insert:category:self | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:category:self | None | | | - | hostile | ALLOW 201 | - | insert:category:self | None | |
|
POST /todos | PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS D2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | DENY 401 | - | - | None | | | - | hostile | DENY 401 | - | - | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:todo:self | None | | | - | hostile | ALLOW 201 | - | insert:todo:self | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:todo:self | None | | | - | hostile | ALLOW 201 | - | insert:todo:self | None | |
| PASS A2| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| - | base | ALLOW 201 | - | insert:todo:self | None | | | - | hostile | ALLOW 201 | - | insert:todo:self | None | |
|
PUT /todos/{todo_id} | PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS D10| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 401 | - | - | None | | | nonexistent | hostile | DENY 401 | - | - | None | | | shared | base | DENY 401 | - | - | None | | | shared | hostile | DENY 401 | - | - | None | | | superuser | base | DENY 401 | - | - | None | | | superuser | hostile | DENY 401 | - | - | None | | | user_a | base | DENY 401 | - | - | None | | | user_a | hostile | DENY 401 | - | - | None | | | user_b | base | DENY 401 | - | - | None | | | user_b | hostile | DENY 401 | - | - | None | |
| PASS A2 D8| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | nonexistent | hostile | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | shared | hostile | DENY 404 | - | - | None | | | superuser | base | ALLOW 200 | - | delete:todo_category:self, update:todo:self | None | | | superuser | hostile | ALLOW 200 | - | delete:todo_category:self, update:todo:self | None | | | user_a | base | DENY 403 | - | - | None | | | user_a | hostile | DENY 403 | - | - | None | | | user_b | base | DENY 403 | - | - | None | | | user_b | hostile | DENY 403 | - | - | None | |
| PASS A2 D8| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | nonexistent | hostile | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | shared | hostile | DENY 404 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | superuser | hostile | DENY 403 | - | - | None | | | user_a | base | ALLOW 200 | - | delete:todo_category:self, update:todo:self | None | | | user_a | hostile | ALLOW 200 | - | delete:todo_category:self, update:todo:self | None | | | user_b | base | DENY 403 | - | - | None | | | user_b | hostile | DENY 403 | - | - | None | |
| PASS A2 D8| target | variant | decision | leaked canaries | DB changes | count | violation |
|---|
| nonexistent | base | DENY 404 | - | - | None | | | nonexistent | hostile | DENY 404 | - | - | None | | | shared | base | DENY 404 | - | - | None | | | shared | hostile | DENY 404 | - | - | None | | | superuser | base | DENY 403 | - | - | None | | | superuser | hostile | DENY 403 | - | - | None | | | user_a | base | DENY 403 | - | - | None | | | user_a | hostile | DENY 403 | - | - | None | | | user_b | base | ALLOW 200 | - | delete:todo_category:self, update:todo:self | None | | | user_b | hostile | ALLOW 200 | - | delete:todo_category:self, update:todo:self | None | |
|
Generated by report.py from the lockfile; the verdict is computed by authzlock.diff (deterministic, no LLM).