rcf-lite 0.21.0 → 0.22.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 (342) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/blueprints/application-account-settings/CHANGELOG.md +12 -0
  3. package/blueprints/application-account-settings/README.md +114 -0
  4. package/blueprints/application-account-settings/blueprint.json +234 -0
  5. package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +20 -0
  6. package/blueprints/application-account-settings/contributions/adrs/adr-2602-application-account-settings-security-surface-shape.json +20 -0
  7. package/blueprints/application-account-settings/contributions/adrs/adr-2603-application-account-settings-theme-persistence.json +20 -0
  8. package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +20 -0
  9. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +18 -0
  10. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +18 -0
  11. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +18 -0
  12. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +18 -0
  13. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +18 -0
  14. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +18 -0
  15. package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +41 -0
  16. package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +28 -0
  17. package/blueprints/application-account-settings/contributions/tacs/tac-2603-application-account-settings-hosted-ui-bridge.json +35 -0
  18. package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +40 -0
  19. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +34 -0
  20. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -0
  21. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +27 -0
  22. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +27 -0
  23. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +33 -0
  24. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +27 -0
  25. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +27 -0
  26. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -0
  27. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +33 -0
  28. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +27 -0
  29. package/blueprints/application-account-settings/docs/topics.md +48 -0
  30. package/blueprints/application-account-settings/guide/application-account-settings.md +30 -0
  31. package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +246 -0
  32. package/blueprints/application-admin-console/docs/topics.md +7 -0
  33. package/blueprints/application-api-rest/docs/topics.md +8 -1
  34. package/blueprints/application-charts/docs/topics.md +7 -0
  35. package/blueprints/application-dashboard/docs/topics.md +7 -0
  36. package/blueprints/application-datatable/docs/topics.md +7 -0
  37. package/blueprints/application-empty-error-states/CHANGELOG.md +9 -0
  38. package/blueprints/application-empty-error-states/README.md +88 -0
  39. package/blueprints/application-empty-error-states/blueprint.json +119 -0
  40. package/blueprints/application-empty-error-states/contributions/adrs/adr-2301-application-empty-error-states-status-contract.json +25 -0
  41. package/blueprints/application-empty-error-states/contributions/adrs/adr-2302-application-empty-error-states-stack-trace-visibility.json +25 -0
  42. package/blueprints/application-empty-error-states/contributions/adrs/adr-2303-application-empty-error-states-offline-strategy.json +25 -0
  43. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +18 -0
  44. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +18 -0
  45. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +18 -0
  46. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +18 -0
  47. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +18 -0
  48. package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +46 -0
  49. package/blueprints/application-empty-error-states/contributions/tacs/tac-2302-application-empty-error-states-recovery-router.json +36 -0
  50. package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +40 -0
  51. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +29 -0
  52. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +29 -0
  53. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +29 -0
  54. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +29 -0
  55. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +29 -0
  56. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +29 -0
  57. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +29 -0
  58. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +29 -0
  59. package/blueprints/application-empty-error-states/docs/topics.md +53 -0
  60. package/blueprints/application-empty-error-states/guide/application-empty-error-states.md +50 -0
  61. package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +284 -0
  62. package/blueprints/application-error-handling/docs/topics.md +7 -0
  63. package/blueprints/application-file-upload/CHANGELOG.md +9 -0
  64. package/blueprints/application-file-upload/README.md +85 -0
  65. package/blueprints/application-file-upload/blueprint.json +114 -0
  66. package/blueprints/application-file-upload/contributions/adrs/adr-2401-application-file-upload-transport.json +25 -0
  67. package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +25 -0
  68. package/blueprints/application-file-upload/contributions/adrs/adr-2403-application-file-upload-virus-scan.json +25 -0
  69. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +18 -0
  70. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +18 -0
  71. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +18 -0
  72. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +18 -0
  73. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +18 -0
  74. package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +46 -0
  75. package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +47 -0
  76. package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +46 -0
  77. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +28 -0
  78. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +28 -0
  79. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +29 -0
  80. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +28 -0
  81. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +29 -0
  82. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +28 -0
  83. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +28 -0
  84. package/blueprints/application-file-upload/docs/topics.md +58 -0
  85. package/blueprints/application-file-upload/guide/application-file-upload.md +48 -0
  86. package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +238 -0
  87. package/blueprints/application-forms-wizard/CHANGELOG.md +9 -0
  88. package/blueprints/application-forms-wizard/README.md +102 -0
  89. package/blueprints/application-forms-wizard/blueprint.json +120 -0
  90. package/blueprints/application-forms-wizard/contributions/adrs/adr-2501-application-forms-wizard-navigation.json +25 -0
  91. package/blueprints/application-forms-wizard/contributions/adrs/adr-2502-application-forms-wizard-save-and-return.json +25 -0
  92. package/blueprints/application-forms-wizard/contributions/adrs/adr-2503-application-forms-wizard-step-indicator.json +25 -0
  93. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +18 -0
  94. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +18 -0
  95. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +18 -0
  96. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +18 -0
  97. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +18 -0
  98. package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +46 -0
  99. package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +40 -0
  100. package/blueprints/application-forms-wizard/contributions/tacs/tac-2503-application-forms-wizard-draft-store.json +40 -0
  101. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +28 -0
  102. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +29 -0
  103. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +28 -0
  104. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +29 -0
  105. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +28 -0
  106. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +28 -0
  107. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +28 -0
  108. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +29 -0
  109. package/blueprints/application-forms-wizard/docs/topics.md +49 -0
  110. package/blueprints/application-forms-wizard/guide/application-forms-wizard.md +48 -0
  111. package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +233 -0
  112. package/blueprints/application-notifications-in-app/docs/topics.md +7 -0
  113. package/blueprints/application-onboarding-tour/CHANGELOG.md +12 -0
  114. package/blueprints/application-onboarding-tour/README.md +77 -0
  115. package/blueprints/application-onboarding-tour/blueprint.json +164 -0
  116. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2701-application-onboarding-tour-dismissal-policy.json +20 -0
  117. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +20 -0
  118. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2703-application-onboarding-tour-checklist-anchor.json +20 -0
  119. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +18 -0
  120. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +18 -0
  121. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +18 -0
  122. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +18 -0
  123. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2701-application-onboarding-tour-step-runner.json +41 -0
  124. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +35 -0
  125. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +34 -0
  126. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +27 -0
  127. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +27 -0
  128. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +27 -0
  129. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +27 -0
  130. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +27 -0
  131. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +27 -0
  132. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +27 -0
  133. package/blueprints/application-onboarding-tour/docs/topics.md +48 -0
  134. package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +59 -0
  135. package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +231 -0
  136. package/blueprints/application-spa/docs/topics.md +8 -1
  137. package/blueprints/delivery-ci-workflows/docs/topics.md +8 -1
  138. package/blueprints/deploy-cloudflare-workers/docs/topics.md +8 -1
  139. package/blueprints/email-smtp-resend/docs/topics.md +8 -1
  140. package/blueprints/object-storage-s3/CHANGELOG.md +13 -0
  141. package/blueprints/object-storage-s3/README.md +108 -0
  142. package/blueprints/object-storage-s3/blueprint.json +72 -0
  143. package/blueprints/object-storage-s3/contributions/adrs/adr-2901-object-storage-s3-adapter.json +30 -0
  144. package/blueprints/object-storage-s3/contributions/adrs/adr-2902-object-storage-s3-presigned-ttl-floor.json +25 -0
  145. package/blueprints/object-storage-s3/contributions/adrs/adr-2903-object-storage-s3-multipart-threshold.json +25 -0
  146. package/blueprints/object-storage-s3/contributions/adrs/adr-2904-object-storage-s3-contract.json +25 -0
  147. package/blueprints/object-storage-s3/contributions/probes/event-secrecy.mjs +103 -0
  148. package/blueprints/object-storage-s3/contributions/probes/facade-round-trip.mjs +43 -0
  149. package/blueprints/object-storage-s3/contributions/probes/multipart-upload.mjs +84 -0
  150. package/blueprints/object-storage-s3/contributions/probes/presigned-url.mjs +101 -0
  151. package/blueprints/object-storage-s3/contributions/probes/probe-utils.mjs +85 -0
  152. package/blueprints/object-storage-s3/contributions/probes/put-get-round-trip.mjs +84 -0
  153. package/blueprints/object-storage-s3/contributions/probes/r2-real-account-smoke.mjs +64 -0
  154. package/blueprints/object-storage-s3/contributions/probes/run-event-secrecy.mjs +4 -0
  155. package/blueprints/object-storage-s3/contributions/probes/run-facade-round-trip.mjs +10 -0
  156. package/blueprints/object-storage-s3/contributions/probes/run-multipart-upload.mjs +4 -0
  157. package/blueprints/object-storage-s3/contributions/probes/run-presigned-url.mjs +4 -0
  158. package/blueprints/object-storage-s3/contributions/probes/run-put-get-round-trip.mjs +7 -0
  159. package/blueprints/object-storage-s3/contributions/probes/run-r2-real-account-smoke.mjs +4 -0
  160. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +18 -0
  161. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +18 -0
  162. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +18 -0
  163. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +18 -0
  164. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +18 -0
  165. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +18 -0
  166. package/blueprints/object-storage-s3/contributions/tacs/tac-2901-object-storage-s3-facade.json +57 -0
  167. package/blueprints/object-storage-s3/contributions/tacs/tac-2902-object-storage-s3-multipart-uploader.json +36 -0
  168. package/blueprints/object-storage-s3/contributions/tacs/tac-2903-object-storage-s3-event-sink.json +36 -0
  169. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +34 -0
  170. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +43 -0
  171. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +25 -0
  172. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +34 -0
  173. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -0
  174. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +34 -0
  175. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +34 -0
  176. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +34 -0
  177. package/blueprints/object-storage-s3/docs/topics.md +62 -0
  178. package/blueprints/object-storage-s3/guide/object-storage-s3.md +207 -0
  179. package/blueprints/observability-essentials/docs/topics.md +8 -1
  180. package/blueprints/observability-logging/CHANGELOG.md +4 -0
  181. package/blueprints/observability-logging/README.md +3 -0
  182. package/blueprints/observability-logging/blueprint.json +3 -2
  183. package/blueprints/observability-logging/docs/topics.md +7 -0
  184. package/blueprints/observability-probe-endpoints/docs/topics.md +8 -1
  185. package/blueprints/persistence-data-d1/docs/topics.md +8 -1
  186. package/blueprints/persistence-data-postgres/CHANGELOG.md +12 -0
  187. package/blueprints/persistence-data-postgres/README.md +101 -0
  188. package/blueprints/persistence-data-postgres/blueprint.json +80 -0
  189. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +30 -0
  190. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2802-persistence-data-postgres-migration-shape.json +25 -0
  191. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2803-persistence-data-postgres-runner-mode.json +25 -0
  192. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2804-persistence-data-postgres-recovery.json +25 -0
  193. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +25 -0
  194. package/blueprints/persistence-data-postgres/contributions/probes/facade-round-trip.mjs +56 -0
  195. package/blueprints/persistence-data-postgres/contributions/probes/migration-apply.mjs +75 -0
  196. package/blueprints/persistence-data-postgres/contributions/probes/pool-posture-smoke.mjs +56 -0
  197. package/blueprints/persistence-data-postgres/contributions/probes/prepared-statement-scan.mjs +186 -0
  198. package/blueprints/persistence-data-postgres/contributions/probes/probe-utils.mjs +76 -0
  199. package/blueprints/persistence-data-postgres/contributions/probes/recovery-restore-round-trip.mjs +173 -0
  200. package/blueprints/persistence-data-postgres/contributions/probes/run-facade-round-trip.mjs +10 -0
  201. package/blueprints/persistence-data-postgres/contributions/probes/run-migration-apply.mjs +10 -0
  202. package/blueprints/persistence-data-postgres/contributions/probes/run-pool-posture-smoke.mjs +9 -0
  203. package/blueprints/persistence-data-postgres/contributions/probes/run-prepared-statement-scan.mjs +10 -0
  204. package/blueprints/persistence-data-postgres/contributions/probes/run-recovery-restore-round-trip.mjs +9 -0
  205. package/blueprints/persistence-data-postgres/contributions/probes/run-transaction-atomicity.mjs +10 -0
  206. package/blueprints/persistence-data-postgres/contributions/probes/transaction-atomicity.mjs +79 -0
  207. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +18 -0
  208. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +18 -0
  209. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +18 -0
  210. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +18 -0
  211. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +18 -0
  212. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +18 -0
  213. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +18 -0
  214. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2801-persistence-data-postgres-facade.json +58 -0
  215. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +40 -0
  216. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +35 -0
  217. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2804-persistence-data-postgres-recovery-runner.json +40 -0
  218. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +34 -0
  219. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +25 -0
  220. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +25 -0
  221. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +25 -0
  222. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +25 -0
  223. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +25 -0
  224. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +25 -0
  225. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +25 -0
  226. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +25 -0
  227. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +25 -0
  228. package/blueprints/persistence-data-postgres/docs/topics.md +64 -0
  229. package/blueprints/persistence-data-postgres/guide/persistence-data-postgres.md +172 -0
  230. package/blueprints/persistence-data-sqlite/docs/topics.md +8 -1
  231. package/blueprints/security-auth-clerk/CHANGELOG.md +4 -0
  232. package/blueprints/security-auth-clerk/README.md +3 -0
  233. package/blueprints/security-auth-clerk/blueprint.json +147 -30
  234. package/blueprints/security-auth-clerk/docs/topics.md +8 -1
  235. package/blueprints/security-auth-keycloak/CHANGELOG.md +4 -0
  236. package/blueprints/security-auth-keycloak/README.md +3 -0
  237. package/blueprints/security-auth-keycloak/blueprint.json +182 -37
  238. package/blueprints/security-auth-keycloak/docs/topics.md +8 -1
  239. package/blueprints/security-auth-magic-link/CHANGELOG.md +4 -0
  240. package/blueprints/security-auth-magic-link/README.md +3 -0
  241. package/blueprints/security-auth-magic-link/blueprint.json +159 -33
  242. package/blueprints/security-auth-magic-link/docs/topics.md +8 -1
  243. package/blueprints/security-auth-oauth2/CHANGELOG.md +4 -0
  244. package/blueprints/security-auth-oauth2/README.md +3 -0
  245. package/blueprints/security-auth-oauth2/blueprint.json +158 -32
  246. package/blueprints/security-auth-oauth2/docs/topics.md +8 -1
  247. package/blueprints/security-secrets-management/CHANGELOG.md +11 -0
  248. package/blueprints/security-secrets-management/blueprint.json +2 -1
  249. package/blueprints/security-secrets-management/docs/topics.md +8 -1
  250. package/fixtures/canary-manifest.json +9 -9
  251. package/package.json +1 -1
  252. package/rcf/code-nodes/cn-134.json +13 -0
  253. package/rcf/code-nodes/cn-135.json +12 -0
  254. package/rcf/code-nodes/cn-136.json +13 -0
  255. package/rcf/code-nodes/cn-137.json +13 -0
  256. package/rcf/code-nodes/cn-138.json +12 -0
  257. package/rcf/code-nodes/cn-139.json +12 -0
  258. package/rcf/code-nodes/cn-140.json +13 -0
  259. package/rcf/code-nodes/cn-141.json +13 -0
  260. package/rcf/code-nodes/cn-142.json +12 -0
  261. package/rcf/code-nodes/cn-143.json +13 -0
  262. package/rcf/code-nodes/cn-144.json +13 -0
  263. package/rcf/code-nodes/cn-145.json +12 -0
  264. package/rcf/code-nodes/cn-146.json +12 -0
  265. package/rcf/code-nodes/cn-147.json +13 -0
  266. package/rcf/code-nodes/cn-148.json +13 -0
  267. package/rcf/code-nodes/cn-149.json +12 -0
  268. package/rcf/code-nodes/cn-150.json +13 -0
  269. package/rcf/code-nodes/cn-151.json +13 -0
  270. package/rcf/code-nodes/cn-152.json +12 -0
  271. package/rcf/code-nodes/cn-153.json +12 -0
  272. package/rcf/code-nodes/cn-154.json +13 -0
  273. package/rcf/code-nodes/cn-155.json +14 -0
  274. package/rcf/code-nodes/cn-156.json +13 -0
  275. package/rcf/code-nodes/cn-157.json +13 -0
  276. package/rcf/code-nodes/cn-158.json +12 -0
  277. package/rcf/code-nodes/cn-159.json +13 -0
  278. package/rcf/code-nodes/cn-160.json +12 -0
  279. package/rcf/code-nodes/cn-161.json +12 -0
  280. package/rcf/code-nodes/cn-162.json +13 -0
  281. package/rcf/code-nodes/cn-163.json +12 -0
  282. package/rcf/code-nodes/cn-164.json +13 -0
  283. package/rcf/code-nodes/cn-165.json +12 -0
  284. package/rcf/code-nodes/cn-166.json +12 -0
  285. package/rcf/code-nodes/cn-167.json +12 -0
  286. package/rcf/code-nodes/cn-168.json +12 -0
  287. package/rcf/code-nodes/cn-169.json +12 -0
  288. package/rcf/code-nodes/cn-170.json +12 -0
  289. package/rcf/code-nodes/cn-171.json +12 -0
  290. package/rcf/code-nodes/cn-172.json +12 -0
  291. package/rcf/code-nodes/cn-173.json +12 -0
  292. package/rcf/code-nodes/cn-174.json +12 -0
  293. package/rcf/code-nodes/cn-175.json +13 -0
  294. package/rcf/code-nodes/cn-176.json +12 -0
  295. package/rcf/code-nodes/cn-177.json +12 -0
  296. package/rcf/code-nodes/cn-178.json +12 -0
  297. package/rcf/code-nodes/cn-179.json +12 -0
  298. package/rcf/code-nodes/cn-180.json +13 -0
  299. package/rcf/code-nodes/cn-181.json +12 -0
  300. package/rcf/code-nodes/cn-182.json +13 -0
  301. package/rcf/code-nodes/cn-183.json +12 -0
  302. package/rcf/code-nodes/cn-184.json +13 -0
  303. package/rcf/code-nodes/cn-185.json +12 -0
  304. package/rcf/code-nodes/cn-186.json +12 -0
  305. package/rcf/code-nodes/cn-200.json +14 -0
  306. package/rcf/code-nodes/cn-201.json +13 -0
  307. package/rcf/code-nodes/cn-202.json +14 -0
  308. package/rcf/code-nodes/cn-203.json +14 -0
  309. package/rcf/code-nodes/cn-204.json +13 -0
  310. package/rcf/code-nodes/cn-205.json +14 -0
  311. package/rcf/fbs/fbs-043.json +23 -0
  312. package/rcf/fbs/fbs-044.json +23 -0
  313. package/rcf/fbs/fbs-045.json +23 -0
  314. package/rcf/fbs/fbs-046.json +24 -0
  315. package/rcf/fbs/fbs-047.json +24 -0
  316. package/rcf/fbs/fbs-060.json +22 -0
  317. package/rcf/fbs/fbs-061.json +20 -0
  318. package/rcf/requirements/req-024.json +69 -0
  319. package/rcf/requirements/req-025.json +59 -0
  320. package/rcf/requirements/req-026.json +154 -0
  321. package/rcf/requirements/req-027.json +33 -0
  322. package/rcf/requirements/req-028.json +13 -0
  323. package/rcf/requirements/req-040.json +13 -0
  324. package/rcf/requirements/req-041.json +125 -0
  325. package/rcf/test-suites/ts-053.json +70 -0
  326. package/rcf/test-suites/ts-054.json +70 -0
  327. package/rcf/test-suites/ts-055.json +77 -0
  328. package/rcf/test-suites/ts-056.json +78 -0
  329. package/rcf/test-suites/ts-057.json +78 -0
  330. package/rcf/test-suites/ts-070.json +62 -0
  331. package/rcf/test-suites/ts-071.json +62 -0
  332. package/rcf/user-stories/us-2401.json +62 -0
  333. package/rcf/user-stories/us-2501.json +58 -0
  334. package/rcf/user-stories/us-2601.json +51 -0
  335. package/rcf/user-stories/us-2701.json +55 -0
  336. package/rcf/user-stories/us-2801.json +55 -0
  337. package/rcf/user-stories/us-4001.json +69 -0
  338. package/rcf/user-stories/us-4101.json +69 -0
  339. package/releases/releases.yaml +11 -1
  340. package/src/blueprint/apply.js +10 -1
  341. package/src/blueprint/capabilities.js +41 -2
  342. package/src/cli/blueprint.js +8 -1
@@ -1,33 +1,134 @@
1
1
  {
2
2
  "slug": "security-auth-clerk",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "category": "security",
5
- "capabilities": ["principalDirectory", "roleModel"],
5
+ "capabilities": [
6
+ "principalDirectory",
7
+ "roleModel",
8
+ "sessionInventory",
9
+ "hostedIdentityUi"
10
+ ],
6
11
  "contributions": [
7
- { "id": "security-auth-clerk-REQ-001", "kind": "req", "path": "requirements/security-auth-clerk-req-001.json" },
8
- { "id": "security-auth-clerk-REQ-002", "kind": "req", "path": "requirements/security-auth-clerk-req-002.json" },
9
- { "id": "security-auth-clerk-REQ-003", "kind": "req", "path": "requirements/security-auth-clerk-req-003.json" },
10
- { "id": "security-auth-clerk-REQ-004", "kind": "req", "path": "requirements/security-auth-clerk-req-004.json" },
11
- { "id": "security-auth-clerk-REQ-005", "kind": "req", "path": "requirements/security-auth-clerk-req-005.json" },
12
- { "id": "security-auth-clerk-REQ-006", "kind": "req", "path": "requirements/security-auth-clerk-req-006.json" },
13
- { "id": "security-auth-clerk-REQ-007", "kind": "req", "path": "requirements/security-auth-clerk-req-007.json" },
14
- { "id": "security-auth-clerk-REQ-008", "kind": "req", "path": "requirements/security-auth-clerk-req-008.json" },
15
- { "id": "security-auth-clerk-REQ-009", "kind": "req", "path": "requirements/security-auth-clerk-req-009.json" },
16
- { "id": "security-auth-clerk-US-9101", "kind": "us", "path": "user-stories/security-auth-clerk-us-9101.json" },
17
- { "id": "security-auth-clerk-US-9102", "kind": "us", "path": "user-stories/security-auth-clerk-us-9102.json" },
18
- { "id": "security-auth-clerk-US-9103", "kind": "us", "path": "user-stories/security-auth-clerk-us-9103.json" },
19
- { "id": "security-auth-clerk-US-9104", "kind": "us", "path": "user-stories/security-auth-clerk-us-9104.json" },
20
- { "id": "security-auth-clerk-US-9105", "kind": "us", "path": "user-stories/security-auth-clerk-us-9105.json" },
21
- { "id": "security-auth-clerk-US-9106", "kind": "us", "path": "user-stories/security-auth-clerk-us-9106.json" },
22
- { "id": "security-auth-clerk-US-9107", "kind": "us", "path": "user-stories/security-auth-clerk-us-9107.json" },
23
- { "id": "security-auth-clerk-US-9108", "kind": "us", "path": "user-stories/security-auth-clerk-us-9108.json" },
24
- { "id": "security-auth-clerk-US-9109", "kind": "us", "path": "user-stories/security-auth-clerk-us-9109.json" },
25
- { "id": "security-auth-clerk-US-9110", "kind": "us", "path": "user-stories/security-auth-clerk-us-9110.json" },
26
- { "id": "security-auth-clerk-US-9111", "kind": "us", "path": "user-stories/security-auth-clerk-us-9111.json" },
27
- { "id": "TAC-1001-security-auth-clerk-middleware", "kind": "tac", "path": "tacs/tac-1001-security-auth-clerk-middleware.json" },
28
- { "id": "TAC-1002-security-auth-clerk-authorisation-adapter", "kind": "tac", "path": "tacs/tac-1002-security-auth-clerk-authorisation-adapter.json" },
29
- { "id": "TAC-1003-security-auth-clerk-session-verifier", "kind": "tac", "path": "tacs/tac-1003-security-auth-clerk-session-verifier.json" },
30
- { "id": "TAC-1004-security-auth-clerk-claims-mapper", "kind": "tac", "path": "tacs/tac-1004-security-auth-clerk-claims-mapper.json" },
12
+ {
13
+ "id": "security-auth-clerk-REQ-001",
14
+ "kind": "req",
15
+ "path": "requirements/security-auth-clerk-req-001.json"
16
+ },
17
+ {
18
+ "id": "security-auth-clerk-REQ-002",
19
+ "kind": "req",
20
+ "path": "requirements/security-auth-clerk-req-002.json"
21
+ },
22
+ {
23
+ "id": "security-auth-clerk-REQ-003",
24
+ "kind": "req",
25
+ "path": "requirements/security-auth-clerk-req-003.json"
26
+ },
27
+ {
28
+ "id": "security-auth-clerk-REQ-004",
29
+ "kind": "req",
30
+ "path": "requirements/security-auth-clerk-req-004.json"
31
+ },
32
+ {
33
+ "id": "security-auth-clerk-REQ-005",
34
+ "kind": "req",
35
+ "path": "requirements/security-auth-clerk-req-005.json"
36
+ },
37
+ {
38
+ "id": "security-auth-clerk-REQ-006",
39
+ "kind": "req",
40
+ "path": "requirements/security-auth-clerk-req-006.json"
41
+ },
42
+ {
43
+ "id": "security-auth-clerk-REQ-007",
44
+ "kind": "req",
45
+ "path": "requirements/security-auth-clerk-req-007.json"
46
+ },
47
+ {
48
+ "id": "security-auth-clerk-REQ-008",
49
+ "kind": "req",
50
+ "path": "requirements/security-auth-clerk-req-008.json"
51
+ },
52
+ {
53
+ "id": "security-auth-clerk-REQ-009",
54
+ "kind": "req",
55
+ "path": "requirements/security-auth-clerk-req-009.json"
56
+ },
57
+ {
58
+ "id": "security-auth-clerk-US-9101",
59
+ "kind": "us",
60
+ "path": "user-stories/security-auth-clerk-us-9101.json"
61
+ },
62
+ {
63
+ "id": "security-auth-clerk-US-9102",
64
+ "kind": "us",
65
+ "path": "user-stories/security-auth-clerk-us-9102.json"
66
+ },
67
+ {
68
+ "id": "security-auth-clerk-US-9103",
69
+ "kind": "us",
70
+ "path": "user-stories/security-auth-clerk-us-9103.json"
71
+ },
72
+ {
73
+ "id": "security-auth-clerk-US-9104",
74
+ "kind": "us",
75
+ "path": "user-stories/security-auth-clerk-us-9104.json"
76
+ },
77
+ {
78
+ "id": "security-auth-clerk-US-9105",
79
+ "kind": "us",
80
+ "path": "user-stories/security-auth-clerk-us-9105.json"
81
+ },
82
+ {
83
+ "id": "security-auth-clerk-US-9106",
84
+ "kind": "us",
85
+ "path": "user-stories/security-auth-clerk-us-9106.json"
86
+ },
87
+ {
88
+ "id": "security-auth-clerk-US-9107",
89
+ "kind": "us",
90
+ "path": "user-stories/security-auth-clerk-us-9107.json"
91
+ },
92
+ {
93
+ "id": "security-auth-clerk-US-9108",
94
+ "kind": "us",
95
+ "path": "user-stories/security-auth-clerk-us-9108.json"
96
+ },
97
+ {
98
+ "id": "security-auth-clerk-US-9109",
99
+ "kind": "us",
100
+ "path": "user-stories/security-auth-clerk-us-9109.json"
101
+ },
102
+ {
103
+ "id": "security-auth-clerk-US-9110",
104
+ "kind": "us",
105
+ "path": "user-stories/security-auth-clerk-us-9110.json"
106
+ },
107
+ {
108
+ "id": "security-auth-clerk-US-9111",
109
+ "kind": "us",
110
+ "path": "user-stories/security-auth-clerk-us-9111.json"
111
+ },
112
+ {
113
+ "id": "TAC-1001-security-auth-clerk-middleware",
114
+ "kind": "tac",
115
+ "path": "tacs/tac-1001-security-auth-clerk-middleware.json"
116
+ },
117
+ {
118
+ "id": "TAC-1002-security-auth-clerk-authorisation-adapter",
119
+ "kind": "tac",
120
+ "path": "tacs/tac-1002-security-auth-clerk-authorisation-adapter.json"
121
+ },
122
+ {
123
+ "id": "TAC-1003-security-auth-clerk-session-verifier",
124
+ "kind": "tac",
125
+ "path": "tacs/tac-1003-security-auth-clerk-session-verifier.json"
126
+ },
127
+ {
128
+ "id": "TAC-1004-security-auth-clerk-claims-mapper",
129
+ "kind": "tac",
130
+ "path": "tacs/tac-1004-security-auth-clerk-claims-mapper.json"
131
+ },
31
132
  {
32
133
  "id": "ADR-1001-security-auth-clerk-auth-model",
33
134
  "kind": "adr",
@@ -35,9 +136,25 @@
35
136
  "scope": "global",
36
137
  "topic": "authModel"
37
138
  },
38
- { "id": "ADR-1002-security-auth-clerk-middleware-boundary", "kind": "adr", "path": "adrs/adr-1002-security-auth-clerk-middleware-boundary.json" },
39
- { "id": "ADR-1003-security-auth-clerk-authorisation-adapter-contract", "kind": "adr", "path": "adrs/adr-1003-security-auth-clerk-authorisation-adapter-contract.json" },
40
- { "id": "ADR-1004-security-auth-clerk-claims-mapping-discipline", "kind": "adr", "path": "adrs/adr-1004-security-auth-clerk-claims-mapping-discipline.json" },
41
- { "id": "ADR-1005-security-auth-clerk-session-lifecycle", "kind": "adr", "path": "adrs/adr-1005-security-auth-clerk-session-lifecycle.json" }
139
+ {
140
+ "id": "ADR-1002-security-auth-clerk-middleware-boundary",
141
+ "kind": "adr",
142
+ "path": "adrs/adr-1002-security-auth-clerk-middleware-boundary.json"
143
+ },
144
+ {
145
+ "id": "ADR-1003-security-auth-clerk-authorisation-adapter-contract",
146
+ "kind": "adr",
147
+ "path": "adrs/adr-1003-security-auth-clerk-authorisation-adapter-contract.json"
148
+ },
149
+ {
150
+ "id": "ADR-1004-security-auth-clerk-claims-mapping-discipline",
151
+ "kind": "adr",
152
+ "path": "adrs/adr-1004-security-auth-clerk-claims-mapping-discipline.json"
153
+ },
154
+ {
155
+ "id": "ADR-1005-security-auth-clerk-session-lifecycle",
156
+ "kind": "adr",
157
+ "path": "adrs/adr-1005-security-auth-clerk-session-lifecycle.json"
158
+ }
42
159
  ]
43
160
  }
@@ -28,7 +28,7 @@ This table is maintained shelf-wide across every blueprint's `docs/topics.md`. R
28
28
  | persistence-data-sqlite | 5101-5899 | 6xx | shipped v1.0.0 | `persistenceStore`, `migrationDiscipline` |
29
29
  | delivery-ci-workflows | 6101-6899 | 7xx | shipped v2.0.0 (renamed from ci-pipeline) | `ciGates`, `strictCoverageGate`, `releaseArtefacts` |
30
30
  | observability-essentials | 7101-7899 | 8xx | shipped v2.0.0 | `statusPageContract` |
31
- | security-secrets-management | 8101-8899 | 9xx | shipped v1.0.0 | `secretsSource` |
31
+ | security-secrets-management | 8101-8899 | 9xx | shipped v1.0.1 | `secretsSource` |
32
32
  | security-auth-clerk | 9101-9899 | 10xx | shipped v1.0.0 | `authModel` |
33
33
  | security-auth-oauth2 | 10101-10899 | 11xx | shipped v1.0.0 | `authModel` |
34
34
  | security-auth-keycloak | 11101-11899 | 12xx | shipped v1.0.0 | `authModel` |
@@ -40,6 +40,13 @@ This table is maintained shelf-wide across every blueprint's `docs/topics.md`. R
40
40
  | application-dashboard | 19101-19899 | 20xx | shipped v1.0.0 | none |
41
41
  | application-notifications-in-app | 20101-20899 | 21xx | shipped v1.0.0 | none |
42
42
  | application-admin-console | 21101-21899 | 22xx | shipped v1.0.0 | none |
43
+ | application-empty-error-states | 22101-22899 | 23xx | shipped v1.0.0 | none |
44
+ | application-file-upload | 23101-23899 | 24xx | shipped v1.0.0 | none |
45
+ | application-forms-wizard | 24101-24899 | 25xx | shipped v1.0.0 | none |
46
+ | application-account-settings | 25101-25899 | 26xx | shipped v1.0.0 | none |
47
+ | application-onboarding-tour | 26101-26899 | 27xx | shipped v1.0.0 | none |
48
+ | persistence-data-postgres | 27101-27899 | 28xx | shipped v1.0.0 | `persistenceStore`, `migrationDiscipline` |
49
+ | object-storage-s3 | 28101-28899 | 29xx | shipped v1.0.0 | `objectStorageContract` |
43
50
 
44
51
  US 9101-9110 sit at the LOW end of the 9101-9899 band on purpose. A project-side story that mechanically derives from a security-auth-clerk REQ id into the number `9110` would collide against security-auth-clerk-US-9110 in this package; the band leaves headroom at the HIGH end (US 9181-9899) so a project's own stories anchored to security-auth-clerk REQs can allocate without conflict. The watchpost run4 lesson applies here too.
45
52
 
@@ -1,5 +1,9 @@
1
1
  # security-auth-keycloak CHANGELOG
2
2
 
3
+ ## 1.2.0 (visual round T-4, spec 2026-09-06 section 5.4.2, Baz Q2 default)
4
+
5
+ - Declares `capabilities: [principalDirectory, roleModel, credentialSelfService, sessionInventory]` on `blueprint.json`. Additive per section 6 of `blueprint-authoring.md`. Consumed at apply time by the visual round T-4 `application-account-settings` blueprint to gate the security surface self-service branch (probe pack check `AC-25105-1`) and the sessions surface (`AC-25106-1`). Keycloak ships a credential self-service surface (password change, MFA management, email change) that a project can bring in-place and it exposes an active-session inventory a terminate action can act on. Keycloak does NOT declare `hostedIdentityUi` because its hosted-UI is realm-scoped and Keycloak deployments typically brand it in place, so the account-settings blueprint does not treat Keycloak as a hosted-UI provider.
6
+
3
7
  ## 1.1.0 (visual round T-5, spec 2026-09-04 section 5.5.2, Baz Q2 default)
4
8
 
5
9
  - Declares `capabilities: [principalDirectory, roleModel]` on `blueprint.json`. No other change. The new field is additive per section 6 of `blueprint-authoring.md` (an additive optional field with no global-topic change is a minor bump), and it is consumed by the visual round T-5 `application-admin-console` blueprint at apply time to gate surfaces on what the applied identity blueprint actually provides.
@@ -2,6 +2,9 @@
2
2
 
3
3
  The twelfth content blueprint on the rcf-build-lite blueprint mechanism, category `security`. A Keycloak-committed sibling to `security-auth-magic-link`, `security-auth-clerk`, and `security-auth-oauth2` on the `authModel` global topic. Identity is delegated to a Keycloak realm the operator runs; the project owns the discovery client, the token verifier (JWKS or introspection per realm), the role adapter, the provider-routing seam, and the optional application session on top. Targeted at rcf-lite projects that have committed to a self-hosted Keycloak realm (or are running one already) and want the Keycloak-shaped decisions the vendor-neutral `security-auth-oauth2` sibling deliberately does not fix.
4
4
 
5
+
6
+ > Latest: **v1.2.0** (visual round T-4, 2026-09-06). `capabilities: [principalDirectory, roleModel, credentialSelfService, sessionInventory]`. See [CHANGELOG.md](CHANGELOG.md).
7
+
5
8
  ## Apply
6
9
 
7
10
  ```
@@ -1,39 +1,164 @@
1
1
  {
2
2
  "slug": "security-auth-keycloak",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "category": "security",
5
- "capabilities": ["principalDirectory", "roleModel"],
5
+ "capabilities": [
6
+ "principalDirectory",
7
+ "roleModel",
8
+ "credentialSelfService",
9
+ "sessionInventory"
10
+ ],
6
11
  "contributions": [
7
- { "id": "security-auth-keycloak-REQ-001", "kind": "req", "path": "requirements/security-auth-keycloak-req-001.json" },
8
- { "id": "security-auth-keycloak-REQ-002", "kind": "req", "path": "requirements/security-auth-keycloak-req-002.json" },
9
- { "id": "security-auth-keycloak-REQ-003", "kind": "req", "path": "requirements/security-auth-keycloak-req-003.json" },
10
- { "id": "security-auth-keycloak-REQ-004", "kind": "req", "path": "requirements/security-auth-keycloak-req-004.json" },
11
- { "id": "security-auth-keycloak-REQ-005", "kind": "req", "path": "requirements/security-auth-keycloak-req-005.json" },
12
- { "id": "security-auth-keycloak-REQ-006", "kind": "req", "path": "requirements/security-auth-keycloak-req-006.json" },
13
- { "id": "security-auth-keycloak-REQ-007", "kind": "req", "path": "requirements/security-auth-keycloak-req-007.json" },
14
- { "id": "security-auth-keycloak-REQ-008", "kind": "req", "path": "requirements/security-auth-keycloak-req-008.json" },
15
- { "id": "security-auth-keycloak-REQ-009", "kind": "req", "path": "requirements/security-auth-keycloak-req-009.json" },
16
- { "id": "security-auth-keycloak-REQ-010", "kind": "req", "path": "requirements/security-auth-keycloak-req-010.json" },
17
- { "id": "security-auth-keycloak-REQ-011", "kind": "req", "path": "requirements/security-auth-keycloak-req-011.json" },
18
- { "id": "security-auth-keycloak-REQ-012", "kind": "req", "path": "requirements/security-auth-keycloak-req-012.json" },
19
- { "id": "security-auth-keycloak-US-11101", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11101.json" },
20
- { "id": "security-auth-keycloak-US-11102", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11102.json" },
21
- { "id": "security-auth-keycloak-US-11103", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11103.json" },
22
- { "id": "security-auth-keycloak-US-11104", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11104.json" },
23
- { "id": "security-auth-keycloak-US-11105", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11105.json" },
24
- { "id": "security-auth-keycloak-US-11106", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11106.json" },
25
- { "id": "security-auth-keycloak-US-11107", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11107.json" },
26
- { "id": "security-auth-keycloak-US-11108", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11108.json" },
27
- { "id": "security-auth-keycloak-US-11109", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11109.json" },
28
- { "id": "security-auth-keycloak-US-11110", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11110.json" },
29
- { "id": "security-auth-keycloak-US-11111", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11111.json" },
30
- { "id": "security-auth-keycloak-US-11112", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11112.json" },
31
- { "id": "security-auth-keycloak-US-11113", "kind": "us", "path": "user-stories/security-auth-keycloak-us-11113.json" },
32
- { "id": "TAC-1201-security-auth-keycloak-discovery-client", "kind": "tac", "path": "tacs/tac-1201-security-auth-keycloak-discovery-client.json" },
33
- { "id": "TAC-1202-security-auth-keycloak-jwt-verifier", "kind": "tac", "path": "tacs/tac-1202-security-auth-keycloak-jwt-verifier.json" },
34
- { "id": "TAC-1203-security-auth-keycloak-introspection-client", "kind": "tac", "path": "tacs/tac-1203-security-auth-keycloak-introspection-client.json" },
35
- { "id": "TAC-1204-security-auth-keycloak-provider-router", "kind": "tac", "path": "tacs/tac-1204-security-auth-keycloak-provider-router.json" },
36
- { "id": "TAC-1205-security-auth-keycloak-role-adapter", "kind": "tac", "path": "tacs/tac-1205-security-auth-keycloak-role-adapter.json" },
12
+ {
13
+ "id": "security-auth-keycloak-REQ-001",
14
+ "kind": "req",
15
+ "path": "requirements/security-auth-keycloak-req-001.json"
16
+ },
17
+ {
18
+ "id": "security-auth-keycloak-REQ-002",
19
+ "kind": "req",
20
+ "path": "requirements/security-auth-keycloak-req-002.json"
21
+ },
22
+ {
23
+ "id": "security-auth-keycloak-REQ-003",
24
+ "kind": "req",
25
+ "path": "requirements/security-auth-keycloak-req-003.json"
26
+ },
27
+ {
28
+ "id": "security-auth-keycloak-REQ-004",
29
+ "kind": "req",
30
+ "path": "requirements/security-auth-keycloak-req-004.json"
31
+ },
32
+ {
33
+ "id": "security-auth-keycloak-REQ-005",
34
+ "kind": "req",
35
+ "path": "requirements/security-auth-keycloak-req-005.json"
36
+ },
37
+ {
38
+ "id": "security-auth-keycloak-REQ-006",
39
+ "kind": "req",
40
+ "path": "requirements/security-auth-keycloak-req-006.json"
41
+ },
42
+ {
43
+ "id": "security-auth-keycloak-REQ-007",
44
+ "kind": "req",
45
+ "path": "requirements/security-auth-keycloak-req-007.json"
46
+ },
47
+ {
48
+ "id": "security-auth-keycloak-REQ-008",
49
+ "kind": "req",
50
+ "path": "requirements/security-auth-keycloak-req-008.json"
51
+ },
52
+ {
53
+ "id": "security-auth-keycloak-REQ-009",
54
+ "kind": "req",
55
+ "path": "requirements/security-auth-keycloak-req-009.json"
56
+ },
57
+ {
58
+ "id": "security-auth-keycloak-REQ-010",
59
+ "kind": "req",
60
+ "path": "requirements/security-auth-keycloak-req-010.json"
61
+ },
62
+ {
63
+ "id": "security-auth-keycloak-REQ-011",
64
+ "kind": "req",
65
+ "path": "requirements/security-auth-keycloak-req-011.json"
66
+ },
67
+ {
68
+ "id": "security-auth-keycloak-REQ-012",
69
+ "kind": "req",
70
+ "path": "requirements/security-auth-keycloak-req-012.json"
71
+ },
72
+ {
73
+ "id": "security-auth-keycloak-US-11101",
74
+ "kind": "us",
75
+ "path": "user-stories/security-auth-keycloak-us-11101.json"
76
+ },
77
+ {
78
+ "id": "security-auth-keycloak-US-11102",
79
+ "kind": "us",
80
+ "path": "user-stories/security-auth-keycloak-us-11102.json"
81
+ },
82
+ {
83
+ "id": "security-auth-keycloak-US-11103",
84
+ "kind": "us",
85
+ "path": "user-stories/security-auth-keycloak-us-11103.json"
86
+ },
87
+ {
88
+ "id": "security-auth-keycloak-US-11104",
89
+ "kind": "us",
90
+ "path": "user-stories/security-auth-keycloak-us-11104.json"
91
+ },
92
+ {
93
+ "id": "security-auth-keycloak-US-11105",
94
+ "kind": "us",
95
+ "path": "user-stories/security-auth-keycloak-us-11105.json"
96
+ },
97
+ {
98
+ "id": "security-auth-keycloak-US-11106",
99
+ "kind": "us",
100
+ "path": "user-stories/security-auth-keycloak-us-11106.json"
101
+ },
102
+ {
103
+ "id": "security-auth-keycloak-US-11107",
104
+ "kind": "us",
105
+ "path": "user-stories/security-auth-keycloak-us-11107.json"
106
+ },
107
+ {
108
+ "id": "security-auth-keycloak-US-11108",
109
+ "kind": "us",
110
+ "path": "user-stories/security-auth-keycloak-us-11108.json"
111
+ },
112
+ {
113
+ "id": "security-auth-keycloak-US-11109",
114
+ "kind": "us",
115
+ "path": "user-stories/security-auth-keycloak-us-11109.json"
116
+ },
117
+ {
118
+ "id": "security-auth-keycloak-US-11110",
119
+ "kind": "us",
120
+ "path": "user-stories/security-auth-keycloak-us-11110.json"
121
+ },
122
+ {
123
+ "id": "security-auth-keycloak-US-11111",
124
+ "kind": "us",
125
+ "path": "user-stories/security-auth-keycloak-us-11111.json"
126
+ },
127
+ {
128
+ "id": "security-auth-keycloak-US-11112",
129
+ "kind": "us",
130
+ "path": "user-stories/security-auth-keycloak-us-11112.json"
131
+ },
132
+ {
133
+ "id": "security-auth-keycloak-US-11113",
134
+ "kind": "us",
135
+ "path": "user-stories/security-auth-keycloak-us-11113.json"
136
+ },
137
+ {
138
+ "id": "TAC-1201-security-auth-keycloak-discovery-client",
139
+ "kind": "tac",
140
+ "path": "tacs/tac-1201-security-auth-keycloak-discovery-client.json"
141
+ },
142
+ {
143
+ "id": "TAC-1202-security-auth-keycloak-jwt-verifier",
144
+ "kind": "tac",
145
+ "path": "tacs/tac-1202-security-auth-keycloak-jwt-verifier.json"
146
+ },
147
+ {
148
+ "id": "TAC-1203-security-auth-keycloak-introspection-client",
149
+ "kind": "tac",
150
+ "path": "tacs/tac-1203-security-auth-keycloak-introspection-client.json"
151
+ },
152
+ {
153
+ "id": "TAC-1204-security-auth-keycloak-provider-router",
154
+ "kind": "tac",
155
+ "path": "tacs/tac-1204-security-auth-keycloak-provider-router.json"
156
+ },
157
+ {
158
+ "id": "TAC-1205-security-auth-keycloak-role-adapter",
159
+ "kind": "tac",
160
+ "path": "tacs/tac-1205-security-auth-keycloak-role-adapter.json"
161
+ },
37
162
  {
38
163
  "id": "ADR-1201-security-auth-keycloak-auth-model",
39
164
  "kind": "adr",
@@ -41,10 +166,30 @@
41
166
  "scope": "global",
42
167
  "topic": "authModel"
43
168
  },
44
- { "id": "ADR-1202-security-auth-keycloak-verification-mode-choice", "kind": "adr", "path": "adrs/adr-1202-security-auth-keycloak-verification-mode-choice.json" },
45
- { "id": "ADR-1203-security-auth-keycloak-provider-routing-seam", "kind": "adr", "path": "adrs/adr-1203-security-auth-keycloak-provider-routing-seam.json" },
46
- { "id": "ADR-1204-security-auth-keycloak-session-vs-token-contract", "kind": "adr", "path": "adrs/adr-1204-security-auth-keycloak-session-vs-token-contract.json" },
47
- { "id": "ADR-1205-security-auth-keycloak-jwks-rotation-cache-lifetime", "kind": "adr", "path": "adrs/adr-1205-security-auth-keycloak-jwks-rotation-cache-lifetime.json" },
48
- { "id": "ADR-1206-security-auth-keycloak-refresh-and-sign-out-posture", "kind": "adr", "path": "adrs/adr-1206-security-auth-keycloak-refresh-and-sign-out-posture.json" }
169
+ {
170
+ "id": "ADR-1202-security-auth-keycloak-verification-mode-choice",
171
+ "kind": "adr",
172
+ "path": "adrs/adr-1202-security-auth-keycloak-verification-mode-choice.json"
173
+ },
174
+ {
175
+ "id": "ADR-1203-security-auth-keycloak-provider-routing-seam",
176
+ "kind": "adr",
177
+ "path": "adrs/adr-1203-security-auth-keycloak-provider-routing-seam.json"
178
+ },
179
+ {
180
+ "id": "ADR-1204-security-auth-keycloak-session-vs-token-contract",
181
+ "kind": "adr",
182
+ "path": "adrs/adr-1204-security-auth-keycloak-session-vs-token-contract.json"
183
+ },
184
+ {
185
+ "id": "ADR-1205-security-auth-keycloak-jwks-rotation-cache-lifetime",
186
+ "kind": "adr",
187
+ "path": "adrs/adr-1205-security-auth-keycloak-jwks-rotation-cache-lifetime.json"
188
+ },
189
+ {
190
+ "id": "ADR-1206-security-auth-keycloak-refresh-and-sign-out-posture",
191
+ "kind": "adr",
192
+ "path": "adrs/adr-1206-security-auth-keycloak-refresh-and-sign-out-posture.json"
193
+ }
49
194
  ]
50
195
  }
@@ -39,7 +39,7 @@ This table is maintained shelf-wide across every blueprint's `docs/topics.md`. R
39
39
  | persistence-data-sqlite | 5101-5899 | 6xx | shipped v1.0.0 | `persistenceStore`, `migrationDiscipline` |
40
40
  | delivery-ci-workflows | 6101-6899 | 7xx | shipped v2.0.0 (renamed from ci-pipeline) | `ciGates`, `strictCoverageGate`, `releaseArtefacts` |
41
41
  | observability-essentials | 7101-7899 | 8xx | shipped v2.0.0 | `statusPageContract` |
42
- | security-secrets-management | 8101-8899 | 9xx | shipped v1.0.0 | `secretsSource` |
42
+ | security-secrets-management | 8101-8899 | 9xx | shipped v1.0.1 | `secretsSource` |
43
43
  | security-auth-clerk | 9101-9899 | 10xx | shipped v1.0.0 | `authModel` |
44
44
  | security-auth-oauth2 | 10101-10899 | 11xx | shipped v1.0.0 | `authModel` |
45
45
  | security-auth-keycloak | 11101-11899 | 12xx | shipped v1.0.0 | `authModel` |
@@ -51,6 +51,13 @@ This table is maintained shelf-wide across every blueprint's `docs/topics.md`. R
51
51
  | application-dashboard | 19101-19899 | 20xx | shipped v1.0.0 | none |
52
52
  | application-notifications-in-app | 20101-20899 | 21xx | shipped v1.0.0 | none |
53
53
  | application-admin-console | 21101-21899 | 22xx | shipped v1.0.0 | none |
54
+ | application-empty-error-states | 22101-22899 | 23xx | shipped v1.0.0 | none |
55
+ | application-file-upload | 23101-23899 | 24xx | shipped v1.0.0 | none |
56
+ | application-forms-wizard | 24101-24899 | 25xx | shipped v1.0.0 | none |
57
+ | application-account-settings | 25101-25899 | 26xx | shipped v1.0.0 | none |
58
+ | application-onboarding-tour | 26101-26899 | 27xx | shipped v1.0.0 | none |
59
+ | persistence-data-postgres | 27101-27899 | 28xx | shipped v1.0.0 | `persistenceStore`, `migrationDiscipline` |
60
+ | object-storage-s3 | 28101-28899 | 29xx | shipped v1.0.0 | `objectStorageContract` |
54
61
 
55
62
  US 11101-11113 sit at the LOW end of the 11101-11899 band on purpose. A project-side story that mechanically derives from a security-auth-keycloak REQ id into the number `11113` would collide against security-auth-keycloak-US-11113 in this package; the band leaves headroom at the HIGH end (US 11181-11899) so a project's own stories anchored to security-auth-keycloak REQs can allocate without conflict. The watchpost run4 lesson applies here too.
56
63
 
@@ -1,5 +1,9 @@
1
1
  # security-auth-magic-link CHANGELOG
2
2
 
3
+ ## 1.2.0 (visual round T-4, spec 2026-09-06 section 5.4.2, doc-only)
4
+
5
+ - No change to `capabilities[]`; the declaration remains `[principalDirectory]`. The bump records the account-settings suppression behaviour: on a bare-magic-link project the security tab, the sessions tab, the notification-preferences tab (unless `application-notifications-in-app` is applied) and the theme tab (unless `application-spa` is applied) are all suppressed by the account-settings blueprint capability discovery, and only the profile surface renders. This is not a regression; magic-link intentionally does NOT self-declare a credential-self-service surface, a session inventory, or a hosted identity UI (the click-a-link flow is the whole surface). Consumers pair magic-link with a session store (or a logging companion) if they want a sessions surface.
6
+
3
7
  ## 1.1.0 (visual round T-5, spec 2026-09-04 section 5.5.2, Baz Q2 default)
4
8
 
5
9
  - Declares `capabilities: [principalDirectory]` on `blueprint.json`. No other change. The new field is additive per section 6 of `blueprint-authoring.md` (an additive optional field with no global-topic change is a minor bump), and it is consumed by the visual round T-5 `application-admin-console` blueprint at apply time to gate surfaces on what the applied identity blueprint actually provides.
@@ -2,6 +2,9 @@
2
2
 
3
3
  The third content blueprint on the rcf-build-lite blueprint mechanism (design brief v2, ratified; Phase 4 of the blueprint programme). Scope: passwordless magic-link sign-in with server-issued opaque cookie sessions, single deployable, pluggable email delivery and pluggable principal registry, targeted at small greenfield rcf-lite projects. Composes with the application-spa blueprint (client half) and the application-api-rest blueprint (server half) by design, contributing one deliberate scope:global conflict on `authModel`.
4
4
 
5
+
6
+ > Latest: **v1.2.0 (doc-only)** (visual round T-4, 2026-09-06). `capabilities: [principalDirectory]`. See [CHANGELOG.md](CHANGELOG.md).
7
+
5
8
  ## Apply
6
9
 
7
10
  ```