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
@@ -0,0 +1,34 @@
1
+ {
2
+ "tacId": "TAC-2904-object-storage-s3-hetzner-endpoint-helper",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "1.1.0",
6
+ "status": "approved",
7
+ "name": "Hetzner Object Storage endpoint-shape helper",
8
+ "purpose": "The single project-side module that composes the Hetzner Object Storage endpoint URL from an elicited bucket name and a vendor-documented location code (fsn1, hel1, nbg1 per https://docs.hetzner.com/storage/object-storage/overview). The helper is the sole composer of the pattern <bucket>.<location>.your-objectstorage.com; every consumer that needs the endpoint imports this module and calls composeHetznerEndpoint({ bucket, location }). Downstream, the composed https URL feeds the shipped S3 client (TAC-2901 facade over @aws-sdk/client-s3 per ADR-2901) unchanged so the outward facade shape does not move for the Hetzner provider. The Cloudflare R2, AWS S3 and MinIO paths stay byte-identical: the endpoint URL parameter on the facade remains freeform and only projects that elicit hetznerObjectStorage consume this helper.",
9
+ "responsibilities": [
10
+ "Compose the endpoint URL as https://<bucket>.<location>.your-objectstorage.com from an elicited bucket and location code per the vendor overview (AC-28110-1).",
11
+ "Refuse composition when the location code is not one of the vendor-documented values (fsn1, hel1, nbg1) so the applying project cannot silently ship an invalid endpoint (AC-28110-1).",
12
+ "Expose one named export composeHetznerEndpoint that returns the composed URL string; hold no S3 client reference so a future adapter or endpoint variant slots in as a helper module swap without changing this contract (AC-28110-1).",
13
+ "Read no SIMULATE_ environment variable in the helper module body; INPUT-side mutation (SIMULATE_HETZNER_ENDPOINT_MISSHAPEN) lives on the fixture-side shim, keeping the helper deterministic and probe-neutral (AC-28110-1)."
14
+ ],
15
+ "internalStructure": "One module exporting composeHetznerEndpoint({ bucket, location }) -> string. The function validates the bucket against the S3 bucket-name discipline the shipped facade already accepts and validates the location against the enum {fsn1, hel1, nbg1} sourced verbatim from the Hetzner Object Storage overview page. On invalid input it throws a named Error whose message names the offending field so a probe or a lint can surface it. The composed URL string is returned; no side effects, no client reference, no event emission.",
16
+ "interfaces": [
17
+ {
18
+ "name": "composeHetznerEndpoint",
19
+ "kind": "factory",
20
+ "description": "composeHetznerEndpoint({ bucket, location }) -> string. Returns https://<bucket>.<location>.your-objectstorage.com when bucket is a non-empty string and location is one of fsn1, hel1, nbg1; throws a named Error naming the invalid field otherwise."
21
+ }
22
+ ],
23
+ "dependencies": [
24
+ {
25
+ "name": "Object-storage S3 facade",
26
+ "kind": "tac",
27
+ "tacId": "TAC-2901-object-storage-s3-facade",
28
+ "description": "The facade the composed URL feeds into as the elicited endpointUrl; the helper output is opaque at the facade boundary so the R2, AWS S3 and MinIO paths stay unchanged."
29
+ }
30
+ ],
31
+ "tradeoffs": "The helper holds the vendor pattern in code rather than in the applying project's config file. A vendor endpoint change (a new location code or a URL-shape update) is a helper edit and a version bump on this blueprint, not a project-side scramble. The three currently documented locations are hard-coded per the overview page; a future location addition ships as a minor bump on this blueprint (v1.2.0) not a project-side workaround. A project that needs a different endpoint shape for a non-Hetzner S3-compatible endpoint uses the elicited freeform endpointUrl on the facade directly and skips this helper.",
32
+ "createdAt": "2026-09-08T00:00:00.000Z",
33
+ "updatedAt": "2026-09-08T00:00:00.000Z"
34
+ }
@@ -16,7 +16,8 @@
16
16
  "when": "the process boots and the facade's ready-check returns",
17
17
  "then": "a facadeReady event fires on the injected event sink with a payload containing endpointHost and bucketName, and the client is ready to accept verbs; the facade exposes named domain verbs and does not re-export the raw S3 client",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "template"
20
21
  },
21
22
  {
22
23
  "id": "AC-28101-2",
@@ -25,10 +26,41 @@
25
26
  "when": "grep 'from \\'@aws-sdk/client-s3\\'' or 'from \\'aws4fetch\\'' walks the tree outside the facade directory",
26
27
  "then": "no match is found outside the facade directory; the facade's public surface exports named domain verbs only, no raw S3 client reference",
27
28
  "testable": true,
28
- "scope": "runtime"
29
+ "scope": "runtime",
30
+ "disposition": "template"
31
+ },
32
+ {
33
+ "id": "AC-28101-3",
34
+ "description": "Facade refuses at boot when the elicited endpoint is unreachable. Given the elicited s3-endpoint-url resolves to a host the runner cannot reach (or refuses a ready-check inside the connection timeout), when the facade opens on boot, then the facade refuses with a named error kind (endpointUnreachable) carrying the endpoint host but no credential material, and facadeReady does not fire.",
35
+ "given": "s3-endpoint-url resolves to an unreachable host or times out on ready-check",
36
+ "when": "the facade opens on boot",
37
+ "then": "the facade refuses with endpointUnreachable carrying host but no credentials; facadeReady does not fire",
38
+ "testable": true,
39
+ "scope": "runtime",
40
+ "ownerRef": {
41
+ "tacId": "TAC-2901-object-storage-s3-facade",
42
+ "field": "interfaces.createObjectStore"
43
+ },
44
+ "disposition": "template"
45
+ },
46
+ {
47
+ "id": "AC-28101-4",
48
+ "description": "S3 adapter aws-sdk-client-s3. Given the elicited s3-adapter answers aws-sdk-client-s3, when the facade opens on process boot, then the facade constructs one `new S3Client(...)` from @aws-sdk/client-s3 v3 and the outbound HeadBucket request carries the SDK's default User-Agent header of shape `aws-sdk-js/<version> ...` (grep on the client's user-agent middleware output confirms the aws-sdk-js prefix); the aws4fetch package is NOT present in the facade module's imports; a grep across the applied source refuses any import of aws4fetch outside the facade.",
49
+ "given": "s3-adapter = aws-sdk-client-s3",
50
+ "when": "the facade opens on boot and issues its first HeadBucket ready-check",
51
+ "then": "the facade constructs one S3Client from @aws-sdk/client-s3 v3 and the outbound HeadBucket carries a User-Agent starting with `aws-sdk-js/`; aws4fetch is absent from the applied source",
52
+ "testable": true,
53
+ "scope": "runtime",
54
+ "ownerRef": {
55
+ "adrId": "ADR-2901-object-storage-s3-adapter",
56
+ "field": "decision"
57
+ },
58
+ "disposition": "template"
29
59
  }
30
60
  ],
31
- "tacIds": ["TAC-2901-object-storage-s3-facade"],
61
+ "tacIds": [
62
+ "TAC-2901-object-storage-s3-facade"
63
+ ],
32
64
  "createdAt": "2026-09-06T18:00:00.000Z",
33
- "updatedAt": "2026-09-06T18:00:00.000Z"
65
+ "updatedAt": "2026-09-09T00:00:00Z"
34
66
  }
@@ -16,7 +16,12 @@
16
16
  "when": "putObject(key, contentType='application/octet-stream', body=<1 KiB Buffer>) then getObject(key)",
17
17
  "then": "the returned body's byte length equals 1024 and the returned content-type equals application/octet-stream; the events list captured on the sink contains an objectPut record with matching key, size 1024, contentType, timestamp; no body bytes appear in any event record",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "fixed",
21
+ "vendorCitation": {
22
+ "url": "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html",
23
+ "verifiedOn": "2026-09-09"
24
+ }
20
25
  },
21
26
  {
22
27
  "id": "AC-28102-2",
@@ -25,7 +30,12 @@
25
30
  "when": "deleteObject(key) followed by getObject(key)",
26
31
  "then": "the getObject rejects with a not-found shape (NoSuchKey on S3/R2/MinIO); an objectDeleted event fires on the sink with matching key and timestamp",
27
32
  "testable": true,
28
- "scope": "runtime"
33
+ "scope": "runtime",
34
+ "disposition": "fixed",
35
+ "vendorCitation": {
36
+ "url": "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html",
37
+ "verifiedOn": "2026-09-09"
38
+ }
29
39
  },
30
40
  {
31
41
  "id": "AC-28102-3",
@@ -34,10 +44,27 @@
34
44
  "when": "listObjects(prefix='probe/list/')",
35
45
  "then": "the returned keys include every put key with matching prefix, and the paginated envelope carries an isTruncated boolean",
36
46
  "testable": true,
37
- "scope": "runtime"
47
+ "scope": "runtime",
48
+ "disposition": "fixed"
49
+ },
50
+ {
51
+ "id": "AC-28102-4",
52
+ "description": "Key-shape refusal. Given a call to put, get, delete or list on the facade, when the key argument is an empty string, starts with a \"/\", contains \"..\" or \"//\", or exceeds 1024 bytes, then the facade refuses with a named error kind (invalidKey) before any client call, and no lifecycle event fires on the sink.",
53
+ "given": "a facade verb call with an invalid key shape",
54
+ "when": "the verb runs",
55
+ "then": "the facade refuses with error kind invalidKey; no client call is issued; no lifecycle event fires",
56
+ "testable": true,
57
+ "scope": "runtime",
58
+ "ownerRef": {
59
+ "tacId": "TAC-2901-object-storage-s3-facade",
60
+ "field": "interfaces.store.verbs"
61
+ },
62
+ "disposition": "fixed"
38
63
  }
39
64
  ],
40
- "tacIds": ["TAC-2901-object-storage-s3-facade"],
65
+ "tacIds": [
66
+ "TAC-2901-object-storage-s3-facade"
67
+ ],
41
68
  "createdAt": "2026-09-06T18:00:00.000Z",
42
- "updatedAt": "2026-09-06T18:00:00.000Z"
69
+ "updatedAt": "2026-09-09T00:00:00Z"
43
70
  }
@@ -16,10 +16,49 @@
16
16
  "when": "presignGetUrl(key, ttl=60) then fetch(url) immediately, then wait ttl+2 seconds and fetch(url) again",
17
17
  "then": "first fetch returns 200 with body bytes equal to the put payload; second fetch returns 403; the events list contains a presignedIssued record with key, ttl=60, timestamp; no URL or credential material appears in any event record",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "fixed",
21
+ "vendorCitation": {
22
+ "url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html",
23
+ "verifiedOn": "2026-09-09"
24
+ }
25
+ },
26
+ {
27
+ "id": "AC-28103-2",
28
+ "description": "Presigned URL beyond TTL returns 403. Given a presigned GET URL issued with TTL of 60 seconds, when a fetch runs against it more than 60 seconds after issuance, then the vendor returns HTTP 403 (SignatureDoesNotMatch or expired-URL family), and the facade's subsequent presign call for the same key issues a fresh URL with a fresh TTL boundary.",
29
+ "given": "a presigned GET URL issued with a 60-second TTL",
30
+ "when": "a fetch runs against it more than 60 seconds after issuance",
31
+ "then": "the vendor returns HTTP 403 (expired-URL family); a subsequent presign issues a fresh URL",
32
+ "testable": true,
33
+ "scope": "runtime",
34
+ "ownerRef": {
35
+ "tacId": "TAC-2901-object-storage-s3-facade",
36
+ "field": "interfaces.store.verbs"
37
+ },
38
+ "disposition": "fixed",
39
+ "vendorCitation": {
40
+ "url": "https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html",
41
+ "verifiedOn": "2026-09-09"
42
+ }
43
+ },
44
+ {
45
+ "id": "AC-28103-3",
46
+ "description": "Presigned TTL above ceiling refused at the facade edge. Given a presignGetUrl call with a TTL argument above the elicited presigned-ttl-ceiling-seconds, when the verb runs, then the facade refuses with a named error kind (presignTtlAboveCeiling); no vendor call issues.",
47
+ "given": "presignGetUrl call with TTL above the elicited ceiling",
48
+ "when": "the verb runs",
49
+ "then": "the facade refuses with presignTtlAboveCeiling; no vendor call issues",
50
+ "testable": true,
51
+ "scope": "runtime",
52
+ "ownerRef": {
53
+ "tacId": "TAC-2901-object-storage-s3-facade",
54
+ "field": "interfaces.store.verbs"
55
+ },
56
+ "disposition": "template"
20
57
  }
21
58
  ],
22
- "tacIds": ["TAC-2901-object-storage-s3-facade"],
59
+ "tacIds": [
60
+ "TAC-2901-object-storage-s3-facade"
61
+ ],
23
62
  "createdAt": "2026-09-06T18:00:00.000Z",
24
- "updatedAt": "2026-09-06T18:00:00.000Z"
63
+ "updatedAt": "2026-09-09T00:00:00Z"
25
64
  }
@@ -16,7 +16,8 @@
16
16
  "when": "putObject(key, contentType, body=<10 MiB Buffer>) then getObject(key)",
17
17
  "then": "the getObject returns a body of exact size 10485760 with byte equality to the put payload; the events list contains one objectPut record with size=10485760; no ListMultipartUploads on the bucket surfaces an in-flight upload after completion",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "template"
20
21
  },
21
22
  {
22
23
  "id": "AC-28104-2",
@@ -25,10 +26,27 @@
25
26
  "when": "putObject(key, contentType, body=<10 MiB Buffer>) rejects mid-upload",
26
27
  "then": "the rejection propagates to the caller; a probe-side ListMultipartUploads(prefix=key) returns zero uploads; no completed object appears at key",
27
28
  "testable": true,
28
- "scope": "runtime"
29
+ "scope": "runtime",
30
+ "disposition": "template"
31
+ },
32
+ {
33
+ "id": "AC-28104-3",
34
+ "description": "Multipart aborted on part failure. Given a multipart-upload with N parts where part K uploadPart returns a non-2xx (a mid-stream 5xx or client abort), when the uploader catches the failure, then it calls AbortMultipartUpload against the upload id, no CompleteMultipartUpload runs, no partial object survives at the target key, and the facade emits multipartAborted with { key, uploadId, failedPartNumber } on the event sink.",
35
+ "given": "a multipart-upload with N parts where uploadPart K returns non-2xx",
36
+ "when": "the uploader catches the failure",
37
+ "then": "AbortMultipartUpload runs; no CompleteMultipartUpload runs; no partial object survives; multipartAborted fires with {key, uploadId, failedPartNumber}",
38
+ "testable": true,
39
+ "scope": "runtime",
40
+ "ownerRef": {
41
+ "tacId": "TAC-2902-object-storage-s3-multipart-uploader",
42
+ "field": "interfaces.putMultipart"
43
+ },
44
+ "disposition": "fixed"
29
45
  }
30
46
  ],
31
- "tacIds": ["TAC-2902-object-storage-s3-multipart-uploader"],
47
+ "tacIds": [
48
+ "TAC-2902-object-storage-s3-multipart-uploader"
49
+ ],
32
50
  "createdAt": "2026-09-06T18:00:00.000Z",
33
- "updatedAt": "2026-09-06T18:00:00.000Z"
51
+ "updatedAt": "2026-09-09T00:00:00Z"
34
52
  }
@@ -11,15 +11,36 @@
11
11
  "acceptanceCriteria": [
12
12
  {
13
13
  "id": "AC-28105-1",
14
- "description": "Given a lifecycle-event spy attached to the sink, when put, get, delete, and presign verbs run against a PII fixture (key users/1234/passport.jpg, body carrying the PII fixture text), then every event record on the sink carries only fields from the whitelist {event, key, size, contentType, ttl, timestamp, endpointHost, bucketName}; no field name matches userId or ssn or dob or email; no field value contains the PII fixture body text; no field value contains any part of the object body bytes.",
14
+ "description": "Given a lifecycle-event spy attached to the sink, when put, get, delete, and presign verbs run against a PII fixture (key users/1234/passport.jpg, body carrying the PII fixture text), then every event record on the sink carries only fields from the whitelist {event, key, size, contentType, ttl, ts (number of milliseconds since epoch), endpointHost, bucketName}; no field name matches userId or ssn or dob or email; no field value contains the PII fixture body text; no field value contains any part of the object body bytes.",
15
15
  "given": "the facade opened, a spy on the event sink, a PII fixture body PII-FIXTURE-DO-NOT-LOG",
16
16
  "when": "putObject(users/1234/passport.jpg, image/jpeg, <body containing PII-FIXTURE-DO-NOT-LOG>), then getObject, then presignGetUrl, then deleteObject",
17
17
  "then": "every event record on the sink has keys drawn from the whitelist above; no event value contains the string PII-FIXTURE-DO-NOT-LOG; no event value contains a userId, ssn, dob, or email field; the key users/1234/passport.jpg appears on records as the key field only (not decomposed into userId)",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "template",
21
+ "ownerRef": {
22
+ "tacId": "TAC-2903-object-storage-s3-event-sink",
23
+ "field": "interfaces.onEvent"
24
+ }
25
+ },
26
+ {
27
+ "id": "AC-28105-2",
28
+ "description": "Repeat-emission secrecy at high fanout. Given every facade verb exercised across N iterations, when the accumulated event stream is inspected, then every one of the N records is restricted to the metadata whitelist on AC-28105-1 with no body bytes, no user id and no PII; a mutation SIMULATE_BODY_BYTES_IN_EVENT=true injects payload bytes into a putCompleted record and the sink observer FAILS naming the leaked field.",
29
+ "given": "every facade verb exercised N times",
30
+ "when": "the accumulated event stream is inspected",
31
+ "then": "every record is restricted to metadata whitelist; the body-byte mutation FAILS",
32
+ "testable": true,
33
+ "scope": "runtime",
34
+ "ownerRef": {
35
+ "tacId": "TAC-2903-object-storage-s3-event-sink",
36
+ "field": "interfaces.onEvent"
37
+ },
38
+ "disposition": "fixed"
20
39
  }
21
40
  ],
22
- "tacIds": ["TAC-2903-object-storage-s3-event-sink"],
41
+ "tacIds": [
42
+ "TAC-2903-object-storage-s3-event-sink"
43
+ ],
23
44
  "createdAt": "2026-09-06T18:00:00.000Z",
24
- "updatedAt": "2026-09-06T18:00:00.000Z"
45
+ "updatedAt": "2026-09-09T00:00:00Z"
25
46
  }
@@ -11,12 +11,17 @@
11
11
  "acceptanceCriteria": [
12
12
  {
13
13
  "id": "AC-28106-1",
14
- "description": "Given a fresh scratch project with no security-secrets-management applied, when rcf define blueprint add ./blueprints/object-storage-s3 runs, then the command exits 3 and stderr contains the stable message id object-storage-s3-no-secrets, the required predecessor blueprint name security-secrets-management, and the override flag --allow-no-secrets-yet; the scratch project's rcf tree does not carry object-storage-s3 contributions after the refusal.",
14
+ "description": "Given a fresh scratch project with no security-secrets-management applied, when rcf define blueprint add ./blueprints/object-storage-s3 runs, then the command exits 3 and stderr contains the stable message id object-storage-s3-no-secrets, the required predecessor blueprint name security-secrets-management, and the override flag --allow-no-secrets-yet; the scratch project's rcf tree does not carry object-storage-s3 contributions after the refusal. The applying agent constructs the facade by passing { secretRef, resolver } (never { accessKeyId, secretAccessKey }); a mutation that swaps in a resolved credential object FAILS the boundary check with a named error kind (rejectedResolvedCredentials).",
15
15
  "given": "a fresh rcf init scratch project with no security-secrets-management applied",
16
16
  "when": "rcf define blueprint add ./blueprints/object-storage-s3 runs against the scratch project",
17
17
  "then": "the command exits 3; stderr contains the string object-storage-s3-no-secrets; stderr names security-secrets-management and the --allow-no-secrets-yet flag; the scratch tree has zero object-storage-s3 requirements after the refusal",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "template",
21
+ "ownerRef": {
22
+ "tacId": "TAC-2901-object-storage-s3-facade",
23
+ "field": "interfaces.createObjectStore"
24
+ }
20
25
  },
21
26
  {
22
27
  "id": "AC-28106-2",
@@ -25,10 +30,13 @@
25
30
  "when": "rcf define blueprint add ./blueprints/object-storage-s3 --allow-no-secrets-yet runs against the scratch project",
26
31
  "then": "the command exits 0; the applied manifest entry for object-storage-s3 carries a source.notes string naming the security-secrets-management predecessor and the --allow-no-secrets-yet override; the contributions land on disk",
27
32
  "testable": true,
28
- "scope": "runtime"
33
+ "scope": "runtime",
34
+ "disposition": "template"
29
35
  }
30
36
  ],
31
- "tacIds": ["TAC-2901-object-storage-s3-facade"],
37
+ "tacIds": [
38
+ "TAC-2901-object-storage-s3-facade"
39
+ ],
32
40
  "createdAt": "2026-09-06T18:00:00.000Z",
33
- "updatedAt": "2026-09-06T18:00:00.000Z"
41
+ "updatedAt": "2026-09-09T00:00:00Z"
34
42
  }
@@ -16,7 +16,8 @@
16
16
  "when": "run-facade-round-trip.mjs, run-put-get-round-trip.mjs, run-presigned-url.mjs, run-multipart-upload.mjs, run-event-secrecy.mjs run in sequence",
17
17
  "then": "each shim exits 0; each per-blueprint report at .rcf/reports/blueprints/object-storage-s3/<probe>.json carries aggregateVerdict pass; every result carries an anchorAcId matching a contributed AC id",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "template"
20
21
  },
21
22
  {
22
23
  "id": "AC-28107-2",
@@ -25,10 +26,15 @@
25
26
  "when": "each induced-failure switch is set in turn and the paired probe runs",
26
27
  "then": "the paired probe exits non-zero and the aggregate verdict lands as fail on the anchored AC; the fixture README documents the paired switch and probe for each of the four wired switches",
27
28
  "testable": true,
28
- "scope": "runtime"
29
+ "scope": "runtime",
30
+ "disposition": "template"
29
31
  }
30
32
  ],
31
- "tacIds": ["TAC-2901-object-storage-s3-facade", "TAC-2902-object-storage-s3-multipart-uploader", "TAC-2903-object-storage-s3-event-sink"],
33
+ "tacIds": [
34
+ "TAC-2901-object-storage-s3-facade",
35
+ "TAC-2902-object-storage-s3-multipart-uploader",
36
+ "TAC-2903-object-storage-s3-event-sink"
37
+ ],
32
38
  "createdAt": "2026-09-06T18:00:00.000Z",
33
- "updatedAt": "2026-09-06T18:00:00.000Z"
39
+ "updatedAt": "2026-09-09T00:00:00Z"
34
40
  }
@@ -16,7 +16,12 @@
16
16
  "when": "node blueprints/object-storage-s3/contributions/probes/run-r2-real-account-smoke.mjs runs",
17
17
  "then": "the shim exits 0; the report at .rcf/reports/blueprints/object-storage-s3/r2-real-account-smoke.json carries aggregateVerdict pass and a single result with accountBoundSkipped true",
18
18
  "testable": true,
19
- "scope": "runtime"
19
+ "scope": "runtime",
20
+ "disposition": "fixed",
21
+ "vendorCitation": {
22
+ "url": "https://developers.cloudflare.com/r2/api/s3/api/",
23
+ "verifiedOn": "2026-09-09"
24
+ }
20
25
  },
21
26
  {
22
27
  "id": "AC-28108-2",
@@ -25,10 +30,13 @@
25
30
  "when": "node blueprints/object-storage-s3/contributions/probes/run-r2-real-account-smoke.mjs runs",
26
31
  "then": "the shim exits 0; the temporary object is deleted after the round-trip; the report carries aggregateVerdict pass and no accountBoundSkipped:true field",
27
32
  "testable": true,
28
- "scope": "runtime"
33
+ "scope": "runtime",
34
+ "disposition": "template"
29
35
  }
30
36
  ],
31
- "tacIds": ["TAC-2901-object-storage-s3-facade"],
37
+ "tacIds": [
38
+ "TAC-2901-object-storage-s3-facade"
39
+ ],
32
40
  "createdAt": "2026-09-06T18:00:00.000Z",
33
- "updatedAt": "2026-09-06T18:00:00.000Z"
41
+ "updatedAt": "2026-09-09T00:00:00Z"
34
42
  }
@@ -0,0 +1,42 @@
1
+ {
2
+ "usId": "object-storage-s3-US-28110",
3
+ "prdId": "PRD-001",
4
+ "reqId": "object-storage-s3-REQ-101",
5
+ "version": "1.1.0",
6
+ "status": "approved",
7
+ "title": "Hetzner Object Storage adapter: helper composes <bucket>.<location>.your-objectstorage.com; new hetzner-object-storage-round-trip probe drives put/get/delete against the composed endpoint",
8
+ "asA": "shelf consumer applying object-storage-s3 v1.1.0 on a Hetzner Object Storage bucket in one of the vendor-documented locations (fsn1, hel1, nbg1)",
9
+ "iWant": "an endpoint-shape helper that composes <bucket>.<location>.your-objectstorage.com from an elicited bucket and location code, and a Node-only probe hetzner-object-storage-round-trip.mjs driven from the extended infra-s3-and-queue fixture that either round-trips a byte-equal put/get/delete against a real Hetzner Object Storage bucket when CI_HAS_HETZNER_OBJECT_STORAGE is set alongside HETZNER_OBJECT_STORAGE_ACCESS_KEY_ID, HETZNER_OBJECT_STORAGE_SECRET_ACCESS_KEY, HETZNER_OBJECT_STORAGE_BUCKET and HETZNER_OBJECT_STORAGE_LOCATION or records accountBoundSkipped true when the env var is unset",
10
+ "soThat": "the shelf gains a fourth provider value alongside R2, AWS and MinIO with no runtime dependency added to the applying project, no facade re-shape, and no regression to the shipped MinIO local-emulator or R2 real-account paths",
11
+ "acceptanceCriteria": [
12
+ {
13
+ "id": "AC-28110-1",
14
+ "description": "Given the extended infra-s3-and-queue fixture at packages/rcf-lite/test/fixtures/infra-s3-and-queue/ carrying src/hetzner-endpoint.mjs and run-hetzner-object-storage-round-trip.mjs, when node blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs runs, then either (a) with CI_HAS_HETZNER_OBJECT_STORAGE set alongside the four Hetzner env vars the composed endpoint is https://<bucket>.<location>.your-objectstorage.com per https://docs.hetzner.com/storage/object-storage/overview and put/get/delete round-trips a byte-equal 1 KiB payload with teardown deleting the scratch object, or (b) without CI_HAS_HETZNER_OBJECT_STORAGE the probe records accountBoundSkipped true and the aggregate flips to pass per spec section 3.5. The endpoint-shape helper hetzner-endpoint.mjs is the sole composer of the vendor pattern; SIMULATE_HETZNER_ENDPOINT_MISSHAPEN true composes an invalid endpoint via the fixture-side shim (INPUT-side mutation) and the probe FAILS naming the missing subdomain. Label AC-hetznerObjectStorage-endpointRoundTrip.",
15
+ "given": "the extended infra-s3-and-queue fixture with src/hetzner-endpoint.mjs (endpoint-shape helper) and the fixture-root probe shim, on either a runner with CI_HAS_HETZNER_OBJECT_STORAGE set (real-account round-trip path) or without it (accountBoundSkipped path)",
16
+ "when": "node blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs runs",
17
+ "then": "the probe either round-trips a byte-equal 1 KiB payload via put/get/delete against the composed <bucket>.<location>.your-objectstorage.com endpoint or records accountBoundSkipped true; SIMULATE_HETZNER_ENDPOINT_MISSHAPEN true composes an invalid endpoint via the fixture-side shim and the probe FAILS naming the missing subdomain",
18
+ "testable": true,
19
+ "scope": "runtime",
20
+ "disposition": "template"
21
+ },
22
+ {
23
+ "id": "AC-28110-2",
24
+ "description": "Unknown Hetzner location refused. Given the elicited hetzner-location-code answered as a value outside the shipped enum {fsn1, hel1, nbg1}, when the endpoint-shape helper composes the endpoint URL, then the helper refuses with a named error kind (unknownHetznerLocation) naming the offending value and the shipped enum; the facade does not open against the unknown location.",
25
+ "given": "hetzner-location-code answered outside {fsn1, hel1, nbg1}",
26
+ "when": "the endpoint-shape helper composes the URL",
27
+ "then": "the helper refuses with unknownHetznerLocation naming the offending value and the shipped enum; the facade does not open",
28
+ "testable": true,
29
+ "scope": "runtime",
30
+ "ownerRef": {
31
+ "tacId": "TAC-2904-object-storage-s3-hetzner-endpoint-helper",
32
+ "field": "interfaces.composeHetznerEndpoint"
33
+ },
34
+ "disposition": "template"
35
+ }
36
+ ],
37
+ "tacIds": [
38
+ "TAC-2904-object-storage-s3-hetzner-endpoint-helper"
39
+ ],
40
+ "createdAt": "2026-09-08T00:00:00.000Z",
41
+ "updatedAt": "2026-09-09T00:00:00Z"
42
+ }
@@ -45,7 +45,7 @@ This table is maintained shelf-wide across every blueprint's `docs/topics.md`. R
45
45
  | application-account-settings | 25101-25899 | 26xx | shipped v1.0.0 | none |
46
46
  | application-onboarding-tour | 26101-26899 | 27xx | shipped v1.0.0 | none |
47
47
  | persistence-data-postgres | 27101-27899 | 28xx | shipped v1.0.0 | `persistenceStore`, `migrationDiscipline` |
48
- | object-storage-s3 | 28101-28899 | 29xx | shipped v1.0.0 | `objectStorageContract` |
48
+ | object-storage-s3 | 28101-28899 | 29xx | shipped v1.1.0 | `objectStorageContract` |
49
49
  | messaging-queue-cloudflare | 29101-29899 | 30xx | shipped v1.0.0 | `deliverySemantics` |
50
50
  | jobs-background | 30101-30899 | 31xx | shipped v1.0.0 | `backgroundJobModel` |
51
51
  | platform-cloudflare-kv | 31101-31899 | 32xx | shipped v1.0.0 | `keyValueStoreContract` |
@@ -6,7 +6,7 @@ S3-shape object storage on any S3-compatible endpoint: Cloudflare R2 (the shippe
6
6
 
7
7
  ## Apply this blueprint
8
8
 
9
- `security-secrets-management` v1.0.1+ MUST be applied first per REQ-006 (Baz decision 6). The blueprint declares `requiresAppliedCapabilities: {capabilities: ["secretsProvider"], allowSkipFlag: "allow-no-secrets-yet", refusalMessageId: "object-storage-s3-no-secrets"}` and the T-5 capability mechanism (visual round spec 5.5.1) enforces the refusal at apply time. On a project that has not applied secrets-management:
9
+ `security-secrets-management` v1.0.1+ MUST be applied first per REQ-006. The blueprint declares `requiresAppliedCapabilities: {capabilities: ["secretsProvider"], allowSkipFlag: "allow-no-secrets-yet", refusalMessageId: "object-storage-s3-no-secrets"}` and the capability mechanism enforces the refusal at apply time. On a project that has not applied secrets-management:
10
10
 
11
11
  ```sh
12
12
  rcf define blueprint add object-storage-s3
@@ -185,6 +185,41 @@ Alternate providers (GitLab CI, CircleCI, Buildkite) map through the same four-p
185
185
 
186
186
  The `accountBound` flag on the probe module surface flips the delivery-ci-workflows aggregate to pass on the skipped path per section 3.5.
187
187
 
188
+ ## Hetzner Object Storage adapter (v1.1.0)
189
+
190
+ The v1.1.0 follow-up recognises Hetzner Object Storage as a shipped provider value under the same S3-API facade. Hetzner Object Storage is S3-compatible per https://docs.hetzner.com/storage/object-storage/overview and speaks the S3 wire protocol through `@aws-sdk/client-s3` unchanged; the one thing that differs from R2 and AWS S3 is that the endpoint URL is composed from two elicited values, a bucket name and a location code (one of `fsn1` Falkenstein, `hel1` Helsinki, `nbg1` Nuremberg per the same page), rather than pasted whole.
191
+
192
+ A small helper in the applying project composes the endpoint:
193
+
194
+ ```js
195
+ import { composeHetznerEndpoint } from './hetzner-endpoint.mjs';
196
+
197
+ const endpoint = composeHetznerEndpoint({
198
+ bucket: process.env.HETZNER_OBJECT_STORAGE_BUCKET,
199
+ location: process.env.HETZNER_OBJECT_STORAGE_LOCATION, // fsn1 | hel1 | nbg1
200
+ });
201
+ // endpoint === 'https://<bucket>.<location>.your-objectstorage.com'
202
+ ```
203
+
204
+ The composed URL feeds `createObjectStore` unchanged through the elicited `endpointUrl` parameter; `region` defaults to `auto`, `forcePathStyle` defaults to `false` (virtual-hosted-style). The credential pair reaches the facade through the same `security-secrets-management` surface; a Hetzner-shaped project stores the key pair as `HETZNER_OBJECT_STORAGE_ACCESS_KEY_ID` / `HETZNER_OBJECT_STORAGE_SECRET_ACCESS_KEY` and reads them through the secrets facade.
205
+
206
+ The helper refuses composition on any location code outside `{fsn1, hel1, nbg1}` (throws a named `Error` with `err.field === 'location'`), so an applying project cannot silently ship an invalid endpoint by editing a config file. A future vendor location code lands as a v1.2.0 minor bump on this blueprint (helper edit plus one more enum entry), not a project-side workaround.
207
+
208
+ `node blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs`:
209
+
210
+ - Without `CI_HAS_HETZNER_OBJECT_STORAGE`: exits 0, writes a report with `verdict: pass, detail: "accountBound: skipped (no CI_HAS_HETZNER_OBJECT_STORAGE)", accountBoundSkipped: true`. Aggregate verdict pass.
211
+ - With `CI_HAS_HETZNER_OBJECT_STORAGE` set alongside `HETZNER_OBJECT_STORAGE_ACCESS_KEY_ID`, `HETZNER_OBJECT_STORAGE_SECRET_ACCESS_KEY`, `HETZNER_OBJECT_STORAGE_BUCKET`, `HETZNER_OBJECT_STORAGE_LOCATION` on the runner env (or `.rcf/secrets/dev.env` locally): composes the endpoint, puts a 1 KiB payload, gets it back byte-equal, deletes the temporary object on exit, and asserts every lifecycle event carries only whitelisted metadata (`event`, `ts`, `endpointHost`, `bucketName`, `location`, `key`, `size`, `contentType`). Aggregate verdict pass.
212
+
213
+ The Cloudflare R2 smoke stays gated on `CI_HAS_CLOUDFLARE_ACCOUNT` and is not affected by the Hetzner env var; the two smokes skip independently.
214
+
215
+ ### When to reach for Hetzner Object Storage
216
+
217
+ - Storage region matters (European data-locality requirements or lower-latency reads from EU-hosted workloads). `fsn1`, `hel1`, `nbg1` cover Germany and Finland; R2 does not surface a per-region locality on the public shape.
218
+ - Egress-pricing profile differs from R2's zero-egress-fee posture; a workload with high internal-only egress may prefer R2, while a workload with predictable public egress may prefer Hetzner's flat per-TB pricing.
219
+ - The applying project already runs on Hetzner Cloud (deploy-hetzner-server v1.0.0 shipped in round 7) and pairing the storage on the same vendor account is operationally simpler.
220
+
221
+ Reach for R2 for the zero-egress-fee posture, for AWS S3 for the widest feature surface (Object Lock, versioning, lifecycle policies), and for MinIO for local dev without any account.
222
+
188
223
  ## Elicited parameters
189
224
 
190
225
  | Parameter | Default | Notes |
@@ -204,4 +239,5 @@ The `accountBound` flag on the probe module surface flips the delivery-ci-workfl
204
239
  - Cloudflare R2 S3-compatibility surface: https://developers.cloudflare.com/r2/api/s3/api/ (supported ops, four deviations).
205
240
  - Cloudflare R2 overview and presigned URLs: https://developers.cloudflare.com/r2/.
206
241
  - MinIO S3 compatibility: https://docs.min.io/community/minio-object-store/administration/object-management/object-lifecycle-management.html.
242
+ - Hetzner Object Storage overview (v1.1.0): https://docs.hetzner.com/storage/object-storage/overview (S3 compatibility, endpoint pattern `<bucket>.<location>.your-objectstorage.com`, three location codes fsn1, hel1, nbg1).
207
243
  - GitHub Actions service containers: https://docs.github.com/en/actions/using-containerized-services/about-service-containers.
@@ -0,0 +1,21 @@
1
+ # observability-essentials CHANGELOG
2
+
3
+ ## 2.1.2 - 2026-09-10
4
+
5
+ Dimension-d single-definition-ownership cleanup on REQ-007: REQ description now references the JSON media-type header owned on TAC-801.responsibilities[1] rather than restating the header literal. Chain-consistency lint zero on pass 1 and pass 2.
6
+
7
+ ## 2.1.1 (register-sweep patch, 2026-09-10)
8
+
9
+ - Register: neutral wording in shipped prose (no capability change).
10
+
11
+ ## 2.1.0 (hardening pass, 2026-09-09)
12
+
13
+ - Adds `elicits[]` with four apply-time answers: `liveness-probe-path` (string, default /live; REQ-001), `readiness-probe-path` (string, default /ready; REQ-002), `declared-dependency-set` (string, comma-separated; REQ-003), and `notification-outcome-substrate` (enum sqlite/postgres/custom, default sqlite; REQ-006). Every option value is backed by a must-priority REQ description (section 7c criterion a).
14
+ - Adds `deliveredBy` to every REQ (REQ-001/002/003/007/010 -> TAC-801/TAC-802 interface names; REQ-004/005 -> TAC-803; REQ-006 -> TAC-804; REQ-008 -> ADR-804; REQ-009 -> ADR-803). Closes 8 pass-2 lint findings; per-blueprint lint reports zero on pass 1 and pass 2.
15
+ - Closes F-4 chain-contradiction specimen: AC-7107-3 previously compared v1.0.0 to future v1.x while the blueprint is v2. Rewrites the AC as a v2-baseline snapshot compatibility check against `blueprints/observability-essentials/assets/probe-samples/probe-response-baseline.v2.json` with stable-coded PROBE_BODY_SHAPE_DRIFT on rename or removal.
16
+ - Closes F-1 (liveness self-check failure without AC coverage): adds AC-7101-5 asserting a response-capable in-process self-check predicate answers HTTP 503 with content-length 0 on fail and returns to 200 on pass; the AC is `template` because the predicate itself is project-owned.
17
+ - Closes F-2 (boot-refuse ACs for dependency declaration): adds AC-7103-4 (deps missing -> READINESS_DEPS_MISSING), AC-7103-5 (duplicate name -> READINESS_DEPS_DUPLICATE, template on the declared set), AC-7103-6 (blank/malformed name -> READINESS_DEPS_MALFORMED).
18
+ - Closes F-3 (durable outcome sink): adds AC-7106-4 asserting outcome records survive a sink restart (template on the elicited notification-outcome-substrate) and AC-7106-5 asserting a failed write signals NOTIFICATION_OUTCOME_WRITE_FAILED to the caller and does not fabricate a success record.
19
+ - Re-sweeps every existing AC's `disposition` per section 7b: ACs marked `template` (those whose text references elicited paths, project-declared dependencies, or the elicited substrate) with `templateFillIns` naming which values the applying agent sets; the remaining ACs stay `fixed`.
20
+ - Review fix pass (F-2/F-3): adds `probeBodyShapeCompatibility` interface entry to TAC-802 that owns the cross-probe response body shape contract and names `PROBE_BODY_SHAPE_DRIFT`; updates AC-7107-3.ownerRef from ADR-803.decision.probeBodyShape (which the decision text did not carry) to TAC-802.interfaces.probeBodyShapeCompatibility; moves the v2 baseline snapshot from `packages/rcf-lite/test/blueprint/` to `blueprints/observability-essentials/assets/probe-samples/probe-response-baseline.v2.json` so its placement matches its documentation-fixture nature (no suite test read it in the previous location).
21
+ - Review fix pass (F-7): extends REQ-006 description with a runtime clause per substrate option (`sqlite`, `postgres`, `custom`), literally named and each backed as the accepted values the notification-outcome-substrate elicit resolves at boot (AC-7106-4 exercises the restart path across substrates; AC-7106-5 exercises the failed-write path).
@@ -1,4 +1,4 @@
1
- # Observability blueprint (v2.0.0)
1
+ # Observability blueprint (v2.1.0)
2
2
 
3
3
  The fifth content blueprint on the rcf-build-lite blueprint mechanism (design brief v2, ratified; Phase 5 of the blueprint programme). Scope: two HTTP health probes (liveness and readiness, path-neutral from v2.0.0: liveness answering strictly on in-process state, readiness aggregating over an explicit boot-time-declared dependency set with strict-any-fail semantics), a public status page rendering a declared component list plus stable-fielded incident notices, and a durable notification-outcome sink recording every attempt's outcome for later query by recipient and window. Targeted at small greenfield rcf-lite projects. Historical uptime charts, metrics export, and distributed tracing are documented future variants; the v2.0.0 blueprint ships the current-state contract only.
4
4
 
@@ -0,0 +1,17 @@
1
+ {
2
+ "// Baseline documented for observability-essentials AC-7107-3": "Hardening pass (2026-09-09): captures the v2 baseline shape of the /live and /ready probe response bodies so a release-time compatibility check can compare a candidate against the current v2 snapshot. A candidate that renames or removes a field named here fails with PROBE_BODY_SHAPE_DRIFT; additions are allowed.",
3
+ "live": {
4
+ "status": "pass",
5
+ "checkedAt": "ISO-8601 timestamp string"
6
+ },
7
+ "ready": {
8
+ "status": "pass",
9
+ "checkedAt": "ISO-8601 timestamp string",
10
+ "dependencies": [
11
+ {
12
+ "name": "string",
13
+ "status": "pass|fail"
14
+ }
15
+ ]
16
+ }
17
+ }
@@ -1,7 +1,38 @@
1
1
  {
2
2
  "slug": "observability-essentials",
3
- "version": "2.0.0",
3
+ "version": "2.1.2",
4
4
  "category": "observability",
5
+ "elicits": [
6
+ {
7
+ "id": "liveness-probe-path",
8
+ "prompt": "HTTP path the liveness probe binds to on the request-traffic listener (REQ-001; default /live).",
9
+ "kind": "string",
10
+ "default": "/live"
11
+ },
12
+ {
13
+ "id": "readiness-probe-path",
14
+ "prompt": "HTTP path the readiness probe binds to on the request-traffic listener (REQ-002; default /ready).",
15
+ "kind": "string",
16
+ "default": "/ready"
17
+ },
18
+ {
19
+ "id": "declared-dependency-set",
20
+ "prompt": "Comma-separated names of dependencies whose availability the readiness probe evaluates (REQ-003; blank when no dependencies are declared). Each name resolves to a checkFor(name) predicate.",
21
+ "kind": "string",
22
+ "default": ""
23
+ },
24
+ {
25
+ "id": "notification-outcome-substrate",
26
+ "prompt": "Durable substrate for notification-outcome records (REQ-006). Recommended defaults: sqlite (single-node), postgres (multi-node). The substrate must survive a process restart.",
27
+ "kind": "enum",
28
+ "options": [
29
+ "sqlite",
30
+ "postgres",
31
+ "custom"
32
+ ],
33
+ "default": "sqlite"
34
+ }
35
+ ],
5
36
  "contributions": [
6
37
  {
7
38
  "id": "observability-essentials-REQ-001",
@@ -6,7 +6,7 @@
6
6
  "status": "accepted",
7
7
  "title": "Historical: two HTTP health probes on the request-traffic listener with a stable JSON body shape (self-supervised design intent, superseded by observability-probe-endpoints as the shelf canonical path owner from v2.0.0)",
8
8
  "context": "Every deployed application runs under an orchestrator that needs a restart signal and under a load balancer that needs a routing signal. The two signals answer different questions: 'is this process wedged, restart it' versus 'is this process able to serve, route around it if not'. A single probe folded across both questions produces the outage-amplifying failure mode where a downstream dependency blip triggers a restart storm that dwarfs the original blip. The probes have to be structurally separate at the endpoint and semantically separate at the answer.",
9
- "decision": "The application serves two probe endpoints on the same HTTP listener that serves request traffic: a liveness probe at /healthz (or the configured override) and a readiness probe at /readyz (or the configured override). Both respond with Content-Type application/json and a stable body shape: { status: 'pass' | 'fail', checkedAt: <ISO-8601> } for liveness, plus a { checks: { <depName>: { state, checkedAt } } } object for readiness. Liveness returns 200 whenever the event loop is responsive and never depends on any external condition; readiness returns 200 when every declared dependency's cached state is pass and 503 otherwise. Both endpoints are auth-exempt (see ADR-804). The probes bind to the request-traffic listener rather than a separate operator port so the load balancer's probe observes the same reachability the traffic will observe.",
9
+ "decision": "The application serves two probe endpoints on the same HTTP listener that serves request traffic: a liveness probe at /healthz (or the configured override) and a readiness probe at /readyz (or the configured override). Both respond with the response header owned on TAC-801-observability-essentials-liveness-probe.responsibilities[1] and a stable body shape: { status: 'pass' | 'fail', checkedAt: <ISO-8601> } for liveness, plus a { checks: { <depName>: { state, checkedAt } } } object for readiness. Liveness returns 200 whenever the event loop is responsive and never depends on any external condition; readiness returns 200 when every declared dependency's cached state is pass and 503 otherwise. Both endpoints are auth-exempt (see ADR-804). The probes bind to the request-traffic listener rather than a separate operator port so the load balancer's probe observes the same reachability the traffic will observe.",
10
10
  "consequences": "The orchestrator's restart action is coupled only to true process wedging: a downstream dependency outage never triggers a restart. The load balancer's rotation action is coupled to declared-dependency health only: an unready replica gets pulled from rotation without a restart the replica cannot recover from. The stable JSON shape lets third-party monitoring integrations wire once. A change to the probe path defaults or a rename of a top-level probe body field is a major version bump on this blueprint. Composing blueprints that hold a different opinion on the endpoint contract (a project that wants /health as a single endpoint answering both questions, a project that wants gRPC probes, a project that wants both probes on a separate admin port) conflict on the healthProbes topic; the expected resolution is one project-level ADR that fixes the endpoint contract. From essentials v2.0.0 this ADR is scope-local historical context: the shelf-wide healthProbes topic is claimed only by observability-probe-endpoints. The self-supervised body shape and the request-traffic-listener binding remain the intent for the essentials-alone case; the literal /healthz and /readyz path defaults were removed from TAC-801 and TAC-802 in the same bump.",
11
11
  "alternativesConsidered": [
12
12
  {