rcf-lite 0.25.0 → 0.27.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 (1192) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/blueprints/application-account-settings/CHANGELOG.md +35 -2
  3. package/blueprints/application-account-settings/README.md +10 -10
  4. package/blueprints/application-account-settings/blueprint.json +23 -3
  5. package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +1 -1
  6. package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +5 -5
  7. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +6 -2
  8. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +4 -0
  9. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +7 -3
  10. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +4 -0
  11. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +4 -0
  12. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +6 -2
  13. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-007.json +22 -0
  14. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-009.json +21 -0
  15. package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +8 -4
  16. package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +3 -3
  17. package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +13 -7
  18. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +19 -3
  19. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -2
  20. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +13 -2
  21. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +23 -2
  22. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +51 -3
  23. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +25 -6
  24. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +13 -2
  25. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -2
  26. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +4 -2
  27. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +13 -2
  28. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25111.json +71 -0
  29. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25112.json +77 -0
  30. package/blueprints/application-account-settings/docs/topics.md +5 -5
  31. package/blueprints/application-account-settings/guide/application-account-settings.md +1 -1
  32. package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +2 -2
  33. package/blueprints/application-admin-console/CHANGELOG.md +42 -6
  34. package/blueprints/application-admin-console/README.md +4 -4
  35. package/blueprints/application-admin-console/blueprint.json +31 -1
  36. package/blueprints/application-admin-console/contributions/adrs/adr-2201-application-admin-console-capability-vocabulary.json +2 -2
  37. package/blueprints/application-admin-console/contributions/adrs/adr-2203-application-admin-console-invite-transport.json +5 -5
  38. package/blueprints/application-admin-console/contributions/adrs/adr-2204-application-admin-console-audit-retention.json +7 -7
  39. package/blueprints/application-admin-console/contributions/adrs/adr-2214-application-admin-console-consume-zero-trust-gate.json +3 -3
  40. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +4 -0
  41. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +5 -1
  42. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +4 -0
  43. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +4 -0
  44. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +6 -2
  45. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +4 -0
  46. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-007.json +22 -0
  47. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-008.json +22 -0
  48. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-009.json +21 -0
  49. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-014.json +6 -2
  50. package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +9 -7
  51. package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +6 -6
  52. package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +1 -1
  53. package/blueprints/application-admin-console/contributions/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +5 -5
  54. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21101.json +4 -2
  55. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21102.json +4 -2
  56. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21103.json +10 -4
  57. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21104.json +13 -2
  58. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21105.json +15 -3
  59. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21106.json +35 -2
  60. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +22 -3
  61. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21108.json +4 -2
  62. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21109.json +4 -2
  63. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21110.json +68 -0
  64. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21111.json +76 -0
  65. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21112.json +77 -0
  66. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21815.json +21 -2
  67. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21816.json +21 -2
  68. package/blueprints/application-admin-console/docs/topics.md +1 -1
  69. package/blueprints/application-admin-console/guide/application-admin-console.md +3 -3
  70. package/blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs +2 -2
  71. package/blueprints/application-api-rest/CHANGELOG.md +26 -0
  72. package/blueprints/application-api-rest/assets/samples/request-response-pairs.md +2 -0
  73. package/blueprints/application-api-rest/blueprint.json +1 -1
  74. package/blueprints/application-api-rest/contributions/adrs/adr-301-application-api-rest-error-envelope.json +1 -1
  75. package/blueprints/application-api-rest/contributions/adrs/adr-302-application-api-rest-auth-model.json +1 -1
  76. package/blueprints/application-api-rest/contributions/adrs/adr-303-application-api-rest-api-versioning.json +1 -1
  77. package/blueprints/application-api-rest/contributions/adrs/adr-304-application-api-rest-logging.json +1 -1
  78. package/blueprints/application-api-rest/contributions/adrs/adr-305-application-api-rest-pagination.json +1 -1
  79. package/blueprints/application-api-rest/contributions/adrs/adr-306-application-api-rest-idempotency.json +3 -3
  80. package/blueprints/application-api-rest/contributions/adrs/adr-307-application-api-rest-openapi-generation.json +1 -1
  81. package/blueprints/application-api-rest/contributions/adrs/adr-308-application-api-rest-rate-limiting.json +1 -1
  82. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-001.json +6 -2
  83. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-002.json +7 -3
  84. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-003.json +6 -2
  85. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-004.json +6 -2
  86. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-005.json +6 -2
  87. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-006.json +6 -2
  88. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-007.json +6 -2
  89. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-008.json +6 -2
  90. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-009.json +6 -2
  91. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-010.json +8 -4
  92. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-011.json +6 -2
  93. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-012.json +6 -2
  94. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-013.json +7 -3
  95. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-014.json +6 -2
  96. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-015.json +6 -2
  97. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-016.json +6 -2
  98. package/blueprints/application-api-rest/contributions/tacs/tac-301-application-api-rest-request-pipeline.json +1 -1
  99. package/blueprints/application-api-rest/contributions/tacs/tac-302-application-api-rest-auth-middleware.json +1 -1
  100. package/blueprints/application-api-rest/contributions/tacs/tac-303-application-api-rest-contract-surface.json +2 -2
  101. package/blueprints/application-api-rest/contributions/tacs/tac-304-application-api-rest-resource-layer.json +1 -1
  102. package/blueprints/application-api-rest/contributions/tacs/tac-305-application-api-rest-observability.json +1 -1
  103. package/blueprints/application-api-rest/contributions/tacs/tac-306-application-api-rest-operability.json +1 -1
  104. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2101.json +13 -7
  105. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2102.json +27 -13
  106. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2103.json +18 -9
  107. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2104.json +32 -10
  108. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2105.json +19 -6
  109. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2106.json +14 -8
  110. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2107.json +20 -12
  111. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2108.json +37 -15
  112. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2109.json +15 -9
  113. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2110.json +21 -11
  114. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2111.json +42 -8
  115. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2112.json +23 -13
  116. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2113.json +17 -11
  117. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2114.json +13 -8
  118. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2115.json +13 -8
  119. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2116.json +11 -6
  120. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2117.json +19 -14
  121. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2118.json +20 -10
  122. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2119.json +20 -7
  123. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2120.json +16 -10
  124. package/blueprints/application-api-rest/docs/topics.md +1 -1
  125. package/blueprints/application-charts/CHANGELOG.md +24 -3
  126. package/blueprints/application-charts/README.md +5 -5
  127. package/blueprints/application-charts/blueprint.json +112 -18
  128. package/blueprints/application-charts/contributions/adrs/adr-1901-application-charts-engine-choice.json +1 -1
  129. package/blueprints/application-charts/contributions/adrs/adr-1902-application-charts-accessible-palette.json +1 -1
  130. package/blueprints/application-charts/contributions/adrs/adr-1903-application-charts-motion.json +1 -1
  131. package/blueprints/application-charts/contributions/requirements/application-charts-req-001.json +11 -4
  132. package/blueprints/application-charts/contributions/requirements/application-charts-req-002.json +11 -4
  133. package/blueprints/application-charts/contributions/requirements/application-charts-req-003.json +10 -3
  134. package/blueprints/application-charts/contributions/requirements/application-charts-req-004.json +10 -3
  135. package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +3 -2
  136. package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +1 -1
  137. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18101.json +50 -6
  138. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18102.json +58 -6
  139. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18103.json +54 -6
  140. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18104.json +55 -6
  141. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +64 -8
  142. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18106.json +45 -7
  143. package/blueprints/application-charts/docs/topics.md +3 -3
  144. package/blueprints/application-charts/guide/application-charts.md +3 -3
  145. package/blueprints/application-charts/probe-packs/application-charts.pack.mjs +2 -2
  146. package/blueprints/application-dashboard/CHANGELOG.md +24 -3
  147. package/blueprints/application-dashboard/README.md +8 -8
  148. package/blueprints/application-dashboard/blueprint.json +147 -21
  149. package/blueprints/application-dashboard/contributions/adrs/adr-2001-application-dashboard-primary-kpi-enum.json +4 -4
  150. package/blueprints/application-dashboard/contributions/adrs/adr-2002-application-dashboard-timeframe-presets.json +1 -1
  151. package/blueprints/application-dashboard/contributions/adrs/adr-2003-application-dashboard-export-formats.json +1 -1
  152. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-001.json +10 -3
  153. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-002.json +11 -4
  154. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-003.json +10 -3
  155. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-004.json +11 -4
  156. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-005.json +11 -4
  157. package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +1 -1
  158. package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +1 -1
  159. package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +1 -1
  160. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19101.json +54 -6
  161. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19102.json +54 -6
  162. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19103.json +58 -6
  163. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19104.json +55 -7
  164. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19105.json +54 -6
  165. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +60 -8
  166. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19107.json +57 -9
  167. package/blueprints/application-dashboard/docs/topics.md +4 -4
  168. package/blueprints/application-dashboard/guide/application-dashboard.md +3 -3
  169. package/blueprints/application-dashboard/probe-packs/application-dashboard.pack.mjs +4 -4
  170. package/blueprints/application-datatable/CHANGELOG.md +23 -2
  171. package/blueprints/application-datatable/README.md +3 -3
  172. package/blueprints/application-datatable/blueprint.json +167 -25
  173. package/blueprints/application-datatable/contributions/adrs/adr-1801-application-datatable-pattern-choice.json +1 -1
  174. package/blueprints/application-datatable/contributions/adrs/adr-1802-application-datatable-url-state.json +1 -1
  175. package/blueprints/application-datatable/contributions/adrs/adr-1803-application-datatable-page-size.json +1 -1
  176. package/blueprints/application-datatable/contributions/adrs/adr-1804-application-datatable-selection-persistence.json +1 -1
  177. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-001.json +11 -4
  178. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-002.json +11 -4
  179. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-003.json +10 -3
  180. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-004.json +11 -4
  181. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-005.json +10 -3
  182. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-006.json +10 -3
  183. package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +1 -1
  184. package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +1 -1
  185. package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +2 -2
  186. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +29 -7
  187. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +29 -7
  188. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +28 -6
  189. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17104.json +65 -7
  190. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +32 -7
  191. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17106.json +60 -7
  192. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17107.json +72 -7
  193. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17108.json +59 -9
  194. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17109.json +58 -9
  195. package/blueprints/application-datatable/docs/topics.md +2 -2
  196. package/blueprints/application-datatable/guide/application-datatable.md +1 -1
  197. package/blueprints/application-empty-error-states/CHANGELOG.md +33 -3
  198. package/blueprints/application-empty-error-states/README.md +3 -3
  199. package/blueprints/application-empty-error-states/blueprint.json +35 -1
  200. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +4 -0
  201. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +7 -3
  202. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +4 -0
  203. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +6 -2
  204. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +7 -3
  205. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-006.json +21 -0
  206. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-007.json +21 -0
  207. package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +7 -4
  208. package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +3 -2
  209. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +17 -2
  210. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +31 -2
  211. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +27 -2
  212. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +13 -2
  213. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +33 -2
  214. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +13 -2
  215. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +23 -2
  216. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +27 -2
  217. package/blueprints/application-empty-error-states/docs/topics.md +1 -1
  218. package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +93 -9
  219. package/blueprints/application-error-handling/CHANGELOG.md +17 -0
  220. package/blueprints/application-error-handling/blueprint.json +104 -19
  221. package/blueprints/application-error-handling/contributions/adrs/adr-1701-application-error-handling-record-shape.json +1 -1
  222. package/blueprints/application-error-handling/contributions/adrs/adr-1702-application-error-handling-classification-vocabulary.json +1 -1
  223. package/blueprints/application-error-handling/contributions/adrs/adr-1703-application-error-handling-transport-mapping.json +1 -1
  224. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-001.json +10 -3
  225. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-002.json +10 -3
  226. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-003.json +10 -3
  227. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-004.json +10 -3
  228. package/blueprints/application-error-handling/contributions/tacs/tac-1701-application-error-handling-boundary.json +1 -1
  229. package/blueprints/application-error-handling/contributions/tacs/tac-1702-application-error-handling-record-factory.json +1 -1
  230. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16101.json +63 -4
  231. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16102.json +49 -4
  232. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16103.json +51 -5
  233. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16104.json +49 -4
  234. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16105.json +49 -4
  235. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16106.json +49 -4
  236. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16107.json +53 -4
  237. package/blueprints/application-error-handling/docs/topics.md +1 -1
  238. package/blueprints/application-file-upload/CHANGELOG.md +36 -3
  239. package/blueprints/application-file-upload/README.md +1 -1
  240. package/blueprints/application-file-upload/blueprint.json +56 -1
  241. package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +3 -3
  242. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +4 -0
  243. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +7 -3
  244. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +6 -2
  245. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +6 -2
  246. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +4 -0
  247. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-006.json +21 -0
  248. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-007.json +21 -0
  249. package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +4 -2
  250. package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +7 -2
  251. package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +16 -6
  252. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +23 -2
  253. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +29 -4
  254. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +13 -2
  255. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +45 -2
  256. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +37 -2
  257. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +13 -2
  258. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +17 -2
  259. package/blueprints/application-file-upload/docs/topics.md +1 -1
  260. package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +14 -5
  261. package/blueprints/application-forms-wizard/CHANGELOG.md +34 -3
  262. package/blueprints/application-forms-wizard/README.md +2 -2
  263. package/blueprints/application-forms-wizard/blueprint.json +57 -1
  264. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +4 -0
  265. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +6 -2
  266. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +6 -2
  267. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +6 -2
  268. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +4 -0
  269. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-006.json +21 -0
  270. package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +6 -4
  271. package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +4 -3
  272. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +35 -2
  273. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +27 -2
  274. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +21 -2
  275. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +13 -2
  276. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +33 -2
  277. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +18 -3
  278. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +23 -2
  279. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +13 -2
  280. package/blueprints/application-forms-wizard/docs/topics.md +1 -1
  281. package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +3 -3
  282. package/blueprints/application-notifications-in-app/CHANGELOG.md +35 -3
  283. package/blueprints/application-notifications-in-app/README.md +5 -5
  284. package/blueprints/application-notifications-in-app/blueprint.json +150 -22
  285. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +11 -4
  286. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +8 -1
  287. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +10 -3
  288. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +11 -4
  289. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +12 -5
  290. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-006.json +21 -0
  291. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +14 -8
  292. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +2 -2
  293. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +29 -5
  294. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +43 -5
  295. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +39 -5
  296. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20104.json +31 -5
  297. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +50 -8
  298. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20106.json +19 -4
  299. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20107.json +19 -4
  300. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20108.json +19 -4
  301. package/blueprints/application-notifications-in-app/docs/topics.md +1 -1
  302. package/blueprints/application-notifications-in-app/guide/application-notifications-in-app.md +1 -1
  303. package/blueprints/application-notifications-in-app/probe-packs/application-notifications-in-app.pack.mjs +4 -4
  304. package/blueprints/application-onboarding-tour/CHANGELOG.md +33 -2
  305. package/blueprints/application-onboarding-tour/README.md +2 -2
  306. package/blueprints/application-onboarding-tour/blueprint.json +22 -2
  307. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +4 -4
  308. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +6 -2
  309. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +6 -2
  310. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +4 -0
  311. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +4 -0
  312. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-005.json +22 -0
  313. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-006.json +22 -0
  314. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +2 -1
  315. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +7 -7
  316. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +67 -2
  317. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +35 -2
  318. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +13 -2
  319. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +33 -2
  320. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +13 -2
  321. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +13 -2
  322. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +17 -2
  323. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26108.json +62 -0
  324. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26109.json +72 -0
  325. package/blueprints/application-onboarding-tour/docs/topics.md +3 -3
  326. package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +1 -1
  327. package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +2 -2
  328. package/blueprints/application-spa/CHANGELOG.md +30 -0
  329. package/blueprints/application-spa/README.md +8 -8
  330. package/blueprints/application-spa/blueprint.json +1 -1
  331. package/blueprints/application-spa/contributions/adrs/adr-201-application-spa-routing.json +1 -1
  332. package/blueprints/application-spa/contributions/adrs/adr-202-application-spa-theming.json +1 -1
  333. package/blueprints/application-spa/contributions/adrs/adr-203-application-spa-client-state.json +1 -1
  334. package/blueprints/application-spa/contributions/adrs/adr-204-application-spa-error-envelope.json +1 -1
  335. package/blueprints/application-spa/contributions/adrs/adr-205-application-spa-auth-model.json +1 -1
  336. package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json +1 -1
  337. package/blueprints/application-spa/contributions/adrs/adr-207-application-spa-motion.json +1 -1
  338. package/blueprints/application-spa/contributions/adrs/adr-208-application-spa-i18n.json +1 -1
  339. package/blueprints/application-spa/contributions/adrs/adr-209-application-spa-telemetry-naming.json +1 -1
  340. package/blueprints/application-spa/contributions/requirements/application-spa-req-001.json +6 -2
  341. package/blueprints/application-spa/contributions/requirements/application-spa-req-002.json +6 -2
  342. package/blueprints/application-spa/contributions/requirements/application-spa-req-003.json +6 -2
  343. package/blueprints/application-spa/contributions/requirements/application-spa-req-004.json +6 -2
  344. package/blueprints/application-spa/contributions/requirements/application-spa-req-005.json +6 -2
  345. package/blueprints/application-spa/contributions/requirements/application-spa-req-006.json +6 -2
  346. package/blueprints/application-spa/contributions/requirements/application-spa-req-007.json +6 -2
  347. package/blueprints/application-spa/contributions/requirements/application-spa-req-008.json +6 -2
  348. package/blueprints/application-spa/contributions/requirements/application-spa-req-009.json +7 -3
  349. package/blueprints/application-spa/contributions/requirements/application-spa-req-010.json +6 -2
  350. package/blueprints/application-spa/contributions/requirements/application-spa-req-011.json +6 -2
  351. package/blueprints/application-spa/contributions/requirements/application-spa-req-012.json +6 -2
  352. package/blueprints/application-spa/contributions/requirements/application-spa-req-013.json +6 -2
  353. package/blueprints/application-spa/contributions/requirements/application-spa-req-014.json +6 -2
  354. package/blueprints/application-spa/contributions/requirements/application-spa-req-015.json +6 -2
  355. package/blueprints/application-spa/contributions/requirements/application-spa-req-016.json +6 -2
  356. package/blueprints/application-spa/contributions/requirements/application-spa-req-017.json +6 -2
  357. package/blueprints/application-spa/contributions/requirements/application-spa-req-018.json +7 -3
  358. package/blueprints/application-spa/contributions/requirements/application-spa-req-019.json +6 -2
  359. package/blueprints/application-spa/contributions/requirements/application-spa-req-020.json +6 -2
  360. package/blueprints/application-spa/contributions/requirements/application-spa-req-021.json +6 -2
  361. package/blueprints/application-spa/contributions/tacs/tac-201-application-spa-app-shell.json +4 -3
  362. package/blueprints/application-spa/contributions/tacs/tac-202-application-spa-theme-system.json +1 -1
  363. package/blueprints/application-spa/contributions/tacs/tac-203-application-spa-component-library.json +1 -1
  364. package/blueprints/application-spa/contributions/tacs/tac-204-application-spa-client-data-layer.json +1 -1
  365. package/blueprints/application-spa/contributions/tacs/tac-205-application-spa-forms-engine.json +1 -1
  366. package/blueprints/application-spa/contributions/tacs/tac-206-application-spa-telemetry.json +1 -1
  367. package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +1 -1
  368. package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +1 -1
  369. package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +3 -3
  370. package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +2 -2
  371. package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +2 -2
  372. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1101.json +22 -8
  373. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1102.json +18 -9
  374. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1103.json +13 -7
  375. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1104.json +15 -10
  376. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1105.json +13 -7
  377. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1106.json +12 -7
  378. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1107.json +25 -6
  379. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1108.json +17 -9
  380. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1109.json +17 -9
  381. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1110.json +19 -10
  382. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1111.json +19 -11
  383. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1112.json +15 -8
  384. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1113.json +15 -8
  385. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1114.json +15 -10
  386. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1115.json +13 -7
  387. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1116.json +15 -9
  388. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1117.json +20 -10
  389. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1118.json +9 -5
  390. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1119.json +11 -6
  391. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1120.json +16 -10
  392. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1121.json +13 -7
  393. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1122.json +13 -7
  394. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1123.json +28 -9
  395. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1124.json +11 -6
  396. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1125.json +14 -8
  397. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1126.json +24 -9
  398. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1127.json +11 -6
  399. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1128.json +11 -7
  400. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +25 -5
  401. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +25 -5
  402. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +19 -9
  403. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +40 -10
  404. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +35 -9
  405. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1134.json +23 -3
  406. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1135.json +19 -3
  407. package/blueprints/application-spa/docs/topics.md +1 -1
  408. package/blueprints/application-spa/guide/application-spa.md +2 -2
  409. package/blueprints/delivery-ci-workflows/CHANGELOG.md +18 -0
  410. package/blueprints/delivery-ci-workflows/README.md +1 -1
  411. package/blueprints/delivery-ci-workflows/blueprint.json +62 -1
  412. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-001.json +4 -0
  413. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-002.json +4 -0
  414. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-003.json +4 -0
  415. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json +4 -0
  416. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-005.json +4 -0
  417. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-006.json +4 -0
  418. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-007.json +4 -0
  419. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-008.json +4 -0
  420. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-009.json +4 -0
  421. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-010.json +4 -0
  422. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-011.json +6 -2
  423. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-012.json +4 -0
  424. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-013.json +4 -0
  425. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-014.json +4 -0
  426. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-015.json +4 -0
  427. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-016.json +4 -0
  428. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-017.json +4 -0
  429. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-018.json +4 -0
  430. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-019.json +4 -0
  431. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-020.json +4 -0
  432. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-021.json +4 -0
  433. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-022.json +4 -0
  434. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-023.json +4 -0
  435. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6101.json +20 -4
  436. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6102.json +19 -3
  437. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6103.json +20 -4
  438. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6104.json +20 -4
  439. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6105.json +20 -4
  440. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6106.json +20 -4
  441. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6107.json +20 -4
  442. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6108.json +20 -4
  443. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6109.json +12 -5
  444. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6110.json +21 -5
  445. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6111.json +21 -5
  446. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6112.json +35 -5
  447. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6113.json +21 -5
  448. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6114.json +8 -5
  449. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6115.json +21 -5
  450. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6116.json +19 -3
  451. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6117.json +19 -3
  452. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6118.json +21 -5
  453. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6119.json +19 -3
  454. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6120.json +19 -3
  455. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6121.json +23 -6
  456. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6122.json +24 -7
  457. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6123.json +21 -5
  458. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6124.json +19 -3
  459. package/blueprints/delivery-ci-workflows/docs/topics.md +1 -1
  460. package/blueprints/deploy-cloudflare-workers/CHANGELOG.md +17 -2
  461. package/blueprints/deploy-cloudflare-workers/README.md +2 -2
  462. package/blueprints/deploy-cloudflare-workers/blueprint.json +4 -4
  463. package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1303-deploy-cloudflare-workers-preview-vs-production.json +1 -1
  464. package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1306-deploy-cloudflare-workers-spa-shape.json +2 -2
  465. package/blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs +25 -7
  466. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-001.json +5 -1
  467. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-002.json +6 -2
  468. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-003.json +5 -1
  469. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-004.json +5 -1
  470. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-005.json +5 -1
  471. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-006.json +5 -1
  472. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-007.json +5 -1
  473. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-008.json +5 -1
  474. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-009.json +5 -1
  475. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-010.json +5 -1
  476. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-011.json +5 -1
  477. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-012.json +5 -1
  478. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +5 -1
  479. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +7 -3
  480. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1301-deploy-cloudflare-workers-deploy-adapter.json +3 -2
  481. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1302-deploy-cloudflare-workers-wrangler-manifest.json +5 -2
  482. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12101.json +21 -9
  483. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12102.json +23 -4
  484. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12103.json +7 -4
  485. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12104.json +7 -4
  486. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12105.json +11 -4
  487. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12106.json +7 -4
  488. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12107.json +7 -4
  489. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12108.json +15 -4
  490. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12109.json +11 -4
  491. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12110.json +7 -4
  492. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12111.json +11 -4
  493. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12112.json +11 -4
  494. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +41 -3
  495. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +17 -2
  496. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +18 -3
  497. package/blueprints/deploy-cloudflare-workers/docs/topics.md +1 -1
  498. package/blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md +7 -2
  499. package/blueprints/deploy-hetzner-server/CHANGELOG.md +39 -2
  500. package/blueprints/deploy-hetzner-server/README.md +12 -12
  501. package/blueprints/deploy-hetzner-server/blueprint.json +2 -2
  502. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3801-deploy-hetzner-server-cloud-host-contract.json +2 -2
  503. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3803-deploy-hetzner-server-provisioning-tool.json +2 -2
  504. package/blueprints/deploy-hetzner-server/contributions/probes/cloud-init-render-lint.mjs +12 -5
  505. package/blueprints/deploy-hetzner-server/contributions/probes/hcloud-dry-run-mock.mjs +68 -20
  506. package/blueprints/deploy-hetzner-server/contributions/probes/manifest-schema-validate.mjs +8 -6
  507. package/blueprints/deploy-hetzner-server/contributions/probes/probe-utils.mjs +7 -1
  508. package/blueprints/deploy-hetzner-server/contributions/probes/real-account-cloud-init-hardened.mjs +2 -1
  509. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-001.json +6 -2
  510. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-002.json +6 -2
  511. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-003.json +5 -1
  512. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-004.json +5 -1
  513. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-005.json +6 -2
  514. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-006.json +5 -1
  515. package/blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json +1 -1
  516. package/blueprints/deploy-hetzner-server/contributions/templates/cloud-init.yaml.tmpl +26 -6
  517. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37101.json +63 -2
  518. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37102.json +35 -2
  519. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37103.json +59 -2
  520. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37104.json +31 -2
  521. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37105.json +25 -2
  522. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37106.json +35 -2
  523. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37107.json +31 -2
  524. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37108.json +43 -2
  525. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37109.json +31 -2
  526. package/blueprints/deploy-hetzner-server/docs/topics.md +3 -3
  527. package/blueprints/deploy-hetzner-server/guide/deploy-hetzner-server.md +12 -11
  528. package/blueprints/edge-cloudflare-access/CHANGELOG.md +35 -3
  529. package/blueprints/edge-cloudflare-access/README.md +2 -2
  530. package/blueprints/edge-cloudflare-access/blueprint.json +12 -2
  531. package/blueprints/edge-cloudflare-access/contributions/probes/real-account-gated-url.mjs +10 -2
  532. package/blueprints/edge-cloudflare-access/contributions/probes/wrangler-seam.mjs +1 -1
  533. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-001.json +5 -1
  534. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-002.json +5 -1
  535. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-003.json +5 -1
  536. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-004.json +6 -2
  537. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-005.json +5 -1
  538. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-006.json +7 -3
  539. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-007.json +22 -0
  540. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34101.json +13 -3
  541. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34102.json +63 -2
  542. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34103.json +18 -3
  543. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34104.json +36 -3
  544. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34105.json +13 -3
  545. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34106.json +9 -3
  546. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34107.json +68 -3
  547. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34108.json +5 -3
  548. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34109.json +10 -4
  549. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34110.json +33 -0
  550. package/blueprints/edge-cloudflare-access/docs/topics.md +2 -2
  551. package/blueprints/edge-cloudflare-rate-limiting/CHANGELOG.md +35 -1
  552. package/blueprints/edge-cloudflare-rate-limiting/README.md +3 -3
  553. package/blueprints/edge-cloudflare-rate-limiting/blueprint.json +1 -1
  554. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/real-account-burst-and-429.mjs +10 -2
  555. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-001.json +6 -2
  556. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-002.json +5 -1
  557. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-003.json +5 -1
  558. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-004.json +6 -2
  559. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-005.json +5 -1
  560. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +2 -2
  561. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +2 -2
  562. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36101.json +27 -3
  563. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36102.json +9 -3
  564. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36103.json +24 -5
  565. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36104.json +88 -3
  566. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36105.json +5 -3
  567. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36106.json +22 -3
  568. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36107.json +16 -5
  569. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36108.json +14 -3
  570. package/blueprints/edge-cloudflare-rate-limiting/docs/topics.md +1 -1
  571. package/blueprints/edge-cloudflare-rate-limiting/guide/edge-cloudflare-rate-limiting.md +2 -2
  572. package/blueprints/edge-cloudflare-tunnel/CHANGELOG.md +49 -4
  573. package/blueprints/edge-cloudflare-tunnel/README.md +20 -21
  574. package/blueprints/edge-cloudflare-tunnel/blueprint.json +29 -4
  575. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4001-edge-cloudflare-tunnel-ingress-bridge-contract.json +4 -4
  576. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4002-edge-cloudflare-tunnel-connector-runtime.json +1 -1
  577. package/blueprints/edge-cloudflare-tunnel/contributions/probes/manifest-schema-validate.mjs +7 -4
  578. package/blueprints/edge-cloudflare-tunnel/contributions/probes/probe-utils.mjs +13 -2
  579. package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-connector-healthy.mjs +109 -21
  580. package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-tunnel-hostname-routes.mjs +123 -30
  581. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-001.json +6 -2
  582. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-002.json +5 -1
  583. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-003.json +7 -3
  584. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-004.json +5 -1
  585. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-005.json +5 -1
  586. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-006.json +22 -0
  587. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-007.json +22 -0
  588. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +1 -1
  589. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4004-edge-cloudflare-tunnel-zone-and-hostname-apply.json +29 -0
  590. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39101.json +39 -3
  591. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39102.json +23 -4
  592. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39103.json +53 -3
  593. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39104.json +33 -3
  594. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39105.json +25 -3
  595. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39106.json +86 -2
  596. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39107.json +25 -3
  597. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39108.json +35 -2
  598. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39109.json +74 -0
  599. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39110.json +60 -0
  600. package/blueprints/edge-cloudflare-tunnel/docs/topics.md +2 -2
  601. package/blueprints/edge-cloudflare-tunnel/guide/edge-cloudflare-tunnel.md +60 -13
  602. package/blueprints/edge-cloudflare-turnstile/CHANGELOG.md +33 -1
  603. package/blueprints/edge-cloudflare-turnstile/README.md +2 -2
  604. package/blueprints/edge-cloudflare-turnstile/blueprint.json +1 -1
  605. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-001.json +6 -2
  606. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-002.json +5 -1
  607. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-003.json +6 -2
  608. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-004.json +5 -1
  609. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-005.json +5 -1
  610. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +2 -2
  611. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +2 -2
  612. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35101.json +46 -5
  613. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35102.json +53 -2
  614. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35103.json +81 -2
  615. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35104.json +29 -6
  616. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35105.json +14 -4
  617. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35106.json +9 -3
  618. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35107.json +5 -3
  619. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35108.json +5 -3
  620. package/blueprints/edge-cloudflare-turnstile/docs/topics.md +1 -1
  621. package/blueprints/edge-cloudflare-turnstile/probe-packs/edge-cloudflare-turnstile.pack.mjs +27 -5
  622. package/blueprints/email-smtp-resend/CHANGELOG.md +24 -0
  623. package/blueprints/email-smtp-resend/README.md +2 -2
  624. package/blueprints/email-smtp-resend/assets/stub-adapter.md +2 -0
  625. package/blueprints/email-smtp-resend/blueprint.json +119 -17
  626. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-001.json +7 -3
  627. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-002.json +4 -0
  628. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-003.json +4 -0
  629. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-004.json +4 -0
  630. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-005.json +4 -0
  631. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-006.json +4 -0
  632. package/blueprints/email-smtp-resend/contributions/tacs/tac-401-email-smtp-resend-send-adapter.json +3 -3
  633. package/blueprints/email-smtp-resend/contributions/tacs/tac-402-email-smtp-resend-webhook-verifier.json +7 -2
  634. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4101.json +15 -8
  635. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4102.json +27 -7
  636. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4103.json +49 -4
  637. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4104.json +6 -3
  638. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4105.json +21 -5
  639. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4106.json +27 -7
  640. package/blueprints/email-smtp-resend/docs/topics.md +1 -1
  641. package/blueprints/email-smtp-resend/guide/email-smtp-resend.md +2 -2
  642. package/blueprints/jobs-background/CHANGELOG.md +30 -6
  643. package/blueprints/jobs-background/README.md +8 -8
  644. package/blueprints/jobs-background/blueprint.json +55 -2
  645. package/blueprints/jobs-background/contributions/adrs/adr-3102-jobs-background-scheduler-mode.json +1 -1
  646. package/blueprints/jobs-background/contributions/adrs/adr-3103-jobs-background-requires-applied-capabilities.json +6 -6
  647. package/blueprints/jobs-background/contributions/probes/fake-clock-cron.mjs +1 -1
  648. package/blueprints/jobs-background/contributions/probes/probe-utils.mjs +4 -4
  649. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +7 -3
  650. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +7 -3
  651. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +5 -1
  652. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +5 -1
  653. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +5 -1
  654. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +5 -1
  655. package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +5 -5
  656. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +20 -3
  657. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +44 -9
  658. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +48 -3
  659. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +63 -3
  660. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +20 -3
  661. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +20 -3
  662. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +20 -3
  663. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +21 -3
  664. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +23 -6
  665. package/blueprints/jobs-background/docs/topics.md +3 -3
  666. package/blueprints/jobs-background/guide/jobs-background.md +6 -6
  667. package/blueprints/messaging-queue-cloudflare/CHANGELOG.md +41 -6
  668. package/blueprints/messaging-queue-cloudflare/README.md +6 -6
  669. package/blueprints/messaging-queue-cloudflare/blueprint.json +127 -19
  670. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3001-messaging-queue-cloudflare-adapter.json +3 -3
  671. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3002-messaging-queue-cloudflare-delivery-semantics.json +1 -1
  672. package/blueprints/messaging-queue-cloudflare/contributions/probes/real-account-concurrency-smoke.mjs +192 -37
  673. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +6 -2
  674. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +6 -2
  675. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +5 -1
  676. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +6 -2
  677. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +6 -2
  678. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +6 -2
  679. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +22 -4
  680. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +23 -4
  681. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +20 -3
  682. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +29 -7
  683. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +20 -3
  684. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +25 -4
  685. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +25 -3
  686. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +28 -6
  687. package/blueprints/messaging-queue-cloudflare/docs/topics.md +3 -3
  688. package/blueprints/messaging-queue-cloudflare/guide/messaging-queue-cloudflare.md +7 -5
  689. package/blueprints/object-storage-s3/CHANGELOG.md +32 -4
  690. package/blueprints/object-storage-s3/README.md +16 -3
  691. package/blueprints/object-storage-s3/blueprint.json +162 -20
  692. package/blueprints/object-storage-s3/contributions/adrs/adr-2905-object-storage-s3-hetzner-object-storage-provider.json +30 -0
  693. package/blueprints/object-storage-s3/contributions/probes/hetzner-object-storage-round-trip.mjs +136 -0
  694. package/blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs +11 -0
  695. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +6 -2
  696. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +6 -2
  697. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +5 -1
  698. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +6 -2
  699. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +6 -2
  700. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +6 -2
  701. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-101.json +22 -0
  702. package/blueprints/object-storage-s3/contributions/tacs/tac-2904-object-storage-s3-hetzner-endpoint-helper.json +34 -0
  703. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +36 -4
  704. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +32 -5
  705. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +42 -3
  706. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +22 -4
  707. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -4
  708. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +13 -5
  709. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +10 -4
  710. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +12 -4
  711. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28110.json +42 -0
  712. package/blueprints/object-storage-s3/docs/topics.md +1 -1
  713. package/blueprints/object-storage-s3/guide/object-storage-s3.md +37 -1
  714. package/blueprints/observability-essentials/CHANGELOG.md +21 -0
  715. package/blueprints/observability-essentials/README.md +1 -1
  716. package/blueprints/observability-essentials/assets/probe-samples/probe-response-baseline.v2.json +17 -0
  717. package/blueprints/observability-essentials/blueprint.json +32 -1
  718. package/blueprints/observability-essentials/contributions/adrs/adr-801-observability-essentials-health-probes.json +1 -1
  719. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-001.json +4 -0
  720. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-002.json +4 -0
  721. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-003.json +4 -0
  722. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-004.json +4 -0
  723. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-005.json +4 -0
  724. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-006.json +6 -2
  725. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-007.json +7 -3
  726. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-008.json +4 -0
  727. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-009.json +4 -0
  728. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-010.json +4 -0
  729. package/blueprints/observability-essentials/contributions/tacs/tac-802-observability-essentials-readiness-probe.json +6 -1
  730. package/blueprints/observability-essentials/contributions/tacs/tac-803-observability-essentials-status-page.json +1 -1
  731. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7101.json +25 -7
  732. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7102.json +9 -5
  733. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7103.json +51 -6
  734. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7104.json +7 -4
  735. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7105.json +6 -3
  736. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7106.json +37 -6
  737. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7107.json +18 -11
  738. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7108.json +6 -3
  739. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7109.json +7 -4
  740. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7110.json +8 -5
  741. package/blueprints/observability-essentials/docs/topics.md +2 -2
  742. package/blueprints/observability-essentials/guide/observability-essentials.md +1 -1
  743. package/blueprints/observability-logging/CHANGELOG.md +19 -4
  744. package/blueprints/observability-logging/README.md +1 -1
  745. package/blueprints/observability-logging/blueprint.json +76 -28
  746. package/blueprints/observability-logging/contributions/adrs/adr-1605-observability-logging-serialisation-refusal.json +25 -0
  747. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-001.json +10 -3
  748. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-002.json +8 -1
  749. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-003.json +8 -1
  750. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-004.json +8 -1
  751. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-005.json +8 -1
  752. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-006.json +16 -0
  753. package/blueprints/observability-logging/contributions/tacs/tac-1601-observability-logging-logger-factory.json +4 -4
  754. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15101.json +62 -8
  755. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15102.json +11 -6
  756. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15103.json +37 -5
  757. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15104.json +35 -4
  758. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15105.json +24 -6
  759. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15106.json +22 -4
  760. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15107.json +34 -3
  761. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15108.json +21 -3
  762. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15109.json +71 -0
  763. package/blueprints/observability-logging/docs/topics.md +1 -1
  764. package/blueprints/observability-probe-endpoints/CHANGELOG.md +17 -0
  765. package/blueprints/observability-probe-endpoints/README.md +1 -1
  766. package/blueprints/observability-probe-endpoints/blueprint.json +40 -1
  767. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-001.json +6 -2
  768. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-002.json +4 -0
  769. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-003.json +4 -0
  770. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-004.json +4 -0
  771. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-005.json +4 -0
  772. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-006.json +4 -0
  773. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-007.json +4 -0
  774. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-008.json +4 -0
  775. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14101.json +30 -9
  776. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14102.json +24 -6
  777. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14103.json +6 -3
  778. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14104.json +9 -6
  779. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14105.json +49 -4
  780. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14106.json +9 -6
  781. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14107.json +12 -8
  782. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14108.json +6 -3
  783. package/blueprints/observability-probe-endpoints/docs/topics.md +2 -2
  784. package/blueprints/observability-probe-endpoints/guide/observability-probe-endpoints.md +3 -6
  785. package/blueprints/persistence-data-d1/CHANGELOG.md +19 -0
  786. package/blueprints/persistence-data-d1/README.md +1 -1
  787. package/blueprints/persistence-data-d1/assets/batch-usage/batch-atomicity-example.md +2 -0
  788. package/blueprints/persistence-data-d1/assets/facade-shape/facade-module-shape.md +2 -0
  789. package/blueprints/persistence-data-d1/blueprint.json +106 -22
  790. package/blueprints/persistence-data-d1/contributions/adrs/adr-1404-persistence-data-d1-store-boundary.json +4 -4
  791. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-001.json +5 -1
  792. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-002.json +5 -1
  793. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-003.json +5 -1
  794. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-004.json +7 -3
  795. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-005.json +5 -1
  796. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-006.json +5 -1
  797. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-007.json +5 -1
  798. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13101.json +35 -4
  799. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13102.json +25 -4
  800. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13103.json +11 -4
  801. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13104.json +13 -6
  802. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13105.json +11 -4
  803. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13106.json +7 -4
  804. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13107.json +23 -3
  805. package/blueprints/persistence-data-d1/docs/topics.md +1 -1
  806. package/blueprints/persistence-data-postgres/CHANGELOG.md +18 -2
  807. package/blueprints/persistence-data-postgres/README.md +1 -1
  808. package/blueprints/persistence-data-postgres/blueprint.json +201 -23
  809. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +1 -1
  810. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +1 -1
  811. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +6 -2
  812. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +6 -2
  813. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +5 -1
  814. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +7 -3
  815. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +6 -2
  816. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +6 -2
  817. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +7 -3
  818. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +2 -2
  819. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +5 -5
  820. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +22 -4
  821. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +118 -3
  822. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +20 -3
  823. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +26 -5
  824. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +62 -3
  825. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +20 -3
  826. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +20 -3
  827. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +20 -3
  828. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +20 -3
  829. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +48 -3
  830. package/blueprints/persistence-data-postgres/docs/topics.md +1 -1
  831. package/blueprints/persistence-data-sqlite/CHANGELOG.md +14 -0
  832. package/blueprints/persistence-data-sqlite/blueprint.json +146 -30
  833. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-001.json +5 -1
  834. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-002.json +5 -1
  835. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-003.json +5 -1
  836. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-004.json +5 -1
  837. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-005.json +5 -1
  838. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-006.json +5 -1
  839. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-007.json +5 -1
  840. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-008.json +5 -1
  841. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-009.json +5 -1
  842. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-010.json +5 -1
  843. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-011.json +5 -1
  844. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5101.json +35 -4
  845. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5102.json +7 -4
  846. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5103.json +19 -3
  847. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5104.json +21 -4
  848. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5105.json +7 -4
  849. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5106.json +11 -4
  850. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5107.json +7 -4
  851. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5108.json +7 -4
  852. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5109.json +11 -8
  853. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5110.json +23 -3
  854. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5111.json +19 -3
  855. package/blueprints/persistence-data-sqlite/docs/topics.md +1 -1
  856. package/blueprints/persistence-data-sqlite/guide/persistence-data-sqlite.md +1 -1
  857. package/blueprints/platform-cloudflare-cron-triggers/CHANGELOG.md +40 -2
  858. package/blueprints/platform-cloudflare-cron-triggers/blueprint.json +78 -17
  859. package/blueprints/platform-cloudflare-cron-triggers/contributions/adrs/adr-3301-platform-cloudflare-cron-triggers-scheduled-trigger-contract.json +2 -2
  860. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/real-account-scheduled-smoke.mjs +24 -3
  861. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/skew-tolerance.mjs +1 -1
  862. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-001.json +6 -2
  863. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-002.json +5 -1
  864. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-003.json +5 -1
  865. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-004.json +6 -2
  866. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3301-platform-cloudflare-cron-triggers-scheduled-handler.json +1 -1
  867. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32101.json +86 -5
  868. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32102.json +69 -5
  869. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32103.json +51 -4
  870. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32104.json +65 -4
  871. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32105.json +68 -5
  872. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32106.json +62 -3
  873. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32107.json +56 -3
  874. package/blueprints/platform-cloudflare-cron-triggers/docs/topics.md +4 -4
  875. package/blueprints/platform-cloudflare-durable-objects/CHANGELOG.md +57 -2
  876. package/blueprints/platform-cloudflare-durable-objects/README.md +6 -6
  877. package/blueprints/platform-cloudflare-durable-objects/blueprint.json +3 -2
  878. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3401-platform-cloudflare-durable-objects-single-cell-contract.json +1 -1
  879. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3402-platform-cloudflare-durable-objects-websocket-hub-contract.json +1 -1
  880. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/namespace-facade-ready.mjs +3 -3
  881. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/probe-utils.mjs +28 -14
  882. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/real-account-storage-smoke.mjs +139 -27
  883. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/sole-reader-scan.mjs +40 -39
  884. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/storage-round-trip.mjs +26 -16
  885. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/websocket-hub-broadcast.mjs +31 -34
  886. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/wrangler-seam.mjs +11 -5
  887. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-001.json +5 -1
  888. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-002.json +6 -2
  889. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-003.json +5 -1
  890. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-004.json +5 -1
  891. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-005.json +6 -2
  892. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-006.json +6 -2
  893. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-007.json +5 -1
  894. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-008.json +5 -1
  895. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33101.json +73 -2
  896. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33102.json +59 -2
  897. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33103.json +77 -2
  898. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33104.json +75 -6
  899. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33105.json +73 -2
  900. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33106.json +49 -2
  901. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33107.json +45 -2
  902. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33108.json +84 -3
  903. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33109.json +45 -2
  904. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33110.json +59 -2
  905. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33111.json +45 -2
  906. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33112.json +53 -2
  907. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33113.json +68 -5
  908. package/blueprints/platform-cloudflare-durable-objects/docs/topics.md +2 -2
  909. package/blueprints/platform-cloudflare-durable-objects/guide/platform-cloudflare-durable-objects.md +9 -9
  910. package/blueprints/platform-cloudflare-kv/CHANGELOG.md +83 -2
  911. package/blueprints/platform-cloudflare-kv/README.md +40 -14
  912. package/blueprints/platform-cloudflare-kv/blueprint.json +115 -20
  913. package/blueprints/platform-cloudflare-kv/contributions/adrs/adr-3201-platform-cloudflare-kv-key-value-store-contract.json +3 -3
  914. package/blueprints/platform-cloudflare-kv/contributions/probes/cache-aside-hit-then-miss.mjs +26 -26
  915. package/blueprints/platform-cloudflare-kv/contributions/probes/event-secrecy.mjs +49 -31
  916. package/blueprints/platform-cloudflare-kv/contributions/probes/facade-round-trip.mjs +58 -16
  917. package/blueprints/platform-cloudflare-kv/contributions/probes/list-with-prefix.mjs +6 -5
  918. package/blueprints/platform-cloudflare-kv/contributions/probes/real-account-eventual-consistency-smoke.mjs +165 -66
  919. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-001.json +6 -2
  920. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-002.json +5 -1
  921. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-003.json +5 -1
  922. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-004.json +6 -2
  923. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-005.json +7 -3
  924. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-006.json +22 -0
  925. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-007.json +22 -0
  926. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31101.json +59 -2
  927. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31102.json +45 -2
  928. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31103.json +73 -3
  929. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31104.json +67 -2
  930. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31105.json +59 -2
  931. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31106.json +45 -2
  932. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31107.json +45 -2
  933. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31108.json +45 -2
  934. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31109.json +92 -0
  935. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31110.json +88 -0
  936. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31111.json +89 -0
  937. package/blueprints/platform-cloudflare-kv/docs/topics.md +2 -2
  938. package/blueprints/platform-cloudflare-kv/guide/platform-cloudflare-kv.md +2 -2
  939. package/blueprints/platform-docker-compose-host/CHANGELOG.md +37 -3
  940. package/blueprints/platform-docker-compose-host/README.md +7 -7
  941. package/blueprints/platform-docker-compose-host/blueprint.json +23 -6
  942. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3901-platform-docker-compose-host-contract.json +3 -3
  943. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3902-platform-docker-compose-host-reverse-proxy.json +4 -4
  944. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3903-platform-docker-compose-host-reject-coolify.json +2 -2
  945. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3904-platform-docker-compose-host-log-driver.json +2 -2
  946. package/blueprints/platform-docker-compose-host/contributions/probes/probe-utils.mjs +1 -1
  947. package/blueprints/platform-docker-compose-host/contributions/probes/real-account-minimal-stack-up.mjs +2 -3
  948. package/blueprints/platform-docker-compose-host/contributions/probes/real-account-reload-burst.mjs +1 -1
  949. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-001.json +6 -2
  950. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-002.json +5 -1
  951. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-003.json +6 -2
  952. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-004.json +5 -1
  953. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-005.json +6 -2
  954. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-006.json +6 -2
  955. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-007.json +22 -0
  956. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38101.json +73 -2
  957. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38102.json +67 -2
  958. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38103.json +59 -2
  959. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38104.json +75 -2
  960. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38105.json +49 -2
  961. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38106.json +45 -2
  962. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38107.json +49 -2
  963. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38108.json +49 -2
  964. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38109.json +57 -2
  965. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38110.json +92 -0
  966. package/blueprints/platform-docker-compose-host/docs/topics.md +4 -4
  967. package/blueprints/platform-docker-compose-host/guide/platform-docker-compose-host.md +6 -6
  968. package/blueprints/security-auth-clerk/CHANGELOG.md +24 -4
  969. package/blueprints/security-auth-clerk/README.md +1 -1
  970. package/blueprints/security-auth-clerk/blueprint.json +21 -1
  971. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-001.json +6 -2
  972. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-002.json +5 -1
  973. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-003.json +6 -2
  974. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-004.json +6 -2
  975. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-005.json +5 -2
  976. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-006.json +5 -1
  977. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-007.json +4 -1
  978. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-008.json +4 -1
  979. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-009.json +4 -1
  980. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-010.json +22 -0
  981. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-011.json +22 -0
  982. package/blueprints/security-auth-clerk/contributions/tacs/tac-1001-security-auth-clerk-middleware.json +14 -4
  983. package/blueprints/security-auth-clerk/contributions/tacs/tac-1003-security-auth-clerk-session-verifier.json +7 -1
  984. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9101.json +6 -3
  985. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9102.json +19 -3
  986. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9103.json +6 -3
  987. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9104.json +6 -3
  988. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9105.json +4 -2
  989. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9106.json +4 -2
  990. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9107.json +4 -2
  991. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9108.json +13 -3
  992. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9109.json +8 -2
  993. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9110.json +4 -2
  994. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9111.json +4 -2
  995. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9112.json +102 -0
  996. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9113.json +103 -0
  997. package/blueprints/security-auth-clerk/docs/topics.md +1 -1
  998. package/blueprints/security-auth-keycloak/CHANGELOG.md +23 -4
  999. package/blueprints/security-auth-keycloak/README.md +1 -1
  1000. package/blueprints/security-auth-keycloak/blueprint.json +101 -1
  1001. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-001.json +5 -2
  1002. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-002.json +5 -1
  1003. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-003.json +5 -1
  1004. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-004.json +5 -1
  1005. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-005.json +6 -2
  1006. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-006.json +6 -2
  1007. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-007.json +4 -1
  1008. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-008.json +4 -1
  1009. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-009.json +4 -1
  1010. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-010.json +4 -1
  1011. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-011.json +5 -1
  1012. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-012.json +4 -1
  1013. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-013.json +22 -0
  1014. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-014.json +22 -0
  1015. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-015.json +22 -0
  1016. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-016.json +22 -0
  1017. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-017.json +22 -0
  1018. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-018.json +22 -0
  1019. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-019.json +22 -0
  1020. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1201-security-auth-keycloak-discovery-client.json +4 -2
  1021. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1202-security-auth-keycloak-jwt-verifier.json +8 -2
  1022. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1203-security-auth-keycloak-introspection-client.json +8 -2
  1023. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1204-security-auth-keycloak-provider-router.json +3 -1
  1024. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1205-security-auth-keycloak-role-adapter.json +2 -1
  1025. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11101.json +6 -3
  1026. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11102.json +10 -3
  1027. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11103.json +12 -2
  1028. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11104.json +8 -2
  1029. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11105.json +6 -3
  1030. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11106.json +18 -3
  1031. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11107.json +6 -3
  1032. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11108.json +6 -3
  1033. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11109.json +4 -2
  1034. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11110.json +6 -3
  1035. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11111.json +14 -3
  1036. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11112.json +4 -2
  1037. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11113.json +4 -2
  1038. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11114.json +72 -0
  1039. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11115.json +88 -0
  1040. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11116.json +117 -0
  1041. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11117.json +117 -0
  1042. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11118.json +117 -0
  1043. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11119.json +117 -0
  1044. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11120.json +103 -0
  1045. package/blueprints/security-auth-keycloak/docs/topics.md +1 -1
  1046. package/blueprints/security-auth-keycloak/guide/security-auth-keycloak.md +1 -1
  1047. package/blueprints/security-auth-magic-link/CHANGELOG.md +19 -3
  1048. package/blueprints/security-auth-magic-link/README.md +1 -1
  1049. package/blueprints/security-auth-magic-link/blueprint.json +1 -1
  1050. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-001.json +4 -1
  1051. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-002.json +5 -1
  1052. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-003.json +6 -2
  1053. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-004.json +5 -1
  1054. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-005.json +5 -1
  1055. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-006.json +4 -1
  1056. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-007.json +4 -1
  1057. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-008.json +5 -1
  1058. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-009.json +5 -1
  1059. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-010.json +6 -2
  1060. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-011.json +6 -2
  1061. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3101.json +10 -5
  1062. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3102.json +8 -4
  1063. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3103.json +6 -3
  1064. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3104.json +8 -4
  1065. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3105.json +6 -3
  1066. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3106.json +6 -3
  1067. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3107.json +8 -4
  1068. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3108.json +6 -3
  1069. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3109.json +6 -3
  1070. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3110.json +6 -3
  1071. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3111.json +14 -3
  1072. package/blueprints/security-auth-magic-link/docs/topics.md +1 -1
  1073. package/blueprints/security-auth-magic-link/guide/security-auth-magic-link.md +1 -1
  1074. package/blueprints/security-auth-oauth2/CHANGELOG.md +21 -4
  1075. package/blueprints/security-auth-oauth2/README.md +1 -1
  1076. package/blueprints/security-auth-oauth2/blueprint.json +33 -2
  1077. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-001.json +5 -2
  1078. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-002.json +5 -1
  1079. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-003.json +5 -1
  1080. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-004.json +4 -1
  1081. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-005.json +5 -1
  1082. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-006.json +6 -2
  1083. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-007.json +4 -1
  1084. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-008.json +6 -2
  1085. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-009.json +5 -1
  1086. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-010.json +4 -1
  1087. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-011.json +22 -0
  1088. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-012.json +22 -0
  1089. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-013.json +22 -0
  1090. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1102-security-auth-oauth2-provider-adapter.json +2 -1
  1091. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1103-security-auth-oauth2-session-bridge.json +9 -2
  1092. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10101.json +6 -3
  1093. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10102.json +6 -3
  1094. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10103.json +4 -2
  1095. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10104.json +4 -2
  1096. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10105.json +8 -4
  1097. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10106.json +6 -3
  1098. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10107.json +6 -3
  1099. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10108.json +6 -3
  1100. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10109.json +4 -2
  1101. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10110.json +4 -2
  1102. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10111.json +17 -2
  1103. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10112.json +82 -0
  1104. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10113.json +68 -0
  1105. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10114.json +88 -0
  1106. package/blueprints/security-auth-oauth2/docs/topics.md +1 -1
  1107. package/blueprints/security-secrets-management/CHANGELOG.md +14 -2
  1108. package/blueprints/security-secrets-management/blueprint.json +168 -31
  1109. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-001.json +5 -1
  1110. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-002.json +6 -2
  1111. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-003.json +6 -2
  1112. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-004.json +5 -1
  1113. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-005.json +6 -2
  1114. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-006.json +5 -1
  1115. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-007.json +5 -1
  1116. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-008.json +5 -1
  1117. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-009.json +5 -1
  1118. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-010.json +6 -3
  1119. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8101.json +6 -3
  1120. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8102.json +6 -3
  1121. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8103.json +4 -2
  1122. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8104.json +6 -3
  1123. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8105.json +8 -4
  1124. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8106.json +6 -3
  1125. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8107.json +6 -3
  1126. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8108.json +6 -3
  1127. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8109.json +6 -3
  1128. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8110.json +6 -3
  1129. package/blueprints/security-secrets-management/docs/topics.md +1 -1
  1130. package/fixtures/canary-manifest.json +9 -9
  1131. package/guidance/harness-template.md +67 -0
  1132. package/guidance/managed/agent-instructions-block.hash +1 -1
  1133. package/guidance/managed/agent-instructions-block.md +67 -0
  1134. package/package.json +2 -2
  1135. package/rcf/code-nodes/cn-500.json +12 -0
  1136. package/rcf/code-nodes/cn-510.json +12 -0
  1137. package/rcf/code-nodes/cn-520.json +14 -0
  1138. package/rcf/code-nodes/cn-521.json +12 -0
  1139. package/rcf/code-nodes/cn-522.json +13 -0
  1140. package/rcf/code-nodes/cn-523.json +12 -0
  1141. package/rcf/code-nodes/cn-524.json +14 -0
  1142. package/rcf/code-nodes/cn-525.json +12 -0
  1143. package/rcf/code-nodes/cn-526.json +14 -0
  1144. package/rcf/fbs/fbs-160.json +15 -0
  1145. package/rcf/fbs/fbs-165.json +15 -0
  1146. package/rcf/fbs/fbs-170.json +16 -0
  1147. package/rcf/fbs/fbs-171.json +16 -0
  1148. package/rcf/fbs/fbs-172.json +15 -0
  1149. package/rcf/fbs/fbs-173.json +17 -0
  1150. package/rcf/fbs/fbs-174.json +17 -0
  1151. package/rcf/requirements/req-140.json +149 -0
  1152. package/rcf/requirements/req-145.json +53 -0
  1153. package/rcf/requirements/req-150.json +20 -0
  1154. package/rcf/requirements/req-151.json +85 -0
  1155. package/rcf/requirements/req-152.json +20 -0
  1156. package/rcf/requirements/req-153.json +59 -0
  1157. package/rcf/requirements/req-154.json +44 -0
  1158. package/rcf/test-suites/ts-050.json +1 -1
  1159. package/rcf/test-suites/ts-052.json +1 -1
  1160. package/rcf/test-suites/ts-053.json +2 -2
  1161. package/rcf/test-suites/ts-054.json +2 -2
  1162. package/rcf/test-suites/ts-055.json +2 -2
  1163. package/rcf/test-suites/ts-056.json +4 -4
  1164. package/rcf/test-suites/ts-057.json +2 -2
  1165. package/rcf/test-suites/ts-071.json +2 -2
  1166. package/rcf/test-suites/ts-086.json +2 -2
  1167. package/rcf/test-suites/ts-170.json +22 -0
  1168. package/rcf/test-suites/ts-175.json +22 -0
  1169. package/rcf/test-suites/ts-180.json +30 -0
  1170. package/rcf/test-suites/ts-181.json +30 -0
  1171. package/rcf/test-suites/ts-182.json +22 -0
  1172. package/rcf/test-suites/ts-183.json +38 -0
  1173. package/rcf/test-suites/ts-184.json +38 -0
  1174. package/rcf/user-stories/us-14001.json +21 -0
  1175. package/rcf/user-stories/us-14501.json +24 -0
  1176. package/rcf/user-stories/us-15001.json +26 -0
  1177. package/rcf/user-stories/us-15101.json +26 -0
  1178. package/rcf/user-stories/us-15201.json +21 -0
  1179. package/rcf/user-stories/us-15301.json +31 -0
  1180. package/rcf/user-stories/us-15401.json +31 -0
  1181. package/rcf/user-stories/us-7701.json +3 -3
  1182. package/releases/releases.yaml +21 -1
  1183. package/src/blueprint/apply.js +64 -0
  1184. package/src/blueprint/consistency-lint.js +432 -0
  1185. package/src/blueprint/disposition-ledger.js +224 -0
  1186. package/src/blueprint/dispositions.js +44 -0
  1187. package/src/blueprint/index.js +19 -0
  1188. package/src/browser-verify/manifest-writer.js +53 -2
  1189. package/src/browser-verify/pack-runner.js +18 -0
  1190. package/src/cli/blueprint.js +103 -0
  1191. package/src/cli/view.js +22 -11
  1192. package/src/setup/identity-seed.js +18 -0
@@ -16,12 +16,27 @@
16
16
  "when": "the applied sidecar records the operator's answers and a wrangler.toml is generated",
17
17
  "then": "appliedElicitations.assets-directory equals ./public; the generated wrangler.toml carries [assets] directory = \"./public\" and no run_worker_first field; the manifest carries no pages_build_output_dir field",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "template"
21
+ },
22
+ {
23
+ "id": "AC-12114-2",
24
+ "description": "Malformed assets-directory refusal. Given the elicited assets-directory answer that names a path outside the Worker source root (an absolute path, or a path with .. segments), when the deploy adapter validates the elicited answer, then the adapter refuses with a named error kind (invalidAssetsDirectory), the wrangler manifest is not rendered, and no upload runs.",
25
+ "given": "assets-directory answer names a path outside the Worker source root",
26
+ "when": "the deploy adapter validates",
27
+ "then": "the adapter refuses with invalidAssetsDirectory; no manifest is rendered; no upload runs",
28
+ "testable": true,
29
+ "scope": "runtime",
30
+ "ownerRef": {
31
+ "tacId": "TAC-1302-deploy-cloudflare-workers-wrangler-manifest",
32
+ "field": "responsibilities.assets"
33
+ },
34
+ "disposition": "template"
20
35
  }
21
36
  ],
22
37
  "tacIds": [
23
38
  "TAC-1302-deploy-cloudflare-workers-wrangler-manifest"
24
39
  ],
25
40
  "createdAt": "2026-09-07T00:00:00Z",
26
- "updatedAt": "2026-09-07T00:00:00Z"
41
+ "updatedAt": "2026-09-09T00:00:00Z"
27
42
  }
@@ -12,16 +12,31 @@
12
12
  {
13
13
  "id": "AC-12115-1",
14
14
  "description": "The guide file blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md gains one new section titled Workers-with-static-assets: the SPA-on-Workers shape. The section carries the verbatim Cloudflare Pages landing-page quote (Workers supports most Pages use cases and offers a broader feature set. It is Cloudflare's primary platform for building applications. Start new projects with Workers.), the two elicit signatures (assets-directory string default empty; run-worker-first boolean default false), a copy-paste wrangler.toml snippet showing the [assets] block with directory and the run_worker_first hint, and a link to the Cloudflare migrate-from-Pages guide at https://developers.cloudflare.com/workers/static-assets/migration-guides/migrate-from-pages/. The Cloudflare Workers static-assets doc at https://developers.cloudflare.com/workers/static-assets/ is cited in the same section. Both URLs return HTTP 200 at gate time.",
15
- "given": "the updated guide file on the T-0 branch",
15
+ "given": "the updated guide file on the branch",
16
16
  "when": "a reader opens the guide and grep locates the section heading, the verbatim quote and the two URLs",
17
17
  "then": "the section heading appears once; the verbatim landing-page quote appears once; both Cloudflare URLs appear at least once each; a curl -fsSI on each URL returns HTTP 200",
18
18
  "testable": true,
19
- "scope": "library"
19
+ "scope": "library",
20
+ "disposition": "template"
21
+ },
22
+ {
23
+ "id": "AC-12115-2",
24
+ "description": "One-line note: this story is documentation-only. The mechanism (guide prose linking Cloudflare's migrate-from-Pages walkthrough) has no documented failure path in the blueprint's own guide or TAC records, per section 7a; a broken link is a doc-drift finding surfaced by the shipped link-check probe rather than a mechanism failure.",
25
+ "given": "guide prose linking Cloudflare's migrate-from-Pages walkthrough",
26
+ "when": "the shipped link-check probe runs",
27
+ "then": "a broken link is surfaced as a doc-drift finding; there is no additional mechanism failure path to bind",
28
+ "testable": true,
29
+ "scope": "runtime",
30
+ "ownerRef": {
31
+ "tacId": "TAC-1302-deploy-cloudflare-workers-wrangler-manifest",
32
+ "field": "responsibilities.assets"
33
+ },
34
+ "disposition": "fixed"
20
35
  }
21
36
  ],
22
37
  "tacIds": [
23
38
  "TAC-1302-deploy-cloudflare-workers-wrangler-manifest"
24
39
  ],
25
40
  "createdAt": "2026-09-07T00:00:00Z",
26
- "updatedAt": "2026-09-07T00:00:00Z"
41
+ "updatedAt": "2026-09-09T00:00:00Z"
27
42
  }
@@ -46,7 +46,7 @@ This table is maintained shelf-wide across every blueprint's `docs/topics.md`. R
46
46
  | application-account-settings | 25101-25899 | 26xx | shipped v1.0.0 | none |
47
47
  | application-onboarding-tour | 26101-26899 | 27xx | shipped v1.0.0 | none |
48
48
  | persistence-data-postgres | 27101-27899 | 28xx | shipped v1.0.0 | `persistenceStore`, `migrationDiscipline` |
49
- | object-storage-s3 | 28101-28899 | 29xx | shipped v1.0.0 | `objectStorageContract` |
49
+ | object-storage-s3 | 28101-28899 | 29xx | shipped v1.1.0 | `objectStorageContract` |
50
50
  | messaging-queue-cloudflare | 29101-29899 | 30xx | shipped v1.0.0 | `deliverySemantics` |
51
51
  | jobs-background | 30101-30899 | 31xx | shipped v1.0.0 | `backgroundJobModel` |
52
52
  | platform-cloudflare-kv | 31101-31899 | 32xx | shipped v1.0.0 | `keyValueStoreContract` |
@@ -80,7 +80,12 @@ Cloudflare's own Pages landing page states, verbatim (fetched 2026-09-06): "Work
80
80
  The bump adds two elicits on the top-level `elicits[]` block:
81
81
 
82
82
  - `assets-directory` (kind `string`, default empty): the path (relative to the Worker source root) whose files Cloudflare serves at the edge as static assets. An empty answer keeps the bare-Worker shape (no `[assets]` block on the generated `wrangler.toml`); a non-empty answer emits `[assets] directory = "<answered path>"`.
83
- - `run-worker-first` (kind `boolean`, default `false`): the SPA fallback discipline. A truthy answer emits `run_worker_first = true` under the `[assets]` block; a falsy or unanswered answer omits the field, leaving Cloudflare's runtime to serve a matching static asset before the Worker fetch handler runs. The elicit is only meaningful when `assets-directory` is non-empty (a Worker with no assets has nothing to serve first); the loader-side `when-elicitedNonEmpty` predicate the spec calls for is a mechanism follow-up, so the elicit fires unconditionally today.
83
+ - `run-worker-first` (kind `string`, default `"false"`): the SPA fallback discipline. The Cloudflare Workers static-assets binding page (https://developers.cloudflare.com/workers/static-assets/binding/, verified 2026-09-09) accepts two shapes on this field, and the elicit reflects both:
84
+
85
+ - **Boolean shape**: answer `"true"` (emits `run_worker_first = true`, Worker runs first for every request; right for a SPA whose Worker owns arbitrary routing or whose auth middleware must gate every path a static file could shadow) or `"false"` / empty (omits the field, Cloudflare's runtime serves a matching static asset before the Worker runs).
86
+ - **Array-of-patterns shape**: answer a JSON literal such as `["/api/*", "!/api/docs/*"]` (emits `run_worker_first = ["/api/*", "!/api/docs/*"]`, Worker runs first only on matched routes; glob `*` for deep matching; leading `!` for negatives; negatives take precedence over non-negatives; at most 100 entries per the vendor page). Right for a mixed SPA-plus-API deploy where auth must gate the API surface without stealing every static-asset request from the edge.
87
+
88
+ The elicit is only meaningful when `assets-directory` is non-empty (a Worker with no assets has nothing to serve first); the loader-side `when-elicitedNonEmpty` predicate the spec calls for is a mechanism follow-up, so the elicit fires unconditionally today.
84
89
 
85
90
  Copy-paste `wrangler.toml` snippet for the ratified shape:
86
91
 
@@ -94,6 +99,6 @@ directory = "./dist"
94
99
  run_worker_first = true
95
100
  ```
96
101
 
97
- The `[assets]` block and Pages' `pages_build_output_dir` field are mutually exclusive per Cloudflare's static-assets doc; the T-0 probe `assets-manifest-scan.mjs` (`accountBound: false`, `anchorAcId: AC-12113-1`) refuses on a manifest that carries both. A project on the bare-Worker shape (no static assets served at the edge) leaves both elicits unanswered and the probe reports the bare shape as passing.
102
+ The `[assets]` block and Pages' `pages_build_output_dir` field are mutually exclusive per Cloudflare's static-assets doc; the probe `assets-manifest-scan.mjs` (`accountBound: false`, `anchorAcId: AC-12113-1`) refuses on a manifest that carries both. A project on the bare-Worker shape (no static assets served at the edge) leaves both elicits unanswered and the probe reports the bare shape as passing.
98
103
 
99
104
  Migrating from Cloudflare Pages: read Cloudflare's own walkthrough at `https://developers.cloudflare.com/workers/static-assets/migration-guides/migrate-from-pages/`, apply this blueprint at v1.2.0 with `assets-directory` set to the build-output directory the Pages project pointed at (typically `./dist`, `./build`, or `./public`), pick `run-worker-first` per the project's routing shape, and drop the Pages workflow. The Workers-with-static-assets shape covers the SPA and API surfaces the Pages workflow covered; the promote and rollback verbs on this blueprint carry through unchanged.
@@ -1,3 +1,38 @@
1
+ # Changelog
2
+
3
+ ## 1.1.2 (register patch, 2026-09-10)
4
+
5
+ - Register: neutral wording on the ADR-3801 consequences field (closes F-1) and the shared throwaway-server fixture paragraph in README (closes F-2); no capability change.
6
+
7
+ ## 1.1.1 (register-sweep patch, 2026-09-10)
8
+
9
+ - Register: neutral wording in shipped prose (no capability change).
10
+
11
+ ## 1.1.0 - 2026-09-09
12
+
13
+ Adds deliveredBy on REQ-001, REQ-002 and REQ-004. Adds ownerRef on AC-37102-1 (manifest schema), AC-37105-1 (cloud-init template) and AC-37106-1 (firewall shape). Adds runtime-clause naming the cloudHost applied capability on REQ-001. Adds disposition to every AC. Adds provisioner-failure and idempotency ACs across the family: US-37101 (AC-37101-2 credential missing, AC-37101-3 dependency not ready, AC-37101-4 repeat-boot idempotency, per section 7a worked example), US-37102 (AC-37102-2 malformed manifest, AC-37102-3 firewall opens ssh to 0.0.0.0/0), US-37103 (AC-37103-2 provisioner failure surfaces, AC-37103-3 repeat-apply idempotency), US-37104 (AC-37104-2 malformed template refusal), US-37106 (AC-37106-2 firewall applied at provision time), US-37107 (AC-37107-2 scheduled snapshot per elicited cadence, with off suppression), US-37108 (AC-37108-2 snapshot-on-demand upstream failure), US-37109 (AC-37109-2 secret exclusion by source-tree grep, AC-37109-3 event fires once per lifecycle moment).
14
+
15
+ ## 1.0.1
16
+
17
+ Round-7 real-account gate hardening patch train. Fixes nine real-path defects in the shared throwaway-Hetzner-server fixture at packages/rcf-lite/test/fixtures/hetzner-throwaway-server/ so the three real-account probes return aggregateVerdict pass on a live Hetzner Cloud project unpatched, and destroy plus sweep-orphans never leak a server. Every existing v1.0.0 contribution id byte-identical apart from the cloud-init template bodies (baseline unchanged; adds a NOPASSWD sudoers.d fragment for the deploy user) and the three mocked probe bodies (mutation-purity clean plus a new rendered-file assertion).
18
+
19
+ Defect list fixed:
20
+
21
+ - (1) provision.mjs reads snake_case fields off the hcloud server create response (public_net.ipv4.ip, datacenter.location.name, server_type.name). v1.0.0 read camelCase and threw on every real-account provision, so destroy.mjs could not find the server to tear down.
22
+ - (2) provision.mjs renders the cloud-init user-data via src/cloud-init-renderer.mjs before hcloud server create fires and writes it to hetzner/servers/rendered/<name>.cloud-init.yaml. v1.0.0 expected a file that no shipped code wrote; every provision failed on missing user-data.
23
+ - (3) src/cloud-init-renderer.mjs resolves each ssh key name to its .publicKey via hcloud ssh-key describe --output json and inlines the material into ssh_authorized_keys under the deploy user. v1.0.0 inlined the key NAME and the deploy user had no working authorized_keys entry.
24
+ - (4) destroy.mjs and sweep-orphans.mjs never pass --output json to a hcloud <resource> delete verb (the delete verbs reject the flag with unknown flag: --output). The tolerant JSON parser accepts arrays, objects and the delete verbs short informational text output.
25
+ - (5) src/snapshot-verb.mjs shells hcloud server create-image --type snapshot --description <label> <server-id> and recovers the created snapshot id via hcloud image list --type=snapshot --output json by matching the serverName label. v1.0.0 called a non-existent hcloud image create-image verb.
26
+ - (6) src/ssh-baseline-check.mjs polls port 22 open and a trivial ssh true exec (bounded up to 6 minutes) before firing the six baseline checks. v1.0.0 spawned ssh immediately after provision and every check timed out on connection refused because cloud-init had not finished.
27
+ - (7) contributions/templates/cloud-init.yaml.tmpl adds a write_files sudoers.d fragment at /etc/sudoers.d/90-deploy-nopasswd (mode 0440) that grants NOPASSWD to the deploy user, so the sudoed baseline checks (cloud-init status --wait, ufw status, iptables -L, systemctl is-active fail2ban) never block on a tty prompt.
28
+ - (9) provision.mjs reads an env override RCF_LITE_CI_SSH_KEY_NAME (per-key comma-separated) for the manifest sshKeyIds, with the manifest value staying the default when the override is unset. Documented in the fixture README.
29
+
30
+ Also: the three mocked probe modules (cloud-init-render-lint, manifest-schema-validate, hcloud-dry-run-mock) no longer read any process.env.SIMULATE_ switch inside the probe body per the mutation-purity gate row. The switches live entirely inside fixture-side files (src/cloud-init-renderer.mjs, src/hcloud-mock.mjs, src/provisioner-facade.mjs and the fixture-side run-manifest-schema-validate.mjs shim) and alter INPUT only. The hcloud-dry-run-mock probe now consumes the SAME rendered cloud-init file the real path consumes (renderer writes it, both the mock and real path read it) and asserts an ssh public-key line under the deploy user plus a NOPASSWD directive naming that user (REQ-145 / AC-14501-1). Report envelopes under .rcf/reports/blueprints/deploy-hetzner-server/ regenerated from the real run.
31
+
32
+ Chain: the operator estate hardening block covering REQ-145..149 / TS-175..179 / FBS-165..169 / CN-510..519 per the operator estate chain-block ruling 2026-09-08. Real run under the project maintainer one-off approval 2026-09-08: yes, one-off for round 7 gates; Ensure that after any testing etc the Hertner account leaves NO orphaned resources behind. Leave it in the state it started in.
33
+
34
+ Defect (8) container-host and edge-tunnel stub drivers are OUT of scope for the round-7 real-account gate pass (the review train owns them).
35
+
1
36
  # deploy-hetzner-server changelog
2
37
 
3
38
  ## 1.0.0
@@ -26,9 +61,11 @@ paired with a mutation switch that flips the probe to FAIL), plus
26
61
  without `CI_HAS_HETZNER_ACCOUNT`).
27
62
 
28
63
  Mints the shared `hetzner-throwaway-server` fixture under
29
- `packages/rcf-lite/test/fixtures/` (round-7 T-2 and T-3 EXTEND it,
64
+ `packages/rcf-lite/test/fixtures/` (`platform-docker-compose-host` and `edge-cloudflare-tunnel` EXTEND it,
30
65
  they do not ship a second copy).
31
66
 
32
67
  Trace: hetzner-round-7-spec-2026-09-07.md section 5.1;
33
- Baz ruling 2026-09-07 09:50Z (decisions 18 through 24 approved as
68
+ maintainer ruling 2026-09-07 09:50Z (decisions 18 through 24 approved as
34
69
  recommended, "round 7 - agreee to all").
70
+
71
+ Review-fix (2026-09-09): Adds three option-binding ACs to close section 7c on the elicits catalogue - provisioning-tool raw-api (AC-37101-5), server-type SKU enum (AC-37103-4 naming every shipped SKU), location enum (AC-37103-5 naming every shipped datacentre). Adds deliveredBy on REQ-003, REQ-005, REQ-006. Sweeps vendorCitation onto fixed ACs resting on vendor facts (AC-37101-2, AC-37105-1, AC-37108-1, AC-37108-2, AC-37108-3).
@@ -45,7 +45,7 @@ Four ADRs record the load-bearing decisions:
45
45
  https://docs.hetzner.com/cloud/servers/backups-snapshots/overview.
46
46
  - `ADR-3803` provisioning tool: `hcloud` default, `raw-api`
47
47
  alternative, Terraform rejected on second toolchain and state file
48
- grounds per Baz ruling 2026-09-07.
48
+ grounds per maintainer ruling 2026-09-07.
49
49
  - `ADR-3804` hardening baseline: the six blocks named below.
50
50
 
51
51
  ## Two provisioner paths: hcloud and raw-api
@@ -85,7 +85,7 @@ FAILS naming the missing line.
85
85
  |---|---|---|
86
86
  | `provisioning-tool` | `hcloud`, `raw-api` | `hcloud` (ADR-3803) |
87
87
  | `server-type` | `cx23`, `cx33`, `cx43`, `cpx11`..`cpx41`, `cax11`..`cax31` | `cx23` |
88
- | `location` | `fsn1`, `nbg1`, `hel1`, `ash`, `hil` | `fsn1` (Baz ruling 2026-09-07 09:50Z) |
88
+ | `location` | `fsn1`, `nbg1`, `hel1`, `ash`, `hil` | `fsn1` (maintainer ruling 2026-09-07 09:50Z) |
89
89
  | `image` | any Hetzner image slug | `ubuntu-24.04` |
90
90
  | `ssh-source-prefixes` | CSV of CIDR ranges | `203.0.113.0/24` (example only; supply the real prefix set) |
91
91
  | `firewall-id` | existing firewall id or empty | empty (create from `firewallRules`) |
@@ -149,11 +149,11 @@ Every probe writes its report envelope to
149
149
 
150
150
  ## Shared throwaway-server fixture
151
151
 
152
- The one new pattern this round. Lives at
152
+ The blueprint ships one new pattern. It lives at
153
153
  `packages/rcf-lite/test/fixtures/hetzner-throwaway-server/`; ships
154
154
  `provision.mjs`, `destroy.mjs`, `sweep-orphans.mjs`, the mocked hcloud
155
- shim and the manifest at `hetzner/servers/ci-throwaway.json`. T-2
156
- (`platform-docker-compose-host`) and T-3 (`edge-cloudflare-tunnel`)
155
+ shim and the manifest at `hetzner/servers/ci-throwaway.json`. Sibling
156
+ `platform-docker-compose-host` and `edge-cloudflare-tunnel` blueprints
157
157
  EXTEND the fixture rather than shipping a second copy. Cost ceiling:
158
158
  one `cx23` at approximately EUR 0.006/hour per run; destroy runs in
159
159
  `always()`; the nightly `sweep-orphans` cron collects any leak with a
@@ -172,13 +172,13 @@ cannot host.
172
172
 
173
173
  ## Consumers
174
174
 
175
- - ops-01 is the first HQ consumer (`w-2026-09-07-dave-004` migration).
176
- - Round-7 T-2 `platform-docker-compose-host` composes on
175
+ - ops-host is the first infrastructure consumer (migration path).
176
+ - Round-7 `platform-docker-compose-host` composes on
177
177
  `capabilities: [cloudHost]`.
178
- - Round-7 T-3 `edge-cloudflare-tunnel` composes on `cloudHost` (via
179
- the systemd unit shape) or on `containerHost` (via T-2).
178
+ - Round-7 `edge-cloudflare-tunnel` composes on `cloudHost` (via
179
+ the systemd unit shape) or on `containerHost` (via `platform-docker-compose-host`).
180
180
 
181
- Blueprint acceptance never depends on the ops-01 migration.
181
+ Blueprint acceptance never depends on the ops-host migration.
182
182
 
183
183
  ## Standards trace
184
184
 
@@ -197,6 +197,6 @@ Blueprint acceptance never depends on the ops-01 migration.
197
197
  ## Rejected alternatives
198
198
 
199
199
  - Terraform. Adds a second toolchain and a state file that nobody in
200
- the estate needs. Baz ruling 2026-09-07 09:50Z on decision 18.
201
- - A Load Balancer blueprint. Out of scope for round-7 T-1; may ship as
200
+ the estate needs. maintainer ruling 2026-09-07 09:50Z.
201
+ - A Load Balancer blueprint. Out of scope for round-7; may ship as
202
202
  a follow-up if a second Hetzner consumer needs it.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "slug": "deploy-hetzner-server",
3
- "version": "1.0.0",
3
+ "version": "1.1.2",
4
4
  "category": "deploy",
5
5
  "capabilities": [
6
6
  "cloudHost"
@@ -46,7 +46,7 @@
46
46
  },
47
47
  {
48
48
  "id": "location",
49
- "prompt": "Hetzner data centre. fsn1 (Falkenstein) is the shipped default per Baz ruling 2026-09-07 09:50Z on the Q2 ratification.",
49
+ "prompt": "Hetzner data centre. fsn1 (Falkenstein) is the shipped default per maintainer ruling 2026-09-07 09:50Z on the Q2 ratification.",
50
50
  "kind": "enum",
51
51
  "options": [
52
52
  "fsn1",
@@ -5,9 +5,9 @@
5
5
  "version": "1.0.0",
6
6
  "status": "accepted",
7
7
  "title": "Cloud host contract: Hetzner Cloud VM as the shipped cloudHost shape (scope global, new topic linuxCloudHostContract)",
8
- "context": "An applying project needs a first-class Linux VM contract that container-orchestration and edge-ingress consumers (round-7 T-2 platform-docker-compose-host, T-3 edge-cloudflare-tunnel) can compose on. Hetzner Cloud servers plus cloud-init user-data provide the v1.0.0 shape per https://docs.hetzner.cloud/ and https://docs.hetzner.com/cloud/servers/overview. Every applied cloud host needs one project-wide answer to the linuxCloudHostContract topic; a future non-Hetzner sibling (Vultr, DigitalOcean, Fly.io) would contribute the same topic string with a different provider, forcing a DELIBERATE conflict the operator resolves per the round-2 conflict pattern.",
8
+ "context": "An applying project needs a first-class Linux VM contract that container-orchestration and edge-ingress consumers (round-7 platform-docker-compose-host, edge-cloudflare-tunnel) can compose on. Hetzner Cloud servers plus cloud-init user-data provide the v1.0.0 shape per https://docs.hetzner.cloud/ and https://docs.hetzner.com/cloud/servers/overview. Every applied cloud host needs one project-wide answer to the linuxCloudHostContract topic; a future non-Hetzner sibling (Vultr, DigitalOcean, Fly.io) would contribute the same topic string with a different provider, forcing a DELIBERATE conflict the operator resolves per the round-2 conflict pattern.",
9
9
  "decision": "The shipped v1.0.0 default is a Hetzner Cloud server as the linuxCloudHostContract provider. The provisioner reads its shape from the applying manifest at hetzner/servers/name.json (TAC-3802) and creates a matching live server via hcloud CLI verbs (ADR-3803) or the raw Hetzner Cloud API. The linuxCloudHostContract topic scope is global on this blueprint; the topic string is linuxCloudHostContract (lower camelCase, one concept per topic, no version suffix, per the round-2 rules-for-new-topics clause on the shelf registry). Standards trace clause: Hetzner Cloud API server resource and cloud-init user-data contract per hetzner-round-7-spec-2026-09-07.md.",
10
- "consequences": "Consumer blueprints that run on a Linux host declare capabilities: [cloudHost] on their applied contract; the round-7 T-2 platform-docker-compose-host reads this capability at apply-time. Rebuild-from-manifest is always possible: the manifest is the source of truth, the live server is derivative. Drift from the shipped manifest to the live server is out of scope for v1.0.0; a later minor may add a drift-audit runner.",
10
+ "consequences": "Consumer blueprints that run on a Linux host declare capabilities: [cloudHost] on their applied contract; the sibling platform-docker-compose-host blueprint reads this capability at apply-time. Rebuild-from-manifest is always possible: the manifest is the source of truth, the live server is derivative. Drift from the shipped manifest to the live server is out of scope for v1.0.0; a later minor may add a drift-audit runner.",
11
11
  "alternativesConsidered": [],
12
12
  "createdAt": "2026-09-08T00:00:00.000Z",
13
13
  "updatedAt": "2026-09-08T00:00:00.000Z"
@@ -5,14 +5,14 @@
5
5
  "version": "1.0.0",
6
6
  "status": "accepted",
7
7
  "title": "Provisioning tool: hcloud CLI default, raw Hetzner Cloud API alternative, Terraform rejected",
8
- "context": "An applying project needs a documented answer to how the provisioner shells out to Hetzner Cloud. Options considered: hcloud CLI (small, self-documenting, JSON output on --output json, per https://github.com/hetznercloud/cli); the raw Hetzner Cloud REST API (no CLI dependency, useful when the target host cannot install a binary, per https://docs.hetzner.cloud/); Terraform (declarative, adds a second toolchain and a state file). Baz ruling 2026-09-07 09:50Z on decision 18 of the round-7 summary: hcloud not Terraform. Terraform adds a second toolchain and a state file that nobody in the estate needs.",
8
+ "context": "An applying project needs a documented answer to how the provisioner shells out to Hetzner Cloud. Options considered: hcloud CLI (small, self-documenting, JSON output on --output json, per https://github.com/hetznercloud/cli); the raw Hetzner Cloud REST API (no CLI dependency, useful when the target host cannot install a binary, per https://docs.hetzner.cloud/); Terraform (declarative, adds a second toolchain and a state file). maintainer ruling 2026-09-07 09:50Z of the round-7 summary: hcloud not Terraform. Terraform adds a second toolchain and a state file that nobody in the estate needs.",
9
9
  "decision": "The shipped v1.0.0 default is the hcloud CLI as the provisioning tool. Alternative elicited: raw-api (the provisioner fetches the Hetzner Cloud REST API directly). Terraform is a rejected alternative recorded in the blueprint README section 9 rejected-alternatives. elicited: true. recommendedDefault: hcloud. Standards trace clause: Hetzner Cloud CLI documented resource verbs per hetzner-round-7-spec-2026-09-07.md.",
10
10
  "consequences": "The applying project installs the hcloud binary on the operator laptop and every CI runner that provisions. The raw-api fork sits behind the same provisioner facade so no consumer code diverges. The provisioner-facade sole-reader guarantee holds on both paths.",
11
11
  "alternativesConsidered": [
12
12
  {
13
13
  "id": "terraform",
14
14
  "summary": "Terraform declaring the Hetzner resources with the hetznercloud provider.",
15
- "rejectedBecause": "Adds a second toolchain and a state file. The state file becomes a new source of truth to reconcile with git and with the live account. Baz ruling 2026-09-07 09:50Z."
15
+ "rejectedBecause": "Adds a second toolchain and a state file. The state file becomes a new source of truth to reconcile with git and with the live account. maintainer ruling 2026-09-07 09:50Z."
16
16
  }
17
17
  ],
18
18
  "createdAt": "2026-09-08T00:00:00.000Z",
@@ -7,9 +7,13 @@
7
7
  // via the fixture's src/cloud-init-renderer.mjs. Asserts the six hardening
8
8
  // baseline blocks appear in the rendered YAML.
9
9
  //
10
- // SIMULATE_HARDENING_DRIFT=true removes the unattended-upgrades write-file
11
- // block from the rendered YAML; the probe FAILS naming the missing line
12
- // per hetzner-round-7-spec-2026-09-07.md section 3.4 lesson 4.
10
+ // Purity: the probe reads only the shipped template and the fixture
11
+ // manifest; no process.env.SIMULATE_ switch is read here. The
12
+ // fixture-side renderer at src/cloud-init-renderer.mjs is the sole
13
+ // reader of SIMULATE_HARDENING_DRIFT and it mutates INPUT (the
14
+ // rendered YAML) only; the probe then FAILS naming the missing
15
+ // baseline block per hetzner-round-7-spec-2026-09-07.md section 3.4
16
+ // lesson 4. (2026-09-08).
13
17
 
14
18
  import { readFile } from 'node:fs/promises';
15
19
  import { resolve } from 'node:path';
@@ -23,7 +27,11 @@ export default async function runProbe() {
23
27
  const manifestPath = resolve(FIXTURE_DIR, 'hetzner/servers/ci-throwaway.json');
24
28
  const { renderCloudInit, BASELINE_BLOCKS } = await import(rendererPath);
25
29
  const manifest = JSON.parse(await readFile(manifestPath, 'utf8'));
26
- const rendered = await renderCloudInit(manifest);
30
+ // In-process render only; pass explicit stub public-key material so
31
+ // the renderer never shells to hcloud (mock path stays hermetic).
32
+ const rendered = await renderCloudInit(manifest, {
33
+ publicKeys: ['ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFakePubKeyForRenderLintHardeningH1 rcf-lite-ci-mock'],
34
+ });
27
35
  const missing = [];
28
36
  const present = [];
29
37
  for (const block of BASELINE_BLOCKS) {
@@ -58,7 +66,6 @@ export default async function runProbe() {
58
66
  renderedByteLength: rendered.length,
59
67
  presentBlocks: present,
60
68
  missingBlocks: missing.map((m) => m.id),
61
- mutationActive: process.env.SIMULATE_HARDENING_DRIFT === 'true',
62
69
  },
63
70
  };
64
71
  }
@@ -1,11 +1,26 @@
1
- // Probe: hcloud dry-run mock.
1
+ // Probe: hcloud dry-run mock (v1.0.1 mutation-purified per the round-7 hardening pass).
2
2
  //
3
3
  // anchorAcId: AC-37101-1 (provisioner facade sole reader + provisionerReady
4
- // on boot; also covers AC-37109-1 event-secrecy across the lifecycle).
4
+ // on boot; also covers AC-37109-1 event-secrecy across the lifecycle;
5
+ // also covers AC-14501-1 mock-consumes-rendered-file assertions per
6
+ // the round-7 hardening block REQ-145).
5
7
  // accountBound: false.
6
8
  //
7
9
  // Drives the provisioner facade with the fixture's ci-throwaway manifest
8
- // against the mocked hcloud shim (src/hcloud-mock.mjs). Asserts:
10
+ // against the mocked hcloud shim (src/hcloud-mock.mjs) and consumes the
11
+ // SAME rendered cloud-init user-data file the real path consumes (the
12
+ // fixture renderer writes it under hetzner/servers/rendered/ before the
13
+ // facade is exercised, and this probe reads it back and asserts an
14
+ // ssh-ed25519/ssh-rsa public-key line under the deploy user plus a
15
+ // NOPASSWD directive naming that user). The rendered-file assertion is
16
+ // what stops a mocked probe from passing while the real path fails on
17
+ // the same artefact (REQ-145 / AC-14501-1).
18
+ //
19
+ // The probe body reads NO process.env.SIMULATE_ switch. Fixture-side
20
+ // mutations live in src/cloud-init-renderer.mjs, src/hcloud-mock.mjs
21
+ // and src/provisioner-facade.mjs and alter INPUT only.
22
+ //
23
+ // Assertions:
9
24
  // - the facade opens on ready() and fires provisionerReady with a
10
25
  // metadata-only payload {tool, apiHost}.
11
26
  // - createServer parses the mocked JSON stdout and emits
@@ -15,17 +30,14 @@
15
30
  // - destroyServer fires hetznerServerDestroyed with the id.
16
31
  // - no event body across the run carries the token, an ssh private-key
17
32
  // marker, or the rendered user-data bytes (event-secrecy check).
18
- //
19
- // Mutations:
20
- // SIMULATE_JSON_PARSE_STRIP=true has hcloud-mock.mjs return non-JSON
21
- // stdout so JSON.parse throws and the probe FAILS.
22
- // SIMULATE_EVENT_SECRECY_LEAK=true has provisioner-facade.mjs inject
23
- // the token into the hetznerServerProvisioned payload; the event-
24
- // secrecy scan FAILS with a defensive-fake finding.
33
+ // - the rendered cloud-init file exists under the fixture's rendered
34
+ // directory and carries at least one ssh-ed25519 or ssh-rsa
35
+ // authorized-keys line under the deploy user plus a NOPASSWD
36
+ // directive naming that user (REQ-145 / AC-14501-1).
25
37
 
26
- import { readFile } from 'node:fs/promises';
27
- import { resolve } from 'node:path';
28
- import { FIXTURE_DIR } from './probe-utils.mjs';
38
+ import { readFile, access } from 'node:fs/promises';
39
+ import { relative, resolve } from 'node:path';
40
+ import { FIXTURE_DIR, PROJECT_ROOT } from './probe-utils.mjs';
29
41
 
30
42
  export const anchorAcId = 'AC-37101-1';
31
43
  export const accountBound = false;
@@ -36,9 +48,47 @@ const PRIVATE_KEY_MARKER = 'BEGIN OPENSSH PRIVATE KEY';
36
48
 
37
49
  export default async function runProbe() {
38
50
  const facadePath = resolve(FIXTURE_DIR, 'src/provisioner-facade.mjs');
51
+ const rendererPath = resolve(FIXTURE_DIR, 'src/cloud-init-renderer.mjs');
39
52
  const manifestPath = resolve(FIXTURE_DIR, 'hetzner/servers/ci-throwaway.json');
40
53
  const { createProvisionerFacade, createEventLog } = await import(facadePath);
54
+ const { renderCloudInitToFile } = await import(rendererPath);
41
55
  const manifest = JSON.parse(await readFile(manifestPath, 'utf8'));
56
+ const results = [];
57
+
58
+ // Render the cloud-init to disk with a fixture-side stubbed public
59
+ // key (the mock path never calls hcloud ssh-key describe); the real
60
+ // path resolves the material via hcloud and writes to the same
61
+ // location. Both consume the same file shape.
62
+ const publicKeys = ['ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFakePubKeyForMockedRunHardeningH1 rcf-lite-ci-mock'];
63
+ const { renderedPath, rendered } = await renderCloudInitToFile(manifest, { publicKeys });
64
+
65
+ // REQ-145 / AC-14501-1: assert the rendered file carries an
66
+ // ssh-ed25519 or ssh-rsa line for the deploy user AND a NOPASSWD
67
+ // directive naming that user. This assertion is what breaks the
68
+ // "mock passes while real path fails on the same artefact" class.
69
+ const renderedFromDisk = await readFile(renderedPath, 'utf8');
70
+ const sshKeyLine = /(ssh-ed25519|ssh-rsa)\s+/i.test(renderedFromDisk);
71
+ const nopasswdLine = /deploy\s+ALL\s*=\s*\(ALL\)\s+NOPASSWD/i.test(renderedFromDisk);
72
+ if (!sshKeyLine) {
73
+ results.push({
74
+ anchorAcId: 'AC-14501-1',
75
+ verdict: 'fail',
76
+ detail: `rendered cloud-init at ${relative(PROJECT_ROOT, renderedPath)} carries no ssh-ed25519 or ssh-rsa authorized-keys line for the deploy user; the real path would provision a server with an unusable authorized_keys entry.`,
77
+ });
78
+ } else if (!nopasswdLine) {
79
+ results.push({
80
+ anchorAcId: 'AC-14501-1',
81
+ verdict: 'fail',
82
+ detail: `rendered cloud-init at ${relative(PROJECT_ROOT, renderedPath)} carries no NOPASSWD directive for the deploy user; the six sudoed baseline checks would block on a tty prompt.`,
83
+ });
84
+ } else {
85
+ results.push({
86
+ anchorAcId: 'AC-14501-1',
87
+ verdict: 'pass',
88
+ detail: `rendered cloud-init at ${relative(PROJECT_ROOT, renderedPath)} carries an ssh public-key line for the deploy user (byteLength ${rendered.length}) and a NOPASSWD sudoers directive for that user; the mock and the real path consume the same artefact.`,
89
+ });
90
+ }
91
+
42
92
  const { events, eventSink } = createEventLog();
43
93
  const facade = createProvisionerFacade({
44
94
  token: TOKEN,
@@ -46,7 +96,6 @@ export default async function runProbe() {
46
96
  apiHost: 'https://api.hetzner.cloud/v1',
47
97
  eventSink,
48
98
  });
49
- const results = [];
50
99
  try {
51
100
  await facade.ready();
52
101
  const server = await facade.createServer(manifest);
@@ -86,7 +135,7 @@ export default async function runProbe() {
86
135
  results.push({
87
136
  anchorAcId: 'AC-37109-1',
88
137
  verdict: 'fail',
89
- detail: `event-secrecy leak: ${leaks.map((l) => `${l.event} carries ${l.marker}`).join('; ')} (defensive-fake finding; check for a SIMULATE_EVENT_SECRECY_LEAK mutation).`,
138
+ detail: `event-secrecy leak: ${leaks.map((l) => `${l.event} carries ${l.marker}`).join('; ')} (defensive-fake finding; check for a SIMULATE_EVENT_SECRECY_LEAK mutation in the fixture-side facade shim).`,
90
139
  });
91
140
  } else {
92
141
  results.push({
@@ -99,7 +148,7 @@ export default async function runProbe() {
99
148
  results.push({
100
149
  anchorAcId: 'AC-37101-1',
101
150
  verdict: 'fail',
102
- detail: `provisioner facade lifecycle threw: ${err.message} (probable cause: mocked hcloud stdout is not JSON; check for a SIMULATE_JSON_PARSE_STRIP mutation).`,
151
+ detail: `provisioner facade lifecycle threw: ${err.message} (probable cause: mocked hcloud stdout is not JSON; check for a SIMULATE_JSON_PARSE_STRIP mutation in the fixture-side mock shim).`,
103
152
  });
104
153
  }
105
154
  return {
@@ -107,10 +156,9 @@ export default async function runProbe() {
107
156
  extra: {
108
157
  eventCount: events.length,
109
158
  events: events.map((e) => ({ event: e.event, keys: Object.keys(e).sort() })),
110
- mutations: {
111
- jsonParseStrip: process.env.SIMULATE_JSON_PARSE_STRIP === 'true',
112
- eventSecrecyLeak: process.env.SIMULATE_EVENT_SECRECY_LEAK === 'true',
113
- },
159
+ renderedPath: relative(PROJECT_ROOT, renderedPath),
160
+ renderedByteLength: rendered.length,
161
+ renderedAssertions: { sshKeyLine, nopasswdLine },
114
162
  },
115
163
  };
116
164
  }
@@ -9,9 +9,14 @@
9
9
  // validator ships with the probe so the shelf gains no runtime dependency
10
10
  // on ajv or similar. See validate() at the bottom.
11
11
  //
12
- // SIMULATE_MANIFEST_INVALID=true replaces the manifest's location with an
13
- // unknown token and the probe FAILS naming the offending field per
14
- // hetzner-round-7-spec-2026-09-07.md section 3.4 lesson 4.
12
+ // Purity: the probe reads only the manifest dir and the shipped schema;
13
+ // no process.env.SIMULATE_ switch is read here. The fixture-side shim
14
+ // packages/rcf-lite/test/fixtures/hetzner-throwaway-server/
15
+ // run-manifest-schema-validate.mjs is the sole reader of
16
+ // SIMULATE_MANIFEST_INVALID and it mutates INPUT (a temp manifest dir
17
+ // pointed at via RCF_FIXTURE_MANIFEST_DIR) only; the probe then FAILS
18
+ // naming the offending field per hetzner-round-7-spec-2026-09-07.md
19
+ // section 3.4 lesson 4. (2026-09-08).
15
20
 
16
21
  import { readFile } from 'node:fs/promises';
17
22
  import { readManifestFiles, SCHEMA_PATH } from './probe-utils.mjs';
@@ -32,7 +37,6 @@ export default async function runProbe() {
32
37
  };
33
38
  }
34
39
  const results = [];
35
- const mutationActive = process.env.SIMULATE_MANIFEST_INVALID === 'true';
36
40
  for (const f of files) {
37
41
  let doc;
38
42
  try {
@@ -45,7 +49,6 @@ export default async function runProbe() {
45
49
  });
46
50
  continue;
47
51
  }
48
- if (mutationActive) doc = { ...doc, location: 'mars1' };
49
52
  const errors = validate(schema, doc, `#/${f.name}`);
50
53
  if (errors.length > 0) {
51
54
  for (const e of errors) {
@@ -69,7 +72,6 @@ export default async function runProbe() {
69
72
  extra: {
70
73
  manifestCount: files.length,
71
74
  manifestNames: files.map((f) => f.name),
72
- mutationActive,
73
75
  },
74
76
  };
75
77
  }
@@ -21,7 +21,13 @@ export const FIXTURE_DIR = resolve(
21
21
  PROJECT_ROOT,
22
22
  'packages/rcf-lite/test/fixtures/hetzner-throwaway-server',
23
23
  );
24
- export const MANIFEST_DIR = resolve(FIXTURE_DIR, 'hetzner/servers');
24
+ // Config override, not a mutation switch: the fixture-side shim for
25
+ // manifest-schema-validate may write a mutated copy to a scratch dir
26
+ // and point MANIFEST_DIR at it via RCF_FIXTURE_MANIFEST_DIR so the
27
+ // probe stays SIMULATE-free (mutation-purity gate row, 2026-09-08).
28
+ export const MANIFEST_DIR = process.env.RCF_FIXTURE_MANIFEST_DIR
29
+ ? resolve(process.env.RCF_FIXTURE_MANIFEST_DIR)
30
+ : resolve(FIXTURE_DIR, 'hetzner/servers');
25
31
  export const SCHEMA_PATH = resolve(HERE, '..', 'schemas', 'hetzner-server.schema.json');
26
32
  export const REPORT_DIR = resolve(
27
33
  PROJECT_ROOT,
@@ -45,11 +45,12 @@ export default async function runProbe() {
45
45
  })),
46
46
  };
47
47
  }
48
+ const blocks = report.checks.filter((c) => c.verdict === 'pass').map((c) => c.id);
48
49
  return {
49
50
  results: [{
50
51
  anchorAcId,
51
52
  verdict: 'pass',
52
- detail: `cloud-init status --wait completed on server ${provisioned.id}; all six ssh baseline checks passed.`,
53
+ detail: `cloud-init reached terminal state on server ${provisioned.id} (cloud-init status --wait exit ${report.cloudInit ? report.cloudInit.code : 'skipped'}); six baseline hardening blocks observed: ${blocks.join(', ')}.`,
53
54
  }],
54
55
  extra: report,
55
56
  };
@@ -2,7 +2,7 @@
2
2
  "reqId": "deploy-hetzner-server-REQ-001",
3
3
  "prdId": "PRD-001",
4
4
  "title": "The provisioner facade is the sole reader of the Hetzner API token and opens on boot with provisionerReady",
5
- "description": "The applying project reaches the Hetzner Cloud API through a single provisioner facade module that is the ONLY module holding a reference to the HETZNER_ACCOUNT_API_KEY secret (or the elicited project-scoped alternative). The facade wraps typed verbs (createServer, applyFirewall, takeSnapshot, listSnapshots, destroyServer) and, when provisioningTool=hcloud (default), shells to the hcloud CLI with `--output json`; when provisioningTool=raw-api it fetches the equivalent Hetzner Cloud REST endpoints per https://docs.hetzner.cloud/. On process boot the facade opens against the token via a bounded ready-check and emits a provisionerReady lifecycle event on the injected event sink with a metadata-only payload {tool, apiHost}. No other module reads the token; the injected event sink never carries the token or user-data bodies.",
5
+ "description": "The applying project reaches the Hetzner Cloud API through a single provisioner facade module that is the ONLY module holding a reference to the HETZNER_ACCOUNT_API_KEY secret (or the elicited project-scoped alternative). The facade wraps typed verbs (createServer, applyFirewall, takeSnapshot, listSnapshots, destroyServer) and, when provisioningTool=hcloud (default), shells to the hcloud CLI with `--output json`; when provisioningTool=raw-api it fetches the equivalent Hetzner Cloud REST endpoints per https://docs.hetzner.cloud/. On process boot the facade opens against the token via a bounded ready-check and emits a provisionerReady lifecycle event on the injected event sink with a metadata-only payload {tool, apiHost}. No other module reads the token; the injected event sink never carries the token or user-data bodies. This blueprint declares the cloudHost applied capability at runtime: the provisioner facade is the sole reader of the Hetzner Cloud API token, and any downstream blueprint whose requiresAppliedCapabilities lists cloudHost is satisfied by an applied deploy-hetzner-server pinning the provisioner module against a real account.",
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-3801-deploy-hetzner-server-provisioner",
20
+ "field": "responsibilities.provisionerReady"
21
+ }
18
22
  }
@@ -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
  }