| 1 | { |
| 2 | "comment": [ |
| 3 | "Gate 3. One fixture per rung of the sharing ladder (doctrine §4.2,", |
| 4 | "ruling 15), plus the two cases the reviews asked for: an item on the", |
| 5 | "team rung that also carries a link, and an item whose link changed", |
| 6 | "after it was ingested.", |
| 7 | "", |
| 8 | "The asker is the same person for every case, and the item id is quoted", |
| 9 | "in every case, so a server cannot pass by answering differently for", |
| 10 | "different ids. What must differ is the rung; what must not differ is", |
| 11 | "the answer for everything that is not `team`.", |
| 12 | "", |
| 13 | "s3_status is what a content fetch answers. s2_result is what an", |
| 14 | "authorization call answers for `asker`, who deliberately holds a live", |
| 15 | "grant on doc-private and doc-granted and a former grant on doc-deleted:", |
| 16 | "the intersection with custody (§4.3) must beat the grant every time." |
| 17 | ], |
| 18 | |
| 19 | "team": "acme", |
| 20 | "asker": { "kind": "person_ref", "value": "pers_ana" }, |
| 21 | "stranger": { "kind": "person_ref", "value": "pers_bo" }, |
| 22 | |
| 23 | "cases": [ |
| 24 | { |
| 25 | "name": "team rung is the only thing custody admits", |
| 26 | "item_id": "doc-team", |
| 27 | "s3_body": "the Q3 plan, shared with the whole team", |
| 28 | "revision": 7, |
| 29 | "rung": "team", |
| 30 | "link": null, |
| 31 | "s3_status": 200, |
| 32 | "s2_result": "VISIBLE", |
| 33 | "s2_result_superseded": "STALE", |
| 34 | "s2_result_stranger": "NOT_VISIBLE" |
| 35 | }, |
| 36 | { |
| 37 | "name": "private, and the asker owns it", |
| 38 | "item_id": "doc-private", |
| 39 | "s3_body": "", |
| 40 | "revision": 4, |
| 41 | "rung": "private", |
| 42 | "link": null, |
| 43 | "s3_status": 404, |
| 44 | "s2_result": "NOT_VISIBLE", |
| 45 | "s2_result_superseded": "NOT_VISIBLE", |
| 46 | "s2_result_stranger": "NOT_VISIBLE" |
| 47 | }, |
| 48 | { |
| 49 | "name": "granted to the asker individually", |
| 50 | "item_id": "doc-granted", |
| 51 | "s3_body": "", |
| 52 | "revision": 9, |
| 53 | "rung": "granted", |
| 54 | "link": null, |
| 55 | "s3_status": 404, |
| 56 | "s2_result": "NOT_VISIBLE", |
| 57 | "s2_result_superseded": "NOT_VISIBLE", |
| 58 | "s2_result_stranger": "NOT_VISIBLE" |
| 59 | }, |
| 60 | { |
| 61 | "name": "granted to a guest only", |
| 62 | "item_id": "doc-guest", |
| 63 | "s3_body": "", |
| 64 | "revision": 2, |
| 65 | "rung": "granted", |
| 66 | "link": null, |
| 67 | "s3_status": 404, |
| 68 | "s2_result": "NOT_VISIBLE", |
| 69 | "s2_result_superseded": "NOT_VISIBLE", |
| 70 | "s2_result_stranger": "NOT_VISIBLE" |
| 71 | }, |
| 72 | { |
| 73 | "name": "link-shared but not team-shared: a link is not a rung", |
| 74 | "item_id": "doc-link", |
| 75 | "s3_body": "", |
| 76 | "revision": 5, |
| 77 | "rung": "private", |
| 78 | "link": "read", |
| 79 | "s3_status": 404, |
| 80 | "s2_result": "NOT_VISIBLE", |
| 81 | "s2_result_superseded": "NOT_VISIBLE", |
| 82 | "s2_result_stranger": "NOT_VISIBLE" |
| 83 | }, |
| 84 | { |
| 85 | "name": "team-shared and link-shared: team-visible because of the rung", |
| 86 | "item_id": "doc-team-link", |
| 87 | "s3_body": "the launch checklist, team-shared and link-shared", |
| 88 | "revision": 3, |
| 89 | "rung": "team", |
| 90 | "link": "read", |
| 91 | "s3_status": 200, |
| 92 | "s2_result": "VISIBLE", |
| 93 | "s2_result_superseded": "STALE", |
| 94 | "s2_result_stranger": "NOT_VISIBLE" |
| 95 | }, |
| 96 | { |
| 97 | "name": "deleted, with a former grant held by the asker", |
| 98 | "item_id": "doc-deleted", |
| 99 | "s3_body": "", |
| 100 | "revision": 6, |
| 101 | "rung": "deleted", |
| 102 | "link": null, |
| 103 | "s3_status": 404, |
| 104 | "s2_result": "NOT_VISIBLE", |
| 105 | "s2_result_superseded": "NOT_VISIBLE", |
| 106 | "s2_result_stranger": "NOT_VISIBLE" |
| 107 | }, |
| 108 | { |
| 109 | "name": "ingested on the team rung, since moved to private", |
| 110 | "item_id": "doc-was-team", |
| 111 | "s3_body": "", |
| 112 | "revision": 8, |
| 113 | "rung": "private", |
| 114 | "link": null, |
| 115 | "s3_status": 404, |
| 116 | "s2_result": "NOT_VISIBLE", |
| 117 | "s2_result_superseded": "NOT_VISIBLE", |
| 118 | "s2_result_stranger": "NOT_VISIBLE" |
| 119 | }, |
| 120 | { |
| 121 | "name": "a link added after ingest changes nothing either way", |
| 122 | "item_id": "doc-link-added-late", |
| 123 | "s3_body": "", |
| 124 | "revision": 11, |
| 125 | "rung": "private", |
| 126 | "link": "read", |
| 127 | "s3_status": 404, |
| 128 | "s2_result": "NOT_VISIBLE", |
| 129 | "s2_result_superseded": "NOT_VISIBLE", |
| 130 | "s2_result_stranger": "NOT_VISIBLE" |
| 131 | } |
| 132 | ] |
| 133 | } |
| 134 | |