|
51 | 51 | "evidence": "PATCH response + admin re-read" |
52 | 52 | }, |
53 | 53 | { |
54 | | - "clause": "admin (platform posture) reads the full set — the entitled side of the same gate (both sides, RUNNER rule 4 / ADR-0057 D10)", |
| 54 | + "clause": "admin (platform posture) reads the full set — the entitled side of the same gate (both sides, RUNNER rule 4 / ADR-0124 D5)", |
55 | 55 | "oracle": "api", |
56 | 56 | "verify": "admin GET list contains every id created in this run", |
57 | 57 | "evidence": "admin listing" |
|
83 | 83 | }, |
84 | 84 | "source": [ |
85 | 85 | "packages/verify/src/rls.ts", |
86 | | - "ADR-0057 D10", |
| 86 | + "ADR-0124 D1", |
87 | 87 | "packages/qa/dogfood/test/showcase-private-owd.dogfood.test.ts", |
88 | 88 | "authz-conformance.matrix.ts rows rls-read / rls-by-id-write", |
89 | 89 | "#7637 (run record) — the by-id spot-check on a skipped object is where the private D11 defect surfaced", |
|
335 | 335 | "evidence": "screenshot + disabled-state DOM read" |
336 | 336 | }, |
337 | 337 | { |
338 | | - "clause": "the SERVER refuses the same write: direct PUT /api/v1/meta/object/<name> on the read-only package answers 4xx with a ledgered metadata-protocol code (WRITABLE_PACKAGE_REQUIRED, or ITEM_LOCKED for _lock'd items) — UI absence never suffices (ADR-0057 D10)", |
| 338 | + "clause": "the SERVER refuses the same write: direct PUT /api/v1/meta/object/<name> on the read-only package answers 4xx with a ledgered metadata-protocol code (WRITABLE_PACKAGE_REQUIRED, or ITEM_LOCKED for _lock'd items) — UI absence never suffices (ADR-0124 D1)", |
339 | 339 | "oracle": "api", |
340 | 340 | "verify": "PUT response status >=400 and error.code ∈ {WRITABLE_PACKAGE_REQUIRED, ITEM_LOCKED} (packages/spec/src/api/error-code-ledger.zod.ts, @objectstack/metadata-protocol entry)", |
341 | 341 | "evidence": "PUT trace" |
|
421 | 421 | "evidence": "the verdict matrix + spot re-reads" |
422 | 422 | }, |
423 | 423 | { |
424 | | - "clause": "every withheld cell is DENIED SERVER-SIDE with the ledgered code: verbs marked false answer 403 with error.code PERMISSION_DENIED (rest-server maps explicit security denials to 403 PERMISSION_DENIED) — UI absence never counts (ADR-0057 D10)", |
| 424 | + "clause": "every withheld cell is DENIED SERVER-SIDE with the ledgered code: verbs marked false answer 403 with error.code PERMISSION_DENIED (rest-server maps explicit security denials to 403 PERMISSION_DENIED) — UI absence never counts (ADR-0124 D1)", |
425 | 425 | "oracle": "api", |
426 | 426 | "verify": "per-cell status 403 and body code PERMISSION_DENIED; capture any cell answering a different code for triage", |
427 | 427 | "evidence": "the verdict matrix" |
|
1293 | 1293 | } |
1294 | 1294 | ], |
1295 | 1295 | "negative": [ |
1296 | | - "a Studio panel that greys the save while a direct meta PUT widens is a FAIL — the server gate is the authority (ADR-0057 D10 both-sides)", |
| 1296 | + "a Studio panel that greys the save while a direct meta PUT widens is a FAIL — the server gate is the authority (ADR-0124 D1 both-sides)", |
1297 | 1297 | "a stock-deploy packaged-object widening PUT that answers 2xx (or leaves the object widened) is a FAIL", |
1298 | 1298 | "do NOT tick external-principal read/write enforcement: that evaluation is liveness `planned` (#2696) — this item is the save/authoring gate only" |
1299 | 1299 | ], |
|
1310 | 1310 | "packages/lint/src/validate-security-posture.ts (OWD_WIDTH + SECURITY_EXTERNAL_WIDER lint parity)", |
1311 | 1311 | "objectui packages/app-shell/src/views/studio-design/owd-sharing.ts (isExternalWider) + PackageOwdOverviewPanel.tsx + ObjectSettingsPanel.tsx", |
1312 | 1312 | "examples/app-showcase/src/data/objects/announcement.object.ts + account.object.ts (externalSharingModel declarations)", |
1313 | | - "ADR-0090 D11, ADR-0086 D1, ADR-0057 D10, #3050, objectui#2508" |
| 1313 | + "ADR-0090 D11, ADR-0086 D1, ADR-0124 D1, #3050, objectui#2508" |
1314 | 1314 | ], |
1315 | 1315 | "history": [ |
1316 | 1316 | { |
|
0 commit comments