rcf-lite 0.23.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (666) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/blueprints/application-account-settings/docs/topics.md +10 -1
  3. package/blueprints/application-admin-console/CHANGELOG.md +12 -0
  4. package/blueprints/application-admin-console/blueprint.json +34 -1
  5. package/blueprints/application-admin-console/contributions/adrs/adr-2214-application-admin-console-consume-zero-trust-gate.json +25 -0
  6. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-014.json +17 -0
  7. package/blueprints/application-admin-console/contributions/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +32 -0
  8. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21815.json +27 -0
  9. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21816.json +27 -0
  10. package/blueprints/application-admin-console/docs/topics.md +10 -1
  11. package/blueprints/application-admin-console/guide/application-admin-console.md +24 -0
  12. package/blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs +26 -1
  13. package/blueprints/application-api-rest/docs/topics.md +10 -1
  14. package/blueprints/application-charts/docs/topics.md +10 -1
  15. package/blueprints/application-dashboard/docs/topics.md +10 -1
  16. package/blueprints/application-datatable/docs/topics.md +10 -1
  17. package/blueprints/application-empty-error-states/docs/topics.md +10 -1
  18. package/blueprints/application-error-handling/docs/topics.md +10 -1
  19. package/blueprints/application-file-upload/docs/topics.md +10 -1
  20. package/blueprints/application-forms-wizard/docs/topics.md +10 -1
  21. package/blueprints/application-notifications-in-app/docs/topics.md +10 -1
  22. package/blueprints/application-onboarding-tour/docs/topics.md +10 -1
  23. package/blueprints/application-spa/docs/topics.md +10 -1
  24. package/blueprints/delivery-ci-workflows/docs/topics.md +10 -1
  25. package/blueprints/deploy-cloudflare-workers/docs/topics.md +10 -1
  26. package/blueprints/deploy-hetzner-server/CHANGELOG.md +34 -0
  27. package/blueprints/deploy-hetzner-server/README.md +202 -0
  28. package/blueprints/deploy-hetzner-server/blueprint.json +233 -0
  29. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3801-deploy-hetzner-server-cloud-host-contract.json +14 -0
  30. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3802-deploy-hetzner-server-snapshot-cadence.json +14 -0
  31. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3803-deploy-hetzner-server-provisioning-tool.json +20 -0
  32. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3804-deploy-hetzner-server-hardening-baseline.json +14 -0
  33. package/blueprints/deploy-hetzner-server/contributions/probes/cloud-init-render-lint.mjs +64 -0
  34. package/blueprints/deploy-hetzner-server/contributions/probes/hcloud-dry-run-mock.mjs +116 -0
  35. package/blueprints/deploy-hetzner-server/contributions/probes/manifest-schema-validate.mjs +180 -0
  36. package/blueprints/deploy-hetzner-server/contributions/probes/probe-utils.mjs +106 -0
  37. package/blueprints/deploy-hetzner-server/contributions/probes/real-account-cloud-init-hardened.mjs +63 -0
  38. package/blueprints/deploy-hetzner-server/contributions/probes/real-account-snapshot-on-demand.mjs +60 -0
  39. package/blueprints/deploy-hetzner-server/contributions/probes/real-account-throwaway-server-provision.mjs +58 -0
  40. package/blueprints/deploy-hetzner-server/contributions/probes/run-cloud-init-render-lint.mjs +9 -0
  41. package/blueprints/deploy-hetzner-server/contributions/probes/run-hcloud-dry-run-mock.mjs +9 -0
  42. package/blueprints/deploy-hetzner-server/contributions/probes/run-manifest-schema-validate.mjs +9 -0
  43. package/blueprints/deploy-hetzner-server/contributions/probes/run-real-account-cloud-init-hardened.mjs +9 -0
  44. package/blueprints/deploy-hetzner-server/contributions/probes/run-real-account-snapshot-on-demand.mjs +9 -0
  45. package/blueprints/deploy-hetzner-server/contributions/probes/run-real-account-throwaway-server-provision.mjs +9 -0
  46. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-001.json +18 -0
  47. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-002.json +18 -0
  48. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-003.json +18 -0
  49. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-004.json +18 -0
  50. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-005.json +18 -0
  51. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-006.json +18 -0
  52. package/blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json +108 -0
  53. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3801-deploy-hetzner-server-provisioner.json +27 -0
  54. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3802-deploy-hetzner-server-manifest-schema.json +26 -0
  55. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3803-deploy-hetzner-server-cloud-init-template.json +26 -0
  56. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3804-deploy-hetzner-server-firewall-shape.json +25 -0
  57. package/blueprints/deploy-hetzner-server/contributions/templates/cloud-init.yaml.tmpl +93 -0
  58. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37101.json +24 -0
  59. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37102.json +24 -0
  60. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37103.json +25 -0
  61. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37104.json +24 -0
  62. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37105.json +24 -0
  63. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37106.json +25 -0
  64. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37107.json +24 -0
  65. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37108.json +24 -0
  66. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37109.json +24 -0
  67. package/blueprints/deploy-hetzner-server/docs/topics.md +48 -0
  68. package/blueprints/deploy-hetzner-server/guide/deploy-hetzner-server.md +180 -0
  69. package/blueprints/edge-cloudflare-access/CHANGELOG.md +23 -0
  70. package/blueprints/edge-cloudflare-access/README.md +141 -0
  71. package/blueprints/edge-cloudflare-access/blueprint.json +197 -0
  72. package/blueprints/edge-cloudflare-access/contributions/adrs/adr-3501-edge-cloudflare-access-jwt-gate.json +14 -0
  73. package/blueprints/edge-cloudflare-access/contributions/adrs/adr-3502-edge-cloudflare-access-identity-provider.json +25 -0
  74. package/blueprints/edge-cloudflare-access/contributions/adrs/adr-3503-edge-cloudflare-access-policy-scope.json +12 -0
  75. package/blueprints/edge-cloudflare-access/contributions/adrs/adr-3504-edge-cloudflare-access-audit-retention.json +12 -0
  76. package/blueprints/edge-cloudflare-access/contributions/probes/admin-console-gate-surface.mjs +100 -0
  77. package/blueprints/edge-cloudflare-access/contributions/probes/audit-event-secrecy.mjs +70 -0
  78. package/blueprints/edge-cloudflare-access/contributions/probes/jwt-validator-fixture.mjs +63 -0
  79. package/blueprints/edge-cloudflare-access/contributions/probes/jwt-validator-reject.mjs +95 -0
  80. package/blueprints/edge-cloudflare-access/contributions/probes/probe-utils.mjs +90 -0
  81. package/blueprints/edge-cloudflare-access/contributions/probes/real-account-gated-url.mjs +65 -0
  82. package/blueprints/edge-cloudflare-access/contributions/probes/run-admin-console-gate-surface.mjs +5 -0
  83. package/blueprints/edge-cloudflare-access/contributions/probes/run-audit-event-secrecy.mjs +5 -0
  84. package/blueprints/edge-cloudflare-access/contributions/probes/run-jwt-validator-fixture.mjs +5 -0
  85. package/blueprints/edge-cloudflare-access/contributions/probes/run-jwt-validator-reject.mjs +5 -0
  86. package/blueprints/edge-cloudflare-access/contributions/probes/run-real-account-gated-url.mjs +5 -0
  87. package/blueprints/edge-cloudflare-access/contributions/probes/run-wrangler-seam.mjs +5 -0
  88. package/blueprints/edge-cloudflare-access/contributions/probes/wrangler-seam.mjs +203 -0
  89. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-001.json +17 -0
  90. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-002.json +17 -0
  91. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-003.json +17 -0
  92. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-004.json +17 -0
  93. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-005.json +17 -0
  94. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-006.json +18 -0
  95. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3501-edge-cloudflare-access-jwt-validator.json +31 -0
  96. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3502-edge-cloudflare-access-application-declaration.json +33 -0
  97. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3503-edge-cloudflare-access-policy-shape.json +25 -0
  98. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3504-edge-cloudflare-access-audit-sink.json +25 -0
  99. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34101.json +27 -0
  100. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34102.json +28 -0
  101. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34103.json +27 -0
  102. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34104.json +27 -0
  103. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34105.json +27 -0
  104. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34106.json +27 -0
  105. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34107.json +27 -0
  106. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34108.json +27 -0
  107. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34109.json +27 -0
  108. package/blueprints/edge-cloudflare-access/docs/topics.md +71 -0
  109. package/blueprints/edge-cloudflare-access/guide/edge-cloudflare-access.md +180 -0
  110. package/blueprints/edge-cloudflare-rate-limiting/CHANGELOG.md +10 -0
  111. package/blueprints/edge-cloudflare-rate-limiting/README.md +73 -0
  112. package/blueprints/edge-cloudflare-rate-limiting/blueprint.json +174 -0
  113. package/blueprints/edge-cloudflare-rate-limiting/contributions/adrs/adr-3701-edge-cloudflare-rate-limiting-throttle-contract.json +14 -0
  114. package/blueprints/edge-cloudflare-rate-limiting/contributions/adrs/adr-3702-edge-cloudflare-rate-limiting-layering.json +14 -0
  115. package/blueprints/edge-cloudflare-rate-limiting/contributions/adrs/adr-3703-edge-cloudflare-rate-limiting-manifest-shape.json +14 -0
  116. package/blueprints/edge-cloudflare-rate-limiting/contributions/adrs/adr-3704-edge-cloudflare-rate-limiting-drift-audit-cadence.json +14 -0
  117. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/event-secrecy.mjs +104 -0
  118. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/manifest-presence.mjs +95 -0
  119. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/manifest-schema-validate.mjs +130 -0
  120. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/probe-utils.mjs +111 -0
  121. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/real-account-burst-and-429.mjs +104 -0
  122. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/run-event-secrecy.mjs +5 -0
  123. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/run-manifest-presence.mjs +5 -0
  124. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/run-manifest-schema-validate.mjs +5 -0
  125. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/run-real-account-burst-and-429.mjs +5 -0
  126. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-001.json +17 -0
  127. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-002.json +17 -0
  128. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-003.json +17 -0
  129. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-004.json +17 -0
  130. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-005.json +17 -0
  131. package/blueprints/edge-cloudflare-rate-limiting/contributions/schemas/rate-limit-rule.schema.json +67 -0
  132. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +31 -0
  133. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3702-edge-cloudflare-rate-limiting-management-surface-doc.json +25 -0
  134. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +26 -0
  135. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36101.json +27 -0
  136. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36102.json +27 -0
  137. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36103.json +27 -0
  138. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36104.json +27 -0
  139. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36105.json +27 -0
  140. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36106.json +27 -0
  141. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36107.json +27 -0
  142. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36108.json +27 -0
  143. package/blueprints/edge-cloudflare-rate-limiting/docs/topics.md +71 -0
  144. package/blueprints/edge-cloudflare-rate-limiting/guide/edge-cloudflare-rate-limiting.md +88 -0
  145. package/blueprints/edge-cloudflare-tunnel/CHANGELOG.md +13 -0
  146. package/blueprints/edge-cloudflare-tunnel/README.md +257 -0
  147. package/blueprints/edge-cloudflare-tunnel/blueprint.json +168 -0
  148. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4001-edge-cloudflare-tunnel-ingress-bridge-contract.json +23 -0
  149. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4002-edge-cloudflare-tunnel-connector-runtime.json +19 -0
  150. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4003-edge-cloudflare-tunnel-hostname-mode.json +19 -0
  151. package/blueprints/edge-cloudflare-tunnel/contributions/probes/aud-presence-check.mjs +114 -0
  152. package/blueprints/edge-cloudflare-tunnel/contributions/probes/cloudflared-config-lint.mjs +80 -0
  153. package/blueprints/edge-cloudflare-tunnel/contributions/probes/manifest-schema-validate.mjs +234 -0
  154. package/blueprints/edge-cloudflare-tunnel/contributions/probes/probe-utils.mjs +231 -0
  155. package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-connector-healthy.mjs +54 -0
  156. package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-tunnel-hostname-routes.mjs +73 -0
  157. package/blueprints/edge-cloudflare-tunnel/contributions/probes/run-aud-presence-check.mjs +4 -0
  158. package/blueprints/edge-cloudflare-tunnel/contributions/probes/run-cloudflared-config-lint.mjs +4 -0
  159. package/blueprints/edge-cloudflare-tunnel/contributions/probes/run-manifest-schema-validate.mjs +4 -0
  160. package/blueprints/edge-cloudflare-tunnel/contributions/probes/run-real-account-connector-healthy.mjs +4 -0
  161. package/blueprints/edge-cloudflare-tunnel/contributions/probes/run-real-account-tunnel-hostname-routes.mjs +4 -0
  162. package/blueprints/edge-cloudflare-tunnel/contributions/probes/tunnel-manifest.schema.json +55 -0
  163. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-001.json +18 -0
  164. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-002.json +18 -0
  165. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-003.json +18 -0
  166. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-004.json +18 -0
  167. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-005.json +18 -0
  168. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +26 -0
  169. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4002-edge-cloudflare-tunnel-manifest-schema.json +26 -0
  170. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4003-edge-cloudflare-tunnel-access-binding.json +25 -0
  171. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39101.json +24 -0
  172. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39102.json +24 -0
  173. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39103.json +24 -0
  174. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39104.json +24 -0
  175. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39105.json +24 -0
  176. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39106.json +24 -0
  177. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39107.json +24 -0
  178. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39108.json +24 -0
  179. package/blueprints/edge-cloudflare-tunnel/docs/topics.md +72 -0
  180. package/blueprints/edge-cloudflare-tunnel/guide/edge-cloudflare-tunnel.md +204 -0
  181. package/blueprints/edge-cloudflare-turnstile/CHANGELOG.md +20 -0
  182. package/blueprints/edge-cloudflare-turnstile/README.md +95 -0
  183. package/blueprints/edge-cloudflare-turnstile/blueprint.json +161 -0
  184. package/blueprints/edge-cloudflare-turnstile/contributions/adrs/adr-3601-edge-cloudflare-turnstile-verifier-contract.json +14 -0
  185. package/blueprints/edge-cloudflare-turnstile/contributions/adrs/adr-3602-edge-cloudflare-turnstile-widget-mode.json +14 -0
  186. package/blueprints/edge-cloudflare-turnstile/contributions/adrs/adr-3603-edge-cloudflare-turnstile-refuse-shape.json +14 -0
  187. package/blueprints/edge-cloudflare-turnstile/contributions/probes/event-secrecy.mjs +51 -0
  188. package/blueprints/edge-cloudflare-turnstile/contributions/probes/guard-shape-scan.mjs +48 -0
  189. package/blueprints/edge-cloudflare-turnstile/contributions/probes/probe-utils.mjs +139 -0
  190. package/blueprints/edge-cloudflare-turnstile/contributions/probes/run-event-secrecy.mjs +5 -0
  191. package/blueprints/edge-cloudflare-turnstile/contributions/probes/run-guard-shape-scan.mjs +5 -0
  192. package/blueprints/edge-cloudflare-turnstile/contributions/probes/run-secret-shape-scan.mjs +5 -0
  193. package/blueprints/edge-cloudflare-turnstile/contributions/probes/run-siteverify-fixture.mjs +5 -0
  194. package/blueprints/edge-cloudflare-turnstile/contributions/probes/secret-shape-scan.mjs +77 -0
  195. package/blueprints/edge-cloudflare-turnstile/contributions/probes/siteverify-fixture.mjs +53 -0
  196. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-001.json +17 -0
  197. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-002.json +17 -0
  198. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-003.json +17 -0
  199. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-004.json +17 -0
  200. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-005.json +17 -0
  201. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +26 -0
  202. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +36 -0
  203. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3603-edge-cloudflare-turnstile-magic-link-hook.json +25 -0
  204. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35101.json +27 -0
  205. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35102.json +27 -0
  206. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35103.json +27 -0
  207. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35104.json +27 -0
  208. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35105.json +36 -0
  209. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35106.json +27 -0
  210. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35107.json +27 -0
  211. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35108.json +27 -0
  212. package/blueprints/edge-cloudflare-turnstile/docs/topics.md +71 -0
  213. package/blueprints/edge-cloudflare-turnstile/guide/edge-cloudflare-turnstile.md +104 -0
  214. package/blueprints/edge-cloudflare-turnstile/probe-packs/edge-cloudflare-turnstile.pack.mjs +146 -0
  215. package/blueprints/email-smtp-resend/docs/topics.md +10 -1
  216. package/blueprints/jobs-background/docs/topics.md +10 -1
  217. package/blueprints/messaging-queue-cloudflare/docs/topics.md +10 -1
  218. package/blueprints/object-storage-s3/docs/topics.md +10 -1
  219. package/blueprints/observability-essentials/docs/topics.md +10 -1
  220. package/blueprints/observability-logging/docs/topics.md +10 -1
  221. package/blueprints/observability-probe-endpoints/docs/topics.md +10 -1
  222. package/blueprints/persistence-data-d1/docs/topics.md +10 -1
  223. package/blueprints/persistence-data-postgres/docs/topics.md +10 -1
  224. package/blueprints/persistence-data-sqlite/docs/topics.md +10 -1
  225. package/blueprints/platform-cloudflare-cron-triggers/CHANGELOG.md +22 -0
  226. package/blueprints/platform-cloudflare-cron-triggers/README.md +117 -0
  227. package/blueprints/platform-cloudflare-cron-triggers/blueprint.json +85 -0
  228. package/blueprints/platform-cloudflare-cron-triggers/contributions/adrs/adr-3301-platform-cloudflare-cron-triggers-scheduled-trigger-contract.json +14 -0
  229. package/blueprints/platform-cloudflare-cron-triggers/contributions/adrs/adr-3302-platform-cloudflare-cron-triggers-dispatcher-mode.json +14 -0
  230. package/blueprints/platform-cloudflare-cron-triggers/contributions/adrs/adr-3303-platform-cloudflare-cron-triggers-skew-tolerance-default.json +14 -0
  231. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/dispatcher-routing.mjs +64 -0
  232. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/event-secrecy.mjs +100 -0
  233. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/probe-utils.mjs +70 -0
  234. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/real-account-scheduled-smoke.mjs +100 -0
  235. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/run-dispatcher-routing.mjs +5 -0
  236. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/run-event-secrecy.mjs +5 -0
  237. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/run-real-account-scheduled-smoke.mjs +5 -0
  238. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/run-skew-tolerance.mjs +5 -0
  239. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/run-wrangler-test-scheduled.mjs +5 -0
  240. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/skew-tolerance.mjs +130 -0
  241. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/wrangler-test-scheduled.mjs +129 -0
  242. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-001.json +17 -0
  243. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-002.json +17 -0
  244. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-003.json +17 -0
  245. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-004.json +17 -0
  246. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3301-platform-cloudflare-cron-triggers-scheduled-handler.json +22 -0
  247. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3302-platform-cloudflare-cron-triggers-expression-router.json +22 -0
  248. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3303-platform-cloudflare-cron-triggers-event-sink.json +21 -0
  249. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32101.json +25 -0
  250. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32102.json +34 -0
  251. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32103.json +34 -0
  252. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32104.json +34 -0
  253. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32105.json +25 -0
  254. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32106.json +25 -0
  255. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32107.json +25 -0
  256. package/blueprints/platform-cloudflare-cron-triggers/docs/topics.md +74 -0
  257. package/blueprints/platform-cloudflare-cron-triggers/guide/platform-cloudflare-cron-triggers.md +119 -0
  258. package/blueprints/platform-cloudflare-durable-objects/CHANGELOG.md +23 -0
  259. package/blueprints/platform-cloudflare-durable-objects/README.md +200 -0
  260. package/blueprints/platform-cloudflare-durable-objects/blueprint.json +243 -0
  261. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3401-platform-cloudflare-durable-objects-single-cell-contract.json +14 -0
  262. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3402-platform-cloudflare-durable-objects-websocket-hub-contract.json +14 -0
  263. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3403-platform-cloudflare-durable-objects-storage-backend.json +14 -0
  264. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3404-platform-cloudflare-durable-objects-migrations-shape.json +14 -0
  265. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3405-platform-cloudflare-durable-objects-hibernation-posture.json +14 -0
  266. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/alarm-fires-once.mjs +63 -0
  267. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/namespace-facade-ready.mjs +60 -0
  268. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/probe-utils.mjs +105 -0
  269. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/real-account-storage-smoke.mjs +58 -0
  270. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/run-alarm-fires-once.mjs +5 -0
  271. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/run-namespace-facade-ready.mjs +5 -0
  272. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/run-real-account-storage-smoke.mjs +5 -0
  273. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/run-single-cell-concurrent-increment.mjs +5 -0
  274. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/run-sole-reader-scan.mjs +5 -0
  275. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/run-storage-round-trip.mjs +5 -0
  276. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/run-websocket-hub-broadcast.mjs +5 -0
  277. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/run-wrangler-seam.mjs +5 -0
  278. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/single-cell-concurrent-increment.mjs +56 -0
  279. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/sole-reader-scan.mjs +117 -0
  280. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/storage-round-trip.mjs +87 -0
  281. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/websocket-hub-broadcast.mjs +112 -0
  282. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/wrangler-seam.mjs +257 -0
  283. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-001.json +17 -0
  284. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-002.json +17 -0
  285. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-003.json +17 -0
  286. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-004.json +17 -0
  287. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-005.json +17 -0
  288. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-006.json +17 -0
  289. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-007.json +17 -0
  290. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-008.json +17 -0
  291. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3401-platform-cloudflare-durable-objects-namespace-facade.json +31 -0
  292. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3402-platform-cloudflare-durable-objects-single-cell-shape.json +30 -0
  293. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3403-platform-cloudflare-durable-objects-alarm-handler.json +29 -0
  294. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3404-platform-cloudflare-durable-objects-websocket-hub.json +31 -0
  295. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3405-platform-cloudflare-durable-objects-event-sink.json +24 -0
  296. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33101.json +27 -0
  297. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33102.json +27 -0
  298. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33103.json +27 -0
  299. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33104.json +27 -0
  300. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33105.json +27 -0
  301. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33106.json +27 -0
  302. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33107.json +27 -0
  303. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33108.json +27 -0
  304. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33109.json +27 -0
  305. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33110.json +27 -0
  306. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33111.json +27 -0
  307. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33112.json +27 -0
  308. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33113.json +25 -0
  309. package/blueprints/platform-cloudflare-durable-objects/docs/topics.md +76 -0
  310. package/blueprints/platform-cloudflare-durable-objects/guide/platform-cloudflare-durable-objects.md +237 -0
  311. package/blueprints/platform-cloudflare-kv/CHANGELOG.md +21 -0
  312. package/blueprints/platform-cloudflare-kv/README.md +159 -0
  313. package/blueprints/platform-cloudflare-kv/blueprint.json +87 -0
  314. package/blueprints/platform-cloudflare-kv/contributions/adrs/adr-3201-platform-cloudflare-kv-key-value-store-contract.json +14 -0
  315. package/blueprints/platform-cloudflare-kv/contributions/adrs/adr-3202-platform-cloudflare-kv-default-cache-ttl.json +14 -0
  316. package/blueprints/platform-cloudflare-kv/contributions/adrs/adr-3203-platform-cloudflare-kv-key-naming-convention.json +14 -0
  317. package/blueprints/platform-cloudflare-kv/contributions/probes/cache-aside-hit-then-miss.mjs +82 -0
  318. package/blueprints/platform-cloudflare-kv/contributions/probes/event-secrecy.mjs +102 -0
  319. package/blueprints/platform-cloudflare-kv/contributions/probes/facade-round-trip.mjs +92 -0
  320. package/blueprints/platform-cloudflare-kv/contributions/probes/list-with-prefix.mjs +52 -0
  321. package/blueprints/platform-cloudflare-kv/contributions/probes/probe-utils.mjs +73 -0
  322. package/blueprints/platform-cloudflare-kv/contributions/probes/real-account-eventual-consistency-smoke.mjs +102 -0
  323. package/blueprints/platform-cloudflare-kv/contributions/probes/run-cache-aside-hit-then-miss.mjs +5 -0
  324. package/blueprints/platform-cloudflare-kv/contributions/probes/run-event-secrecy.mjs +5 -0
  325. package/blueprints/platform-cloudflare-kv/contributions/probes/run-facade-round-trip.mjs +5 -0
  326. package/blueprints/platform-cloudflare-kv/contributions/probes/run-list-with-prefix.mjs +5 -0
  327. package/blueprints/platform-cloudflare-kv/contributions/probes/run-real-account-eventual-consistency-smoke.mjs +5 -0
  328. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-001.json +18 -0
  329. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-002.json +18 -0
  330. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-003.json +18 -0
  331. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-004.json +18 -0
  332. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-005.json +18 -0
  333. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3201-platform-cloudflare-kv-facade.json +27 -0
  334. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3202-platform-cloudflare-kv-cache-aside.json +26 -0
  335. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3203-platform-cloudflare-kv-event-sink.json +25 -0
  336. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31101.json +27 -0
  337. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31102.json +27 -0
  338. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31103.json +36 -0
  339. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31104.json +27 -0
  340. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31105.json +27 -0
  341. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31106.json +27 -0
  342. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31107.json +27 -0
  343. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31108.json +27 -0
  344. package/blueprints/platform-cloudflare-kv/docs/topics.md +74 -0
  345. package/blueprints/platform-cloudflare-kv/guide/platform-cloudflare-kv.md +138 -0
  346. package/blueprints/platform-docker-compose-host/CHANGELOG.md +12 -0
  347. package/blueprints/platform-docker-compose-host/README.md +76 -0
  348. package/blueprints/platform-docker-compose-host/blueprint.json +209 -0
  349. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3901-platform-docker-compose-host-contract.json +14 -0
  350. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3902-platform-docker-compose-host-reverse-proxy.json +14 -0
  351. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3903-platform-docker-compose-host-reject-coolify.json +14 -0
  352. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3904-platform-docker-compose-host-log-driver.json +14 -0
  353. package/blueprints/platform-docker-compose-host/contributions/probes/caddyfile-validate.mjs +108 -0
  354. package/blueprints/platform-docker-compose-host/contributions/probes/compose-config-lint.mjs +231 -0
  355. package/blueprints/platform-docker-compose-host/contributions/probes/probe-utils.mjs +185 -0
  356. package/blueprints/platform-docker-compose-host/contributions/probes/real-account-minimal-stack-up.mjs +41 -0
  357. package/blueprints/platform-docker-compose-host/contributions/probes/real-account-reload-burst.mjs +36 -0
  358. package/blueprints/platform-docker-compose-host/contributions/probes/run-caddyfile-validate.mjs +5 -0
  359. package/blueprints/platform-docker-compose-host/contributions/probes/run-compose-config-lint.mjs +5 -0
  360. package/blueprints/platform-docker-compose-host/contributions/probes/run-real-account-minimal-stack-up.mjs +5 -0
  361. package/blueprints/platform-docker-compose-host/contributions/probes/run-real-account-reload-burst.mjs +5 -0
  362. package/blueprints/platform-docker-compose-host/contributions/probes/run-secrets-as-files-scan.mjs +5 -0
  363. package/blueprints/platform-docker-compose-host/contributions/probes/secrets-as-files-scan.mjs +116 -0
  364. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-001.json +18 -0
  365. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-002.json +18 -0
  366. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-003.json +18 -0
  367. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-004.json +18 -0
  368. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-005.json +18 -0
  369. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-006.json +18 -0
  370. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3901-platform-docker-compose-host-compose-layout.json +26 -0
  371. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3902-platform-docker-compose-host-secrets-mount.json +26 -0
  372. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3903-platform-docker-compose-host-healthcheck-lint.json +26 -0
  373. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3904-platform-docker-compose-host-reverse-proxy-artefact.json +26 -0
  374. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38101.json +24 -0
  375. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38102.json +24 -0
  376. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38103.json +24 -0
  377. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38104.json +24 -0
  378. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38105.json +25 -0
  379. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38106.json +24 -0
  380. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38107.json +24 -0
  381. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38108.json +24 -0
  382. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38109.json +24 -0
  383. package/blueprints/platform-docker-compose-host/docs/topics.md +71 -0
  384. package/blueprints/platform-docker-compose-host/guide/platform-docker-compose-host.md +94 -0
  385. package/blueprints/security-auth-clerk/docs/topics.md +10 -1
  386. package/blueprints/security-auth-keycloak/docs/topics.md +10 -1
  387. package/blueprints/security-auth-magic-link/docs/topics.md +10 -1
  388. package/blueprints/security-auth-oauth2/docs/topics.md +10 -1
  389. package/blueprints/security-secrets-management/docs/topics.md +10 -1
  390. package/fixtures/canary-manifest.json +9 -9
  391. package/package.json +1 -1
  392. package/rcf/adrs/adr-2214-application-admin-console-consume-zero-trust-gate.json +13 -0
  393. package/rcf/adrs/adr-3501-edge-cloudflare-access-jwt-gate.json +13 -0
  394. package/rcf/adrs/adr-3502-edge-cloudflare-access-identity-provider.json +13 -0
  395. package/rcf/adrs/adr-3503-edge-cloudflare-access-policy-scope.json +13 -0
  396. package/rcf/adrs/adr-3504-edge-cloudflare-access-audit-retention.json +13 -0
  397. package/rcf/adrs/adr-3601-edge-cloudflare-turnstile-verifier-contract.json +13 -0
  398. package/rcf/adrs/adr-3602-edge-cloudflare-turnstile-widget-mode.json +13 -0
  399. package/rcf/adrs/adr-3603-edge-cloudflare-turnstile-refuse-shape.json +13 -0
  400. package/rcf/adrs/adr-3701-edge-cloudflare-rate-limiting-throttle-contract.json +13 -0
  401. package/rcf/adrs/adr-3702-edge-cloudflare-rate-limiting-layering.json +13 -0
  402. package/rcf/adrs/adr-3703-edge-cloudflare-rate-limiting-manifest-shape.json +13 -0
  403. package/rcf/adrs/adr-3704-edge-cloudflare-rate-limiting-drift-audit-cadence.json +13 -0
  404. package/rcf/adrs/adr-3801-deploy-hetzner-server-cloud-host-contract.json +13 -0
  405. package/rcf/adrs/adr-3802-deploy-hetzner-server-snapshot-cadence.json +13 -0
  406. package/rcf/adrs/adr-3803-deploy-hetzner-server-provisioning-tool.json +13 -0
  407. package/rcf/adrs/adr-3804-deploy-hetzner-server-hardening-baseline.json +13 -0
  408. package/rcf/adrs/adr-3901-platform-docker-compose-host-contract.json +13 -0
  409. package/rcf/adrs/adr-3902-platform-docker-compose-host-reverse-proxy.json +13 -0
  410. package/rcf/adrs/adr-3903-platform-docker-compose-host-reject-coolify.json +13 -0
  411. package/rcf/adrs/adr-3904-platform-docker-compose-host-log-driver.json +13 -0
  412. package/rcf/adrs/adr-4001-edge-cloudflare-tunnel-ingress-bridge-contract.json +13 -0
  413. package/rcf/adrs/adr-4002-edge-cloudflare-tunnel-connector-runtime.json +13 -0
  414. package/rcf/adrs/adr-4003-edge-cloudflare-tunnel-hostname-mode.json +13 -0
  415. package/rcf/code-nodes/cn-230.json +13 -0
  416. package/rcf/code-nodes/cn-231.json +14 -0
  417. package/rcf/code-nodes/cn-232.json +13 -0
  418. package/rcf/code-nodes/cn-233.json +14 -0
  419. package/rcf/code-nodes/cn-234.json +13 -0
  420. package/rcf/code-nodes/cn-260.json +21 -0
  421. package/rcf/code-nodes/cn-261.json +14 -0
  422. package/rcf/code-nodes/cn-262.json +18 -0
  423. package/rcf/code-nodes/cn-263.json +12 -0
  424. package/rcf/code-nodes/cn-264.json +13 -0
  425. package/rcf/code-nodes/cn-265.json +15 -0
  426. package/rcf/code-nodes/cn-266.json +12 -0
  427. package/rcf/code-nodes/cn-267.json +12 -0
  428. package/rcf/code-nodes/cn-290.json +21 -0
  429. package/rcf/code-nodes/cn-291.json +12 -0
  430. package/rcf/code-nodes/cn-292.json +13 -0
  431. package/rcf/code-nodes/cn-293.json +13 -0
  432. package/rcf/code-nodes/cn-294.json +13 -0
  433. package/rcf/code-nodes/cn-295.json +12 -0
  434. package/rcf/code-nodes/cn-296.json +12 -0
  435. package/rcf/code-nodes/cn-297.json +12 -0
  436. package/rcf/code-nodes/cn-298.json +12 -0
  437. package/rcf/code-nodes/cn-299.json +12 -0
  438. package/rcf/code-nodes/cn-300.json +12 -0
  439. package/rcf/code-nodes/cn-301.json +14 -0
  440. package/rcf/code-nodes/cn-302.json +12 -0
  441. package/rcf/code-nodes/cn-303.json +12 -0
  442. package/rcf/code-nodes/cn-304.json +21 -0
  443. package/rcf/code-nodes/cn-320.json +20 -0
  444. package/rcf/code-nodes/cn-321.json +14 -0
  445. package/rcf/code-nodes/cn-350.json +19 -0
  446. package/rcf/code-nodes/cn-380.json +19 -0
  447. package/rcf/code-nodes/cn-410.json +20 -0
  448. package/rcf/code-nodes/cn-440.json +20 -0
  449. package/rcf/code-nodes/cn-470.json +19 -0
  450. package/rcf/fbs/fbs-070.json +24 -0
  451. package/rcf/fbs/fbs-080.json +24 -0
  452. package/rcf/fbs/fbs-090.json +24 -0
  453. package/rcf/fbs/fbs-100.json +23 -0
  454. package/rcf/fbs/fbs-101.json +16 -0
  455. package/rcf/fbs/fbs-110.json +23 -0
  456. package/rcf/fbs/fbs-120.json +22 -0
  457. package/rcf/fbs/fbs-130.json +23 -0
  458. package/rcf/fbs/fbs-140.json +23 -0
  459. package/rcf/fbs/fbs-150.json +22 -0
  460. package/rcf/requirements/req-050.json +18 -0
  461. package/rcf/requirements/req-051.json +18 -0
  462. package/rcf/requirements/req-052.json +18 -0
  463. package/rcf/requirements/req-053.json +18 -0
  464. package/rcf/requirements/req-054.json +18 -0
  465. package/rcf/requirements/req-060.json +20 -0
  466. package/rcf/requirements/req-061.json +18 -0
  467. package/rcf/requirements/req-062.json +20 -0
  468. package/rcf/requirements/req-063.json +20 -0
  469. package/rcf/requirements/req-070.json +18 -0
  470. package/rcf/requirements/req-071.json +18 -0
  471. package/rcf/requirements/req-072.json +18 -0
  472. package/rcf/requirements/req-073.json +18 -0
  473. package/rcf/requirements/req-074.json +18 -0
  474. package/rcf/requirements/req-075.json +18 -0
  475. package/rcf/requirements/req-076.json +18 -0
  476. package/rcf/requirements/req-077.json +18 -0
  477. package/rcf/requirements/req-080.json +18 -0
  478. package/rcf/requirements/req-081.json +18 -0
  479. package/rcf/requirements/req-082.json +18 -0
  480. package/rcf/requirements/req-083.json +18 -0
  481. package/rcf/requirements/req-084.json +18 -0
  482. package/rcf/requirements/req-085.json +18 -0
  483. package/rcf/requirements/req-086.json +18 -0
  484. package/rcf/requirements/req-090.json +44 -0
  485. package/rcf/requirements/req-091.json +53 -0
  486. package/rcf/requirements/req-092.json +32 -0
  487. package/rcf/requirements/req-093.json +52 -0
  488. package/rcf/requirements/req-094.json +32 -0
  489. package/rcf/requirements/req-100.json +13 -0
  490. package/rcf/requirements/req-101.json +13 -0
  491. package/rcf/requirements/req-102.json +13 -0
  492. package/rcf/requirements/req-103.json +13 -0
  493. package/rcf/requirements/req-104.json +13 -0
  494. package/rcf/requirements/req-110.json +58 -0
  495. package/rcf/requirements/req-111.json +32 -0
  496. package/rcf/requirements/req-112.json +42 -0
  497. package/rcf/requirements/req-113.json +33 -0
  498. package/rcf/requirements/req-114.json +20 -0
  499. package/rcf/requirements/req-115.json +38 -0
  500. package/rcf/requirements/req-120.json +20 -0
  501. package/rcf/requirements/req-121.json +20 -0
  502. package/rcf/requirements/req-122.json +20 -0
  503. package/rcf/requirements/req-123.json +42 -0
  504. package/rcf/requirements/req-124.json +27 -0
  505. package/rcf/requirements/req-125.json +20 -0
  506. package/rcf/requirements/req-130.json +32 -0
  507. package/rcf/requirements/req-131.json +54 -0
  508. package/rcf/requirements/req-132.json +27 -0
  509. package/rcf/requirements/req-133.json +20 -0
  510. package/rcf/requirements/req-134.json +42 -0
  511. package/rcf/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +15 -0
  512. package/rcf/tacs/tac-3501-edge-cloudflare-access-jwt-validator.json +15 -0
  513. package/rcf/tacs/tac-3502-edge-cloudflare-access-application-declaration.json +15 -0
  514. package/rcf/tacs/tac-3503-edge-cloudflare-access-policy-shape.json +15 -0
  515. package/rcf/tacs/tac-3504-edge-cloudflare-access-audit-sink.json +15 -0
  516. package/rcf/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +15 -0
  517. package/rcf/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +15 -0
  518. package/rcf/tacs/tac-3603-edge-cloudflare-turnstile-magic-link-hook.json +15 -0
  519. package/rcf/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +16 -0
  520. package/rcf/tacs/tac-3702-edge-cloudflare-rate-limiting-management-surface-doc.json +15 -0
  521. package/rcf/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +16 -0
  522. package/rcf/tacs/tac-3801-deploy-hetzner-server-provisioner.json +17 -0
  523. package/rcf/tacs/tac-3802-deploy-hetzner-server-manifest-schema.json +17 -0
  524. package/rcf/tacs/tac-3803-deploy-hetzner-server-cloud-init-template.json +17 -0
  525. package/rcf/tacs/tac-3804-deploy-hetzner-server-firewall-shape.json +16 -0
  526. package/rcf/tacs/tac-3901-platform-docker-compose-host-compose-layout.json +17 -0
  527. package/rcf/tacs/tac-3902-platform-docker-compose-host-secrets-mount.json +17 -0
  528. package/rcf/tacs/tac-3903-platform-docker-compose-host-healthcheck-lint.json +17 -0
  529. package/rcf/tacs/tac-3904-platform-docker-compose-host-reverse-proxy-artefact.json +17 -0
  530. package/rcf/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +17 -0
  531. package/rcf/tacs/tac-4002-edge-cloudflare-tunnel-manifest-schema.json +17 -0
  532. package/rcf/tacs/tac-4003-edge-cloudflare-tunnel-access-binding.json +16 -0
  533. package/rcf/test-suites/ts-052.json +58 -8
  534. package/rcf/test-suites/ts-080.json +22 -0
  535. package/rcf/test-suites/ts-081.json +22 -0
  536. package/rcf/test-suites/ts-082.json +30 -0
  537. package/rcf/test-suites/ts-083.json +22 -0
  538. package/rcf/test-suites/ts-084.json +30 -0
  539. package/rcf/test-suites/ts-085.json +22 -0
  540. package/rcf/test-suites/ts-086.json +22 -0
  541. package/rcf/test-suites/ts-087.json +22 -0
  542. package/rcf/test-suites/ts-090.json +22 -0
  543. package/rcf/test-suites/ts-091.json +22 -0
  544. package/rcf/test-suites/ts-092.json +22 -0
  545. package/rcf/test-suites/ts-093.json +30 -0
  546. package/rcf/test-suites/ts-094.json +30 -0
  547. package/rcf/test-suites/ts-095.json +30 -0
  548. package/rcf/test-suites/ts-096.json +22 -0
  549. package/rcf/test-suites/ts-100.json +22 -0
  550. package/rcf/test-suites/ts-101.json +22 -0
  551. package/rcf/test-suites/ts-102.json +22 -0
  552. package/rcf/test-suites/ts-103.json +22 -0
  553. package/rcf/test-suites/ts-104.json +22 -0
  554. package/rcf/test-suites/ts-105.json +22 -0
  555. package/rcf/test-suites/ts-106.json +22 -0
  556. package/rcf/test-suites/ts-107.json +22 -0
  557. package/rcf/test-suites/ts-108.json +22 -0
  558. package/rcf/test-suites/ts-109.json +22 -0
  559. package/rcf/test-suites/ts-110.json +22 -0
  560. package/rcf/test-suites/ts-111.json +22 -0
  561. package/rcf/test-suites/ts-112.json +22 -0
  562. package/rcf/test-suites/ts-113.json +22 -0
  563. package/rcf/test-suites/ts-114.json +22 -0
  564. package/rcf/test-suites/ts-115.json +22 -0
  565. package/rcf/test-suites/ts-116.json +22 -0
  566. package/rcf/test-suites/ts-117.json +22 -0
  567. package/rcf/test-suites/ts-118.json +22 -0
  568. package/rcf/test-suites/ts-119.json +30 -0
  569. package/rcf/test-suites/ts-120.json +22 -0
  570. package/rcf/test-suites/ts-121.json +22 -0
  571. package/rcf/test-suites/ts-122.json +22 -0
  572. package/rcf/test-suites/ts-123.json +22 -0
  573. package/rcf/test-suites/ts-124.json +22 -0
  574. package/rcf/test-suites/ts-125.json +22 -0
  575. package/rcf/test-suites/ts-126.json +22 -0
  576. package/rcf/test-suites/ts-127.json +22 -0
  577. package/rcf/test-suites/ts-130.json +22 -0
  578. package/rcf/test-suites/ts-131.json +22 -0
  579. package/rcf/test-suites/ts-132.json +22 -0
  580. package/rcf/test-suites/ts-133.json +22 -0
  581. package/rcf/test-suites/ts-134.json +22 -0
  582. package/rcf/test-suites/ts-135.json +22 -0
  583. package/rcf/test-suites/ts-136.json +22 -0
  584. package/rcf/test-suites/ts-137.json +22 -0
  585. package/rcf/test-suites/ts-140.json +86 -0
  586. package/rcf/test-suites/ts-150.json +86 -0
  587. package/rcf/test-suites/ts-160.json +78 -0
  588. package/rcf/user-stories/us-10001.json +23 -0
  589. package/rcf/user-stories/us-10101.json +23 -0
  590. package/rcf/user-stories/us-10201.json +23 -0
  591. package/rcf/user-stories/us-10301.json +23 -0
  592. package/rcf/user-stories/us-10401.json +23 -0
  593. package/rcf/user-stories/us-10601.json +23 -0
  594. package/rcf/user-stories/us-10701.json +23 -0
  595. package/rcf/user-stories/us-10801.json +23 -0
  596. package/rcf/user-stories/us-11001.json +23 -0
  597. package/rcf/user-stories/us-11101.json +23 -0
  598. package/rcf/user-stories/us-11102.json +24 -0
  599. package/rcf/user-stories/us-11201.json +23 -0
  600. package/rcf/user-stories/us-11202.json +23 -0
  601. package/rcf/user-stories/us-11301.json +24 -0
  602. package/rcf/user-stories/us-11401.json +23 -0
  603. package/rcf/user-stories/us-11402.json +23 -0
  604. package/rcf/user-stories/us-11501.json +23 -0
  605. package/rcf/user-stories/us-12001.json +23 -0
  606. package/rcf/user-stories/us-12101.json +23 -0
  607. package/rcf/user-stories/us-12102.json +23 -0
  608. package/rcf/user-stories/us-12201.json +23 -0
  609. package/rcf/user-stories/us-12202.json +24 -0
  610. package/rcf/user-stories/us-12301.json +23 -0
  611. package/rcf/user-stories/us-12401.json +23 -0
  612. package/rcf/user-stories/us-12402.json +23 -0
  613. package/rcf/user-stories/us-12501.json +23 -0
  614. package/rcf/user-stories/us-13001.json +23 -0
  615. package/rcf/user-stories/us-13002.json +23 -0
  616. package/rcf/user-stories/us-13101.json +23 -0
  617. package/rcf/user-stories/us-13102.json +23 -0
  618. package/rcf/user-stories/us-13201.json +23 -0
  619. package/rcf/user-stories/us-13301.json +23 -0
  620. package/rcf/user-stories/us-13302.json +23 -0
  621. package/rcf/user-stories/us-13401.json +23 -0
  622. package/rcf/user-stories/us-5001.json +27 -0
  623. package/rcf/user-stories/us-5002.json +27 -0
  624. package/rcf/user-stories/us-5101.json +36 -0
  625. package/rcf/user-stories/us-5102.json +27 -0
  626. package/rcf/user-stories/us-5201.json +36 -0
  627. package/rcf/user-stories/us-5301.json +27 -0
  628. package/rcf/user-stories/us-5302.json +27 -0
  629. package/rcf/user-stories/us-5401.json +27 -0
  630. package/rcf/user-stories/us-6001.json +27 -0
  631. package/rcf/user-stories/us-6002.json +27 -0
  632. package/rcf/user-stories/us-6003.json +27 -0
  633. package/rcf/user-stories/us-6101.json +36 -0
  634. package/rcf/user-stories/us-6201.json +36 -0
  635. package/rcf/user-stories/us-6301.json +36 -0
  636. package/rcf/user-stories/us-6302.json +27 -0
  637. package/rcf/user-stories/us-7001.json +27 -0
  638. package/rcf/user-stories/us-7002.json +27 -0
  639. package/rcf/user-stories/us-7101.json +27 -0
  640. package/rcf/user-stories/us-7201.json +27 -0
  641. package/rcf/user-stories/us-7301.json +27 -0
  642. package/rcf/user-stories/us-7401.json +27 -0
  643. package/rcf/user-stories/us-7402.json +27 -0
  644. package/rcf/user-stories/us-7501.json +27 -0
  645. package/rcf/user-stories/us-7601.json +27 -0
  646. package/rcf/user-stories/us-7701.json +27 -0
  647. package/rcf/user-stories/us-8001.json +24 -0
  648. package/rcf/user-stories/us-8002.json +24 -0
  649. package/rcf/user-stories/us-8003.json +24 -0
  650. package/rcf/user-stories/us-8101.json +24 -0
  651. package/rcf/user-stories/us-8201.json +24 -0
  652. package/rcf/user-stories/us-8301.json +24 -0
  653. package/rcf/user-stories/us-8401.json +24 -0
  654. package/rcf/user-stories/us-8501.json +24 -0
  655. package/rcf/user-stories/us-8502.json +24 -0
  656. package/rcf/user-stories/us-8601.json +24 -0
  657. package/rcf/user-stories/us-8602.json +24 -0
  658. package/rcf/user-stories/us-9001.json +27 -0
  659. package/rcf/user-stories/us-9002.json +27 -0
  660. package/rcf/user-stories/us-9101.json +27 -0
  661. package/rcf/user-stories/us-9102.json +27 -0
  662. package/rcf/user-stories/us-9201.json +27 -0
  663. package/rcf/user-stories/us-9301.json +27 -0
  664. package/rcf/user-stories/us-9302.json +27 -0
  665. package/rcf/user-stories/us-9401.json +27 -0
  666. package/releases/releases.yaml +21 -1
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T10:20:32.390Z",
3
+ "updatedAt": "2026-09-07T10:21:01.358Z",
4
+ "purpose": "Cover AC-5102-1 via list-with-prefix probe run and anatomy test cross-check",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-5102-1"
8
+ ],
9
+ "id": "TS-083",
10
+ "usId": "US-5102",
11
+ "title": "T-1 list with prefix returns 10 keys with metadata shape",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-083-ac-5102-1-list-prefix",
15
+ "acId": "AC-5102-1",
16
+ "description": "Cover AC-5102-1 via list-with-prefix probe: 10 keys under flags/ all returned with metadata shape",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-kv-anatomy.test.js::list-with-prefix probe passes on 10 keys under a shared prefix (TC-083-list-prefix)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "createdAt": "2026-09-07T10:20:32.566Z",
3
+ "updatedAt": "2026-09-07T10:21:01.711Z",
4
+ "purpose": "Cover AC-5201-1 and AC-5201-2 via cache-aside-hit-then-miss probe run and anatomy test cross-check",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-5201-1",
8
+ "AC-5201-2"
9
+ ],
10
+ "id": "TS-084",
11
+ "usId": "US-5201",
12
+ "title": "T-1 cache-aside hit-then-miss under a fake clock past TTL",
13
+ "testCases": [
14
+ {
15
+ "id": "TC-084-ac-5201-1-hit-within-ttl",
16
+ "acId": "AC-5201-1",
17
+ "description": "Cover AC-5201-1 via cache-aside-hit-then-miss probe: within-TTL second read is a cache hit and origin is called once",
18
+ "status": "pending",
19
+ "testPointer": "test/blueprint/platform-cloudflare-kv-anatomy.test.js::cache-aside-hit-then-miss probe: within-TTL cached branch (TC-084-hit-within-ttl)"
20
+ },
21
+ {
22
+ "id": "TC-084-ac-5201-2-miss-past-ttl",
23
+ "acId": "AC-5201-2",
24
+ "description": "Cover AC-5201-2 via cache-aside-hit-then-miss probe: past-TTL read miss triggers a second origin call",
25
+ "status": "pending",
26
+ "testPointer": "test/blueprint/platform-cloudflare-kv-anatomy.test.js::cache-aside-hit-then-miss probe: past-TTL miss branch (TC-084-miss-past-ttl)"
27
+ }
28
+ ],
29
+ "status": "draft"
30
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T10:20:32.741Z",
3
+ "updatedAt": "2026-09-07T10:21:01.888Z",
4
+ "purpose": "Cover AC-5301-1 via anatomy test that walks the shipped facade and asserts every event record's shape",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-5301-1"
8
+ ],
9
+ "id": "TS-085",
10
+ "usId": "US-5301",
11
+ "title": "T-1 lifecycle events carry the metadata-only whitelist",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-085-ac-5301-1-metadata-only",
15
+ "acId": "AC-5301-1",
16
+ "description": "Cover AC-5301-1 via anatomy test: every event record on the sink carries only {event, key, size, ttl, timestamp}",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-kv-anatomy.test.js::lifecycle events carry only the metadata-only whitelist (TC-085-metadata-only)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T10:20:32.919Z",
3
+ "updatedAt": "2026-09-07T10:21:02.065Z",
4
+ "purpose": "Cover AC-5302-1 via event-secrecy probe with two-layer assertions and a mutation-run under SIMULATE_PII_LEAK",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-5302-1"
8
+ ],
9
+ "id": "TS-086",
10
+ "usId": "US-5302",
11
+ "title": "T-1 event secrecy: no body bytes or PII reach the sink",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-086-ac-5302-1-event-secrecy",
15
+ "acId": "AC-5302-1",
16
+ "description": "Cover AC-5302-1 via event-secrecy probe: no body bytes / PII / user id reach the sink even under a mutation-run",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-kv-anatomy.test.js::event-secrecy probe passes on PII fixture and fails under SIMULATE_PII_LEAK (TC-086-event-secrecy)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T10:20:33.096Z",
3
+ "updatedAt": "2026-09-07T10:21:02.240Z",
4
+ "purpose": "Cover AC-5401-1 via anatomy test asserting the probe records accountBoundSkipped without CI_HAS_CLOUDFLARE_ACCOUNT and passes in the CI-configured path",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-5401-1"
8
+ ],
9
+ "id": "TS-087",
10
+ "usId": "US-5401",
11
+ "title": "T-1 real-account eventual-consistency smoke aggregates pass or skipped",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-087-ac-5401-1-real-account-smoke",
15
+ "acId": "AC-5401-1",
16
+ "description": "Cover AC-5401-1 via anatomy test: without CI_HAS_CLOUDFLARE_ACCOUNT the probe records accountBoundSkipped true and aggregates pass",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-kv-anatomy.test.js::real-account eventual-consistency smoke records accountBoundSkipped without the env var (TC-087-real-account-smoke)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T12:29:11.255Z",
3
+ "updatedAt": "2026-09-07T12:29:45.408Z",
4
+ "purpose": "Cover AC-6001-1 via anatomy test: shipped scheduled handler ready() emits cronReady with metadata-only payload and does not dereference env.CACHE",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-6001-1"
8
+ ],
9
+ "id": "TS-090",
10
+ "usId": "US-6001",
11
+ "title": "T-2 scheduled handler opens on boot and emits cronReady",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-090-scheduled-ready",
15
+ "acId": "AC-6001-1",
16
+ "description": "Cover AC-6001-1 via anatomy test: scheduled.mjs ready() emits cronReady with metadata-only payload; scheduled.mjs source contains no env.CACHE dereference",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::scheduled handler opens on boot and emits cronReady with metadata-only payload (TC-090-scheduled-ready)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T12:29:11.435Z",
3
+ "updatedAt": "2026-09-07T12:29:45.586Z",
4
+ "purpose": "Cover AC-6002-1 via anatomy test: shipped wrangler-test-scheduled probe module drives wrangler dev --test-scheduled on the cf-platform fixture and asserts cronFired fires",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-6002-1"
8
+ ],
9
+ "id": "TS-091",
10
+ "usId": "US-6002",
11
+ "title": "T-2 wrangler-test-scheduled probe passes on the fixture",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-091-wrangler-test-scheduled",
15
+ "acId": "AC-6002-1",
16
+ "description": "Cover AC-6002-1 via anatomy test: wrangler-test-scheduled probe runs against the cf-platform fixture and returns aggregateVerdict pass or warn on a wrangler regression",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::wrangler-test-scheduled probe binds and drives cronFired on the cf-platform fixture (TC-091-wrangler-test-scheduled)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T12:29:11.616Z",
3
+ "updatedAt": "2026-09-07T12:29:45.765Z",
4
+ "purpose": "Cover AC-6003-1 via anatomy test: shipped real-account-scheduled-smoke probe returns accountBoundSkipped and exits 0 without CI_HAS_CLOUDFLARE_ACCOUNT",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-6003-1"
8
+ ],
9
+ "id": "TS-092",
10
+ "usId": "US-6003",
11
+ "title": "T-2 real-account live-cron smoke probe pass-with-skip",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-092-real-account-smoke-skip",
15
+ "acId": "AC-6003-1",
16
+ "description": "Cover AC-6003-1 via anatomy test: real-account-scheduled-smoke probe records accountBoundSkipped: true and aggregates to pass without CI_HAS_CLOUDFLARE_ACCOUNT",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::real-account live-cron smoke probe records accountBoundSkipped without env var (TC-092-real-account-smoke-skip)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "createdAt": "2026-09-07T12:29:11.795Z",
3
+ "updatedAt": "2026-09-07T12:29:46.122Z",
4
+ "purpose": "Cover AC-6101-1 and AC-6101-2 via anatomy test: shipped dispatcher-routing probe drives two spy handlers on two expressions plus one unmatched expression and asserts the routed-only invocation and cronUnmatched event",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-6101-1",
8
+ "AC-6101-2"
9
+ ],
10
+ "id": "TS-093",
11
+ "usId": "US-6101",
12
+ "title": "T-2 dispatcher-routing probe passes on two spy handlers",
13
+ "testCases": [
14
+ {
15
+ "id": "TC-093-dispatch-matched",
16
+ "acId": "AC-6101-1",
17
+ "description": "Cover AC-6101-1 via anatomy test: dispatcher-routing probe drives the matched route and only the matched spy is invoked with the bounded context",
18
+ "status": "pending",
19
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::dispatcher-routing probe routes matched expression to the matched spy only (TC-093-dispatch-matched)"
20
+ },
21
+ {
22
+ "id": "TC-093-dispatch-unmatched",
23
+ "acId": "AC-6101-2",
24
+ "description": "Cover AC-6101-2 via anatomy test: dispatcher-routing probe drives an unmatched expression and asserts cronUnmatched with no spy invocation",
25
+ "status": "pending",
26
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::dispatcher-routing probe fires cronUnmatched on unmatched expression with no spy invocation (TC-093-dispatch-unmatched)"
27
+ }
28
+ ],
29
+ "status": "draft"
30
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "createdAt": "2026-09-07T12:29:11.974Z",
3
+ "updatedAt": "2026-09-07T12:29:46.479Z",
4
+ "purpose": "Cover AC-6201-1 and AC-6201-2 via anatomy test: shipped skew-tolerance probe drives a fake-clock aligned fire (cronFired outcome onTime) and a fake-clock shifted fire (cronSkewed with delta)",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-6201-1",
8
+ "AC-6201-2"
9
+ ],
10
+ "id": "TS-094",
11
+ "usId": "US-6201",
12
+ "title": "T-2 skew-tolerance probe passes on fake-clock aligned and shifted fires",
13
+ "testCases": [
14
+ {
15
+ "id": "TC-094-skew-on-time",
16
+ "acId": "AC-6201-1",
17
+ "description": "Cover AC-6201-1 via anatomy test: skew-tolerance probe with aligned fake clock drives cronFired outcome onTime and no cronSkewed",
18
+ "status": "pending",
19
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::skew-tolerance probe fires cronFired outcome onTime when clock is inside the window (TC-094-skew-on-time)"
20
+ },
21
+ {
22
+ "id": "TC-094-skew-outside",
23
+ "acId": "AC-6201-2",
24
+ "description": "Cover AC-6201-2 via anatomy test: skew-tolerance probe with shifted fake clock drives cronSkewed with the observed delta and the routed handler runs",
25
+ "status": "pending",
26
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::skew-tolerance probe fires cronSkewed with delta when clock is outside the window (TC-094-skew-outside)"
27
+ }
28
+ ],
29
+ "status": "draft"
30
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "createdAt": "2026-09-07T12:29:12.153Z",
3
+ "updatedAt": "2026-09-07T12:29:46.836Z",
4
+ "purpose": "Cover AC-6301-1 and AC-6301-2 via anatomy test: shipped skew-tolerance probe drives a spy handler past softBudgetMs=100 and asserts cronStalled fires without terminating the handler; the handler resolves and a final cronFired follows",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-6301-1",
8
+ "AC-6301-2"
9
+ ],
10
+ "id": "TS-095",
11
+ "usId": "US-6301",
12
+ "title": "T-2 soft-budget verdict on skew-tolerance probe passes cronStalled without termination",
13
+ "testCases": [
14
+ {
15
+ "id": "TC-095-soft-budget-fires",
16
+ "acId": "AC-6301-1",
17
+ "description": "Cover AC-6301-1 via anatomy test: skew-tolerance probe drives a spy handler past softBudgetMs=100 and asserts exactly one cronStalled fires with the observed duration >= budget",
18
+ "status": "pending",
19
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::soft-budget breach fires cronStalled once on the shipped dispatcher (TC-095-soft-budget-fires)"
20
+ },
21
+ {
22
+ "id": "TC-095-soft-budget-continues",
23
+ "acId": "AC-6301-2",
24
+ "description": "Cover AC-6301-2 via anatomy test: skew-tolerance probe drives a spy handler past softBudgetMs=100 and asserts the handler runs to completion; a final cronFired follows the cronStalled record",
25
+ "status": "pending",
26
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::soft-budget breach does not terminate the handler and a final cronFired follows (TC-095-soft-budget-continues)"
27
+ }
28
+ ],
29
+ "status": "draft"
30
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T12:29:12.332Z",
3
+ "updatedAt": "2026-09-07T12:29:47.015Z",
4
+ "purpose": "Cover AC-6302-1 via anatomy test: shipped event-secrecy probe returns aggregateVerdict pass with zero forbidden keys and zero PII substrings; mutation-run with SIMULATE_PII_LEAK=true returns aggregateVerdict fail with the leaked fields named",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-6302-1"
8
+ ],
9
+ "id": "TS-096",
10
+ "usId": "US-6302",
11
+ "title": "T-2 event-secrecy probe passes on shipped and refuses on SIMULATE_PII_LEAK",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-096-event-secrecy",
15
+ "acId": "AC-6302-1",
16
+ "description": "Cover AC-6302-1 via anatomy test: event-secrecy probe returns aggregateVerdict pass on the shipped code path with zero forbidden keys and zero PII substrings",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-cron-triggers-anatomy.test.js::event-secrecy probe returns pass with zero forbidden keys and zero PII hits on shipped path (TC-096-event-secrecy)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:43.218Z",
3
+ "updatedAt": "2026-09-07T14:14:37.069Z",
4
+ "purpose": "Cover AC-7001-1 via anatomy test: DO facade ready() emits namespaceReady with metadata-only payload",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7001-1"
8
+ ],
9
+ "id": "TS-100",
10
+ "usId": "US-7001",
11
+ "title": "T-3 DO facade opens on boot and emits namespaceReady",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-100-do-facade-ready",
15
+ "acId": "AC-7001-1",
16
+ "description": "AC-7001-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::DO facade opens on boot and emits namespaceReady with metadata-only payload (TC-100-do-facade-ready)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:43.399Z",
3
+ "updatedAt": "2026-09-07T14:14:37.070Z",
4
+ "purpose": "Cover AC-7101-1 via anatomy test: two concurrent increments serialise in FIFO order and read returns sum",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7101-1"
8
+ ],
9
+ "id": "TS-101",
10
+ "usId": "US-7101",
11
+ "title": "T-3 single-cell concurrent increment",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-101-single-cell-concurrent",
15
+ "acId": "AC-7101-1",
16
+ "description": "AC-7101-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::two concurrent increments serialise per instance and read returns the sum (TC-101-single-cell-concurrent)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:43.579Z",
3
+ "updatedAt": "2026-09-07T14:14:37.070Z",
4
+ "purpose": "Cover AC-7201-1 via anatomy test: storage round-trip on both sql and kv backends",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7201-1"
8
+ ],
9
+ "id": "TS-102",
10
+ "usId": "US-7201",
11
+ "title": "T-3 storage round-trip",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-102-storage-round-trip",
15
+ "acId": "AC-7201-1",
16
+ "description": "AC-7201-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::storage round-trip covers put get delete list on both sql and kv backends (TC-102-storage-round-trip)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:43.758Z",
3
+ "updatedAt": "2026-09-07T14:14:37.070Z",
4
+ "purpose": "Cover AC-7301-1 via anatomy test: alarm fires once and drains storage",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7301-1"
8
+ ],
9
+ "id": "TS-103",
10
+ "usId": "US-7301",
11
+ "title": "T-3 alarm fires once",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-103-alarm-fires-once",
15
+ "acId": "AC-7301-1",
16
+ "description": "AC-7301-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::alarm fires exactly once and drains storage (TC-103-alarm-fires-once)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:43.939Z",
3
+ "updatedAt": "2026-09-07T14:14:37.070Z",
4
+ "purpose": "Cover AC-7401-1 via anatomy test: hub broadcast fans out within window",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7401-1"
8
+ ],
9
+ "id": "TS-104",
10
+ "usId": "US-7401",
11
+ "title": "T-3 hub broadcast within window",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-104-hub-broadcast",
15
+ "acId": "AC-7401-1",
16
+ "description": "AC-7401-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::hub broadcast fans out to all connected clients within the elicited window (TC-104-hub-broadcast)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:44.119Z",
3
+ "updatedAt": "2026-09-07T14:14:37.070Z",
4
+ "purpose": "Cover AC-7402-1 via anatomy test: hibernate-and-wake round-trip preserves storage",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7402-1"
8
+ ],
9
+ "id": "TS-105",
10
+ "usId": "US-7402",
11
+ "title": "T-3 hibernate-and-wake preserves storage",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-105-hibernate-wake",
15
+ "acId": "AC-7402-1",
16
+ "description": "AC-7402-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::hibernate and wake round trip preserves storage and doWakeUp fires exactly once (TC-105-hibernate-wake)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:44.299Z",
3
+ "updatedAt": "2026-09-07T14:14:37.070Z",
4
+ "purpose": "Cover AC-7501-1 via anatomy test: event-secrecy on shipped path returns pass with zero forbidden keys",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7501-1"
8
+ ],
9
+ "id": "TS-106",
10
+ "usId": "US-7501",
11
+ "title": "T-3 event-secrecy shipped path",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-106-event-secrecy",
15
+ "acId": "AC-7501-1",
16
+ "description": "AC-7501-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::event-secrecy result on the hub broadcast probe returns pass on the shipped path (TC-106-event-secrecy)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:44.480Z",
3
+ "updatedAt": "2026-09-07T14:14:37.070Z",
4
+ "purpose": "Cover AC-7601-1 via anatomy test: sole-reader-scan probe module exports the anchor and shape",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7601-1"
8
+ ],
9
+ "id": "TS-107",
10
+ "usId": "US-7601",
11
+ "title": "T-3 sole-reader-scan probe shape",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-107-sole-reader-scan",
15
+ "acId": "AC-7601-1",
16
+ "description": "AC-7601-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::sole-reader-scan probe binds and surfaces no leaks on the clean fixture (TC-107-sole-reader-scan)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:44.660Z",
3
+ "updatedAt": "2026-09-07T14:14:37.070Z",
4
+ "purpose": "Cover AC-7701-1 via anatomy test: wrangler.toml carries DO bindings and migrations tag",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7701-1"
8
+ ],
9
+ "id": "TS-108",
10
+ "usId": "US-7701",
11
+ "title": "T-3 wrangler.toml DO bindings and migrations",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-108-wrangler-do-bindings",
15
+ "acId": "AC-7701-1",
16
+ "description": "AC-7701-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::wrangler toml carries DO bindings and migrations tag additively over T-0 T-1 T-2 blocks (TC-108-wrangler-do-bindings)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T14:13:44.840Z",
3
+ "updatedAt": "2026-09-07T14:14:37.071Z",
4
+ "purpose": "Cover AC-7002-1 via anatomy test: real-account probe records accountBoundSkipped without env var",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-7002-1"
8
+ ],
9
+ "id": "TS-109",
10
+ "usId": "US-7002",
11
+ "title": "T-3 real-account probe skipped without env var",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-109-real-account-skip",
15
+ "acId": "AC-7002-1",
16
+ "description": "AC-7002-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/platform-cloudflare-durable-objects-anatomy.test.js::real-account storage smoke probe records accountBoundSkipped without env var (TC-109-real-account-skip)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T16:52:18.024Z",
3
+ "updatedAt": "2026-09-07T16:53:10.788Z",
4
+ "purpose": "Cover AC-8001-1 via anatomy test: fixture JWT validates, principal reduces to {email,sub,groups} on request.auth",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-8001-1"
8
+ ],
9
+ "id": "TS-110",
10
+ "usId": "US-8001",
11
+ "title": "T-4 JWT validator: fixture-signed JWT validates and principal reduces onto request.auth",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-110-jwt-validator-pass",
15
+ "acId": "AC-8001-1",
16
+ "description": "AC-8001-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/edge-cloudflare-access-anatomy.test.js::JWT validator validates a fixture-signed JWT and reduces principal onto request auth (TC-110-jwt-validator-pass)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T16:52:18.228Z",
3
+ "updatedAt": "2026-09-07T16:53:10.972Z",
4
+ "purpose": "Cover AC-8002-1 via anatomy test: missing, expired, mis-signed each 401 with allowed audit keys only",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-8002-1"
8
+ ],
9
+ "id": "TS-111",
10
+ "usId": "US-8002",
11
+ "title": "T-4 JWT validator: reject cases return 401 with metadata-only audit event",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-111-jwt-validator-reject",
15
+ "acId": "AC-8002-1",
16
+ "description": "AC-8002-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/edge-cloudflare-access-anatomy.test.js::JWT validator rejects missing expired and mis-signed with metadata-only audit event (TC-111-jwt-validator-reject)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T16:52:18.413Z",
3
+ "updatedAt": "2026-09-07T16:53:11.156Z",
4
+ "purpose": "Cover AC-8003-1 via anatomy test: fixture applied source tree grepped, only validator hits the header string in live source",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-8003-1"
8
+ ],
9
+ "id": "TS-112",
10
+ "usId": "US-8003",
11
+ "title": "T-4 sole-reader guarantee: src/jwt-validator.mjs is the only reader of the Cf-Access-Jwt-Assertion header",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-112-sole-reader-boundary",
15
+ "acId": "AC-8003-1",
16
+ "description": "AC-8003-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/edge-cloudflare-access-anatomy.test.js::jwt-validator mjs is the sole reader of the Cf-Access-Jwt-Assertion header in the fixture source tree (TC-112-sole-reader-boundary)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "createdAt": "2026-09-07T16:52:18.597Z",
3
+ "updatedAt": "2026-09-07T16:53:11.340Z",
4
+ "purpose": "Cover AC-8101-1 via anatomy test: blueprint.json elicits block carries the expected ids and default values",
5
+ "testLevel": "unit",
6
+ "acIds": [
7
+ "AC-8101-1"
8
+ ],
9
+ "id": "TS-113",
10
+ "usId": "US-8101",
11
+ "title": "T-4 Access application declaration: elicits access-application-host/id and access-policy-shape",
12
+ "testCases": [
13
+ {
14
+ "id": "TC-113-elicits-application-declaration",
15
+ "acId": "AC-8101-1",
16
+ "description": "AC-8101-1 anatomy proof",
17
+ "status": "pending",
18
+ "testPointer": "test/blueprint/edge-cloudflare-access-anatomy.test.js::blueprint json elicits Access application host or self-hosted id plus policy shape enum (TC-113-elicits-application-declaration)"
19
+ }
20
+ ],
21
+ "status": "draft"
22
+ }