rcf-lite 0.26.0 → 0.28.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 (1525) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +10 -0
  3. package/bin/rcf.js +2 -0
  4. package/blueprints/application-account-settings/CHANGELOG.md +64 -2
  5. package/blueprints/application-account-settings/README.md +10 -10
  6. package/blueprints/application-account-settings/blueprint.json +26 -4
  7. package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +1 -1
  8. package/blueprints/application-account-settings/contributions/adrs/adr-2602-application-account-settings-security-surface-shape.json +1 -1
  9. package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +5 -5
  10. package/blueprints/application-account-settings/contributions/probes/probe-utils.mjs +177 -0
  11. package/blueprints/application-account-settings/contributions/probes/profile-form-autocomplete.mjs +67 -0
  12. package/blueprints/application-account-settings/contributions/probes/run-profile-form-autocomplete.mjs +5 -0
  13. package/blueprints/application-account-settings/contributions/probes/run-sessions-adapter-uniform.mjs +5 -0
  14. package/blueprints/application-account-settings/contributions/probes/run-sessions-surface-shape.mjs +5 -0
  15. package/blueprints/application-account-settings/contributions/probes/run-shell-tablist-per-capability.mjs +5 -0
  16. package/blueprints/application-account-settings/contributions/probes/run-theme-radiogroup.mjs +5 -0
  17. package/blueprints/application-account-settings/contributions/probes/sessions-adapter-uniform.mjs +130 -0
  18. package/blueprints/application-account-settings/contributions/probes/sessions-surface-shape.mjs +70 -0
  19. package/blueprints/application-account-settings/contributions/probes/shell-tablist-per-capability.mjs +60 -0
  20. package/blueprints/application-account-settings/contributions/probes/theme-radiogroup.mjs +126 -0
  21. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +6 -2
  22. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +4 -0
  23. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +7 -3
  24. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +4 -0
  25. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +4 -0
  26. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +6 -2
  27. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-007.json +22 -0
  28. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-009.json +21 -0
  29. package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +8 -4
  30. package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +3 -3
  31. package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +13 -7
  32. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +19 -3
  33. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -2
  34. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +13 -2
  35. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +23 -2
  36. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +51 -3
  37. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +25 -6
  38. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +13 -2
  39. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -2
  40. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +4 -2
  41. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +13 -2
  42. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25111.json +71 -0
  43. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25112.json +77 -0
  44. package/blueprints/application-account-settings/docs/topics.md +4 -4
  45. package/blueprints/application-account-settings/guide/application-account-settings.md +1 -1
  46. package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +2 -2
  47. package/blueprints/application-admin-console/CHANGELOG.md +69 -7
  48. package/blueprints/application-admin-console/README.md +4 -4
  49. package/blueprints/application-admin-console/blueprint.json +34 -2
  50. package/blueprints/application-admin-console/contributions/adrs/adr-2201-application-admin-console-capability-vocabulary.json +2 -2
  51. package/blueprints/application-admin-console/contributions/adrs/adr-2203-application-admin-console-invite-transport.json +5 -5
  52. package/blueprints/application-admin-console/contributions/adrs/adr-2204-application-admin-console-audit-retention.json +7 -7
  53. package/blueprints/application-admin-console/contributions/adrs/adr-2214-application-admin-console-consume-zero-trust-gate.json +3 -3
  54. package/blueprints/application-admin-console/contributions/probes/audit-log-surface.mjs +79 -0
  55. package/blueprints/application-admin-console/contributions/probes/org-switcher-surface.mjs +83 -0
  56. package/blueprints/application-admin-console/contributions/probes/permission-matrix-grid.mjs +67 -0
  57. package/blueprints/application-admin-console/contributions/probes/probe-utils.mjs +177 -0
  58. package/blueprints/application-admin-console/contributions/probes/run-audit-log-surface.mjs +5 -0
  59. package/blueprints/application-admin-console/contributions/probes/run-org-switcher-surface.mjs +5 -0
  60. package/blueprints/application-admin-console/contributions/probes/run-permission-matrix-grid.mjs +5 -0
  61. package/blueprints/application-admin-console/contributions/probes/run-sign-in-access-gated-surface.mjs +5 -0
  62. package/blueprints/application-admin-console/contributions/probes/run-users-directory-surface.mjs +5 -0
  63. package/blueprints/application-admin-console/contributions/probes/sign-in-access-gated-surface.mjs +117 -0
  64. package/blueprints/application-admin-console/contributions/probes/users-directory-surface.mjs +145 -0
  65. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +4 -0
  66. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +5 -1
  67. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +4 -0
  68. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +4 -0
  69. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +6 -2
  70. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +4 -0
  71. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-007.json +22 -0
  72. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-008.json +22 -0
  73. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-009.json +21 -0
  74. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-014.json +6 -2
  75. package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +9 -7
  76. package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +6 -6
  77. package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +1 -1
  78. package/blueprints/application-admin-console/contributions/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +5 -5
  79. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21101.json +4 -2
  80. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21102.json +4 -2
  81. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21103.json +10 -4
  82. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21104.json +13 -2
  83. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21105.json +15 -3
  84. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21106.json +35 -2
  85. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +22 -3
  86. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21108.json +4 -2
  87. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21109.json +4 -2
  88. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21110.json +68 -0
  89. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21111.json +76 -0
  90. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21112.json +77 -0
  91. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21815.json +21 -2
  92. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21816.json +21 -2
  93. package/blueprints/application-admin-console/guide/application-admin-console.md +3 -3
  94. package/blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs +2 -2
  95. package/blueprints/application-api-rest/CHANGELOG.md +34 -0
  96. package/blueprints/application-api-rest/README.md +3 -3
  97. package/blueprints/application-api-rest/assets/samples/request-response-pairs.md +2 -0
  98. package/blueprints/application-api-rest/blueprint.json +3 -2
  99. package/blueprints/application-api-rest/contributions/adrs/adr-301-application-api-rest-error-envelope.json +1 -1
  100. package/blueprints/application-api-rest/contributions/adrs/adr-302-application-api-rest-auth-model.json +2 -2
  101. package/blueprints/application-api-rest/contributions/adrs/adr-303-application-api-rest-api-versioning.json +1 -1
  102. package/blueprints/application-api-rest/contributions/adrs/adr-304-application-api-rest-logging.json +1 -1
  103. package/blueprints/application-api-rest/contributions/adrs/adr-305-application-api-rest-pagination.json +1 -1
  104. package/blueprints/application-api-rest/contributions/adrs/adr-306-application-api-rest-idempotency.json +3 -3
  105. package/blueprints/application-api-rest/contributions/adrs/adr-307-application-api-rest-openapi-generation.json +1 -1
  106. package/blueprints/application-api-rest/contributions/adrs/adr-308-application-api-rest-rate-limiting.json +1 -1
  107. package/blueprints/application-api-rest/contributions/probes/cursor-pagination-round-trip.mjs +154 -0
  108. package/blueprints/application-api-rest/contributions/probes/health-probes-distinct.mjs +124 -0
  109. package/blueprints/application-api-rest/contributions/probes/probe-utils.mjs +177 -0
  110. package/blueprints/application-api-rest/contributions/probes/problem-details-on-error.mjs +77 -0
  111. package/blueprints/application-api-rest/contributions/probes/request-id-echoed.mjs +76 -0
  112. package/blueprints/application-api-rest/contributions/probes/run-cursor-pagination-round-trip.mjs +5 -0
  113. package/blueprints/application-api-rest/contributions/probes/run-health-probes-distinct.mjs +5 -0
  114. package/blueprints/application-api-rest/contributions/probes/run-problem-details-on-error.mjs +5 -0
  115. package/blueprints/application-api-rest/contributions/probes/run-request-id-echoed.mjs +5 -0
  116. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-001.json +6 -2
  117. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-002.json +7 -3
  118. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-003.json +6 -2
  119. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-004.json +6 -2
  120. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-005.json +6 -2
  121. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-006.json +6 -2
  122. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-007.json +6 -2
  123. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-008.json +6 -2
  124. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-009.json +6 -2
  125. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-010.json +8 -4
  126. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-011.json +6 -2
  127. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-012.json +6 -2
  128. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-013.json +7 -3
  129. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-014.json +6 -2
  130. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-015.json +6 -2
  131. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-016.json +6 -2
  132. package/blueprints/application-api-rest/contributions/tacs/tac-301-application-api-rest-request-pipeline.json +1 -1
  133. package/blueprints/application-api-rest/contributions/tacs/tac-302-application-api-rest-auth-middleware.json +1 -1
  134. package/blueprints/application-api-rest/contributions/tacs/tac-303-application-api-rest-contract-surface.json +2 -2
  135. package/blueprints/application-api-rest/contributions/tacs/tac-304-application-api-rest-resource-layer.json +1 -1
  136. package/blueprints/application-api-rest/contributions/tacs/tac-305-application-api-rest-observability.json +1 -1
  137. package/blueprints/application-api-rest/contributions/tacs/tac-306-application-api-rest-operability.json +1 -1
  138. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2101.json +13 -7
  139. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2102.json +27 -13
  140. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2103.json +18 -9
  141. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2104.json +32 -10
  142. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2105.json +19 -6
  143. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2106.json +14 -8
  144. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2107.json +20 -12
  145. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2108.json +37 -15
  146. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2109.json +15 -9
  147. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2110.json +21 -11
  148. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2111.json +42 -8
  149. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2112.json +23 -13
  150. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2113.json +17 -11
  151. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2114.json +13 -8
  152. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2115.json +13 -8
  153. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2116.json +11 -6
  154. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2117.json +19 -14
  155. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2118.json +20 -10
  156. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2119.json +20 -7
  157. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2120.json +16 -10
  158. package/blueprints/application-api-rest/docs/topics.md +1 -1
  159. package/blueprints/application-charts/CHANGELOG.md +53 -6
  160. package/blueprints/application-charts/README.md +10 -10
  161. package/blueprints/application-charts/blueprint.json +115 -19
  162. package/blueprints/application-charts/contributions/adrs/adr-1901-application-charts-engine-choice.json +2 -2
  163. package/blueprints/application-charts/contributions/adrs/adr-1902-application-charts-accessible-palette.json +1 -1
  164. package/blueprints/application-charts/contributions/adrs/adr-1903-application-charts-motion.json +1 -1
  165. package/blueprints/application-charts/contributions/probes/keyboard-traversal.mjs +151 -0
  166. package/blueprints/application-charts/contributions/probes/non-colour-distinction.mjs +67 -0
  167. package/blueprints/application-charts/contributions/probes/probe-utils.mjs +177 -0
  168. package/blueprints/application-charts/contributions/probes/run-keyboard-traversal.mjs +5 -0
  169. package/blueprints/application-charts/contributions/probes/run-non-colour-distinction.mjs +5 -0
  170. package/blueprints/application-charts/contributions/probes/run-text-alternative-table.mjs +5 -0
  171. package/blueprints/application-charts/contributions/probes/text-alternative-table.mjs +139 -0
  172. package/blueprints/application-charts/contributions/requirements/application-charts-req-001.json +11 -4
  173. package/blueprints/application-charts/contributions/requirements/application-charts-req-002.json +11 -4
  174. package/blueprints/application-charts/contributions/requirements/application-charts-req-003.json +10 -3
  175. package/blueprints/application-charts/contributions/requirements/application-charts-req-004.json +10 -3
  176. package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +3 -2
  177. package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +1 -1
  178. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18101.json +52 -8
  179. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18102.json +58 -6
  180. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18103.json +54 -6
  181. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18104.json +55 -6
  182. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +64 -8
  183. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18106.json +45 -7
  184. package/blueprints/application-charts/docs/topics.md +2 -2
  185. package/blueprints/application-charts/guide/application-charts.md +3 -3
  186. package/blueprints/application-charts/probe-packs/application-charts.pack.mjs +2 -2
  187. package/blueprints/application-dashboard/CHANGELOG.md +39 -8
  188. package/blueprints/application-dashboard/README.md +13 -13
  189. package/blueprints/application-dashboard/assets/guidance/dashboard-design.md +2 -2
  190. package/blueprints/application-dashboard/blueprint.json +149 -22
  191. package/blueprints/application-dashboard/contributions/adrs/adr-2001-application-dashboard-primary-kpi-enum.json +4 -4
  192. package/blueprints/application-dashboard/contributions/adrs/adr-2002-application-dashboard-timeframe-presets.json +2 -2
  193. package/blueprints/application-dashboard/contributions/adrs/adr-2003-application-dashboard-export-formats.json +1 -1
  194. package/blueprints/application-dashboard/contributions/probes/export-handle-formats.mjs +75 -0
  195. package/blueprints/application-dashboard/contributions/probes/four-tile-states.mjs +75 -0
  196. package/blueprints/application-dashboard/contributions/probes/primary-kpi-top-left.mjs +58 -0
  197. package/blueprints/application-dashboard/contributions/probes/probe-utils.mjs +177 -0
  198. package/blueprints/application-dashboard/contributions/probes/run-export-handle-formats.mjs +4 -0
  199. package/blueprints/application-dashboard/contributions/probes/run-four-tile-states.mjs +4 -0
  200. package/blueprints/application-dashboard/contributions/probes/run-primary-kpi-top-left.mjs +4 -0
  201. package/blueprints/application-dashboard/contributions/probes/run-shell-five-regions.mjs +4 -0
  202. package/blueprints/application-dashboard/contributions/probes/shell-five-regions.mjs +93 -0
  203. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-001.json +10 -3
  204. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-002.json +11 -4
  205. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-003.json +11 -4
  206. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-004.json +11 -4
  207. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-005.json +11 -4
  208. package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +1 -1
  209. package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +2 -2
  210. package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +3 -3
  211. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19101.json +55 -7
  212. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19102.json +56 -8
  213. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19103.json +59 -7
  214. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19104.json +55 -7
  215. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19105.json +55 -7
  216. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +60 -8
  217. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19107.json +57 -9
  218. package/blueprints/application-dashboard/docs/topics.md +3 -3
  219. package/blueprints/application-dashboard/guide/application-dashboard.md +5 -5
  220. package/blueprints/application-dashboard/probe-packs/application-dashboard.pack.mjs +4 -4
  221. package/blueprints/application-datatable/CHANGELOG.md +36 -5
  222. package/blueprints/application-datatable/README.md +4 -4
  223. package/blueprints/application-datatable/blueprint.json +169 -26
  224. package/blueprints/application-datatable/contributions/adrs/adr-1801-application-datatable-pattern-choice.json +1 -1
  225. package/blueprints/application-datatable/contributions/adrs/adr-1802-application-datatable-url-state.json +1 -1
  226. package/blueprints/application-datatable/contributions/adrs/adr-1803-application-datatable-page-size.json +1 -1
  227. package/blueprints/application-datatable/contributions/adrs/adr-1804-application-datatable-selection-persistence.json +1 -1
  228. package/blueprints/application-datatable/contributions/probes/apg-table-shape.mjs +57 -0
  229. package/blueprints/application-datatable/contributions/probes/four-states-regions.mjs +80 -0
  230. package/blueprints/application-datatable/contributions/probes/probe-utils.mjs +177 -0
  231. package/blueprints/application-datatable/contributions/probes/run-apg-table-shape.mjs +4 -0
  232. package/blueprints/application-datatable/contributions/probes/run-four-states-regions.mjs +4 -0
  233. package/blueprints/application-datatable/contributions/probes/run-search-adapter-round-trip.mjs +4 -0
  234. package/blueprints/application-datatable/contributions/probes/run-sort-adapter-round-trip.mjs +4 -0
  235. package/blueprints/application-datatable/contributions/probes/search-adapter-round-trip.mjs +58 -0
  236. package/blueprints/application-datatable/contributions/probes/sort-adapter-round-trip.mjs +60 -0
  237. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-001.json +11 -4
  238. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-002.json +11 -4
  239. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-003.json +10 -3
  240. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-004.json +11 -4
  241. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-005.json +10 -3
  242. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-006.json +11 -4
  243. package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +1 -1
  244. package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +1 -1
  245. package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +2 -2
  246. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +29 -7
  247. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +29 -7
  248. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +28 -6
  249. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17104.json +65 -7
  250. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +32 -7
  251. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17106.json +60 -7
  252. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17107.json +72 -7
  253. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17108.json +59 -9
  254. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17109.json +58 -9
  255. package/blueprints/application-datatable/docs/topics.md +1 -1
  256. package/blueprints/application-datatable/guide/application-datatable.md +1 -1
  257. package/blueprints/application-empty-error-states/CHANGELOG.md +64 -4
  258. package/blueprints/application-empty-error-states/README.md +3 -3
  259. package/blueprints/application-empty-error-states/blueprint.json +38 -2
  260. package/blueprints/application-empty-error-states/contributions/probes/empty-list-and-no-search.mjs +66 -0
  261. package/blueprints/application-empty-error-states/contributions/probes/error-boundary-alert.mjs +65 -0
  262. package/blueprints/application-empty-error-states/contributions/probes/forbidden-and-server-error.mjs +167 -0
  263. package/blueprints/application-empty-error-states/contributions/probes/not-found-and-recovery.mjs +61 -0
  264. package/blueprints/application-empty-error-states/contributions/probes/permission-denied-and-offline.mjs +155 -0
  265. package/blueprints/application-empty-error-states/contributions/probes/probe-utils.mjs +177 -0
  266. package/blueprints/application-empty-error-states/contributions/probes/run-empty-list-and-no-search.mjs +5 -0
  267. package/blueprints/application-empty-error-states/contributions/probes/run-error-boundary-alert.mjs +5 -0
  268. package/blueprints/application-empty-error-states/contributions/probes/run-forbidden-and-server-error.mjs +5 -0
  269. package/blueprints/application-empty-error-states/contributions/probes/run-not-found-and-recovery.mjs +5 -0
  270. package/blueprints/application-empty-error-states/contributions/probes/run-permission-denied-and-offline.mjs +5 -0
  271. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +4 -0
  272. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +7 -3
  273. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +4 -0
  274. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +6 -2
  275. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +7 -3
  276. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-006.json +21 -0
  277. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-007.json +21 -0
  278. package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +7 -4
  279. package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +3 -2
  280. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +17 -2
  281. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +31 -2
  282. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +27 -2
  283. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +13 -2
  284. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +33 -2
  285. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +13 -2
  286. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +23 -2
  287. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +27 -2
  288. package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +93 -9
  289. package/blueprints/application-error-handling/CHANGELOG.md +56 -0
  290. package/blueprints/application-error-handling/blueprint.json +106 -20
  291. package/blueprints/application-error-handling/contributions/adrs/adr-1701-application-error-handling-record-shape.json +1 -1
  292. package/blueprints/application-error-handling/contributions/adrs/adr-1702-application-error-handling-classification-vocabulary.json +1 -1
  293. package/blueprints/application-error-handling/contributions/adrs/adr-1703-application-error-handling-transport-mapping.json +1 -1
  294. package/blueprints/application-error-handling/contributions/probes/category-vocabulary.mjs +90 -0
  295. package/blueprints/application-error-handling/contributions/probes/probe-utils.mjs +177 -0
  296. package/blueprints/application-error-handling/contributions/probes/record-shape-adr-1701.mjs +78 -0
  297. package/blueprints/application-error-handling/contributions/probes/run-category-vocabulary.mjs +5 -0
  298. package/blueprints/application-error-handling/contributions/probes/run-record-shape-adr-1701.mjs +5 -0
  299. package/blueprints/application-error-handling/contributions/probes/run-two-boundaries-registered.mjs +5 -0
  300. package/blueprints/application-error-handling/contributions/probes/two-boundaries-registered.mjs +343 -0
  301. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-001.json +10 -3
  302. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-002.json +10 -3
  303. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-003.json +10 -3
  304. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-004.json +10 -3
  305. package/blueprints/application-error-handling/contributions/tacs/tac-1701-application-error-handling-boundary.json +1 -1
  306. package/blueprints/application-error-handling/contributions/tacs/tac-1702-application-error-handling-record-factory.json +1 -1
  307. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16101.json +63 -4
  308. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16102.json +49 -4
  309. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16103.json +51 -5
  310. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16104.json +49 -4
  311. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16105.json +49 -4
  312. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16106.json +49 -4
  313. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16107.json +53 -4
  314. package/blueprints/application-file-upload/CHANGELOG.md +60 -5
  315. package/blueprints/application-file-upload/README.md +1 -1
  316. package/blueprints/application-file-upload/blueprint.json +58 -2
  317. package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +3 -3
  318. package/blueprints/application-file-upload/contributions/probes/assertive-completion-slot.mjs +78 -0
  319. package/blueprints/application-file-upload/contributions/probes/chunked-transport-endpoints.mjs +173 -0
  320. package/blueprints/application-file-upload/contributions/probes/per-file-progressbar.mjs +124 -0
  321. package/blueprints/application-file-upload/contributions/probes/probe-utils.mjs +177 -0
  322. package/blueprints/application-file-upload/contributions/probes/run-assertive-completion-slot.mjs +4 -0
  323. package/blueprints/application-file-upload/contributions/probes/run-chunked-transport-endpoints.mjs +4 -0
  324. package/blueprints/application-file-upload/contributions/probes/run-per-file-progressbar.mjs +4 -0
  325. package/blueprints/application-file-upload/contributions/probes/run-upload-surface-shape.mjs +4 -0
  326. package/blueprints/application-file-upload/contributions/probes/upload-surface-shape.mjs +55 -0
  327. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +5 -1
  328. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +8 -4
  329. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +7 -3
  330. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +7 -3
  331. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +5 -1
  332. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-006.json +21 -0
  333. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-007.json +21 -0
  334. package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +4 -2
  335. package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +7 -2
  336. package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +16 -6
  337. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +23 -2
  338. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +29 -4
  339. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +13 -2
  340. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +45 -2
  341. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +37 -2
  342. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +13 -2
  343. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +17 -2
  344. package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +14 -5
  345. package/blueprints/application-forms-wizard/CHANGELOG.md +50 -5
  346. package/blueprints/application-forms-wizard/README.md +3 -3
  347. package/blueprints/application-forms-wizard/blueprint.json +59 -2
  348. package/blueprints/application-forms-wizard/contributions/probes/draft-persistence-round-trip.mjs +110 -0
  349. package/blueprints/application-forms-wizard/contributions/probes/probe-utils.mjs +177 -0
  350. package/blueprints/application-forms-wizard/contributions/probes/run-draft-persistence-round-trip.mjs +4 -0
  351. package/blueprints/application-forms-wizard/contributions/probes/run-step-page-shape.mjs +4 -0
  352. package/blueprints/application-forms-wizard/contributions/probes/run-task-list-surface.mjs +4 -0
  353. package/blueprints/application-forms-wizard/contributions/probes/step-page-shape.mjs +61 -0
  354. package/blueprints/application-forms-wizard/contributions/probes/task-list-surface.mjs +109 -0
  355. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +5 -1
  356. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +7 -3
  357. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +7 -3
  358. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +7 -3
  359. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +5 -1
  360. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-006.json +21 -0
  361. package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +6 -4
  362. package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +4 -3
  363. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +35 -2
  364. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +27 -2
  365. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +21 -2
  366. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +13 -2
  367. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +33 -2
  368. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +18 -3
  369. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +23 -2
  370. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +13 -2
  371. package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +3 -3
  372. package/blueprints/application-notifications-in-app/CHANGELOG.md +70 -5
  373. package/blueprints/application-notifications-in-app/README.md +9 -9
  374. package/blueprints/application-notifications-in-app/blueprint.json +153 -23
  375. package/blueprints/application-notifications-in-app/contributions/adrs/adr-2101-application-notifications-in-app-live-region-role-mapping.json +1 -1
  376. package/blueprints/application-notifications-in-app/contributions/probes/centre-acknowledge-round-trip.mjs +210 -0
  377. package/blueprints/application-notifications-in-app/contributions/probes/live-region-preseeding.mjs +93 -0
  378. package/blueprints/application-notifications-in-app/contributions/probes/probe-utils.mjs +177 -0
  379. package/blueprints/application-notifications-in-app/contributions/probes/run-centre-acknowledge-round-trip.mjs +5 -0
  380. package/blueprints/application-notifications-in-app/contributions/probes/run-live-region-preseeding.mjs +5 -0
  381. package/blueprints/application-notifications-in-app/contributions/probes/run-toast-contract.mjs +5 -0
  382. package/blueprints/application-notifications-in-app/contributions/probes/toast-contract.mjs +92 -0
  383. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +11 -4
  384. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +8 -1
  385. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +10 -3
  386. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +11 -4
  387. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +12 -5
  388. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-006.json +21 -0
  389. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2101-application-notifications-in-app-live-region.json +3 -3
  390. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +15 -9
  391. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +2 -2
  392. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +30 -6
  393. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +44 -6
  394. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +40 -6
  395. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20104.json +31 -5
  396. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +51 -9
  397. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20106.json +19 -4
  398. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20107.json +19 -4
  399. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20108.json +19 -4
  400. package/blueprints/application-notifications-in-app/guide/application-notifications-in-app.md +4 -4
  401. package/blueprints/application-notifications-in-app/probe-packs/application-notifications-in-app.pack.mjs +4 -4
  402. package/blueprints/application-onboarding-tour/CHANGELOG.md +59 -2
  403. package/blueprints/application-onboarding-tour/README.md +3 -3
  404. package/blueprints/application-onboarding-tour/blueprint.json +24 -2
  405. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +4 -4
  406. package/blueprints/application-onboarding-tour/contributions/probes/checklist-anchor-open.mjs +81 -0
  407. package/blueprints/application-onboarding-tour/contributions/probes/completion-persistence.mjs +159 -0
  408. package/blueprints/application-onboarding-tour/contributions/probes/first-run-detection.mjs +67 -0
  409. package/blueprints/application-onboarding-tour/contributions/probes/probe-utils.mjs +177 -0
  410. package/blueprints/application-onboarding-tour/contributions/probes/run-checklist-anchor-open.mjs +5 -0
  411. package/blueprints/application-onboarding-tour/contributions/probes/run-completion-persistence.mjs +5 -0
  412. package/blueprints/application-onboarding-tour/contributions/probes/run-first-run-detection.mjs +5 -0
  413. package/blueprints/application-onboarding-tour/contributions/probes/run-stepper-role-dialog.mjs +5 -0
  414. package/blueprints/application-onboarding-tour/contributions/probes/stepper-role-dialog.mjs +45 -0
  415. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +6 -2
  416. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +6 -2
  417. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +4 -0
  418. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +4 -0
  419. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-005.json +22 -0
  420. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-006.json +22 -0
  421. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +2 -1
  422. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +7 -7
  423. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +67 -2
  424. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +35 -2
  425. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +13 -2
  426. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +33 -2
  427. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +13 -2
  428. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +13 -2
  429. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +17 -2
  430. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26108.json +62 -0
  431. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26109.json +72 -0
  432. package/blueprints/application-onboarding-tour/docs/topics.md +2 -2
  433. package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +1 -1
  434. package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +2 -2
  435. package/blueprints/application-spa/CHANGELOG.md +39 -0
  436. package/blueprints/application-spa/README.md +11 -12
  437. package/blueprints/application-spa/blueprint.json +3 -2
  438. package/blueprints/application-spa/contributions/adrs/adr-201-application-spa-routing.json +1 -1
  439. package/blueprints/application-spa/contributions/adrs/adr-202-application-spa-theming.json +2 -2
  440. package/blueprints/application-spa/contributions/adrs/adr-203-application-spa-client-state.json +1 -1
  441. package/blueprints/application-spa/contributions/adrs/adr-204-application-spa-error-envelope.json +1 -1
  442. package/blueprints/application-spa/contributions/adrs/adr-205-application-spa-auth-model.json +1 -1
  443. package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json +2 -2
  444. package/blueprints/application-spa/contributions/adrs/adr-207-application-spa-motion.json +1 -1
  445. package/blueprints/application-spa/contributions/adrs/adr-208-application-spa-i18n.json +1 -1
  446. package/blueprints/application-spa/contributions/adrs/adr-209-application-spa-telemetry-naming.json +1 -1
  447. package/blueprints/application-spa/contributions/probes/designed-empty-state.mjs +72 -0
  448. package/blueprints/application-spa/contributions/probes/probe-utils.mjs +177 -0
  449. package/blueprints/application-spa/contributions/probes/route-inventory-published.mjs +185 -0
  450. package/blueprints/application-spa/contributions/probes/run-designed-empty-state.mjs +5 -0
  451. package/blueprints/application-spa/contributions/probes/run-route-inventory-published.mjs +5 -0
  452. package/blueprints/application-spa/contributions/probes/run-shell-nav-present.mjs +5 -0
  453. package/blueprints/application-spa/contributions/probes/shell-nav-present.mjs +69 -0
  454. package/blueprints/application-spa/contributions/requirements/application-spa-req-001.json +6 -2
  455. package/blueprints/application-spa/contributions/requirements/application-spa-req-002.json +6 -2
  456. package/blueprints/application-spa/contributions/requirements/application-spa-req-003.json +6 -2
  457. package/blueprints/application-spa/contributions/requirements/application-spa-req-004.json +6 -2
  458. package/blueprints/application-spa/contributions/requirements/application-spa-req-005.json +6 -2
  459. package/blueprints/application-spa/contributions/requirements/application-spa-req-006.json +6 -2
  460. package/blueprints/application-spa/contributions/requirements/application-spa-req-007.json +6 -2
  461. package/blueprints/application-spa/contributions/requirements/application-spa-req-008.json +6 -2
  462. package/blueprints/application-spa/contributions/requirements/application-spa-req-009.json +7 -3
  463. package/blueprints/application-spa/contributions/requirements/application-spa-req-010.json +6 -2
  464. package/blueprints/application-spa/contributions/requirements/application-spa-req-011.json +6 -2
  465. package/blueprints/application-spa/contributions/requirements/application-spa-req-012.json +6 -2
  466. package/blueprints/application-spa/contributions/requirements/application-spa-req-013.json +6 -2
  467. package/blueprints/application-spa/contributions/requirements/application-spa-req-014.json +6 -2
  468. package/blueprints/application-spa/contributions/requirements/application-spa-req-015.json +6 -2
  469. package/blueprints/application-spa/contributions/requirements/application-spa-req-016.json +6 -2
  470. package/blueprints/application-spa/contributions/requirements/application-spa-req-017.json +6 -2
  471. package/blueprints/application-spa/contributions/requirements/application-spa-req-018.json +7 -3
  472. package/blueprints/application-spa/contributions/requirements/application-spa-req-019.json +6 -2
  473. package/blueprints/application-spa/contributions/requirements/application-spa-req-020.json +6 -2
  474. package/blueprints/application-spa/contributions/requirements/application-spa-req-021.json +6 -2
  475. package/blueprints/application-spa/contributions/tacs/tac-201-application-spa-app-shell.json +4 -3
  476. package/blueprints/application-spa/contributions/tacs/tac-202-application-spa-theme-system.json +1 -1
  477. package/blueprints/application-spa/contributions/tacs/tac-203-application-spa-component-library.json +1 -1
  478. package/blueprints/application-spa/contributions/tacs/tac-204-application-spa-client-data-layer.json +1 -1
  479. package/blueprints/application-spa/contributions/tacs/tac-205-application-spa-forms-engine.json +1 -1
  480. package/blueprints/application-spa/contributions/tacs/tac-206-application-spa-telemetry.json +1 -1
  481. package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +2 -2
  482. package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +3 -3
  483. package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +4 -4
  484. package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +3 -3
  485. package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +3 -3
  486. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1101.json +22 -8
  487. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1102.json +18 -9
  488. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1103.json +13 -7
  489. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1104.json +15 -10
  490. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1105.json +13 -7
  491. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1106.json +12 -7
  492. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1107.json +25 -6
  493. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1108.json +17 -9
  494. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1109.json +17 -9
  495. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1110.json +19 -10
  496. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1111.json +19 -11
  497. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1112.json +15 -8
  498. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1113.json +15 -8
  499. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1114.json +15 -10
  500. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1115.json +13 -7
  501. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1116.json +15 -9
  502. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1117.json +20 -10
  503. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1118.json +9 -5
  504. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1119.json +11 -6
  505. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1120.json +16 -10
  506. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1121.json +13 -7
  507. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1122.json +13 -7
  508. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1123.json +28 -9
  509. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1124.json +11 -6
  510. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1125.json +14 -8
  511. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1126.json +24 -9
  512. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1127.json +11 -6
  513. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1128.json +11 -7
  514. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +25 -5
  515. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +25 -5
  516. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +19 -9
  517. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +40 -10
  518. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +35 -9
  519. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1134.json +23 -3
  520. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1135.json +19 -3
  521. package/blueprints/application-spa/docs/topics.md +1 -1
  522. package/blueprints/application-spa/guide/application-spa.md +2 -2
  523. package/blueprints/delivery-ci-workflows/CHANGELOG.md +40 -2
  524. package/blueprints/delivery-ci-workflows/README.md +4 -4
  525. package/blueprints/delivery-ci-workflows/blueprint.json +64 -2
  526. package/blueprints/delivery-ci-workflows/contributions/adrs/adr-702-delivery-ci-workflows-strict-coverage-gate.json +2 -2
  527. package/blueprints/delivery-ci-workflows/contributions/probes/node-gate-entrypoint.mjs +76 -0
  528. package/blueprints/delivery-ci-workflows/contributions/probes/probe-utils.mjs +56 -0
  529. package/blueprints/delivery-ci-workflows/contributions/probes/real-account-github-actions-run-record.mjs +139 -0
  530. package/blueprints/delivery-ci-workflows/contributions/probes/run-node-gate-entrypoint.mjs +3 -0
  531. package/blueprints/delivery-ci-workflows/contributions/probes/run-real-account-github-actions-run-record.mjs +3 -0
  532. package/blueprints/delivery-ci-workflows/contributions/probes/run-workflow-template-shape.mjs +3 -0
  533. package/blueprints/delivery-ci-workflows/contributions/probes/workflow-template-shape.mjs +94 -0
  534. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-001.json +4 -0
  535. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-002.json +4 -0
  536. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-003.json +4 -0
  537. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json +5 -1
  538. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-005.json +4 -0
  539. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-006.json +4 -0
  540. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-007.json +4 -0
  541. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-008.json +4 -0
  542. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-009.json +4 -0
  543. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-010.json +4 -0
  544. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-011.json +6 -2
  545. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-012.json +4 -0
  546. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-013.json +4 -0
  547. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-014.json +4 -0
  548. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-015.json +4 -0
  549. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-016.json +4 -0
  550. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-017.json +4 -0
  551. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-018.json +4 -0
  552. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-019.json +4 -0
  553. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-020.json +4 -0
  554. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-021.json +4 -0
  555. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-022.json +4 -0
  556. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-023.json +4 -0
  557. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6101.json +20 -4
  558. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6102.json +19 -3
  559. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6103.json +20 -4
  560. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6104.json +20 -4
  561. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6105.json +20 -4
  562. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6106.json +20 -4
  563. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6107.json +20 -4
  564. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6108.json +20 -4
  565. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6109.json +12 -5
  566. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6110.json +21 -5
  567. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6111.json +21 -5
  568. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6112.json +35 -5
  569. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6113.json +21 -5
  570. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6114.json +8 -5
  571. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6115.json +21 -5
  572. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6116.json +19 -3
  573. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6117.json +19 -3
  574. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6118.json +21 -5
  575. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6119.json +19 -3
  576. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6120.json +19 -3
  577. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6121.json +23 -6
  578. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6122.json +24 -7
  579. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6123.json +21 -5
  580. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6124.json +19 -3
  581. package/blueprints/delivery-ci-workflows/docs/topics.md +2 -3
  582. package/blueprints/deploy-cloudflare-workers/CHANGELOG.md +19 -4
  583. package/blueprints/deploy-cloudflare-workers/README.md +5 -5
  584. package/blueprints/deploy-cloudflare-workers/blueprint.json +4 -4
  585. package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1303-deploy-cloudflare-workers-preview-vs-production.json +1 -1
  586. package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1306-deploy-cloudflare-workers-spa-shape.json +4 -4
  587. package/blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs +25 -7
  588. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-001.json +5 -1
  589. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-002.json +6 -2
  590. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-003.json +5 -1
  591. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-004.json +5 -1
  592. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-005.json +5 -1
  593. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-006.json +5 -1
  594. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-007.json +5 -1
  595. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-008.json +5 -1
  596. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-009.json +5 -1
  597. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-010.json +5 -1
  598. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-011.json +5 -1
  599. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-012.json +5 -1
  600. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +5 -1
  601. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +7 -3
  602. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1301-deploy-cloudflare-workers-deploy-adapter.json +3 -2
  603. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1302-deploy-cloudflare-workers-wrangler-manifest.json +5 -2
  604. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12101.json +21 -9
  605. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12102.json +23 -4
  606. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12103.json +7 -4
  607. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12104.json +7 -4
  608. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12105.json +11 -4
  609. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12106.json +7 -4
  610. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12107.json +7 -4
  611. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12108.json +15 -4
  612. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12109.json +11 -4
  613. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12110.json +7 -4
  614. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12111.json +11 -4
  615. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12112.json +11 -4
  616. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +41 -3
  617. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +17 -2
  618. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +18 -3
  619. package/blueprints/deploy-cloudflare-workers/docs/topics.md +2 -2
  620. package/blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md +7 -2
  621. package/blueprints/deploy-hetzner-server/CHANGELOG.md +115 -8
  622. package/blueprints/deploy-hetzner-server/README.md +12 -12
  623. package/blueprints/deploy-hetzner-server/blueprint.json +8 -7
  624. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3801-deploy-hetzner-server-cloud-host-contract.json +2 -2
  625. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3803-deploy-hetzner-server-provisioning-tool.json +2 -2
  626. package/blueprints/deploy-hetzner-server/contributions/probes/cloud-init-render-lint.mjs +46 -21
  627. package/blueprints/deploy-hetzner-server/contributions/probes/hcloud-dry-run-mock.mjs +344 -83
  628. package/blueprints/deploy-hetzner-server/contributions/probes/manifest-schema-validate.mjs +211 -42
  629. package/blueprints/deploy-hetzner-server/contributions/probes/probe-utils.mjs +140 -22
  630. package/blueprints/deploy-hetzner-server/contributions/probes/real-account-cloud-init-hardened.mjs +111 -30
  631. package/blueprints/deploy-hetzner-server/contributions/probes/real-account-snapshot-on-demand.mjs +158 -30
  632. package/blueprints/deploy-hetzner-server/contributions/probes/real-account-throwaway-server-provision.mjs +154 -32
  633. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-001.json +6 -2
  634. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-002.json +6 -2
  635. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-003.json +5 -1
  636. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-004.json +5 -1
  637. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-005.json +6 -2
  638. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-006.json +5 -1
  639. package/blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json +1 -1
  640. package/blueprints/deploy-hetzner-server/contributions/templates/cloud-init.yaml.tmpl +1 -1
  641. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37101.json +63 -2
  642. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37102.json +35 -2
  643. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37103.json +59 -2
  644. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37104.json +31 -2
  645. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37105.json +25 -2
  646. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37106.json +35 -2
  647. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37107.json +31 -2
  648. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37108.json +43 -2
  649. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37109.json +31 -2
  650. package/blueprints/deploy-hetzner-server/docs/topics.md +2 -2
  651. package/blueprints/deploy-hetzner-server/guide/deploy-hetzner-server.md +12 -11
  652. package/blueprints/edge-cloudflare-access/CHANGELOG.md +36 -3
  653. package/blueprints/edge-cloudflare-access/README.md +2 -2
  654. package/blueprints/edge-cloudflare-access/blueprint.json +12 -2
  655. package/blueprints/edge-cloudflare-access/contributions/probes/admin-console-gate-surface.mjs +9 -1
  656. package/blueprints/edge-cloudflare-access/contributions/probes/real-account-gated-url.mjs +10 -2
  657. package/blueprints/edge-cloudflare-access/contributions/probes/wrangler-seam.mjs +1 -1
  658. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-001.json +5 -1
  659. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-002.json +5 -1
  660. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-003.json +5 -1
  661. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-004.json +6 -2
  662. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-005.json +5 -1
  663. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-006.json +7 -3
  664. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-007.json +22 -0
  665. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34101.json +13 -3
  666. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34102.json +63 -2
  667. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34103.json +18 -3
  668. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34104.json +36 -3
  669. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34105.json +13 -3
  670. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34106.json +9 -3
  671. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34107.json +68 -3
  672. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34108.json +5 -3
  673. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34109.json +10 -4
  674. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34110.json +33 -0
  675. package/blueprints/edge-cloudflare-access/docs/topics.md +2 -2
  676. package/blueprints/edge-cloudflare-rate-limiting/CHANGELOG.md +33 -2
  677. package/blueprints/edge-cloudflare-rate-limiting/README.md +3 -3
  678. package/blueprints/edge-cloudflare-rate-limiting/blueprint.json +1 -1
  679. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/real-account-burst-and-429.mjs +10 -2
  680. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-001.json +6 -2
  681. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-002.json +5 -1
  682. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-003.json +5 -1
  683. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-004.json +6 -2
  684. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-005.json +5 -1
  685. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +2 -2
  686. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +2 -2
  687. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36101.json +27 -3
  688. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36102.json +9 -3
  689. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36103.json +24 -5
  690. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36104.json +88 -3
  691. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36105.json +5 -3
  692. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36106.json +22 -3
  693. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36107.json +16 -5
  694. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36108.json +14 -3
  695. package/blueprints/edge-cloudflare-rate-limiting/docs/topics.md +1 -1
  696. package/blueprints/edge-cloudflare-rate-limiting/guide/edge-cloudflare-rate-limiting.md +2 -2
  697. package/blueprints/edge-cloudflare-tunnel/CHANGELOG.md +40 -7
  698. package/blueprints/edge-cloudflare-tunnel/README.md +21 -23
  699. package/blueprints/edge-cloudflare-tunnel/blueprint.json +29 -4
  700. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4001-edge-cloudflare-tunnel-ingress-bridge-contract.json +4 -4
  701. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4002-edge-cloudflare-tunnel-connector-runtime.json +1 -1
  702. package/blueprints/edge-cloudflare-tunnel/contributions/probes/manifest-schema-validate.mjs +3 -3
  703. package/blueprints/edge-cloudflare-tunnel/contributions/probes/probe-utils.mjs +13 -2
  704. package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-connector-healthy.mjs +8 -9
  705. package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-tunnel-hostname-routes.mjs +2 -2
  706. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-001.json +6 -2
  707. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-002.json +5 -1
  708. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-003.json +7 -3
  709. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-004.json +5 -1
  710. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-005.json +5 -1
  711. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-006.json +22 -0
  712. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-007.json +22 -0
  713. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +1 -1
  714. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4004-edge-cloudflare-tunnel-zone-and-hostname-apply.json +29 -0
  715. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39101.json +39 -3
  716. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39102.json +23 -4
  717. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39103.json +53 -3
  718. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39104.json +33 -3
  719. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39105.json +25 -3
  720. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39106.json +86 -2
  721. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39107.json +25 -3
  722. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39108.json +35 -2
  723. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39109.json +74 -0
  724. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39110.json +60 -0
  725. package/blueprints/edge-cloudflare-tunnel/docs/topics.md +2 -2
  726. package/blueprints/edge-cloudflare-tunnel/guide/edge-cloudflare-tunnel.md +60 -13
  727. package/blueprints/edge-cloudflare-turnstile/CHANGELOG.md +32 -1
  728. package/blueprints/edge-cloudflare-turnstile/README.md +2 -2
  729. package/blueprints/edge-cloudflare-turnstile/blueprint.json +1 -1
  730. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-001.json +6 -2
  731. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-002.json +5 -1
  732. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-003.json +6 -2
  733. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-004.json +5 -1
  734. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-005.json +5 -1
  735. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +2 -2
  736. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +2 -2
  737. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35101.json +46 -5
  738. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35102.json +53 -2
  739. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35103.json +81 -2
  740. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35104.json +29 -6
  741. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35105.json +14 -4
  742. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35106.json +9 -3
  743. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35107.json +5 -3
  744. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35108.json +5 -3
  745. package/blueprints/edge-cloudflare-turnstile/docs/topics.md +1 -1
  746. package/blueprints/edge-cloudflare-turnstile/probe-packs/edge-cloudflare-turnstile.pack.mjs +27 -5
  747. package/blueprints/email-smtp-resend/CHANGELOG.md +40 -0
  748. package/blueprints/email-smtp-resend/README.md +4 -4
  749. package/blueprints/email-smtp-resend/assets/stub-adapter.md +2 -0
  750. package/blueprints/email-smtp-resend/blueprint.json +121 -18
  751. package/blueprints/email-smtp-resend/contributions/probes/probe-utils.mjs +50 -0
  752. package/blueprints/email-smtp-resend/contributions/probes/real-account-resend-send.mjs +50 -0
  753. package/blueprints/email-smtp-resend/contributions/probes/run-real-account-resend-send.mjs +3 -0
  754. package/blueprints/email-smtp-resend/contributions/probes/run-smtp-round-trip.mjs +3 -0
  755. package/blueprints/email-smtp-resend/contributions/probes/run-unverified-sender-refusal.mjs +3 -0
  756. package/blueprints/email-smtp-resend/contributions/probes/smtp-round-trip.mjs +43 -0
  757. package/blueprints/email-smtp-resend/contributions/probes/unverified-sender-refusal.mjs +99 -0
  758. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-001.json +7 -3
  759. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-002.json +4 -0
  760. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-003.json +4 -0
  761. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-004.json +4 -0
  762. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-005.json +4 -0
  763. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-006.json +4 -0
  764. package/blueprints/email-smtp-resend/contributions/tacs/tac-401-email-smtp-resend-send-adapter.json +3 -3
  765. package/blueprints/email-smtp-resend/contributions/tacs/tac-402-email-smtp-resend-webhook-verifier.json +7 -2
  766. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4101.json +15 -8
  767. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4102.json +27 -7
  768. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4103.json +49 -4
  769. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4104.json +6 -3
  770. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4105.json +21 -5
  771. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4106.json +27 -7
  772. package/blueprints/email-smtp-resend/docs/topics.md +2 -3
  773. package/blueprints/email-smtp-resend/guide/email-smtp-resend.md +2 -2
  774. package/blueprints/jobs-background/CHANGELOG.md +91 -6
  775. package/blueprints/jobs-background/README.md +8 -8
  776. package/blueprints/jobs-background/blueprint.json +57 -3
  777. package/blueprints/jobs-background/contributions/adrs/adr-3102-jobs-background-scheduler-mode.json +1 -1
  778. package/blueprints/jobs-background/contributions/adrs/adr-3103-jobs-background-requires-applied-capabilities.json +6 -6
  779. package/blueprints/jobs-background/contributions/probes/apply-time-override.mjs +38 -10
  780. package/blueprints/jobs-background/contributions/probes/apply-time-refusal.mjs +28 -6
  781. package/blueprints/jobs-background/contributions/probes/event-secrecy.mjs +16 -2
  782. package/blueprints/jobs-background/contributions/probes/fake-clock-cron.mjs +102 -21
  783. package/blueprints/jobs-background/contributions/probes/probe-utils.mjs +14 -6
  784. package/blueprints/jobs-background/contributions/probes/retry-and-fail-real-account.mjs +355 -0
  785. package/blueprints/jobs-background/contributions/probes/retry-and-fail.mjs +33 -2
  786. package/blueprints/jobs-background/contributions/probes/run-retry-and-fail-real-account.mjs +12 -0
  787. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +7 -3
  788. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +7 -3
  789. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +5 -1
  790. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +5 -1
  791. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +5 -1
  792. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +5 -1
  793. package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +5 -5
  794. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +20 -3
  795. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +44 -9
  796. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +48 -3
  797. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +63 -3
  798. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +20 -3
  799. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +20 -3
  800. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +20 -3
  801. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +21 -3
  802. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +23 -6
  803. package/blueprints/jobs-background/docs/topics.md +3 -3
  804. package/blueprints/jobs-background/guide/jobs-background.md +6 -6
  805. package/blueprints/messaging-queue-cloudflare/CHANGELOG.md +41 -19
  806. package/blueprints/messaging-queue-cloudflare/README.md +14 -14
  807. package/blueprints/messaging-queue-cloudflare/blueprint.json +127 -19
  808. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3001-messaging-queue-cloudflare-adapter.json +3 -3
  809. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3002-messaging-queue-cloudflare-delivery-semantics.json +1 -1
  810. package/blueprints/messaging-queue-cloudflare/contributions/probes/real-account-concurrency-smoke.mjs +183 -15
  811. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +6 -2
  812. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +6 -2
  813. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +5 -1
  814. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +6 -2
  815. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +6 -2
  816. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +6 -2
  817. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +22 -4
  818. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +23 -4
  819. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +20 -3
  820. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +29 -7
  821. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +20 -3
  822. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +25 -4
  823. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +25 -3
  824. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +28 -6
  825. package/blueprints/messaging-queue-cloudflare/docs/topics.md +3 -3
  826. package/blueprints/messaging-queue-cloudflare/guide/messaging-queue-cloudflare.md +8 -6
  827. package/blueprints/object-storage-s3/CHANGELOG.md +94 -6
  828. package/blueprints/object-storage-s3/README.md +2 -2
  829. package/blueprints/object-storage-s3/blueprint.json +156 -24
  830. package/blueprints/object-storage-s3/contributions/probes/event-secrecy.mjs +73 -12
  831. package/blueprints/object-storage-s3/contributions/probes/facade-round-trip.mjs +55 -7
  832. package/blueprints/object-storage-s3/contributions/probes/hetzner-object-storage-round-trip.mjs +103 -19
  833. package/blueprints/object-storage-s3/contributions/probes/multipart-upload.mjs +105 -36
  834. package/blueprints/object-storage-s3/contributions/probes/presigned-url.mjs +104 -55
  835. package/blueprints/object-storage-s3/contributions/probes/probe-utils.mjs +129 -7
  836. package/blueprints/object-storage-s3/contributions/probes/put-get-round-trip.mjs +80 -18
  837. package/blueprints/object-storage-s3/contributions/probes/r2-real-account-smoke.mjs +291 -37
  838. package/blueprints/object-storage-s3/contributions/probes/run-event-secrecy.mjs +8 -2
  839. package/blueprints/object-storage-s3/contributions/probes/run-facade-round-trip.mjs +5 -5
  840. package/blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs +8 -5
  841. package/blueprints/object-storage-s3/contributions/probes/run-multipart-upload.mjs +8 -2
  842. package/blueprints/object-storage-s3/contributions/probes/run-presigned-url.mjs +8 -2
  843. package/blueprints/object-storage-s3/contributions/probes/run-put-get-round-trip.mjs +6 -3
  844. package/blueprints/object-storage-s3/contributions/probes/run-r2-real-account-smoke.mjs +10 -2
  845. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +6 -2
  846. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +6 -2
  847. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +5 -1
  848. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +6 -2
  849. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +6 -2
  850. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +6 -2
  851. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-101.json +5 -1
  852. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +36 -4
  853. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +32 -5
  854. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +42 -3
  855. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +22 -4
  856. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -4
  857. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +13 -5
  858. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +10 -4
  859. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +12 -4
  860. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28110.json +20 -3
  861. package/blueprints/object-storage-s3/docs/topics.md +1 -1
  862. package/blueprints/object-storage-s3/guide/object-storage-s3.md +3 -3
  863. package/blueprints/observability-essentials/CHANGELOG.md +37 -0
  864. package/blueprints/observability-essentials/README.md +3 -3
  865. package/blueprints/observability-essentials/assets/probe-samples/probe-response-baseline.v2.json +17 -0
  866. package/blueprints/observability-essentials/blueprint.json +34 -2
  867. package/blueprints/observability-essentials/contributions/adrs/adr-801-observability-essentials-health-probes.json +1 -1
  868. package/blueprints/observability-essentials/contributions/probes/liveness-probe.mjs +84 -0
  869. package/blueprints/observability-essentials/contributions/probes/metrics-endpoint.mjs +96 -0
  870. package/blueprints/observability-essentials/contributions/probes/probe-utils.mjs +52 -0
  871. package/blueprints/observability-essentials/contributions/probes/readiness-probe.mjs +171 -0
  872. package/blueprints/observability-essentials/contributions/probes/run-liveness-probe.mjs +3 -0
  873. package/blueprints/observability-essentials/contributions/probes/run-metrics-endpoint.mjs +3 -0
  874. package/blueprints/observability-essentials/contributions/probes/run-readiness-probe.mjs +3 -0
  875. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-001.json +4 -0
  876. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-002.json +4 -0
  877. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-003.json +4 -0
  878. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-004.json +4 -0
  879. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-005.json +4 -0
  880. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-006.json +6 -2
  881. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-007.json +7 -3
  882. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-008.json +4 -0
  883. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-009.json +4 -0
  884. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-010.json +4 -0
  885. package/blueprints/observability-essentials/contributions/tacs/tac-802-observability-essentials-readiness-probe.json +6 -1
  886. package/blueprints/observability-essentials/contributions/tacs/tac-803-observability-essentials-status-page.json +1 -1
  887. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7101.json +25 -7
  888. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7102.json +9 -5
  889. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7103.json +51 -6
  890. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7104.json +7 -4
  891. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7105.json +6 -3
  892. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7106.json +37 -6
  893. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7107.json +18 -11
  894. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7108.json +6 -3
  895. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7109.json +7 -4
  896. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7110.json +8 -5
  897. package/blueprints/observability-essentials/docs/topics.md +3 -4
  898. package/blueprints/observability-essentials/guide/observability-essentials.md +1 -1
  899. package/blueprints/observability-logging/CHANGELOG.md +44 -4
  900. package/blueprints/observability-logging/README.md +2 -2
  901. package/blueprints/observability-logging/blueprint.json +78 -29
  902. package/blueprints/observability-logging/contributions/adrs/adr-1605-observability-logging-serialisation-refusal.json +25 -0
  903. package/blueprints/observability-logging/contributions/probes/correlation-id-flow.mjs +173 -0
  904. package/blueprints/observability-logging/contributions/probes/line-shape-and-fields.mjs +82 -0
  905. package/blueprints/observability-logging/contributions/probes/probe-utils.mjs +47 -0
  906. package/blueprints/observability-logging/contributions/probes/redaction-boundary.mjs +130 -0
  907. package/blueprints/observability-logging/contributions/probes/run-correlation-id-flow.mjs +3 -0
  908. package/blueprints/observability-logging/contributions/probes/run-line-shape-and-fields.mjs +3 -0
  909. package/blueprints/observability-logging/contributions/probes/run-redaction-boundary.mjs +3 -0
  910. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-001.json +10 -3
  911. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-002.json +8 -1
  912. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-003.json +8 -1
  913. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-004.json +8 -1
  914. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-005.json +8 -1
  915. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-006.json +16 -0
  916. package/blueprints/observability-logging/contributions/tacs/tac-1601-observability-logging-logger-factory.json +4 -4
  917. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15101.json +62 -8
  918. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15102.json +11 -6
  919. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15103.json +37 -5
  920. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15104.json +35 -4
  921. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15105.json +24 -6
  922. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15106.json +22 -4
  923. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15107.json +34 -3
  924. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15108.json +21 -3
  925. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15109.json +71 -0
  926. package/blueprints/observability-probe-endpoints/CHANGELOG.md +32 -0
  927. package/blueprints/observability-probe-endpoints/README.md +4 -4
  928. package/blueprints/observability-probe-endpoints/blueprint.json +42 -2
  929. package/blueprints/observability-probe-endpoints/contributions/probes/kubernetes-startup-enabled.mjs +80 -0
  930. package/blueprints/observability-probe-endpoints/contributions/probes/partial-profile-refusal.mjs +101 -0
  931. package/blueprints/observability-probe-endpoints/contributions/probes/probe-utils.mjs +49 -0
  932. package/blueprints/observability-probe-endpoints/contributions/probes/profile-boot-materialisation.mjs +69 -0
  933. package/blueprints/observability-probe-endpoints/contributions/probes/run-kubernetes-startup-enabled.mjs +3 -0
  934. package/blueprints/observability-probe-endpoints/contributions/probes/run-partial-profile-refusal.mjs +3 -0
  935. package/blueprints/observability-probe-endpoints/contributions/probes/run-profile-boot-materialisation.mjs +3 -0
  936. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-001.json +6 -2
  937. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-002.json +4 -0
  938. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-003.json +4 -0
  939. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-004.json +4 -0
  940. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-005.json +4 -0
  941. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-006.json +4 -0
  942. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-007.json +4 -0
  943. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-008.json +4 -0
  944. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14101.json +30 -9
  945. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14102.json +24 -6
  946. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14103.json +6 -3
  947. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14104.json +9 -6
  948. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14105.json +49 -4
  949. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14106.json +9 -6
  950. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14107.json +12 -8
  951. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14108.json +6 -3
  952. package/blueprints/observability-probe-endpoints/docs/topics.md +2 -2
  953. package/blueprints/observability-probe-endpoints/guide/observability-probe-endpoints.md +3 -6
  954. package/blueprints/persistence-data-d1/CHANGELOG.md +32 -0
  955. package/blueprints/persistence-data-d1/README.md +3 -3
  956. package/blueprints/persistence-data-d1/assets/batch-usage/batch-atomicity-example.md +2 -0
  957. package/blueprints/persistence-data-d1/assets/facade-shape/facade-module-shape.md +2 -0
  958. package/blueprints/persistence-data-d1/blueprint.json +108 -23
  959. package/blueprints/persistence-data-d1/contributions/adrs/adr-1404-persistence-data-d1-store-boundary.json +4 -4
  960. package/blueprints/persistence-data-d1/contributions/probes/facade-round-trip.mjs +140 -0
  961. package/blueprints/persistence-data-d1/contributions/probes/migrations-forward-only.mjs +66 -0
  962. package/blueprints/persistence-data-d1/contributions/probes/probe-utils.mjs +51 -0
  963. package/blueprints/persistence-data-d1/contributions/probes/real-account-d1-round-trip.mjs +133 -0
  964. package/blueprints/persistence-data-d1/contributions/probes/run-facade-round-trip.mjs +3 -0
  965. package/blueprints/persistence-data-d1/contributions/probes/run-migrations-forward-only.mjs +3 -0
  966. package/blueprints/persistence-data-d1/contributions/probes/run-real-account-d1-round-trip.mjs +3 -0
  967. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-001.json +5 -1
  968. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-002.json +5 -1
  969. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-003.json +5 -1
  970. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-004.json +7 -3
  971. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-005.json +5 -1
  972. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-006.json +5 -1
  973. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-007.json +5 -1
  974. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13101.json +35 -4
  975. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13102.json +25 -4
  976. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13103.json +11 -4
  977. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13104.json +13 -6
  978. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13105.json +11 -4
  979. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13106.json +7 -4
  980. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13107.json +23 -3
  981. package/blueprints/persistence-data-d1/docs/topics.md +2 -3
  982. package/blueprints/persistence-data-postgres/CHANGELOG.md +99 -3
  983. package/blueprints/persistence-data-postgres/README.md +2 -2
  984. package/blueprints/persistence-data-postgres/blueprint.json +203 -24
  985. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +1 -1
  986. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +1 -1
  987. package/blueprints/persistence-data-postgres/contributions/probes/facade-round-trip.mjs +87 -12
  988. package/blueprints/persistence-data-postgres/contributions/probes/migration-apply.mjs +245 -19
  989. package/blueprints/persistence-data-postgres/contributions/probes/pool-posture-smoke.mjs +109 -26
  990. package/blueprints/persistence-data-postgres/contributions/probes/prepared-statement-scan.mjs +151 -38
  991. package/blueprints/persistence-data-postgres/contributions/probes/probe-utils.mjs +24 -6
  992. package/blueprints/persistence-data-postgres/contributions/probes/recovery-restore-round-trip.mjs +261 -48
  993. package/blueprints/persistence-data-postgres/contributions/probes/transaction-atomicity.mjs +76 -20
  994. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +6 -2
  995. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +6 -2
  996. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +6 -2
  997. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +7 -3
  998. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +6 -2
  999. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +6 -2
  1000. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +7 -3
  1001. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +2 -2
  1002. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +5 -5
  1003. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +22 -4
  1004. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +118 -3
  1005. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +20 -3
  1006. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +26 -5
  1007. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +62 -3
  1008. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +20 -3
  1009. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +20 -3
  1010. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +20 -3
  1011. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +20 -3
  1012. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +48 -3
  1013. package/blueprints/persistence-data-postgres/docs/topics.md +1 -1
  1014. package/blueprints/persistence-data-sqlite/CHANGELOG.md +28 -0
  1015. package/blueprints/persistence-data-sqlite/README.md +2 -2
  1016. package/blueprints/persistence-data-sqlite/blueprint.json +148 -31
  1017. package/blueprints/persistence-data-sqlite/contributions/probes/boot-open-migrate.mjs +90 -0
  1018. package/blueprints/persistence-data-sqlite/contributions/probes/facade-round-trip.mjs +82 -0
  1019. package/blueprints/persistence-data-sqlite/contributions/probes/probe-utils.mjs +83 -0
  1020. package/blueprints/persistence-data-sqlite/contributions/probes/run-boot-open-migrate.mjs +5 -0
  1021. package/blueprints/persistence-data-sqlite/contributions/probes/run-facade-round-trip.mjs +5 -0
  1022. package/blueprints/persistence-data-sqlite/contributions/probes/run-wal-checkpoint.mjs +5 -0
  1023. package/blueprints/persistence-data-sqlite/contributions/probes/wal-checkpoint.mjs +137 -0
  1024. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-001.json +5 -1
  1025. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-002.json +5 -1
  1026. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-003.json +5 -1
  1027. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-004.json +5 -1
  1028. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-005.json +5 -1
  1029. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-006.json +5 -1
  1030. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-007.json +5 -1
  1031. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-008.json +5 -1
  1032. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-009.json +5 -1
  1033. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-010.json +5 -1
  1034. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-011.json +5 -1
  1035. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5101.json +35 -4
  1036. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5102.json +7 -4
  1037. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5103.json +19 -3
  1038. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5104.json +21 -4
  1039. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5105.json +7 -4
  1040. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5106.json +11 -4
  1041. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5107.json +7 -4
  1042. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5108.json +7 -4
  1043. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5109.json +11 -8
  1044. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5110.json +23 -3
  1045. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5111.json +19 -3
  1046. package/blueprints/persistence-data-sqlite/docs/topics.md +2 -3
  1047. package/blueprints/persistence-data-sqlite/guide/persistence-data-sqlite.md +1 -1
  1048. package/blueprints/platform-cloudflare-cron-triggers/CHANGELOG.md +40 -2
  1049. package/blueprints/platform-cloudflare-cron-triggers/README.md +2 -3
  1050. package/blueprints/platform-cloudflare-cron-triggers/blueprint.json +78 -17
  1051. package/blueprints/platform-cloudflare-cron-triggers/contributions/adrs/adr-3301-platform-cloudflare-cron-triggers-scheduled-trigger-contract.json +2 -2
  1052. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/real-account-scheduled-smoke.mjs +24 -3
  1053. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/skew-tolerance.mjs +1 -1
  1054. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-001.json +6 -2
  1055. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-002.json +5 -1
  1056. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-003.json +5 -1
  1057. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-004.json +6 -2
  1058. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3301-platform-cloudflare-cron-triggers-scheduled-handler.json +1 -1
  1059. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32101.json +86 -5
  1060. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32102.json +69 -5
  1061. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32103.json +51 -4
  1062. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32104.json +65 -4
  1063. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32105.json +68 -5
  1064. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32106.json +62 -3
  1065. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32107.json +56 -3
  1066. package/blueprints/platform-cloudflare-cron-triggers/docs/topics.md +4 -4
  1067. package/blueprints/platform-cloudflare-durable-objects/CHANGELOG.md +40 -4
  1068. package/blueprints/platform-cloudflare-durable-objects/README.md +6 -6
  1069. package/blueprints/platform-cloudflare-durable-objects/blueprint.json +3 -2
  1070. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3401-platform-cloudflare-durable-objects-single-cell-contract.json +1 -1
  1071. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3402-platform-cloudflare-durable-objects-websocket-hub-contract.json +1 -1
  1072. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/probe-utils.mjs +2 -2
  1073. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/real-account-storage-smoke.mjs +41 -35
  1074. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/sole-reader-scan.mjs +1 -1
  1075. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/storage-round-trip.mjs +1 -1
  1076. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/websocket-hub-broadcast.mjs +1 -1
  1077. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/wrangler-seam.mjs +11 -5
  1078. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-001.json +5 -1
  1079. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-002.json +6 -2
  1080. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-003.json +5 -1
  1081. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-004.json +5 -1
  1082. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-005.json +6 -2
  1083. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-006.json +6 -2
  1084. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-007.json +5 -1
  1085. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-008.json +5 -1
  1086. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33101.json +73 -2
  1087. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33102.json +59 -2
  1088. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33103.json +77 -2
  1089. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33104.json +75 -6
  1090. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33105.json +73 -2
  1091. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33106.json +49 -2
  1092. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33107.json +45 -2
  1093. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33108.json +84 -3
  1094. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33109.json +45 -2
  1095. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33110.json +59 -2
  1096. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33111.json +45 -2
  1097. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33112.json +53 -2
  1098. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33113.json +68 -5
  1099. package/blueprints/platform-cloudflare-durable-objects/docs/topics.md +2 -2
  1100. package/blueprints/platform-cloudflare-durable-objects/guide/platform-cloudflare-durable-objects.md +9 -9
  1101. package/blueprints/platform-cloudflare-kv/CHANGELOG.md +58 -12
  1102. package/blueprints/platform-cloudflare-kv/README.md +7 -11
  1103. package/blueprints/platform-cloudflare-kv/blueprint.json +115 -20
  1104. package/blueprints/platform-cloudflare-kv/contributions/adrs/adr-3201-platform-cloudflare-kv-key-value-store-contract.json +3 -3
  1105. package/blueprints/platform-cloudflare-kv/contributions/probes/cache-aside-hit-then-miss.mjs +1 -1
  1106. package/blueprints/platform-cloudflare-kv/contributions/probes/event-secrecy.mjs +1 -1
  1107. package/blueprints/platform-cloudflare-kv/contributions/probes/real-account-eventual-consistency-smoke.mjs +53 -18
  1108. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-001.json +6 -2
  1109. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-002.json +5 -1
  1110. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-003.json +5 -1
  1111. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-004.json +6 -2
  1112. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-005.json +7 -3
  1113. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-006.json +22 -0
  1114. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-007.json +22 -0
  1115. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31101.json +59 -2
  1116. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31102.json +45 -2
  1117. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31103.json +73 -3
  1118. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31104.json +67 -2
  1119. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31105.json +59 -2
  1120. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31106.json +45 -2
  1121. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31107.json +45 -2
  1122. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31108.json +45 -2
  1123. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31109.json +92 -0
  1124. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31110.json +88 -0
  1125. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31111.json +89 -0
  1126. package/blueprints/platform-cloudflare-kv/docs/topics.md +2 -2
  1127. package/blueprints/platform-cloudflare-kv/guide/platform-cloudflare-kv.md +2 -2
  1128. package/blueprints/platform-docker-compose-host/CHANGELOG.md +124 -3
  1129. package/blueprints/platform-docker-compose-host/README.md +7 -7
  1130. package/blueprints/platform-docker-compose-host/blueprint.json +23 -6
  1131. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3901-platform-docker-compose-host-contract.json +3 -3
  1132. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3902-platform-docker-compose-host-reverse-proxy.json +4 -4
  1133. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3903-platform-docker-compose-host-reject-coolify.json +2 -2
  1134. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3904-platform-docker-compose-host-log-driver.json +2 -2
  1135. package/blueprints/platform-docker-compose-host/contributions/probes/caddyfile-validate.mjs +116 -29
  1136. package/blueprints/platform-docker-compose-host/contributions/probes/compose-config-lint.mjs +181 -109
  1137. package/blueprints/platform-docker-compose-host/contributions/probes/probe-utils.mjs +146 -26
  1138. package/blueprints/platform-docker-compose-host/contributions/probes/real-account-minimal-stack-up.mjs +238 -25
  1139. package/blueprints/platform-docker-compose-host/contributions/probes/real-account-reload-burst.mjs +207 -21
  1140. package/blueprints/platform-docker-compose-host/contributions/probes/secrets-as-files-scan.mjs +246 -42
  1141. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-001.json +6 -2
  1142. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-002.json +5 -1
  1143. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-003.json +6 -2
  1144. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-004.json +5 -1
  1145. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-005.json +6 -2
  1146. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-006.json +6 -2
  1147. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-007.json +22 -0
  1148. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38101.json +73 -2
  1149. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38102.json +67 -2
  1150. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38103.json +59 -2
  1151. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38104.json +75 -2
  1152. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38105.json +49 -2
  1153. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38106.json +45 -2
  1154. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38107.json +49 -2
  1155. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38108.json +49 -2
  1156. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38109.json +57 -2
  1157. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38110.json +92 -0
  1158. package/blueprints/platform-docker-compose-host/docs/topics.md +4 -4
  1159. package/blueprints/platform-docker-compose-host/guide/platform-docker-compose-host.md +6 -6
  1160. package/blueprints/security-auth-clerk/CHANGELOG.md +36 -4
  1161. package/blueprints/security-auth-clerk/README.md +4 -4
  1162. package/blueprints/security-auth-clerk/assets/wiring/workers-wrangler-toml-shape.md +1 -1
  1163. package/blueprints/security-auth-clerk/blueprint.json +23 -2
  1164. package/blueprints/security-auth-clerk/contributions/probes/hosted-identity-ui-config.mjs +61 -0
  1165. package/blueprints/security-auth-clerk/contributions/probes/probe-utils.mjs +188 -0
  1166. package/blueprints/security-auth-clerk/contributions/probes/real-account-principal-directory-round-trip.mjs +216 -0
  1167. package/blueprints/security-auth-clerk/contributions/probes/real-account-session-inventory.mjs +260 -0
  1168. package/blueprints/security-auth-clerk/contributions/probes/role-model-adapter.mjs +53 -0
  1169. package/blueprints/security-auth-clerk/contributions/probes/run-hosted-identity-ui-config.mjs +4 -0
  1170. package/blueprints/security-auth-clerk/contributions/probes/run-real-account-principal-directory-round-trip.mjs +4 -0
  1171. package/blueprints/security-auth-clerk/contributions/probes/run-real-account-session-inventory.mjs +4 -0
  1172. package/blueprints/security-auth-clerk/contributions/probes/run-role-model-adapter.mjs +4 -0
  1173. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-001.json +6 -2
  1174. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-002.json +5 -1
  1175. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-003.json +6 -2
  1176. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-004.json +6 -2
  1177. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-005.json +5 -2
  1178. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-006.json +5 -1
  1179. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-007.json +4 -1
  1180. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-008.json +4 -1
  1181. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-009.json +4 -1
  1182. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-010.json +22 -0
  1183. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-011.json +22 -0
  1184. package/blueprints/security-auth-clerk/contributions/tacs/tac-1001-security-auth-clerk-middleware.json +14 -4
  1185. package/blueprints/security-auth-clerk/contributions/tacs/tac-1003-security-auth-clerk-session-verifier.json +7 -1
  1186. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9101.json +6 -3
  1187. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9102.json +19 -3
  1188. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9103.json +6 -3
  1189. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9104.json +6 -3
  1190. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9105.json +4 -2
  1191. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9106.json +4 -2
  1192. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9107.json +4 -2
  1193. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9108.json +13 -3
  1194. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9109.json +8 -2
  1195. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9110.json +4 -2
  1196. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9111.json +4 -2
  1197. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9112.json +102 -0
  1198. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9113.json +103 -0
  1199. package/blueprints/security-auth-clerk/docs/topics.md +2 -3
  1200. package/blueprints/security-auth-keycloak/CHANGELOG.md +34 -4
  1201. package/blueprints/security-auth-keycloak/README.md +3 -3
  1202. package/blueprints/security-auth-keycloak/blueprint.json +103 -2
  1203. package/blueprints/security-auth-keycloak/contributions/probes/discovery-shape.mjs +68 -0
  1204. package/blueprints/security-auth-keycloak/contributions/probes/introspection-shape.mjs +88 -0
  1205. package/blueprints/security-auth-keycloak/contributions/probes/jwt-verifier-shape.mjs +86 -0
  1206. package/blueprints/security-auth-keycloak/contributions/probes/probe-utils.mjs +180 -0
  1207. package/blueprints/security-auth-keycloak/contributions/probes/real-account-realm-round-trip.mjs +91 -0
  1208. package/blueprints/security-auth-keycloak/contributions/probes/role-adapter-shape.mjs +69 -0
  1209. package/blueprints/security-auth-keycloak/contributions/probes/run-discovery-shape.mjs +4 -0
  1210. package/blueprints/security-auth-keycloak/contributions/probes/run-introspection-shape.mjs +4 -0
  1211. package/blueprints/security-auth-keycloak/contributions/probes/run-jwt-verifier-shape.mjs +4 -0
  1212. package/blueprints/security-auth-keycloak/contributions/probes/run-real-account-realm-round-trip.mjs +4 -0
  1213. package/blueprints/security-auth-keycloak/contributions/probes/run-role-adapter-shape.mjs +4 -0
  1214. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-001.json +5 -2
  1215. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-002.json +5 -1
  1216. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-003.json +5 -1
  1217. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-004.json +5 -1
  1218. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-005.json +6 -2
  1219. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-006.json +6 -2
  1220. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-007.json +4 -1
  1221. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-008.json +4 -1
  1222. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-009.json +4 -1
  1223. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-010.json +4 -1
  1224. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-011.json +5 -1
  1225. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-012.json +4 -1
  1226. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-013.json +22 -0
  1227. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-014.json +22 -0
  1228. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-015.json +22 -0
  1229. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-016.json +22 -0
  1230. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-017.json +22 -0
  1231. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-018.json +22 -0
  1232. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-019.json +22 -0
  1233. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1201-security-auth-keycloak-discovery-client.json +4 -2
  1234. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1202-security-auth-keycloak-jwt-verifier.json +8 -2
  1235. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1203-security-auth-keycloak-introspection-client.json +8 -2
  1236. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1204-security-auth-keycloak-provider-router.json +3 -1
  1237. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1205-security-auth-keycloak-role-adapter.json +2 -1
  1238. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11101.json +6 -3
  1239. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11102.json +10 -3
  1240. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11103.json +12 -2
  1241. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11104.json +8 -2
  1242. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11105.json +6 -3
  1243. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11106.json +18 -3
  1244. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11107.json +6 -3
  1245. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11108.json +6 -3
  1246. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11109.json +4 -2
  1247. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11110.json +6 -3
  1248. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11111.json +14 -3
  1249. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11112.json +4 -2
  1250. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11113.json +4 -2
  1251. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11114.json +72 -0
  1252. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11115.json +88 -0
  1253. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11116.json +117 -0
  1254. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11117.json +117 -0
  1255. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11118.json +117 -0
  1256. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11119.json +117 -0
  1257. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11120.json +103 -0
  1258. package/blueprints/security-auth-keycloak/docs/topics.md +1 -2
  1259. package/blueprints/security-auth-keycloak/guide/security-auth-keycloak.md +1 -1
  1260. package/blueprints/security-auth-magic-link/CHANGELOG.md +30 -3
  1261. package/blueprints/security-auth-magic-link/README.md +3 -3
  1262. package/blueprints/security-auth-magic-link/assets/principal-registry-samples/single-address.md +1 -1
  1263. package/blueprints/security-auth-magic-link/blueprint.json +3 -2
  1264. package/blueprints/security-auth-magic-link/contributions/probes/probe-utils.mjs +174 -0
  1265. package/blueprints/security-auth-magic-link/contributions/probes/real-account-magic-link-send.mjs +139 -0
  1266. package/blueprints/security-auth-magic-link/contributions/probes/run-real-account-magic-link-send.mjs +4 -0
  1267. package/blueprints/security-auth-magic-link/contributions/probes/run-token-entropy-shape.mjs +4 -0
  1268. package/blueprints/security-auth-magic-link/contributions/probes/run-token-issue-verify.mjs +4 -0
  1269. package/blueprints/security-auth-magic-link/contributions/probes/token-entropy-shape.mjs +60 -0
  1270. package/blueprints/security-auth-magic-link/contributions/probes/token-issue-verify.mjs +90 -0
  1271. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-001.json +4 -1
  1272. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-002.json +5 -1
  1273. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-003.json +6 -2
  1274. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-004.json +5 -1
  1275. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-005.json +5 -1
  1276. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-006.json +4 -1
  1277. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-007.json +4 -1
  1278. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-008.json +5 -1
  1279. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-009.json +5 -1
  1280. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-010.json +6 -2
  1281. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-011.json +6 -2
  1282. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3101.json +10 -5
  1283. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3102.json +8 -4
  1284. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3103.json +6 -3
  1285. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3104.json +8 -4
  1286. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3105.json +6 -3
  1287. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3106.json +6 -3
  1288. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3107.json +8 -4
  1289. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3108.json +6 -3
  1290. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3109.json +6 -3
  1291. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3110.json +6 -3
  1292. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3111.json +14 -3
  1293. package/blueprints/security-auth-magic-link/docs/topics.md +1 -1
  1294. package/blueprints/security-auth-magic-link/guide/security-auth-magic-link.md +1 -1
  1295. package/blueprints/security-auth-oauth2/CHANGELOG.md +32 -4
  1296. package/blueprints/security-auth-oauth2/README.md +3 -3
  1297. package/blueprints/security-auth-oauth2/blueprint.json +35 -3
  1298. package/blueprints/security-auth-oauth2/contributions/probes/authorisation-code-flow-shape.mjs +259 -0
  1299. package/blueprints/security-auth-oauth2/contributions/probes/pkce-challenge-shape.mjs +58 -0
  1300. package/blueprints/security-auth-oauth2/contributions/probes/probe-utils.mjs +190 -0
  1301. package/blueprints/security-auth-oauth2/contributions/probes/provider-adapter-shape.mjs +64 -0
  1302. package/blueprints/security-auth-oauth2/contributions/probes/real-account-authorisation-code-flow.mjs +93 -0
  1303. package/blueprints/security-auth-oauth2/contributions/probes/run-authorisation-code-flow-shape.mjs +4 -0
  1304. package/blueprints/security-auth-oauth2/contributions/probes/run-pkce-challenge-shape.mjs +4 -0
  1305. package/blueprints/security-auth-oauth2/contributions/probes/run-provider-adapter-shape.mjs +4 -0
  1306. package/blueprints/security-auth-oauth2/contributions/probes/run-real-account-authorisation-code-flow.mjs +4 -0
  1307. package/blueprints/security-auth-oauth2/contributions/probes/run-session-bridge-shape.mjs +4 -0
  1308. package/blueprints/security-auth-oauth2/contributions/probes/session-bridge-shape.mjs +78 -0
  1309. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-001.json +5 -2
  1310. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-002.json +5 -1
  1311. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-003.json +5 -1
  1312. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-004.json +4 -1
  1313. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-005.json +5 -1
  1314. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-006.json +6 -2
  1315. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-007.json +4 -1
  1316. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-008.json +6 -2
  1317. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-009.json +5 -1
  1318. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-010.json +4 -1
  1319. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-011.json +22 -0
  1320. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-012.json +22 -0
  1321. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-013.json +22 -0
  1322. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1102-security-auth-oauth2-provider-adapter.json +2 -1
  1323. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1103-security-auth-oauth2-session-bridge.json +9 -2
  1324. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10101.json +6 -3
  1325. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10102.json +6 -3
  1326. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10103.json +4 -2
  1327. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10104.json +4 -2
  1328. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10105.json +8 -4
  1329. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10106.json +6 -3
  1330. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10107.json +6 -3
  1331. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10108.json +6 -3
  1332. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10109.json +4 -2
  1333. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10110.json +4 -2
  1334. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10111.json +17 -2
  1335. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10112.json +82 -0
  1336. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10113.json +68 -0
  1337. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10114.json +88 -0
  1338. package/blueprints/security-auth-oauth2/docs/topics.md +1 -2
  1339. package/blueprints/security-secrets-management/CHANGELOG.md +26 -3
  1340. package/blueprints/security-secrets-management/README.md +2 -2
  1341. package/blueprints/security-secrets-management/blueprint.json +170 -32
  1342. package/blueprints/security-secrets-management/contributions/probes/add-recipient-rotation.mjs +107 -0
  1343. package/blueprints/security-secrets-management/contributions/probes/encrypt-decrypt-round-trip.mjs +122 -0
  1344. package/blueprints/security-secrets-management/contributions/probes/key-rotation.mjs +93 -0
  1345. package/blueprints/security-secrets-management/contributions/probes/mismatched-key-refusal.mjs +74 -0
  1346. package/blueprints/security-secrets-management/contributions/probes/probe-utils.mjs +214 -0
  1347. package/blueprints/security-secrets-management/contributions/probes/run-add-recipient-rotation.mjs +4 -0
  1348. package/blueprints/security-secrets-management/contributions/probes/run-encrypt-decrypt-round-trip.mjs +4 -0
  1349. package/blueprints/security-secrets-management/contributions/probes/run-key-rotation.mjs +4 -0
  1350. package/blueprints/security-secrets-management/contributions/probes/run-mismatched-key-refusal.mjs +4 -0
  1351. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-001.json +5 -1
  1352. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-002.json +6 -2
  1353. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-003.json +6 -2
  1354. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-004.json +5 -1
  1355. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-005.json +6 -2
  1356. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-006.json +5 -1
  1357. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-007.json +5 -1
  1358. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-008.json +5 -1
  1359. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-009.json +5 -1
  1360. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-010.json +6 -3
  1361. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8101.json +6 -3
  1362. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8102.json +6 -3
  1363. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8103.json +4 -2
  1364. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8104.json +6 -3
  1365. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8105.json +8 -4
  1366. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8106.json +6 -3
  1367. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8107.json +6 -3
  1368. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8108.json +6 -3
  1369. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8109.json +6 -3
  1370. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8110.json +6 -3
  1371. package/blueprints/security-secrets-management/docs/topics.md +2 -3
  1372. package/fixtures/canary-manifest.json +9 -9
  1373. package/guidance/harness-template.md +25 -0
  1374. package/guidance/managed/agent-instructions-block.hash +1 -1
  1375. package/guidance/managed/agent-instructions-block.md +25 -0
  1376. package/package.json +2 -2
  1377. package/rcf/adrs/adr-4101-feedback-store-gitignored.json +20 -0
  1378. package/rcf/adrs/adr-4102-fingerprint-and-labels.json +25 -0
  1379. package/rcf/adrs/adr-4103-redaction-rule-based.json +20 -0
  1380. package/rcf/adrs/adr-4104-destination-on-library.json +25 -0
  1381. package/rcf/adrs/adr-4105-gh-ambient-auth.json +20 -0
  1382. package/rcf/adrs/adr-4106-bundled-entries-terminal.json +20 -0
  1383. package/rcf/adrs/adr-4107-stop-is-ask-event.json +30 -0
  1384. package/rcf/adrs/adr-4108-hooks-in-committed-config.json +25 -0
  1385. package/rcf/adrs/adr-4109-referee-validate-adr-crosslinks.json +25 -0
  1386. package/rcf/adrs/adr-4110-referee-coverage-strict-by-default.json +25 -0
  1387. package/rcf/adrs/adr-4111-referee-finalise-refusals.json +20 -0
  1388. package/rcf/adrs/adr-4112-referee-finalise-verified-invariant.json +30 -0
  1389. package/rcf/code-nodes/cn-600.json +45 -0
  1390. package/rcf/code-nodes/cn-601.json +18 -0
  1391. package/rcf/code-nodes/cn-602.json +15 -0
  1392. package/rcf/code-nodes/cn-603.json +12 -0
  1393. package/rcf/code-nodes/cn-604.json +14 -0
  1394. package/rcf/code-nodes/cn-605.json +17 -0
  1395. package/rcf/code-nodes/cn-606.json +12 -0
  1396. package/rcf/code-nodes/cn-607.json +12 -0
  1397. package/rcf/code-nodes/cn-608.json +14 -0
  1398. package/rcf/code-nodes/cn-609.json +17 -0
  1399. package/rcf/code-nodes/cn-620.json +18 -0
  1400. package/rcf/code-nodes/cn-621.json +14 -0
  1401. package/rcf/code-nodes/cn-622.json +15 -0
  1402. package/rcf/code-nodes/cn-623.json +16 -0
  1403. package/rcf/code-nodes/cn-624.json +14 -0
  1404. package/rcf/code-nodes/cn-625.json +15 -0
  1405. package/rcf/code-nodes/cn-626.json +13 -0
  1406. package/rcf/code-nodes/cn-627.json +13 -0
  1407. package/rcf/code-nodes/cn-628.json +14 -0
  1408. package/rcf/code-nodes/cn-629.json +12 -0
  1409. package/rcf/code-nodes/cn-630.json +12 -0
  1410. package/rcf/code-nodes/cn-631.json +13 -0
  1411. package/rcf/code-nodes/cn-632.json +13 -0
  1412. package/rcf/fbs/fbs-180.json +45 -0
  1413. package/rcf/fbs/fbs-181.json +45 -0
  1414. package/rcf/fbs/fbs-182.json +42 -0
  1415. package/rcf/fbs/fbs-183.json +50 -0
  1416. package/rcf/fbs/fbs-184.json +49 -0
  1417. package/rcf/fbs/fbs-185.json +34 -0
  1418. package/rcf/fbs/fbs-186.json +16 -0
  1419. package/rcf/fbs/fbs-187.json +17 -0
  1420. package/rcf/fbs/fbs-188.json +17 -0
  1421. package/rcf/fbs/fbs-189.json +17 -0
  1422. package/rcf/requirements/req-155.json +13 -0
  1423. package/rcf/requirements/req-156.json +13 -0
  1424. package/rcf/requirements/req-157.json +13 -0
  1425. package/rcf/requirements/req-158.json +13 -0
  1426. package/rcf/requirements/req-159.json +13 -0
  1427. package/rcf/requirements/req-160.json +13 -0
  1428. package/rcf/requirements/req-161.json +13 -0
  1429. package/rcf/requirements/req-162.json +13 -0
  1430. package/rcf/requirements/req-163.json +13 -0
  1431. package/rcf/requirements/req-164.json +13 -0
  1432. package/rcf/requirements/req-165.json +13 -0
  1433. package/rcf/tacs/tac-4101-feedback-cli.json +77 -0
  1434. package/rcf/tacs/tac-4102-feedback-store.json +50 -0
  1435. package/rcf/tacs/tac-4103-feedback-redact.json +39 -0
  1436. package/rcf/tacs/tac-4104-feedback-fingerprint.json +33 -0
  1437. package/rcf/tacs/tac-4105-feedback-render.json +45 -0
  1438. package/rcf/tacs/tac-4106-feedback-destination.json +39 -0
  1439. package/rcf/tacs/tac-4107-feedback-gh.json +43 -0
  1440. package/rcf/tacs/tac-4108-feedback-hook.json +46 -0
  1441. package/rcf/tacs/tac-4109-referee-validate-adr-crosslinks.json +20 -0
  1442. package/rcf/tacs/tac-4110-referee-coverage-mode-selector.json +21 -0
  1443. package/rcf/tacs/tac-4111-referee-finalise-per-ac-refusals.json +21 -0
  1444. package/rcf/tacs/tac-4112-referee-finalise-verified-invariant.json +22 -0
  1445. package/rcf/test-suites/ts-050.json +1 -1
  1446. package/rcf/test-suites/ts-052.json +1 -1
  1447. package/rcf/test-suites/ts-053.json +2 -2
  1448. package/rcf/test-suites/ts-054.json +2 -2
  1449. package/rcf/test-suites/ts-055.json +2 -2
  1450. package/rcf/test-suites/ts-056.json +4 -4
  1451. package/rcf/test-suites/ts-057.json +2 -2
  1452. package/rcf/test-suites/ts-140.json +9 -9
  1453. package/rcf/test-suites/ts-150.json +9 -9
  1454. package/rcf/test-suites/ts-185.json +54 -0
  1455. package/rcf/test-suites/ts-186.json +58 -0
  1456. package/rcf/test-suites/ts-187.json +44 -0
  1457. package/rcf/test-suites/ts-188.json +166 -0
  1458. package/rcf/test-suites/ts-189.json +38 -0
  1459. package/rcf/test-suites/ts-190.json +30 -0
  1460. package/rcf/test-suites/ts-191.json +51 -0
  1461. package/rcf/test-suites/ts-192.json +37 -0
  1462. package/rcf/test-suites/ts-193.json +60 -0
  1463. package/rcf/test-suites/ts-194.json +67 -0
  1464. package/rcf/test-suites/ts-195.json +52 -0
  1465. package/rcf/test-suites/ts-196.json +58 -0
  1466. package/rcf/test-suites/ts-197.json +66 -0
  1467. package/rcf/test-suites/ts-198.json +87 -0
  1468. package/rcf/test-suites/ts-199.json +51 -0
  1469. package/rcf/test-suites/ts-200.json +30 -0
  1470. package/rcf/test-suites/ts-201.json +38 -0
  1471. package/rcf/test-suites/ts-202.json +38 -0
  1472. package/rcf/test-suites/ts-203.json +38 -0
  1473. package/rcf/user-stories/us-15501.json +60 -0
  1474. package/rcf/user-stories/us-15502.json +33 -0
  1475. package/rcf/user-stories/us-15503.json +33 -0
  1476. package/rcf/user-stories/us-15601.json +51 -0
  1477. package/rcf/user-stories/us-15701.json +42 -0
  1478. package/rcf/user-stories/us-15801.json +42 -0
  1479. package/rcf/user-stories/us-15802.json +33 -0
  1480. package/rcf/user-stories/us-15901.json +33 -0
  1481. package/rcf/user-stories/us-15902.json +51 -0
  1482. package/rcf/user-stories/us-16001.json +51 -0
  1483. package/rcf/user-stories/us-16101.json +42 -0
  1484. package/rcf/user-stories/us-16102.json +33 -0
  1485. package/rcf/user-stories/us-16103.json +42 -0
  1486. package/rcf/user-stories/us-16104.json +42 -0
  1487. package/rcf/user-stories/us-16201.json +33 -0
  1488. package/rcf/user-stories/us-16301.json +36 -0
  1489. package/rcf/user-stories/us-16401.json +45 -0
  1490. package/rcf/user-stories/us-16501.json +45 -0
  1491. package/rcf/user-stories/us-16502.json +45 -0
  1492. package/rcf/user-stories/us-7701.json +3 -3
  1493. package/releases/releases.yaml +21 -1
  1494. package/src/blueprint/library-loader.js +48 -0
  1495. package/src/blueprint/library-registry.js +13 -0
  1496. package/src/browser-verify/pack-runner.js +7 -12
  1497. package/src/build/mark.js +1 -1
  1498. package/src/cli/blueprint-library.js +149 -0
  1499. package/src/cli/coverage.js +49 -24
  1500. package/src/cli/doctor.js +195 -7
  1501. package/src/cli/feedback.js +2204 -0
  1502. package/src/cli/finalise.js +158 -1
  1503. package/src/cli/help.js +6 -0
  1504. package/src/cli/init.js +63 -0
  1505. package/src/cli/update.js +21 -1
  1506. package/src/cli/view.js +22 -11
  1507. package/src/core/store/walker.js +33 -0
  1508. package/src/core/store/writer.js +23 -0
  1509. package/src/feedback/destination.js +361 -0
  1510. package/src/feedback/fingerprint.js +132 -0
  1511. package/src/feedback/gh.js +376 -0
  1512. package/src/feedback/hook.js +183 -0
  1513. package/src/feedback/labels.js +87 -0
  1514. package/src/feedback/redact-allowlist.json +14 -0
  1515. package/src/feedback/redact.js +1108 -0
  1516. package/src/feedback/render.js +267 -0
  1517. package/src/feedback/store.js +604 -0
  1518. package/src/finalise/index.js +4 -0
  1519. package/src/finalise/ingest.js +61 -0
  1520. package/src/finalise/ship-without-eval.js +19 -7
  1521. package/src/mcp/tools.js +8 -2
  1522. package/src/setup/feedback-hooks.js +397 -0
  1523. package/src/setup/managed-gitignore.js +3 -0
  1524. package/src/view/html-page.js +5 -5
  1525. package/src/view/style.css +2 -2
@@ -2,7 +2,7 @@
2
2
  "reqId": "deploy-hetzner-server-REQ-002",
3
3
  "prdId": "PRD-001",
4
4
  "title": "The applying project holds server declarations at hetzner/servers/name.json against a shipped JSON Schema",
5
- "description": "The applying project holds every server declaration as one JSON document under hetzner/servers/<name>.json, matching a shipped draft-07 JSON Schema at blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json. Required fields: name, serverType (cx23, cx33, and other Hetzner shared-cpu shapes), location (fsn1 default per Baz ruling 2026-09-07 09:50Z; also nbg1, hel1, ash, hil), image (ubuntu-24.04 default), sshKeyIds (nonempty array of Hetzner ssh-key references delegated to security-secrets-management), firewallId (an existing firewall or auto-create), networkId (optional private network), cloudInitPath (relative path to the rendered cloud-init user-data), labels (Hetzner tag map that must include role and blueprint), firewallRules (see REQ-004), snapshotCadence (see REQ-005). The schema refuses on missing required fields and on rule-shape violations (see REQ-004).",
5
+ "description": "The applying project holds every server declaration as one JSON document under hetzner/servers/<name>.json, matching a shipped draft-07 JSON Schema at blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json. Required fields: name, serverType (cx23, cx33, and other Hetzner shared-cpu shapes), location (fsn1 default per maintainer ruling 2026-09-07 09:50Z; also nbg1, hel1, ash, hil), image (ubuntu-24.04 default), sshKeyIds (nonempty array of Hetzner ssh-key references delegated to security-secrets-management), firewallId (an existing firewall or auto-create), networkId (optional private network), cloudInitPath (relative path to the rendered cloud-init user-data), labels (Hetzner tag map that must include role and blueprint), firewallRules (see REQ-004), snapshotCadence (see REQ-005). The schema refuses on missing required fields and on rule-shape violations (see REQ-004). The server-type is elicited on the manifest against the shipped Hetzner Cloud shared-vCPU enum: cx23 (shipped default, Intel), cx33, cx43 (more RAM/vCPU for compose stacks over 1 GB RSS), cpx11/cpx21/cpx31/cpx41 (AMD EPYC, faster per vCPU), and cax11/cax21/cax31 (ARM64 shapes for runtimes that publish ARM builds). The ssh-source-prefixes are elicited as a comma-separated CIDR list permitted on port 22; the manifest schema refuses 0.0.0.0/0. The firewall-id is elicited: an existing Hetzner firewall id reused, or empty to have the provisioner create one from firewallRules.",
6
6
  "category": "functional",
7
7
  "domain": "platform",
8
8
  "priority": "must",
@@ -14,5 +14,9 @@
14
14
  "version": "1.0.0",
15
15
  "status": "approved",
16
16
  "createdAt": "2026-09-08T00:00:00.000Z",
17
- "updatedAt": "2026-09-08T00:00:00.000Z"
17
+ "updatedAt": "2026-09-09T00:00:00Z",
18
+ "deliveredBy": {
19
+ "tacId": "TAC-3802-deploy-hetzner-server-manifest-schema",
20
+ "field": "responsibilities.hetzner-server"
21
+ }
18
22
  }
@@ -14,5 +14,9 @@
14
14
  "version": "1.0.0",
15
15
  "status": "approved",
16
16
  "createdAt": "2026-09-08T00:00:00.000Z",
17
- "updatedAt": "2026-09-08T00:00:00.000Z"
17
+ "updatedAt": "2026-09-09T00:00:00Z",
18
+ "deliveredBy": {
19
+ "tacId": "TAC-3803-deploy-hetzner-server-cloud-init-template",
20
+ "field": "responsibilities.hardeningBlocks"
21
+ }
18
22
  }
@@ -14,5 +14,9 @@
14
14
  "version": "1.0.0",
15
15
  "status": "approved",
16
16
  "createdAt": "2026-09-08T00:00:00.000Z",
17
- "updatedAt": "2026-09-08T00:00:00.000Z"
17
+ "updatedAt": "2026-09-09T00:00:00Z",
18
+ "deliveredBy": {
19
+ "tacId": "TAC-3804-deploy-hetzner-server-firewall-shape",
20
+ "field": "responsibilities.firewallRules"
21
+ }
18
22
  }
@@ -2,7 +2,7 @@
2
2
  "reqId": "deploy-hetzner-server-REQ-005",
3
3
  "prdId": "PRD-001",
4
4
  "title": "Snapshot cadence elicited (weekly default, daily and off alternatives), snapshot-on-demand fires a tagged snapshot",
5
- "description": "The applying project elicits a snapshot cadence per ADR-3802 with an enum of weekly (recommended default), daily and off. The value lives on hetzner/servers/name.json as snapshotCadence. When the cadence is non-off, a scheduled snapshot runner in the applying project fires the snapshot verb on the provisioner facade against every server whose cadence matches, and tags each snapshot with the server name and wall-clock time. A snapshot-on-demand verb on the provisioner fires the same shape without a schedule. Under provisioningTool=hcloud the facade shells to hcloud image create-image and tags via hcloud image update; under raw-api it posts to POST /servers/{id}/actions/create_image and PATCH /images/{id}. The hetznerSnapshotTaken lifecycle event carries snapshot id and wall-clock time. Hetzner-managed backups are a separately elicited paid opt-in (approximately 20 percent of monthly server price per https://docs.hetzner.com/cloud/servers/backups-snapshots/overview) and compose with the scheduled snapshot runner.",
5
+ "description": "The applying project elicits a snapshot cadence per ADR-3802 with an enum of weekly (recommended default), daily and off. The value lives on hetzner/servers/name.json as snapshotCadence. When the cadence is non-off, a scheduled snapshot runner in the applying project fires the snapshot verb on the provisioner facade against every server whose cadence matches, and tags each snapshot with the server name and wall-clock time. A snapshot-on-demand verb on the provisioner fires the same shape without a schedule. Under provisioningTool=hcloud the facade shells to hcloud image create-image and tags via hcloud image update; under raw-api it posts to POST /servers/{id}/actions/create_image and PATCH /images/{id}. The hetznerSnapshotTaken lifecycle event carries snapshot id and wall-clock time. Hetzner-managed backups are a separately elicited paid opt-in (approximately 20 percent of monthly server price per https://docs.hetzner.com/cloud/servers/backups-snapshots/overview) and compose with the scheduled snapshot runner. Hetzner-managed backups are elicited true or false: false is the shipped default (the scheduled snapshot runner carries the recovery-point objective through Hetzner Cloud snapshots); true opts in to Hetzner-managed backups per ADR-3802 (paid, approximately 20 percent of monthly server price).",
6
6
  "category": "functional",
7
7
  "domain": "platform",
8
8
  "priority": "must",
@@ -14,5 +14,9 @@
14
14
  "version": "1.0.0",
15
15
  "status": "approved",
16
16
  "createdAt": "2026-09-08T00:00:00.000Z",
17
- "updatedAt": "2026-09-08T00:00:00.000Z"
17
+ "updatedAt": "2026-09-09T00:00:00Z",
18
+ "deliveredBy": {
19
+ "adrId": "ADR-3802-deploy-hetzner-server-snapshot-cadence",
20
+ "field": "decision.cadenceEnum"
21
+ }
18
22
  }
@@ -14,5 +14,9 @@
14
14
  "version": "1.0.0",
15
15
  "status": "approved",
16
16
  "createdAt": "2026-09-08T00:00:00.000Z",
17
- "updatedAt": "2026-09-08T00:00:00.000Z"
17
+ "updatedAt": "2026-09-09T00:00:00Z",
18
+ "deliveredBy": {
19
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
20
+ "field": "responsibilities.lifecycleEvents"
21
+ }
18
22
  }
@@ -31,7 +31,7 @@
31
31
  "location": {
32
32
  "type": "string",
33
33
  "enum": ["fsn1", "nbg1", "hel1", "ash", "hil"],
34
- "description": "Hetzner data centre location. fsn1 is the shipped default per Baz ruling 2026-09-07 09:50Z on the Q2 ratification."
34
+ "description": "Hetzner data centre location. fsn1 is the shipped default per maintainer ruling 2026-09-07 09:50Z on the Q2 ratification."
35
35
  },
36
36
  "image": {
37
37
  "type": "string",
@@ -89,7 +89,7 @@ write_files:
89
89
  # Breaks: iptables-persistent), so we DO NOT install it; the DOCKER-USER
90
90
  # chain is loaded in runcmd via iptables directly (block 4 stays valid
91
91
  # for the running boot; reboot-persistence for the chain is a follow-up
92
- # item outside the H-1 hardening scope).
92
+ # item outside the round-7 hardening scope).
93
93
  packages:
94
94
  - ufw
95
95
  - fail2ban
@@ -13,12 +13,73 @@
13
13
  "id": "AC-37101-1",
14
14
  "description": "On process boot the provisioner facade opens against the token, and (a) only the provisioner module reads HETZNER_ACCOUNT_API_KEY (grep across the fixture source refuses any other reader), (b) provisionerReady fires on the injected event sink with a payload of exactly {tool, apiHost}.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "disposition": "template"
18
+ },
19
+ {
20
+ "id": "AC-37101-2",
21
+ "description": "Credential missing. Given HETZNER_ACCOUNT_API_KEY unset in the applied secrets facade, when the provisioner facade opens on process boot, then the facade refuses with a named error kind (missingProvisionerToken), no provisionerReady event fires on the sink, and the error record carries no token substring.",
22
+ "given": "HETZNER_ACCOUNT_API_KEY unset in the applied secrets facade",
23
+ "when": "the provisioner opens on process boot",
24
+ "then": "the facade refuses with the named error kind missingProvisionerToken; no provisionerReady fires; the error record carries no token substring",
25
+ "testable": true,
26
+ "scope": "runtime",
27
+ "ownerRef": {
28
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
29
+ "field": "interfaces.default"
30
+ },
31
+ "disposition": "fixed",
32
+ "vendorCitation": {
33
+ "url": "https://docs.hetzner.cloud/#authentication",
34
+ "verifiedOn": "2026-09-09"
35
+ }
36
+ },
37
+ {
38
+ "id": "AC-37101-3",
39
+ "description": "Dependency not ready. Given the elicited provisioning-tool is hcloud and hcloud is absent from PATH on the process shell, when the provisioner opens on process boot, then the facade refuses with a named error kind (missingProvisionerTool) and no provisionerReady fires.",
40
+ "given": "provisioning-tool = hcloud and hcloud absent from PATH",
41
+ "when": "the provisioner opens on process boot",
42
+ "then": "the facade refuses with the named error kind missingProvisionerTool; no provisionerReady fires",
43
+ "testable": true,
44
+ "scope": "runtime",
45
+ "ownerRef": {
46
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
47
+ "field": "interfaces.default"
48
+ },
49
+ "disposition": "template"
50
+ },
51
+ {
52
+ "id": "AC-37101-4",
53
+ "description": "Repeat boot idempotency. Given a completed first boot of the provisioner facade, when the process boots a second time against the same token and elicited configuration, then the facade opens again and provisionerReady fires once per boot with the same payload shape ({tool, apiHost}); no accumulator or side-channel state drifts across boots.",
54
+ "given": "a completed first boot with provisionerReady already fired",
55
+ "when": "the process boots a second time against the same token and elicited configuration",
56
+ "then": "the facade opens again; provisionerReady fires once per boot with the same {tool, apiHost} payload shape; no state drifts across boots",
57
+ "testable": true,
58
+ "scope": "runtime",
59
+ "ownerRef": {
60
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
61
+ "field": "interfaces.default"
62
+ },
63
+ "disposition": "fixed"
64
+ },
65
+ {
66
+ "id": "AC-37101-5",
67
+ "description": "Provisioning tool raw-api. Given the elicited provisioning-tool answers raw-api, when the provisioner opens on process boot, then the facade constructs a fetch-based HTTP client against https://api.hetzner.cloud/v1 with Bearer HETZNER_ACCOUNT_API_KEY on every request (no hcloud binary invocation; grep across the fixture source refuses any child_process.execFile / spawn of hcloud); the provisionerReady payload carries tool='raw-api' and apiHost='api.hetzner.cloud'; a subsequent createServer verb issues one POST https://api.hetzner.cloud/v1/servers with the JSON body per the Hetzner Cloud API server-create schema.",
68
+ "given": "provisioning-tool = raw-api",
69
+ "when": "the provisioner opens on process boot",
70
+ "then": "the facade uses fetch against api.hetzner.cloud/v1 with Bearer auth; no hcloud spawn; provisionerReady carries tool='raw-api' and apiHost='api.hetzner.cloud'; createServer POSTs /v1/servers with the documented JSON body",
71
+ "testable": true,
72
+ "scope": "runtime",
73
+ "ownerRef": {
74
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
75
+ "field": "interfaces.default"
76
+ },
77
+ "disposition": "template"
17
78
  }
18
79
  ],
19
80
  "tacIds": [
20
81
  "TAC-3801-deploy-hetzner-server-provisioner"
21
82
  ],
22
83
  "createdAt": "2026-09-08T00:00:00.000Z",
23
- "updatedAt": "2026-09-08T00:00:00.000Z"
84
+ "updatedAt": "2026-09-09T00:00:00Z"
24
85
  }
@@ -13,12 +13,45 @@
13
13
  "id": "AC-37102-1",
14
14
  "description": "manifest-schema-validate.mjs asserts every hetzner/servers/*.json under the shared throwaway-server fixture validates against blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json and carries every required field; a mutation SIMULATE_MANIFEST_INVALID=true replaces location with an unknown token and the probe FAILS naming the offending field.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "ownerRef": {
18
+ "tacId": "TAC-3802-deploy-hetzner-server-manifest-schema",
19
+ "field": "interfaces.hetzner-server.schema.json"
20
+ },
21
+ "disposition": "template"
22
+ },
23
+ {
24
+ "id": "AC-37102-2",
25
+ "description": "Malformed manifest refusal. Given a hetzner/servers/*.json file with a required field missing (for example serverType omitted), when the schema validator runs, then the probe FAILS with a message that names the offending file and the missing required field; the provisioner facade refuses to apply the manifest.",
26
+ "given": "a hetzner/servers/*.json with a required field omitted",
27
+ "when": "manifest-schema-validate.mjs runs against the fixture set",
28
+ "then": "the probe FAILS naming the offending file and the missing required field; the provisioner refuses to apply",
29
+ "testable": true,
30
+ "scope": "runtime",
31
+ "ownerRef": {
32
+ "tacId": "TAC-3802-deploy-hetzner-server-manifest-schema",
33
+ "field": "interfaces.hetzner-server.schema.json"
34
+ },
35
+ "disposition": "template"
36
+ },
37
+ {
38
+ "id": "AC-37102-3",
39
+ "description": "Boundary refusal: firewall rule opens ssh to 0.0.0.0/0. Given a manifest whose firewallRules ssh entry carries sourceIps including 0.0.0.0/0, when the schema validator runs, then the probe FAILS naming the ssh rule with the specific 0.0.0.0/0 offence; the provisioner refuses to apply.",
40
+ "given": "a manifest whose firewallRules ssh entry carries sourceIps including 0.0.0.0/0",
41
+ "when": "manifest-schema-validate.mjs runs",
42
+ "then": "the probe FAILS naming the ssh rule and the 0.0.0.0/0 offence; the provisioner refuses to apply",
43
+ "testable": true,
44
+ "scope": "runtime",
45
+ "ownerRef": {
46
+ "tacId": "TAC-3804-deploy-hetzner-server-firewall-shape",
47
+ "field": "interfaces.firewallRules"
48
+ },
49
+ "disposition": "fixed"
17
50
  }
18
51
  ],
19
52
  "tacIds": [
20
53
  "TAC-3802-deploy-hetzner-server-manifest-schema"
21
54
  ],
22
55
  "createdAt": "2026-09-08T00:00:00.000Z",
23
- "updatedAt": "2026-09-08T00:00:00.000Z"
56
+ "updatedAt": "2026-09-09T00:00:00Z"
24
57
  }
@@ -13,7 +13,64 @@
13
13
  "id": "AC-37103-1",
14
14
  "description": "The real-account-throwaway-server-provision probe (accountBound: true, skipped without CI_HAS_HETZNER_ACCOUNT) applies the ci-throwaway.json manifest via provision.mjs, asserts (a) hcloud server list --output json shows the new server whose id is written to the fixture scratch file, (b) hetznerServerProvisioned fired with id, primaryIpv4, location=fsn1, serverType=cx23; teardown via destroy.mjs runs regardless of probe verdict.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "disposition": "template"
18
+ },
19
+ {
20
+ "id": "AC-37103-2",
21
+ "description": "Provisioner failure surfaces (upstream non-2xx). Given the hetzner API returns a non-2xx response (for example 429 rate-limited on the account) during a createServer call, when provision.mjs runs, then the facade catches the failure, emits provisionerFailed with { verb: \"createServer\", apiStatus, retryable: boolean } on the event sink, no hetznerServerProvisioned fires, and no orphan server survives on the account after the run.",
22
+ "given": "the hetzner API returns 429 on createServer",
23
+ "when": "provision.mjs runs the fixture manifest",
24
+ "then": "the facade emits provisionerFailed with { verb, apiStatus, retryable }; no hetznerServerProvisioned fires; no orphan server survives after the run",
25
+ "testable": true,
26
+ "scope": "runtime",
27
+ "ownerRef": {
28
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
29
+ "field": "interfaces.default"
30
+ },
31
+ "disposition": "template"
32
+ },
33
+ {
34
+ "id": "AC-37103-3",
35
+ "description": "Repeat-apply idempotency. Given a manifest already applied once and matching a live server on the account, when provision.mjs runs the same manifest a second time, then the facade emits no second hetznerServerProvisioned, the run exits zero, and the live server id remains unchanged; a subsequent destroy tears the single server down.",
36
+ "given": "a manifest already applied once against a live matching server",
37
+ "when": "provision.mjs runs the same manifest again",
38
+ "then": "no second hetznerServerProvisioned fires; the run exits zero; the live server id remains unchanged",
39
+ "testable": true,
40
+ "scope": "runtime",
41
+ "ownerRef": {
42
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
43
+ "field": "interfaces.default"
44
+ },
45
+ "disposition": "template"
46
+ },
47
+ {
48
+ "id": "AC-37103-4",
49
+ "description": "Server-type elicit accepts every shipped SKU. Given the elicited server-type answers one of { cx23, cx33, cx43, cpx11, cpx21, cpx31, cpx41, cax11, cax21, cax31 }, when the manifest applies, then the createServer call carries `\"server_type\": \"<answer>\"` verbatim in the JSON body (raw-api mode) or `--type <answer>` on the hcloud CLI (hcloud mode) and the hetznerServerProvisioned event's serverType field equals the answer; a value outside the enum refuses at manifest load with an unknownServerType error kind and no createServer call is issued.",
50
+ "given": "server-type answered one of the ten shipped SKUs",
51
+ "when": "provision.mjs runs the manifest",
52
+ "then": "createServer carries the answer verbatim (server_type JSON field or hcloud --type flag); hetznerServerProvisioned.serverType equals the answer; a value outside the enum refuses with unknownServerType and no createServer fires",
53
+ "testable": true,
54
+ "scope": "runtime",
55
+ "ownerRef": {
56
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
57
+ "field": "interfaces.default"
58
+ },
59
+ "disposition": "template"
60
+ },
61
+ {
62
+ "id": "AC-37103-5",
63
+ "description": "Location elicit accepts every shipped datacentre. Given the elicited location answers one of { fsn1, nbg1, hel1, ash, hil }, when the manifest applies, then the createServer call carries `\"location\": \"<answer>\"` verbatim in the JSON body (raw-api mode) or `--location <answer>` on the hcloud CLI (hcloud mode) and the hetznerServerProvisioned event's location field equals the answer; a value outside the enum refuses at manifest load with an unknownLocation error kind and no createServer call is issued.",
64
+ "given": "location answered one of the five shipped datacentre codes",
65
+ "when": "provision.mjs runs the manifest",
66
+ "then": "createServer carries the answer verbatim (location JSON field or hcloud --location flag); hetznerServerProvisioned.location equals the answer; a value outside the enum refuses with unknownLocation and no createServer fires",
67
+ "testable": true,
68
+ "scope": "runtime",
69
+ "ownerRef": {
70
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
71
+ "field": "interfaces.default"
72
+ },
73
+ "disposition": "template"
17
74
  }
18
75
  ],
19
76
  "tacIds": [
@@ -21,5 +78,5 @@
21
78
  "TAC-3802-deploy-hetzner-server-manifest-schema"
22
79
  ],
23
80
  "createdAt": "2026-09-08T00:00:00.000Z",
24
- "updatedAt": "2026-09-08T00:00:00.000Z"
81
+ "updatedAt": "2026-09-09T00:00:00Z"
25
82
  }
@@ -13,12 +13,41 @@
13
13
  "id": "AC-37104-1",
14
14
  "description": "cloud-init-render-lint.mjs renders the template with the fixture manifest and asserts each of the six baseline blocks (SSH key-only, root disabled, UFW default-deny incoming, DOCKER-USER iptables chain, fail2ban SSH jail, unattended-upgrades) appears in the rendered YAML by grep; a mutation SIMULATE_HARDENING_DRIFT=true removes the unattended-upgrades block and the probe FAILS with a message naming the missing line.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "disposition": "template"
18
+ },
19
+ {
20
+ "id": "AC-37104-2",
21
+ "description": "Malformed template refusal. Given the cloud-init template with a placeholder tag left unclosed or misspelled, when cloud-init-render-lint.mjs renders it, then the probe FAILS naming the malformed placeholder; no rendered YAML is written to disk.",
22
+ "given": "a cloud-init template with a malformed placeholder",
23
+ "when": "cloud-init-render-lint.mjs runs",
24
+ "then": "the probe FAILS naming the malformed placeholder; no rendered YAML is written",
25
+ "testable": true,
26
+ "scope": "runtime",
27
+ "ownerRef": {
28
+ "tacId": "TAC-3803-deploy-hetzner-server-cloud-init-template",
29
+ "field": "interfaces.cloud-init.yaml.tmpl"
30
+ },
31
+ "disposition": "fixed"
32
+ },
33
+ {
34
+ "id": "AC-37104-3",
35
+ "description": "Fixture renderer refuses on unknown placeholder. Given the fixture renderer given a template with an unknown placeholder tag (a tag not in the two-placeholder shape {{name}} and {{sshAuthorizedKeysBlock}}), when the renderer runs, then it refuses with a named error kind (unknownPlaceholder); no rendered YAML is written to disk.",
36
+ "given": "a template with an unknown placeholder tag",
37
+ "when": "the fixture renderer runs",
38
+ "then": "the renderer refuses with unknownPlaceholder; no rendered YAML is written",
39
+ "testable": true,
40
+ "scope": "runtime",
41
+ "ownerRef": {
42
+ "tacId": "TAC-3803-deploy-hetzner-server-cloud-init-template",
43
+ "field": "interfaces.cloud-init.yaml.tmpl"
44
+ },
45
+ "disposition": "fixed"
17
46
  }
18
47
  ],
19
48
  "tacIds": [
20
49
  "TAC-3803-deploy-hetzner-server-cloud-init-template"
21
50
  ],
22
51
  "createdAt": "2026-09-08T00:00:00.000Z",
23
- "updatedAt": "2026-09-08T00:00:00.000Z"
52
+ "updatedAt": "2026-09-09T00:00:00Z"
24
53
  }
@@ -13,12 +13,35 @@
13
13
  "id": "AC-37105-1",
14
14
  "description": "real-account-cloud-init-hardened.mjs (accountBound: true, skipped without CI_HAS_HETZNER_ACCOUNT) waits for cloud-init status --wait on the throwaway server, then ssh-checks the six baseline blocks and asserts each check passes; failure names the missing block. Teardown via destroy.mjs runs regardless.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "ownerRef": {
18
+ "tacId": "TAC-3803-deploy-hetzner-server-cloud-init-template",
19
+ "field": "interfaces.cloud-init.yaml.tmpl"
20
+ },
21
+ "disposition": "fixed",
22
+ "vendorCitation": {
23
+ "url": "https://cloudinit.readthedocs.io/en/latest/topics/format.html",
24
+ "verifiedOn": "2026-09-09"
25
+ }
26
+ },
27
+ {
28
+ "id": "AC-37105-2",
29
+ "description": "Cloud-init timeout surfaces as a probe failure. Given the cloud-init boot process exceeds the vendor timeout (approximately 10 minutes), when cloud-init status --wait returns a non-done status, then the probe FAILS naming the non-done status; the throwaway server is torn down via destroy.mjs regardless.",
30
+ "given": "cloud-init boot exceeds the vendor timeout",
31
+ "when": "cloud-init status --wait returns non-done",
32
+ "then": "the probe FAILS naming the non-done status; teardown via destroy.mjs runs regardless",
33
+ "testable": true,
34
+ "scope": "runtime",
35
+ "ownerRef": {
36
+ "tacId": "TAC-3803-deploy-hetzner-server-cloud-init-template",
37
+ "field": "interfaces.cloud-init.yaml.tmpl"
38
+ },
39
+ "disposition": "fixed"
17
40
  }
18
41
  ],
19
42
  "tacIds": [
20
43
  "TAC-3803-deploy-hetzner-server-cloud-init-template"
21
44
  ],
22
45
  "createdAt": "2026-09-08T00:00:00.000Z",
23
- "updatedAt": "2026-09-08T00:00:00.000Z"
46
+ "updatedAt": "2026-09-09T00:00:00Z"
24
47
  }
@@ -13,7 +13,40 @@
13
13
  "id": "AC-37106-1",
14
14
  "description": "manifest-schema-validate.mjs asserts every fixture manifest carries a firewallRules array matching the shape (22 permitted only from a nonempty list of source-prefix ranges with no 0.0.0.0/0; 80 and 443 permitted from 0.0.0.0/0; no other inbound rule); an induced defect (a manifest that opens 22 to 0.0.0.0/0) FAILS schema validation with a message naming the offending rule.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "ownerRef": {
18
+ "tacId": "TAC-3804-deploy-hetzner-server-firewall-shape",
19
+ "field": "interfaces.firewallRules"
20
+ },
21
+ "disposition": "template"
22
+ },
23
+ {
24
+ "id": "AC-37106-2",
25
+ "description": "Firewall applied at provision time. Given a manifest carrying the shape-valid firewallRules array, when the provisioner runs createServer + applyFirewall, then hcloud firewall list --output json shows a firewall bound to the new server whose rules match the manifest shape (ssh restricted, 80/443 open, all else denied); a mutation SIMULATE_FIREWALL_DRIFT=true edits one rule out-of-band and the probe FAILS naming the drifted rule.",
26
+ "given": "a manifest with shape-valid firewallRules and no pre-existing firewall bound",
27
+ "when": "the provisioner runs against the throwaway account",
28
+ "then": "hcloud firewall list shows the bound firewall matching the manifest; a drift mutation FAILS the probe naming the drifted rule",
29
+ "testable": true,
30
+ "scope": "runtime",
31
+ "ownerRef": {
32
+ "tacId": "TAC-3804-deploy-hetzner-server-firewall-shape",
33
+ "field": "interfaces.firewallRules"
34
+ },
35
+ "disposition": "template"
36
+ },
37
+ {
38
+ "id": "AC-37106-3",
39
+ "description": "Reuse existing firewall-id path. Given the elicited firewall-id names an existing Hetzner Cloud firewall id, when the provisioner runs createServer, then it attaches the existing firewall (no new firewall is created), and hcloud firewall list --output json shows no duplicate; a mutation that supplies a firewall-id absent from the account FAILS provision with a named error kind (missingFirewallId).",
40
+ "given": "firewall-id names an existing account firewall id",
41
+ "when": "the provisioner runs createServer",
42
+ "then": "the existing firewall attaches; no new firewall is created; the missing-id mutation FAILS provision with missingFirewallId",
43
+ "testable": true,
44
+ "scope": "runtime",
45
+ "ownerRef": {
46
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
47
+ "field": "interfaces.default"
48
+ },
49
+ "disposition": "template"
17
50
  }
18
51
  ],
19
52
  "tacIds": [
@@ -21,5 +54,5 @@
21
54
  "TAC-3804-deploy-hetzner-server-firewall-shape"
22
55
  ],
23
56
  "createdAt": "2026-09-08T00:00:00.000Z",
24
- "updatedAt": "2026-09-08T00:00:00.000Z"
57
+ "updatedAt": "2026-09-09T00:00:00Z"
25
58
  }
@@ -13,12 +13,41 @@
13
13
  "id": "AC-37107-1",
14
14
  "description": "manifest-schema-validate.mjs asserts every fixture manifest carries snapshotCadence with a value in the shipped enum {weekly, daily, off}; a manifest missing the field FAILS schema validation naming the missing field.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "disposition": "template"
18
+ },
19
+ {
20
+ "id": "AC-37107-2",
21
+ "description": "Scheduled snapshot fires per elicited cadence. Given snapshotCadence = weekly and hetznerManagedBackups = false, when the scheduled snapshot runner ticks past the weekly boundary against the throwaway server, then hcloud image list --type=snapshot --output json shows a fresh snapshot tagged with the server name and current wall-clock time; hetznerScheduledSnapshotTaken fires on the event sink with snapshot id, cadence and time. A mutation snapshotCadence = off suppresses the scheduled run and asserts no new snapshot appears.",
22
+ "given": "snapshotCadence = weekly, hetznerManagedBackups = false, throwaway server present",
23
+ "when": "the scheduled snapshot runner ticks past the weekly boundary",
24
+ "then": "hcloud image list --type=snapshot shows a fresh tagged snapshot; hetznerScheduledSnapshotTaken fires with snapshot id, cadence, time; snapshotCadence=off produces no new snapshot",
25
+ "testable": true,
26
+ "scope": "runtime",
27
+ "ownerRef": {
28
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
29
+ "field": "interfaces.default"
30
+ },
31
+ "disposition": "template"
32
+ },
33
+ {
34
+ "id": "AC-37107-3",
35
+ "description": "Enum drift refusal on snapshot-cadence. Given a manifest snapshotCadence value outside the shipped enum {weekly, daily, off}, when manifest-schema-validate.mjs runs, then the probe FAILS naming the offending value and the shipped enum; the provisioner refuses to apply the manifest.",
36
+ "given": "snapshotCadence value outside {weekly, daily, off}",
37
+ "when": "manifest-schema-validate.mjs runs",
38
+ "then": "the probe FAILS naming the offending value and the shipped enum; the provisioner refuses to apply",
39
+ "testable": true,
40
+ "scope": "runtime",
41
+ "ownerRef": {
42
+ "tacId": "TAC-3802-deploy-hetzner-server-manifest-schema",
43
+ "field": "interfaces.hetzner-server.schema.json"
44
+ },
45
+ "disposition": "template"
17
46
  }
18
47
  ],
19
48
  "tacIds": [
20
49
  "TAC-3802-deploy-hetzner-server-manifest-schema"
21
50
  ],
22
51
  "createdAt": "2026-09-08T00:00:00.000Z",
23
- "updatedAt": "2026-09-08T00:00:00.000Z"
52
+ "updatedAt": "2026-09-09T00:00:00Z"
24
53
  }
@@ -13,12 +13,53 @@
13
13
  "id": "AC-37108-1",
14
14
  "description": "real-account-snapshot-on-demand.mjs (accountBound: true, skipped without CI_HAS_HETZNER_ACCOUNT) fires the snapshot verb on the throwaway server, then asserts hcloud image list --type=snapshot --output json shows a snapshot tagged with the server name and current wall-clock time; hetznerSnapshotTaken event carries snapshot id and time. Teardown via destroy.mjs.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "disposition": "fixed",
18
+ "vendorCitation": {
19
+ "url": "https://docs.hetzner.cloud/#images-create-image-from-a-server",
20
+ "verifiedOn": "2026-09-09"
21
+ }
22
+ },
23
+ {
24
+ "id": "AC-37108-2",
25
+ "description": "Snapshot-on-demand upstream failure. Given the hetzner API returns a non-2xx response on hcloud image create-image (for example 429 rate-limited or 503 upstream), when the snapshot-on-demand verb runs, then the facade emits provisionerFailed with { verb: \"createImage\", apiStatus, retryable } on the event sink and no hetznerSnapshotTaken fires; no orphan snapshot resource remains on the account.",
26
+ "given": "the hetzner API returns 429 or 503 on hcloud image create-image",
27
+ "when": "the snapshot-on-demand verb runs",
28
+ "then": "the facade emits provisionerFailed with { verb, apiStatus, retryable }; no hetznerSnapshotTaken fires; no orphan snapshot remains",
29
+ "testable": true,
30
+ "scope": "runtime",
31
+ "ownerRef": {
32
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
33
+ "field": "interfaces.default"
34
+ },
35
+ "disposition": "fixed",
36
+ "vendorCitation": {
37
+ "url": "https://docs.hetzner.cloud/#errors",
38
+ "verifiedOn": "2026-09-09"
39
+ }
40
+ },
41
+ {
42
+ "id": "AC-37108-3",
43
+ "description": "Snapshot payload shape check. Given a successful snapshot-on-demand, when the hetznerSnapshotTaken event record is inspected, then the record carries exactly { serverName, snapshotId, ts } (ts is wall-clock milliseconds since epoch) and no additional field; a mutation SIMULATE_SNAPSHOT_EVENT_LEAK=true injects a token substring into the record and the sink observer FAILS.",
44
+ "given": "a successful snapshot-on-demand event fired",
45
+ "when": "the record is inspected",
46
+ "then": "the record carries exactly {serverName, snapshotId, ts} and no additional field; the leak mutation FAILS",
47
+ "testable": true,
48
+ "scope": "runtime",
49
+ "ownerRef": {
50
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
51
+ "field": "interfaces.default"
52
+ },
53
+ "disposition": "fixed",
54
+ "vendorCitation": {
55
+ "url": "https://docs.hetzner.cloud/#images-create-image-from-a-server",
56
+ "verifiedOn": "2026-09-09"
57
+ }
17
58
  }
18
59
  ],
19
60
  "tacIds": [
20
61
  "TAC-3801-deploy-hetzner-server-provisioner"
21
62
  ],
22
63
  "createdAt": "2026-09-08T00:00:00.000Z",
23
- "updatedAt": "2026-09-08T00:00:00.000Z"
64
+ "updatedAt": "2026-09-09T00:00:00Z"
24
65
  }
@@ -13,12 +13,41 @@
13
13
  "id": "AC-37109-1",
14
14
  "description": "hcloud-dry-run-mock.mjs drives every lifecycle event through the facade against a mocked hcloud shim; the accumulated event stream carries only the metadata fields named on REQ-006; a mutation SIMULATE_EVENT_SECRECY_LEAK=true injects the token into the hetznerServerProvisioned payload and the probe FAILS with a defensive-fake finding naming the leaked field.",
15
15
  "testable": true,
16
- "scope": "runtime"
16
+ "scope": "runtime",
17
+ "disposition": "fixed"
18
+ },
19
+ {
20
+ "id": "AC-37109-2",
21
+ "description": "Secret exclusion by grep-across-source. Given the fixture provisioner source and the fixture renderer source (per TAC-3803), when a source-tree scan searches every onEvent call site and every event-record construction site for the substring HETZNER_ACCOUNT_API_KEY and any ssh key body, then no match is found; a mutation SIMULATE_EVENT_TOKEN_LEAK=true adds the token into an event field and the probe FAILS naming the leaked field.",
22
+ "given": "the fixture provisioner and renderer source, and the four documented lifecycle events",
23
+ "when": "a source-tree grep runs across every event-record construction site",
24
+ "then": "no HETZNER_ACCOUNT_API_KEY or ssh-key-body match is found; the mutation FAILS naming the leaked field",
25
+ "testable": true,
26
+ "scope": "runtime",
27
+ "ownerRef": {
28
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
29
+ "field": "interfaces.default"
30
+ },
31
+ "disposition": "fixed"
32
+ },
33
+ {
34
+ "id": "AC-37109-3",
35
+ "description": "Event fires once per lifecycle moment (repeat-run idempotency). Given a completed provision and a completed destroy, when the run replays a second time against the same manifest and account, then hetznerServerProvisioned fires once per successful create and hetznerServerDestroyed fires once per successful destroy; no duplicate event fires for a run whose upstream call did not change resource state.",
36
+ "given": "a completed provision + destroy cycle",
37
+ "when": "the run replays a second time against the same manifest and account",
38
+ "then": "each lifecycle event fires exactly once per successful state change; no duplicate event fires on a no-op call",
39
+ "testable": true,
40
+ "scope": "runtime",
41
+ "ownerRef": {
42
+ "tacId": "TAC-3801-deploy-hetzner-server-provisioner",
43
+ "field": "interfaces.default"
44
+ },
45
+ "disposition": "template"
17
46
  }
18
47
  ],
19
48
  "tacIds": [
20
49
  "TAC-3801-deploy-hetzner-server-provisioner"
21
50
  ],
22
51
  "createdAt": "2026-09-08T00:00:00.000Z",
23
- "updatedAt": "2026-09-08T00:00:00.000Z"
52
+ "updatedAt": "2026-09-09T00:00:00Z"
24
53
  }
@@ -44,5 +44,5 @@ The shelf-wide band registry lives in `packages/rcf-lite/docs/blueprint-authorin
44
44
 
45
45
  - `security-secrets-management` (v1.0.1): the provisioner facade reads `HETZNER_ACCOUNT_API_KEY` through the applied secrets facade. The facade is the sole reader; every other module in the applying project imports the facade and never dereferences the token.
46
46
  - `deploy-cloudflare-workers` (v1.2.0): sibling in the `deploy-*` family. The family enforces one-target-per-project at apply time (a project applying both refuses with `deploy-family-multiple-targets`).
47
- - Round-7 T-2 `platform-docker-compose-host`: composes on `capabilities: [cloudHost]`; ships the compose runtime on the Hetzner host this blueprint provisions.
48
- - Round-7 T-3 `edge-cloudflare-tunnel`: composes on `cloudHost` (systemd unit shape) or on `containerHost` (compose service shape); either shape bridges the Hetzner host to the Cloudflare edge without opening origin ports.
47
+ - round-7 `platform-docker-compose-host`: composes on `capabilities: [cloudHost]`; ships the compose runtime on the Hetzner host this blueprint provisions.
48
+ - round-7 `edge-cloudflare-tunnel`: composes on `cloudHost` (systemd unit shape) or on `containerHost` (compose service shape); either shape bridges the Hetzner host to the Cloudflare edge without opening origin ports.