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.
- package/CHANGELOG.md +45 -0
- package/blueprints/application-account-settings/CHANGELOG.md +35 -2
- package/blueprints/application-account-settings/README.md +10 -10
- package/blueprints/application-account-settings/blueprint.json +23 -3
- package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +1 -1
- package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +5 -5
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +6 -2
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +4 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +7 -3
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +4 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +4 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +6 -2
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-007.json +22 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-009.json +21 -0
- package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +8 -4
- package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +3 -3
- package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +13 -7
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +19 -3
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +13 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +23 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +51 -3
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +25 -6
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +13 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +4 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +13 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25111.json +71 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25112.json +77 -0
- package/blueprints/application-account-settings/docs/topics.md +5 -5
- package/blueprints/application-account-settings/guide/application-account-settings.md +1 -1
- package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +2 -2
- package/blueprints/application-admin-console/CHANGELOG.md +42 -6
- package/blueprints/application-admin-console/README.md +4 -4
- package/blueprints/application-admin-console/blueprint.json +31 -1
- package/blueprints/application-admin-console/contributions/adrs/adr-2201-application-admin-console-capability-vocabulary.json +2 -2
- package/blueprints/application-admin-console/contributions/adrs/adr-2203-application-admin-console-invite-transport.json +5 -5
- package/blueprints/application-admin-console/contributions/adrs/adr-2204-application-admin-console-audit-retention.json +7 -7
- package/blueprints/application-admin-console/contributions/adrs/adr-2214-application-admin-console-consume-zero-trust-gate.json +3 -3
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +4 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +5 -1
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +4 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +4 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +6 -2
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +4 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-007.json +22 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-008.json +22 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-009.json +21 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-014.json +6 -2
- package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +9 -7
- package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +6 -6
- package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +1 -1
- package/blueprints/application-admin-console/contributions/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +5 -5
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21101.json +4 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21102.json +4 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21103.json +10 -4
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21104.json +13 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21105.json +15 -3
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21106.json +35 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +22 -3
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21108.json +4 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21109.json +4 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21110.json +68 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21111.json +76 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21112.json +77 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21815.json +21 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21816.json +21 -2
- package/blueprints/application-admin-console/docs/topics.md +1 -1
- package/blueprints/application-admin-console/guide/application-admin-console.md +3 -3
- package/blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs +2 -2
- package/blueprints/application-api-rest/CHANGELOG.md +26 -0
- package/blueprints/application-api-rest/assets/samples/request-response-pairs.md +2 -0
- package/blueprints/application-api-rest/blueprint.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-301-application-api-rest-error-envelope.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-302-application-api-rest-auth-model.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-303-application-api-rest-api-versioning.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-304-application-api-rest-logging.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-305-application-api-rest-pagination.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-306-application-api-rest-idempotency.json +3 -3
- package/blueprints/application-api-rest/contributions/adrs/adr-307-application-api-rest-openapi-generation.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-308-application-api-rest-rate-limiting.json +1 -1
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-001.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-002.json +7 -3
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-003.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-004.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-005.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-006.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-007.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-008.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-009.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-010.json +8 -4
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-011.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-012.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-013.json +7 -3
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-014.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-015.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-016.json +6 -2
- package/blueprints/application-api-rest/contributions/tacs/tac-301-application-api-rest-request-pipeline.json +1 -1
- package/blueprints/application-api-rest/contributions/tacs/tac-302-application-api-rest-auth-middleware.json +1 -1
- package/blueprints/application-api-rest/contributions/tacs/tac-303-application-api-rest-contract-surface.json +2 -2
- package/blueprints/application-api-rest/contributions/tacs/tac-304-application-api-rest-resource-layer.json +1 -1
- package/blueprints/application-api-rest/contributions/tacs/tac-305-application-api-rest-observability.json +1 -1
- package/blueprints/application-api-rest/contributions/tacs/tac-306-application-api-rest-operability.json +1 -1
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2101.json +13 -7
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2102.json +27 -13
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2103.json +18 -9
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2104.json +32 -10
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2105.json +19 -6
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2106.json +14 -8
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2107.json +20 -12
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2108.json +37 -15
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2109.json +15 -9
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2110.json +21 -11
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2111.json +42 -8
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2112.json +23 -13
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2113.json +17 -11
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2114.json +13 -8
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2115.json +13 -8
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2116.json +11 -6
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2117.json +19 -14
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2118.json +20 -10
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2119.json +20 -7
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2120.json +16 -10
- package/blueprints/application-api-rest/docs/topics.md +1 -1
- package/blueprints/application-charts/CHANGELOG.md +24 -3
- package/blueprints/application-charts/README.md +5 -5
- package/blueprints/application-charts/blueprint.json +112 -18
- package/blueprints/application-charts/contributions/adrs/adr-1901-application-charts-engine-choice.json +1 -1
- package/blueprints/application-charts/contributions/adrs/adr-1902-application-charts-accessible-palette.json +1 -1
- package/blueprints/application-charts/contributions/adrs/adr-1903-application-charts-motion.json +1 -1
- package/blueprints/application-charts/contributions/requirements/application-charts-req-001.json +11 -4
- package/blueprints/application-charts/contributions/requirements/application-charts-req-002.json +11 -4
- package/blueprints/application-charts/contributions/requirements/application-charts-req-003.json +10 -3
- package/blueprints/application-charts/contributions/requirements/application-charts-req-004.json +10 -3
- package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +3 -2
- package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +1 -1
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18101.json +50 -6
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18102.json +58 -6
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18103.json +54 -6
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18104.json +55 -6
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +64 -8
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18106.json +45 -7
- package/blueprints/application-charts/docs/topics.md +3 -3
- package/blueprints/application-charts/guide/application-charts.md +3 -3
- package/blueprints/application-charts/probe-packs/application-charts.pack.mjs +2 -2
- package/blueprints/application-dashboard/CHANGELOG.md +24 -3
- package/blueprints/application-dashboard/README.md +8 -8
- package/blueprints/application-dashboard/blueprint.json +147 -21
- package/blueprints/application-dashboard/contributions/adrs/adr-2001-application-dashboard-primary-kpi-enum.json +4 -4
- package/blueprints/application-dashboard/contributions/adrs/adr-2002-application-dashboard-timeframe-presets.json +1 -1
- package/blueprints/application-dashboard/contributions/adrs/adr-2003-application-dashboard-export-formats.json +1 -1
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-001.json +10 -3
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-002.json +11 -4
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-003.json +10 -3
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-004.json +11 -4
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-005.json +11 -4
- package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +1 -1
- package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +1 -1
- package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +1 -1
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19101.json +54 -6
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19102.json +54 -6
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19103.json +58 -6
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19104.json +55 -7
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19105.json +54 -6
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +60 -8
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19107.json +57 -9
- package/blueprints/application-dashboard/docs/topics.md +4 -4
- package/blueprints/application-dashboard/guide/application-dashboard.md +3 -3
- package/blueprints/application-dashboard/probe-packs/application-dashboard.pack.mjs +4 -4
- package/blueprints/application-datatable/CHANGELOG.md +23 -2
- package/blueprints/application-datatable/README.md +3 -3
- package/blueprints/application-datatable/blueprint.json +167 -25
- package/blueprints/application-datatable/contributions/adrs/adr-1801-application-datatable-pattern-choice.json +1 -1
- package/blueprints/application-datatable/contributions/adrs/adr-1802-application-datatable-url-state.json +1 -1
- package/blueprints/application-datatable/contributions/adrs/adr-1803-application-datatable-page-size.json +1 -1
- package/blueprints/application-datatable/contributions/adrs/adr-1804-application-datatable-selection-persistence.json +1 -1
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-001.json +11 -4
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-002.json +11 -4
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-003.json +10 -3
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-004.json +11 -4
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-005.json +10 -3
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-006.json +10 -3
- package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +1 -1
- package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +1 -1
- package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +2 -2
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +29 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +29 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +28 -6
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17104.json +65 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +32 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17106.json +60 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17107.json +72 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17108.json +59 -9
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17109.json +58 -9
- package/blueprints/application-datatable/docs/topics.md +2 -2
- package/blueprints/application-datatable/guide/application-datatable.md +1 -1
- package/blueprints/application-empty-error-states/CHANGELOG.md +33 -3
- package/blueprints/application-empty-error-states/README.md +3 -3
- package/blueprints/application-empty-error-states/blueprint.json +35 -1
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +4 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +7 -3
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +4 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +6 -2
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +7 -3
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-006.json +21 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-007.json +21 -0
- package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +7 -4
- package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +3 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +17 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +31 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +27 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +13 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +33 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +13 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +23 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +27 -2
- package/blueprints/application-empty-error-states/docs/topics.md +1 -1
- package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +93 -9
- package/blueprints/application-error-handling/CHANGELOG.md +17 -0
- package/blueprints/application-error-handling/blueprint.json +104 -19
- package/blueprints/application-error-handling/contributions/adrs/adr-1701-application-error-handling-record-shape.json +1 -1
- package/blueprints/application-error-handling/contributions/adrs/adr-1702-application-error-handling-classification-vocabulary.json +1 -1
- package/blueprints/application-error-handling/contributions/adrs/adr-1703-application-error-handling-transport-mapping.json +1 -1
- package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-001.json +10 -3
- package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-002.json +10 -3
- package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-003.json +10 -3
- package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-004.json +10 -3
- package/blueprints/application-error-handling/contributions/tacs/tac-1701-application-error-handling-boundary.json +1 -1
- package/blueprints/application-error-handling/contributions/tacs/tac-1702-application-error-handling-record-factory.json +1 -1
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16101.json +63 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16102.json +49 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16103.json +51 -5
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16104.json +49 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16105.json +49 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16106.json +49 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16107.json +53 -4
- package/blueprints/application-error-handling/docs/topics.md +1 -1
- package/blueprints/application-file-upload/CHANGELOG.md +36 -3
- package/blueprints/application-file-upload/README.md +1 -1
- package/blueprints/application-file-upload/blueprint.json +56 -1
- package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +3 -3
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +4 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +7 -3
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +6 -2
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +6 -2
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +4 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-006.json +21 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-007.json +21 -0
- package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +4 -2
- package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +7 -2
- package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +16 -6
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +23 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +29 -4
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +13 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +45 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +37 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +13 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +17 -2
- package/blueprints/application-file-upload/docs/topics.md +1 -1
- package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +14 -5
- package/blueprints/application-forms-wizard/CHANGELOG.md +34 -3
- package/blueprints/application-forms-wizard/README.md +2 -2
- package/blueprints/application-forms-wizard/blueprint.json +57 -1
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +4 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +6 -2
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +6 -2
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +6 -2
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +4 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-006.json +21 -0
- package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +6 -4
- package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +4 -3
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +35 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +27 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +21 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +13 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +33 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +18 -3
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +23 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +13 -2
- package/blueprints/application-forms-wizard/docs/topics.md +1 -1
- package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +3 -3
- package/blueprints/application-notifications-in-app/CHANGELOG.md +35 -3
- package/blueprints/application-notifications-in-app/README.md +5 -5
- package/blueprints/application-notifications-in-app/blueprint.json +150 -22
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +11 -4
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +8 -1
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +10 -3
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +11 -4
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +12 -5
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-006.json +21 -0
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +14 -8
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +2 -2
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +29 -5
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +43 -5
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +39 -5
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20104.json +31 -5
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +50 -8
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20106.json +19 -4
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20107.json +19 -4
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20108.json +19 -4
- package/blueprints/application-notifications-in-app/docs/topics.md +1 -1
- package/blueprints/application-notifications-in-app/guide/application-notifications-in-app.md +1 -1
- package/blueprints/application-notifications-in-app/probe-packs/application-notifications-in-app.pack.mjs +4 -4
- package/blueprints/application-onboarding-tour/CHANGELOG.md +33 -2
- package/blueprints/application-onboarding-tour/README.md +2 -2
- package/blueprints/application-onboarding-tour/blueprint.json +22 -2
- package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +4 -4
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +6 -2
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +6 -2
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +4 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +4 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-005.json +22 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-006.json +22 -0
- package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +2 -1
- package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +7 -7
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +67 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +35 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +13 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +33 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +13 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +13 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +17 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26108.json +62 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26109.json +72 -0
- package/blueprints/application-onboarding-tour/docs/topics.md +3 -3
- package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +1 -1
- package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +2 -2
- package/blueprints/application-spa/CHANGELOG.md +30 -0
- package/blueprints/application-spa/README.md +8 -8
- package/blueprints/application-spa/blueprint.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-201-application-spa-routing.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-202-application-spa-theming.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-203-application-spa-client-state.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-204-application-spa-error-envelope.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-205-application-spa-auth-model.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-207-application-spa-motion.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-208-application-spa-i18n.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-209-application-spa-telemetry-naming.json +1 -1
- package/blueprints/application-spa/contributions/requirements/application-spa-req-001.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-002.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-003.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-004.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-005.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-006.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-007.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-008.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-009.json +7 -3
- package/blueprints/application-spa/contributions/requirements/application-spa-req-010.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-011.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-012.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-013.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-014.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-015.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-016.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-017.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-018.json +7 -3
- package/blueprints/application-spa/contributions/requirements/application-spa-req-019.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-020.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-021.json +6 -2
- package/blueprints/application-spa/contributions/tacs/tac-201-application-spa-app-shell.json +4 -3
- package/blueprints/application-spa/contributions/tacs/tac-202-application-spa-theme-system.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-203-application-spa-component-library.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-204-application-spa-client-data-layer.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-205-application-spa-forms-engine.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-206-application-spa-telemetry.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +3 -3
- package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +2 -2
- package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +2 -2
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1101.json +22 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1102.json +18 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1103.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1104.json +15 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1105.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1106.json +12 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1107.json +25 -6
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1108.json +17 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1109.json +17 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1110.json +19 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1111.json +19 -11
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1112.json +15 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1113.json +15 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1114.json +15 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1115.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1116.json +15 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1117.json +20 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1118.json +9 -5
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1119.json +11 -6
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1120.json +16 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1121.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1122.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1123.json +28 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1124.json +11 -6
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1125.json +14 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1126.json +24 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1127.json +11 -6
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1128.json +11 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +25 -5
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +25 -5
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +19 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +40 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +35 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1134.json +23 -3
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1135.json +19 -3
- package/blueprints/application-spa/docs/topics.md +1 -1
- package/blueprints/application-spa/guide/application-spa.md +2 -2
- package/blueprints/delivery-ci-workflows/CHANGELOG.md +18 -0
- package/blueprints/delivery-ci-workflows/README.md +1 -1
- package/blueprints/delivery-ci-workflows/blueprint.json +62 -1
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-001.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-002.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-003.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-005.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-006.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-007.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-008.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-009.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-010.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-011.json +6 -2
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-012.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-013.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-014.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-015.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-016.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-017.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-018.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-019.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-020.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-021.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-022.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-023.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6101.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6102.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6103.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6104.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6105.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6106.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6107.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6108.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6109.json +12 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6110.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6111.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6112.json +35 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6113.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6114.json +8 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6115.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6116.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6117.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6118.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6119.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6120.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6121.json +23 -6
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6122.json +24 -7
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6123.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6124.json +19 -3
- package/blueprints/delivery-ci-workflows/docs/topics.md +1 -1
- package/blueprints/deploy-cloudflare-workers/CHANGELOG.md +17 -2
- package/blueprints/deploy-cloudflare-workers/README.md +2 -2
- package/blueprints/deploy-cloudflare-workers/blueprint.json +4 -4
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1303-deploy-cloudflare-workers-preview-vs-production.json +1 -1
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1306-deploy-cloudflare-workers-spa-shape.json +2 -2
- package/blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs +25 -7
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-001.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-002.json +6 -2
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-003.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-004.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-005.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-006.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-007.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-008.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-009.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-010.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-011.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-012.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +7 -3
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1301-deploy-cloudflare-workers-deploy-adapter.json +3 -2
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1302-deploy-cloudflare-workers-wrangler-manifest.json +5 -2
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12101.json +21 -9
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12102.json +23 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12103.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12104.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12105.json +11 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12106.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12107.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12108.json +15 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12109.json +11 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12110.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12111.json +11 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12112.json +11 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +41 -3
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +17 -2
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +18 -3
- package/blueprints/deploy-cloudflare-workers/docs/topics.md +1 -1
- package/blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md +7 -2
- package/blueprints/deploy-hetzner-server/CHANGELOG.md +39 -2
- package/blueprints/deploy-hetzner-server/README.md +12 -12
- package/blueprints/deploy-hetzner-server/blueprint.json +2 -2
- package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3801-deploy-hetzner-server-cloud-host-contract.json +2 -2
- package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3803-deploy-hetzner-server-provisioning-tool.json +2 -2
- package/blueprints/deploy-hetzner-server/contributions/probes/cloud-init-render-lint.mjs +12 -5
- package/blueprints/deploy-hetzner-server/contributions/probes/hcloud-dry-run-mock.mjs +68 -20
- package/blueprints/deploy-hetzner-server/contributions/probes/manifest-schema-validate.mjs +8 -6
- package/blueprints/deploy-hetzner-server/contributions/probes/probe-utils.mjs +7 -1
- package/blueprints/deploy-hetzner-server/contributions/probes/real-account-cloud-init-hardened.mjs +2 -1
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-001.json +6 -2
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-002.json +6 -2
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-003.json +5 -1
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-004.json +5 -1
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-005.json +6 -2
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-006.json +5 -1
- package/blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json +1 -1
- package/blueprints/deploy-hetzner-server/contributions/templates/cloud-init.yaml.tmpl +26 -6
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37101.json +63 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37102.json +35 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37103.json +59 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37104.json +31 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37105.json +25 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37106.json +35 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37107.json +31 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37108.json +43 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37109.json +31 -2
- package/blueprints/deploy-hetzner-server/docs/topics.md +3 -3
- package/blueprints/deploy-hetzner-server/guide/deploy-hetzner-server.md +12 -11
- package/blueprints/edge-cloudflare-access/CHANGELOG.md +35 -3
- package/blueprints/edge-cloudflare-access/README.md +2 -2
- package/blueprints/edge-cloudflare-access/blueprint.json +12 -2
- package/blueprints/edge-cloudflare-access/contributions/probes/real-account-gated-url.mjs +10 -2
- package/blueprints/edge-cloudflare-access/contributions/probes/wrangler-seam.mjs +1 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-001.json +5 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-002.json +5 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-003.json +5 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-004.json +6 -2
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-005.json +5 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-006.json +7 -3
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-007.json +22 -0
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34101.json +13 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34102.json +63 -2
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34103.json +18 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34104.json +36 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34105.json +13 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34106.json +9 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34107.json +68 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34108.json +5 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34109.json +10 -4
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34110.json +33 -0
- package/blueprints/edge-cloudflare-access/docs/topics.md +2 -2
- package/blueprints/edge-cloudflare-rate-limiting/CHANGELOG.md +35 -1
- package/blueprints/edge-cloudflare-rate-limiting/README.md +3 -3
- package/blueprints/edge-cloudflare-rate-limiting/blueprint.json +1 -1
- package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/real-account-burst-and-429.mjs +10 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-001.json +6 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-002.json +5 -1
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-003.json +5 -1
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-004.json +6 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-005.json +5 -1
- package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +2 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +2 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36101.json +27 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36102.json +9 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36103.json +24 -5
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36104.json +88 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36105.json +5 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36106.json +22 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36107.json +16 -5
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36108.json +14 -3
- package/blueprints/edge-cloudflare-rate-limiting/docs/topics.md +1 -1
- package/blueprints/edge-cloudflare-rate-limiting/guide/edge-cloudflare-rate-limiting.md +2 -2
- package/blueprints/edge-cloudflare-tunnel/CHANGELOG.md +49 -4
- package/blueprints/edge-cloudflare-tunnel/README.md +20 -21
- package/blueprints/edge-cloudflare-tunnel/blueprint.json +29 -4
- package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4001-edge-cloudflare-tunnel-ingress-bridge-contract.json +4 -4
- package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4002-edge-cloudflare-tunnel-connector-runtime.json +1 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/probes/manifest-schema-validate.mjs +7 -4
- package/blueprints/edge-cloudflare-tunnel/contributions/probes/probe-utils.mjs +13 -2
- package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-connector-healthy.mjs +109 -21
- package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-tunnel-hostname-routes.mjs +123 -30
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-001.json +6 -2
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-002.json +5 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-003.json +7 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-004.json +5 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-005.json +5 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-006.json +22 -0
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-007.json +22 -0
- package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +1 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4004-edge-cloudflare-tunnel-zone-and-hostname-apply.json +29 -0
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39101.json +39 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39102.json +23 -4
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39103.json +53 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39104.json +33 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39105.json +25 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39106.json +86 -2
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39107.json +25 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39108.json +35 -2
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39109.json +74 -0
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39110.json +60 -0
- package/blueprints/edge-cloudflare-tunnel/docs/topics.md +2 -2
- package/blueprints/edge-cloudflare-tunnel/guide/edge-cloudflare-tunnel.md +60 -13
- package/blueprints/edge-cloudflare-turnstile/CHANGELOG.md +33 -1
- package/blueprints/edge-cloudflare-turnstile/README.md +2 -2
- package/blueprints/edge-cloudflare-turnstile/blueprint.json +1 -1
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-001.json +6 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-002.json +5 -1
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-003.json +6 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-004.json +5 -1
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-005.json +5 -1
- package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +2 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +2 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35101.json +46 -5
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35102.json +53 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35103.json +81 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35104.json +29 -6
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35105.json +14 -4
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35106.json +9 -3
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35107.json +5 -3
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35108.json +5 -3
- package/blueprints/edge-cloudflare-turnstile/docs/topics.md +1 -1
- package/blueprints/edge-cloudflare-turnstile/probe-packs/edge-cloudflare-turnstile.pack.mjs +27 -5
- package/blueprints/email-smtp-resend/CHANGELOG.md +24 -0
- package/blueprints/email-smtp-resend/README.md +2 -2
- package/blueprints/email-smtp-resend/assets/stub-adapter.md +2 -0
- package/blueprints/email-smtp-resend/blueprint.json +119 -17
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-001.json +7 -3
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-002.json +4 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-003.json +4 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-004.json +4 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-005.json +4 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-006.json +4 -0
- package/blueprints/email-smtp-resend/contributions/tacs/tac-401-email-smtp-resend-send-adapter.json +3 -3
- package/blueprints/email-smtp-resend/contributions/tacs/tac-402-email-smtp-resend-webhook-verifier.json +7 -2
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4101.json +15 -8
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4102.json +27 -7
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4103.json +49 -4
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4104.json +6 -3
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4105.json +21 -5
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4106.json +27 -7
- package/blueprints/email-smtp-resend/docs/topics.md +1 -1
- package/blueprints/email-smtp-resend/guide/email-smtp-resend.md +2 -2
- package/blueprints/jobs-background/CHANGELOG.md +30 -6
- package/blueprints/jobs-background/README.md +8 -8
- package/blueprints/jobs-background/blueprint.json +55 -2
- package/blueprints/jobs-background/contributions/adrs/adr-3102-jobs-background-scheduler-mode.json +1 -1
- package/blueprints/jobs-background/contributions/adrs/adr-3103-jobs-background-requires-applied-capabilities.json +6 -6
- package/blueprints/jobs-background/contributions/probes/fake-clock-cron.mjs +1 -1
- package/blueprints/jobs-background/contributions/probes/probe-utils.mjs +4 -4
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +7 -3
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +7 -3
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +5 -1
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +5 -1
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +5 -1
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +5 -1
- package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +5 -5
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +20 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +44 -9
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +48 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +63 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +20 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +20 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +20 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +21 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +23 -6
- package/blueprints/jobs-background/docs/topics.md +3 -3
- package/blueprints/jobs-background/guide/jobs-background.md +6 -6
- package/blueprints/messaging-queue-cloudflare/CHANGELOG.md +41 -6
- package/blueprints/messaging-queue-cloudflare/README.md +6 -6
- package/blueprints/messaging-queue-cloudflare/blueprint.json +127 -19
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3001-messaging-queue-cloudflare-adapter.json +3 -3
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3002-messaging-queue-cloudflare-delivery-semantics.json +1 -1
- package/blueprints/messaging-queue-cloudflare/contributions/probes/real-account-concurrency-smoke.mjs +192 -37
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +5 -1
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +22 -4
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +23 -4
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +20 -3
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +29 -7
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +20 -3
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +25 -4
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +25 -3
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +28 -6
- package/blueprints/messaging-queue-cloudflare/docs/topics.md +3 -3
- package/blueprints/messaging-queue-cloudflare/guide/messaging-queue-cloudflare.md +7 -5
- package/blueprints/object-storage-s3/CHANGELOG.md +32 -4
- package/blueprints/object-storage-s3/README.md +16 -3
- package/blueprints/object-storage-s3/blueprint.json +162 -20
- package/blueprints/object-storage-s3/contributions/adrs/adr-2905-object-storage-s3-hetzner-object-storage-provider.json +30 -0
- package/blueprints/object-storage-s3/contributions/probes/hetzner-object-storage-round-trip.mjs +136 -0
- package/blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs +11 -0
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +5 -1
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-101.json +22 -0
- package/blueprints/object-storage-s3/contributions/tacs/tac-2904-object-storage-s3-hetzner-endpoint-helper.json +34 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +36 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +32 -5
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +42 -3
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +22 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +13 -5
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +10 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +12 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28110.json +42 -0
- package/blueprints/object-storage-s3/docs/topics.md +1 -1
- package/blueprints/object-storage-s3/guide/object-storage-s3.md +37 -1
- package/blueprints/observability-essentials/CHANGELOG.md +21 -0
- package/blueprints/observability-essentials/README.md +1 -1
- package/blueprints/observability-essentials/assets/probe-samples/probe-response-baseline.v2.json +17 -0
- package/blueprints/observability-essentials/blueprint.json +32 -1
- package/blueprints/observability-essentials/contributions/adrs/adr-801-observability-essentials-health-probes.json +1 -1
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-001.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-002.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-003.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-004.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-005.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-006.json +6 -2
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-007.json +7 -3
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-008.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-009.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-010.json +4 -0
- package/blueprints/observability-essentials/contributions/tacs/tac-802-observability-essentials-readiness-probe.json +6 -1
- package/blueprints/observability-essentials/contributions/tacs/tac-803-observability-essentials-status-page.json +1 -1
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7101.json +25 -7
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7102.json +9 -5
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7103.json +51 -6
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7104.json +7 -4
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7105.json +6 -3
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7106.json +37 -6
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7107.json +18 -11
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7108.json +6 -3
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7109.json +7 -4
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7110.json +8 -5
- package/blueprints/observability-essentials/docs/topics.md +2 -2
- package/blueprints/observability-essentials/guide/observability-essentials.md +1 -1
- package/blueprints/observability-logging/CHANGELOG.md +19 -4
- package/blueprints/observability-logging/README.md +1 -1
- package/blueprints/observability-logging/blueprint.json +76 -28
- package/blueprints/observability-logging/contributions/adrs/adr-1605-observability-logging-serialisation-refusal.json +25 -0
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-001.json +10 -3
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-002.json +8 -1
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-003.json +8 -1
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-004.json +8 -1
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-005.json +8 -1
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-006.json +16 -0
- package/blueprints/observability-logging/contributions/tacs/tac-1601-observability-logging-logger-factory.json +4 -4
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15101.json +62 -8
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15102.json +11 -6
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15103.json +37 -5
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15104.json +35 -4
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15105.json +24 -6
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15106.json +22 -4
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15107.json +34 -3
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15108.json +21 -3
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15109.json +71 -0
- package/blueprints/observability-logging/docs/topics.md +1 -1
- package/blueprints/observability-probe-endpoints/CHANGELOG.md +17 -0
- package/blueprints/observability-probe-endpoints/README.md +1 -1
- package/blueprints/observability-probe-endpoints/blueprint.json +40 -1
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-001.json +6 -2
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-002.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-003.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-004.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-005.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-006.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-007.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-008.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14101.json +30 -9
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14102.json +24 -6
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14103.json +6 -3
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14104.json +9 -6
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14105.json +49 -4
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14106.json +9 -6
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14107.json +12 -8
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14108.json +6 -3
- package/blueprints/observability-probe-endpoints/docs/topics.md +2 -2
- package/blueprints/observability-probe-endpoints/guide/observability-probe-endpoints.md +3 -6
- package/blueprints/persistence-data-d1/CHANGELOG.md +19 -0
- package/blueprints/persistence-data-d1/README.md +1 -1
- package/blueprints/persistence-data-d1/assets/batch-usage/batch-atomicity-example.md +2 -0
- package/blueprints/persistence-data-d1/assets/facade-shape/facade-module-shape.md +2 -0
- package/blueprints/persistence-data-d1/blueprint.json +106 -22
- package/blueprints/persistence-data-d1/contributions/adrs/adr-1404-persistence-data-d1-store-boundary.json +4 -4
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-001.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-002.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-003.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-004.json +7 -3
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-005.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-006.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-007.json +5 -1
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13101.json +35 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13102.json +25 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13103.json +11 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13104.json +13 -6
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13105.json +11 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13106.json +7 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13107.json +23 -3
- package/blueprints/persistence-data-d1/docs/topics.md +1 -1
- package/blueprints/persistence-data-postgres/CHANGELOG.md +18 -2
- package/blueprints/persistence-data-postgres/README.md +1 -1
- package/blueprints/persistence-data-postgres/blueprint.json +201 -23
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +1 -1
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +1 -1
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +6 -2
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +6 -2
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +5 -1
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +7 -3
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +6 -2
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +6 -2
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +7 -3
- package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +2 -2
- package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +5 -5
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +22 -4
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +118 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +26 -5
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +62 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +48 -3
- package/blueprints/persistence-data-postgres/docs/topics.md +1 -1
- package/blueprints/persistence-data-sqlite/CHANGELOG.md +14 -0
- package/blueprints/persistence-data-sqlite/blueprint.json +146 -30
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-001.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-002.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-003.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-004.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-005.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-006.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-007.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-008.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-009.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-010.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-011.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5101.json +35 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5102.json +7 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5103.json +19 -3
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5104.json +21 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5105.json +7 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5106.json +11 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5107.json +7 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5108.json +7 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5109.json +11 -8
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5110.json +23 -3
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5111.json +19 -3
- package/blueprints/persistence-data-sqlite/docs/topics.md +1 -1
- package/blueprints/persistence-data-sqlite/guide/persistence-data-sqlite.md +1 -1
- package/blueprints/platform-cloudflare-cron-triggers/CHANGELOG.md +40 -2
- package/blueprints/platform-cloudflare-cron-triggers/blueprint.json +78 -17
- package/blueprints/platform-cloudflare-cron-triggers/contributions/adrs/adr-3301-platform-cloudflare-cron-triggers-scheduled-trigger-contract.json +2 -2
- package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/real-account-scheduled-smoke.mjs +24 -3
- package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/skew-tolerance.mjs +1 -1
- package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-001.json +6 -2
- package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-002.json +5 -1
- package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-003.json +5 -1
- package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-004.json +6 -2
- package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3301-platform-cloudflare-cron-triggers-scheduled-handler.json +1 -1
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32101.json +86 -5
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32102.json +69 -5
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32103.json +51 -4
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32104.json +65 -4
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32105.json +68 -5
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32106.json +62 -3
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32107.json +56 -3
- package/blueprints/platform-cloudflare-cron-triggers/docs/topics.md +4 -4
- package/blueprints/platform-cloudflare-durable-objects/CHANGELOG.md +57 -2
- package/blueprints/platform-cloudflare-durable-objects/README.md +6 -6
- package/blueprints/platform-cloudflare-durable-objects/blueprint.json +3 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3401-platform-cloudflare-durable-objects-single-cell-contract.json +1 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3402-platform-cloudflare-durable-objects-websocket-hub-contract.json +1 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/namespace-facade-ready.mjs +3 -3
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/probe-utils.mjs +28 -14
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/real-account-storage-smoke.mjs +139 -27
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/sole-reader-scan.mjs +40 -39
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/storage-round-trip.mjs +26 -16
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/websocket-hub-broadcast.mjs +31 -34
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/wrangler-seam.mjs +11 -5
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-001.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-002.json +6 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-003.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-004.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-005.json +6 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-006.json +6 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-007.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-008.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33101.json +73 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33102.json +59 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33103.json +77 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33104.json +75 -6
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33105.json +73 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33106.json +49 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33107.json +45 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33108.json +84 -3
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33109.json +45 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33110.json +59 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33111.json +45 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33112.json +53 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33113.json +68 -5
- package/blueprints/platform-cloudflare-durable-objects/docs/topics.md +2 -2
- package/blueprints/platform-cloudflare-durable-objects/guide/platform-cloudflare-durable-objects.md +9 -9
- package/blueprints/platform-cloudflare-kv/CHANGELOG.md +83 -2
- package/blueprints/platform-cloudflare-kv/README.md +40 -14
- package/blueprints/platform-cloudflare-kv/blueprint.json +115 -20
- package/blueprints/platform-cloudflare-kv/contributions/adrs/adr-3201-platform-cloudflare-kv-key-value-store-contract.json +3 -3
- package/blueprints/platform-cloudflare-kv/contributions/probes/cache-aside-hit-then-miss.mjs +26 -26
- package/blueprints/platform-cloudflare-kv/contributions/probes/event-secrecy.mjs +49 -31
- package/blueprints/platform-cloudflare-kv/contributions/probes/facade-round-trip.mjs +58 -16
- package/blueprints/platform-cloudflare-kv/contributions/probes/list-with-prefix.mjs +6 -5
- package/blueprints/platform-cloudflare-kv/contributions/probes/real-account-eventual-consistency-smoke.mjs +165 -66
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-001.json +6 -2
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-002.json +5 -1
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-003.json +5 -1
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-004.json +6 -2
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-005.json +7 -3
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-006.json +22 -0
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-007.json +22 -0
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31101.json +59 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31102.json +45 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31103.json +73 -3
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31104.json +67 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31105.json +59 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31106.json +45 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31107.json +45 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31108.json +45 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31109.json +92 -0
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31110.json +88 -0
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31111.json +89 -0
- package/blueprints/platform-cloudflare-kv/docs/topics.md +2 -2
- package/blueprints/platform-cloudflare-kv/guide/platform-cloudflare-kv.md +2 -2
- package/blueprints/platform-docker-compose-host/CHANGELOG.md +37 -3
- package/blueprints/platform-docker-compose-host/README.md +7 -7
- package/blueprints/platform-docker-compose-host/blueprint.json +23 -6
- package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3901-platform-docker-compose-host-contract.json +3 -3
- package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3902-platform-docker-compose-host-reverse-proxy.json +4 -4
- package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3903-platform-docker-compose-host-reject-coolify.json +2 -2
- package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3904-platform-docker-compose-host-log-driver.json +2 -2
- package/blueprints/platform-docker-compose-host/contributions/probes/probe-utils.mjs +1 -1
- package/blueprints/platform-docker-compose-host/contributions/probes/real-account-minimal-stack-up.mjs +2 -3
- package/blueprints/platform-docker-compose-host/contributions/probes/real-account-reload-burst.mjs +1 -1
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-001.json +6 -2
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-002.json +5 -1
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-003.json +6 -2
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-004.json +5 -1
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-005.json +6 -2
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-006.json +6 -2
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-007.json +22 -0
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38101.json +73 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38102.json +67 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38103.json +59 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38104.json +75 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38105.json +49 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38106.json +45 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38107.json +49 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38108.json +49 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38109.json +57 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38110.json +92 -0
- package/blueprints/platform-docker-compose-host/docs/topics.md +4 -4
- package/blueprints/platform-docker-compose-host/guide/platform-docker-compose-host.md +6 -6
- package/blueprints/security-auth-clerk/CHANGELOG.md +24 -4
- package/blueprints/security-auth-clerk/README.md +1 -1
- package/blueprints/security-auth-clerk/blueprint.json +21 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-001.json +6 -2
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-002.json +5 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-003.json +6 -2
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-004.json +6 -2
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-005.json +5 -2
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-006.json +5 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-007.json +4 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-008.json +4 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-009.json +4 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-010.json +22 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-011.json +22 -0
- package/blueprints/security-auth-clerk/contributions/tacs/tac-1001-security-auth-clerk-middleware.json +14 -4
- package/blueprints/security-auth-clerk/contributions/tacs/tac-1003-security-auth-clerk-session-verifier.json +7 -1
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9101.json +6 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9102.json +19 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9103.json +6 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9104.json +6 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9105.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9106.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9107.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9108.json +13 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9109.json +8 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9110.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9111.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9112.json +102 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9113.json +103 -0
- package/blueprints/security-auth-clerk/docs/topics.md +1 -1
- package/blueprints/security-auth-keycloak/CHANGELOG.md +23 -4
- package/blueprints/security-auth-keycloak/README.md +1 -1
- package/blueprints/security-auth-keycloak/blueprint.json +101 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-001.json +5 -2
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-002.json +5 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-003.json +5 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-004.json +5 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-005.json +6 -2
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-006.json +6 -2
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-007.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-008.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-009.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-010.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-011.json +5 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-012.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-013.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-014.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-015.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-016.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-017.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-018.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-019.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1201-security-auth-keycloak-discovery-client.json +4 -2
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1202-security-auth-keycloak-jwt-verifier.json +8 -2
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1203-security-auth-keycloak-introspection-client.json +8 -2
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1204-security-auth-keycloak-provider-router.json +3 -1
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1205-security-auth-keycloak-role-adapter.json +2 -1
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11101.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11102.json +10 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11103.json +12 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11104.json +8 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11105.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11106.json +18 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11107.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11108.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11109.json +4 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11110.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11111.json +14 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11112.json +4 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11113.json +4 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11114.json +72 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11115.json +88 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11116.json +117 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11117.json +117 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11118.json +117 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11119.json +117 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11120.json +103 -0
- package/blueprints/security-auth-keycloak/docs/topics.md +1 -1
- package/blueprints/security-auth-keycloak/guide/security-auth-keycloak.md +1 -1
- package/blueprints/security-auth-magic-link/CHANGELOG.md +19 -3
- package/blueprints/security-auth-magic-link/README.md +1 -1
- package/blueprints/security-auth-magic-link/blueprint.json +1 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-001.json +4 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-002.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-003.json +6 -2
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-004.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-005.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-006.json +4 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-007.json +4 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-008.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-009.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-010.json +6 -2
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-011.json +6 -2
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3101.json +10 -5
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3102.json +8 -4
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3103.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3104.json +8 -4
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3105.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3106.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3107.json +8 -4
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3108.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3109.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3110.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3111.json +14 -3
- package/blueprints/security-auth-magic-link/docs/topics.md +1 -1
- package/blueprints/security-auth-magic-link/guide/security-auth-magic-link.md +1 -1
- package/blueprints/security-auth-oauth2/CHANGELOG.md +21 -4
- package/blueprints/security-auth-oauth2/README.md +1 -1
- package/blueprints/security-auth-oauth2/blueprint.json +33 -2
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-001.json +5 -2
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-002.json +5 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-003.json +5 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-004.json +4 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-005.json +5 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-006.json +6 -2
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-007.json +4 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-008.json +6 -2
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-009.json +5 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-010.json +4 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-011.json +22 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-012.json +22 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-013.json +22 -0
- package/blueprints/security-auth-oauth2/contributions/tacs/tac-1102-security-auth-oauth2-provider-adapter.json +2 -1
- package/blueprints/security-auth-oauth2/contributions/tacs/tac-1103-security-auth-oauth2-session-bridge.json +9 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10101.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10102.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10103.json +4 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10104.json +4 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10105.json +8 -4
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10106.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10107.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10108.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10109.json +4 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10110.json +4 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10111.json +17 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10112.json +82 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10113.json +68 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10114.json +88 -0
- package/blueprints/security-auth-oauth2/docs/topics.md +1 -1
- package/blueprints/security-secrets-management/CHANGELOG.md +14 -2
- package/blueprints/security-secrets-management/blueprint.json +168 -31
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-001.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-002.json +6 -2
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-003.json +6 -2
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-004.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-005.json +6 -2
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-006.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-007.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-008.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-009.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-010.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8101.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8102.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8103.json +4 -2
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8104.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8105.json +8 -4
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8106.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8107.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8108.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8109.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8110.json +6 -3
- package/blueprints/security-secrets-management/docs/topics.md +1 -1
- package/fixtures/canary-manifest.json +9 -9
- package/guidance/harness-template.md +67 -0
- package/guidance/managed/agent-instructions-block.hash +1 -1
- package/guidance/managed/agent-instructions-block.md +67 -0
- package/package.json +2 -2
- package/rcf/code-nodes/cn-500.json +12 -0
- package/rcf/code-nodes/cn-510.json +12 -0
- package/rcf/code-nodes/cn-520.json +14 -0
- package/rcf/code-nodes/cn-521.json +12 -0
- package/rcf/code-nodes/cn-522.json +13 -0
- package/rcf/code-nodes/cn-523.json +12 -0
- package/rcf/code-nodes/cn-524.json +14 -0
- package/rcf/code-nodes/cn-525.json +12 -0
- package/rcf/code-nodes/cn-526.json +14 -0
- package/rcf/fbs/fbs-160.json +15 -0
- package/rcf/fbs/fbs-165.json +15 -0
- package/rcf/fbs/fbs-170.json +16 -0
- package/rcf/fbs/fbs-171.json +16 -0
- package/rcf/fbs/fbs-172.json +15 -0
- package/rcf/fbs/fbs-173.json +17 -0
- package/rcf/fbs/fbs-174.json +17 -0
- package/rcf/requirements/req-140.json +149 -0
- package/rcf/requirements/req-145.json +53 -0
- package/rcf/requirements/req-150.json +20 -0
- package/rcf/requirements/req-151.json +85 -0
- package/rcf/requirements/req-152.json +20 -0
- package/rcf/requirements/req-153.json +59 -0
- package/rcf/requirements/req-154.json +44 -0
- package/rcf/test-suites/ts-050.json +1 -1
- package/rcf/test-suites/ts-052.json +1 -1
- package/rcf/test-suites/ts-053.json +2 -2
- package/rcf/test-suites/ts-054.json +2 -2
- package/rcf/test-suites/ts-055.json +2 -2
- package/rcf/test-suites/ts-056.json +4 -4
- package/rcf/test-suites/ts-057.json +2 -2
- package/rcf/test-suites/ts-071.json +2 -2
- package/rcf/test-suites/ts-086.json +2 -2
- package/rcf/test-suites/ts-170.json +22 -0
- package/rcf/test-suites/ts-175.json +22 -0
- package/rcf/test-suites/ts-180.json +30 -0
- package/rcf/test-suites/ts-181.json +30 -0
- package/rcf/test-suites/ts-182.json +22 -0
- package/rcf/test-suites/ts-183.json +38 -0
- package/rcf/test-suites/ts-184.json +38 -0
- package/rcf/user-stories/us-14001.json +21 -0
- package/rcf/user-stories/us-14501.json +24 -0
- package/rcf/user-stories/us-15001.json +26 -0
- package/rcf/user-stories/us-15101.json +26 -0
- package/rcf/user-stories/us-15201.json +21 -0
- package/rcf/user-stories/us-15301.json +31 -0
- package/rcf/user-stories/us-15401.json +31 -0
- package/rcf/user-stories/us-7701.json +3 -3
- package/releases/releases.yaml +21 -1
- package/src/blueprint/apply.js +64 -0
- package/src/blueprint/consistency-lint.js +432 -0
- package/src/blueprint/disposition-ledger.js +224 -0
- package/src/blueprint/dispositions.js +44 -0
- package/src/blueprint/index.js +19 -0
- package/src/browser-verify/manifest-writer.js +53 -2
- package/src/browser-verify/pack-runner.js +18 -0
- package/src/cli/blueprint.js +103 -0
- package/src/cli/view.js +22 -11
- package/src/setup/identity-seed.js +18 -0
|
@@ -1,15 +1,50 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.1.2 - 2026-09-10
|
|
4
|
+
|
|
5
|
+
Register cleanup on shipped prose: neutral wording in the README six-probes paragraph, which now describes the probe module envelope directly. Guide `publishBatch` sample updated: the `x-trace-id` example values are now `trace-order-1001` and `trace-order-1002`, and a one-line pointer follows the sample to the owner at `TAC-3001.interfaces[2].description`. Anatomy pin updated to 1.1.2. Chain-consistency lint zero on pass 1 and pass 2. Closes criterion-f finding 1 for messaging-queue-cloudflare; finding 2 was verified as not a defect (the flagged tokens were `x-trace-id` header values in the sample rather than register labels, and the sample now uses order-scoped example values that remove the ambiguity).
|
|
6
|
+
|
|
7
|
+
## 1.1.1 (register-sweep patch, 2026-09-10)
|
|
8
|
+
|
|
9
|
+
- Register: neutral wording in shipped prose (no capability change).
|
|
10
|
+
|
|
11
|
+
## 1.1.0 - 2026-09-09
|
|
12
|
+
|
|
13
|
+
Adds the elicits block (queue-binding-name, queue-name, max-attempts, dead-letter-queue, batch-size, batch-timeout-seconds) that the REQs and guide were already describing in prose. Adds deliveredBy on REQ-002 and REQ-006. Closes chain-contradiction specimens F-2 (retry count off by one: REQ-004 and AC-29104-1 now name maxDeliveries and map to the vendor max_retries as maxDeliveries - 1; new AC-29104-2 asserts the maxDeliveries=1 boundary case), F-3 (REQ-006 and AC-29106-1 standardise on ts as the wall-clock milliseconds-since-epoch field name, aligning with TAC-3001, TAC-3003 and the guide), F-6 (REQ-002 replaces the "idempotent" label with an explicit at-least-once semantics naming ADR-3002 as the ratified delivery decision). Adds disposition to every AC.
|
|
14
|
+
|
|
1
15
|
# messaging-queue-cloudflare changelog
|
|
2
16
|
|
|
17
|
+
## 1.0.2 - 2026-09-08
|
|
18
|
+
|
|
19
|
+
The review-train follow-up (addendum item 6 fixture defect): the real-account queue probe now self-provisions its own throwaway Queue + consumer Worker + telemetry KV namespace, closing the second-tier undeclared-env skip the operator estate hit at the real-account gate on 2026-09-08 (`REAL RUN: PARTIAL`, `MERGE DECISION: HOLD`). No shipped-code capability change.
|
|
20
|
+
|
|
21
|
+
- `real-account-concurrency-smoke.mjs` rewritten against a new self-provisioning fixture shim at `packages/rcf-lite/test/fixtures/cf-platform/h2-cf-queue-real-account-shim.mjs`. AC-29108-2 requires a real consumer to process the published messages ("the consumer processes them concurrently up to the documented 250-invocation cap"), so the shim mints a scratch Cloudflare Queue under `h2-cf-probe-integrity-scratch-q-`, a scratch KV namespace for consumer telemetry under `h2-cf-probe-integrity-scratch-kv-tel-`, and a throwaway consumer Worker under `h2-cf-probe-integrity-scratch-w-` bound to the queue (consumer) with `RCF_TEST_QUEUE` (shipped queue producer binding name matching `packages/rcf-lite/test/fixtures/infra-s3-and-queue/wrangler.toml`) + `RCF_TEST_TELEMETRY_KV` bindings. NO workers.dev subdomain is enabled (operator ruling): the consumer is invoked BY THE QUEUE, not over HTTP; the driver publishes via the Cloudflare Queues REST publish endpoint and reads consumer telemetry via the KV REST list + get endpoints. The consumer Worker's source is a plain module (`h2-cf-queue-consumer-worker.mjs`); its `queue()` handler records one telemetry entry per invocation (start / end timestamps + batchSize) to the bound telemetry KV namespace; the driver computes `maxConcurrent` from an interval-overlap analysis on those timestamps.
|
|
22
|
+
- Declared env for a real-account run is now `CI_HAS_CLOUDFLARE_ACCOUNT` + `CF_ACCOUNT_ID` + `CF_API_TOKEN` (optional `CF_API_BASE_URL` test override; optional `CF_QUEUE_MESSAGE_COUNT` per section 3.5). The `CF_QUEUE_WORKER_URL` and `CF_QUEUE_NAME` second-tier gates are removed; the fixture provides them itself. Every skip-causing env var enumerated in `report.extra.envDeclared` on the probe result and mirrored in the shim's `DECLARED_ENV` export.
|
|
23
|
+
- Teardown deletes the consumer Worker first (so the queue has no active consumer at delete time), then the Queue, then the telemetry KV namespace, all by EXACT id / EXACT name against the mint record with three independent prefix guards per resource. `workerDelete` and `queueDelete` are idempotent on 404 (operator ruling items 3+4): a botched-retry teardown treats an already-gone resource as success rather than stranding siblings.
|
|
24
|
+
- Separate crash-recovery `sweepOrphans` code path filters over the account by the frozen throwaway prefix constants and deletes each match by exact identity; the sweep is structurally unable to select a non-prefixed name. All account listings paginate to completion (operator ruling item 5): KV namespaces + Queues use the documented `per_page` + `page` loop, Workers scripts use the cursor loop, so `sweepOrphans` is not silently truncated to page one on a busy account. Dedicated sweep-safety test at `packages/rcf-lite/test/fixtures/cf-platform/test/h2-cf-sweep-safety.test.mjs` seeds the mock account with the ten live production Worker script names on the operator account plus mid-string-prefix decoys AND a 250-per-type multi-page cover, and asserts sweep selects zero of them.
|
|
25
|
+
- Queue consumer-attach body sends `type: "worker"` (operator ruling item 1: survives CF schema tightening on the discriminated attach union) and omits `dead_letter_queue` entirely rather than sending an explicit `null` (item 2).
|
|
26
|
+
- Local proof harness (`packages/rcf-lite/test/fixtures/cf-platform/test/mock-cf-api-server.mjs`) is a zero-dep in-process mock of the Cloudflare REST contract, not the wire. **The local run exercises OUR lifecycle logic against a mock of Cloudflare's contract; the real-account gate is the only surface that proves the wire format.** The probe is therefore never described as "locally verified" - the local runs are our own lifecycle-logic proof; wire correctness is proven at the operator estate real-account gate.
|
|
27
|
+
|
|
28
|
+
## 1.0.1 - 2026-09-08
|
|
29
|
+
|
|
30
|
+
The review-train hardening pass (`h2-cf-platform-probe-integrity`): probe-integrity patch. No capability change.
|
|
31
|
+
|
|
32
|
+
- Replaced the `accountBoundSkipped: true` pass-stub in `real-account-concurrency-smoke.mjs` with a real 500-message concurrency driver against a live Queues binding on a deployed Worker. When `CI_HAS_CLOUDFLARE_ACCOUNT` is set with `CF_QUEUE_WORKER_URL` and `CF_QUEUE_NAME`, the driver publishes 500 messages through the producer facade in 10 concurrent 50-message batches, polls consumer telemetry via `/stats`, and asserts `drained`, `withinCap` and `observedConcurrency > 1` against Cloudflare's documented push-invocation cap (250). The env-absent branch keeps the pass-with-skip shape. Locally proven against `wrangler dev --local` end-to-end (500/500 messages in 583 ms; local queue serialises so the concurrency assertion FAIL tail is the expected local-proof outcome; on real Cloudflare push consumers the assertion passes at the operator estate gate time).
|
|
33
|
+
- Re-verified the Cloudflare Queues limits URL (`https://developers.cloudflare.com/queues/platform/limits/`) returns `HTTP/2 200`; recorded in the review-train PR provenance (2026-09-08T13:38:07Z).
|
|
34
|
+
- Extended the fixture Worker at `packages/rcf-lite/test/fixtures/infra-s3-and-queue/src/worker.mjs` with consumer telemetry and `/publish-batch`, `/stats` and `/reset` endpoints; added `wrangler ^4.0.0` as devDep on the fixture package.
|
|
35
|
+
|
|
3
36
|
## 1.0.0 - 2026-09-06
|
|
4
37
|
|
|
5
|
-
Initial release. Directed producer-to-consumer worklist queue on Cloudflare Queues; first shipped adapter with the reserved `messaging-queue-postgres` sibling (
|
|
38
|
+
Initial release. Directed producer-to-consumer worklist queue on Cloudflare Queues; first shipped adapter with the reserved `messaging-queue-postgres` sibling (maintainer decision) named beside it in the section 6a capability table. Accessed through a producer facade that is the sole reader of the Cloudflare Queues binding (`env.RCF_TEST_QUEUE` in the fixture). Landed via the infra round 5 spec (ratified 2026-09-06) as the queue-adapter track.
|
|
6
39
|
|
|
7
40
|
- 21 contributions: 6 REQs on producer facade sole-reader / publish-consume-ack / retry / dead-letter / batch / lifecycle events; 8 USs at 29101-29108; 3 TACs (3001 producer facade, 3002 consumer registration, 3003 event sink); 4 ADRs (3001 adapter Cloudflare Queues shipped, 3002 `deliverySemantics` scope global at-least-once, 3003 max_retries default 3 floor 1 ceiling 100, 3004 batch size default 10 batch timeout default 5 seconds).
|
|
8
41
|
- Five Node-only probes under `contributions/probes/` proven against the wrangler-dev-equivalent seam (in-memory queue driver realising the Cloudflare Queues binding shape per SDR-3-a on US-29107): `producer-facade-ready`, `publish-to-delivery`, `retry-and-dlq`, `event-secrecy`, and the accountBound `real-account-concurrency-smoke`. The real-account smoke records `accountBoundSkipped: true` when `CI_HAS_CLOUDFLARE_ACCOUNT` is unset per spec section 3.5.
|
|
9
|
-
-
|
|
10
|
-
- Declares `capabilities: ["queue"]`, `suggestedCompanions: [{role: "logging"}, {role: "errorHandling"}]`, `providesRoles` absent, `requiresAppliedCapabilities` absent. Composes on `deploy-cloudflare-workers` transitively via the wrangler binding (not through the capability mechanism), so `jobs-background` reads the `queue` capability at apply time via the
|
|
42
|
+
- The messaging-queue-cloudflare slice of the shared sample-app fixture at `packages/rcf-lite/test/fixtures/infra-s3-and-queue/` adds a `wrangler.toml` declaring the queue binding (`RCF_TEST_QUEUE`), DLQ binding (`RCF_TEST_DLQ`), `dead_letter_queue = "rcf-test-dlq"`, `max_retries = 3`, `max_batch_size = 10`, `max_batch_timeout = 5`; plus `src/queue-driver.mjs`, `src/producer.mjs`, `src/consumer.mjs`, `src/dlq-inspector.mjs`, `src/event-sink.mjs`. Three wired induced-failure switches (`SIMULATE_CONSUMER_RETRY`, `SIMULATE_DLQ_OVERFLOW`, `SIMULATE_PII_IN_BODY`) drive the negative-run paths.
|
|
43
|
+
- Declares `capabilities: ["queue"]`, `suggestedCompanions: [{role: "logging"}, {role: "errorHandling"}]`, `providesRoles` absent, `requiresAppliedCapabilities` absent. Composes on `deploy-cloudflare-workers` transitively via the wrangler binding (not through the capability mechanism), so `jobs-background` reads the `queue` capability at apply time via the capability-consumer mechanism from the visual round.
|
|
11
44
|
- Contributes ADR-3002 as `scope: global` on new topic `deliverySemantics`. Future exactly-once, at-most-once or `messaging-queue-postgres` siblings conflict here by design.
|
|
12
|
-
- Every ADR contribution entry on `blueprint.json` carries a `standardsTraceClause` per section 8a.2 (mandatory per
|
|
13
|
-
- Extends `packages/rcf-lite/docs/blueprint-authoring.md` section 6a capability-declaration table with one row for `queue` naming the reserved `messaging-queue-postgres` sibling per
|
|
45
|
+
- Every ADR contribution entry on `blueprint.json` carries a `standardsTraceClause` per section 8a.2 (mandatory per the operator estate mid-flight ruling after PR #154 gate).
|
|
46
|
+
- Extends `packages/rcf-lite/docs/blueprint-authoring.md` section 6a capability-declaration table with one row for `queue` naming the reserved `messaging-queue-postgres` sibling per maintainer decision and spec section 5.6.
|
|
14
47
|
- The Miniflare Queues sub-page under the workers testing miniflare storage tree is NOT cited: the ratified round-5 spec's status block records it returning 404 on 2026-09-06. The Cloudflare Queues local-development page (`https://developers.cloudflare.com/queues/configuration/local-development/`) is the sole citation for the local seam.
|
|
15
|
-
- Lifecycle event whitelist reuses
|
|
48
|
+
- Lifecycle event whitelist reuses the object-storage-s3 blueprint's `{event, ts, ...}` common envelope prefix (per PR #157 gate reviewer note 2026-09-06) so a future v1.1 minor can promote one shared shape to schema enforcement.
|
|
49
|
+
|
|
50
|
+
Review-fix (2026-09-09): Adds deliveredBy on REQ-003 and REQ-004. Sweeps vendorCitation onto fixed ACs resting on vendor facts (AC-29107-2, AC-29108-2).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# messaging-queue-cloudflare
|
|
2
2
|
|
|
3
|
-
A directed producer-to-consumer worklist queue on Cloudflare Queues, accessed through a producer facade that is the sole reader of the Queues binding. Cloudflare Queues is the first adapter (queue binding under wrangler config, consumer registered on the Worker `queue` handler); the reserved `messaging-queue-postgres` sibling (
|
|
3
|
+
A directed producer-to-consumer worklist queue on Cloudflare Queues, accessed through a producer facade that is the sole reader of the Queues binding. Cloudflare Queues is the first adapter (queue binding under wrangler config, consumer registered on the Worker `queue` handler); the reserved `messaging-queue-postgres` sibling (maintainer decision) mints on demand. Ships publish, consume, ack, retry, and DLQ; four lifecycle events (`producerReady`, `messagePublished`, `messageAcked`, `messageDeadLettered`) with a metadata-only field discipline. Composes on `deploy-cloudflare-workers` transitively via the wrangler binding, not through the capability mechanism, so `capabilities: ["queue"]` is what `jobs-background` reads to obtain the producer facade at apply time; no `requiresAppliedCapabilities` block ships at v1.0.0.
|
|
4
4
|
|
|
5
5
|
## What this blueprint gives you
|
|
6
6
|
|
|
@@ -44,15 +44,15 @@ Queue name (or binding name in a Workers deploy); `max_retries` before DLQ (defa
|
|
|
44
44
|
|
|
45
45
|
## Composition and conflicts
|
|
46
46
|
|
|
47
|
-
Composes on `deploy-cloudflare-workers` transitively via the wrangler binding (not through the capability mechanism), so no `requiresAppliedCapabilities` block ships at v1.0.0. Contributes ADR-3002 as `scope: global` on new topic `deliverySemantics`; a future `messaging-queue-postgres` sibling (
|
|
47
|
+
Composes on `deploy-cloudflare-workers` transitively via the wrangler binding (not through the capability mechanism), so no `requiresAppliedCapabilities` block ships at v1.0.0. Contributes ADR-3002 as `scope: global` on new topic `deliverySemantics`; a future `messaging-queue-postgres` sibling (maintainer decision, deferred v1.0.0 pending demand) or an exactly-once / at-most-once sibling would conflict here by design. `capabilities: ["queue"]`; `providesRoles: []`.
|
|
48
48
|
|
|
49
49
|
## Reserved sibling
|
|
50
50
|
|
|
51
|
-
`messaging-queue-postgres` (
|
|
51
|
+
`messaging-queue-postgres` (maintainer decision). Reserved slug beside the `queue` capability row in `packages/rcf-lite/docs/blueprint-authoring.md` section 6a. When demand mints it, the sibling composes on `persistence-data-postgres` as its transport and conflicts by design on `deliverySemantics` with this blueprint; the operator picks one queue backend per project via a project-level ADR.
|
|
52
52
|
|
|
53
53
|
## The six probes
|
|
54
54
|
|
|
55
|
-
Each probe is a Node module under `contributions/probes/` exporting the
|
|
55
|
+
Each probe is a Node module under `contributions/probes/` exporting the shipped verdict envelope, with a matching `run-<probe-name>.mjs` shim that drives the probe against the shared fixture's slice and writes the per-blueprint report at `.rcf/reports/blueprints/messaging-queue-cloudflare/<probe-name>.json`.
|
|
56
56
|
|
|
57
57
|
| Probe | Anchor AC | What it proves | accountBound |
|
|
58
58
|
|---|---|---|---|
|
|
@@ -60,7 +60,7 @@ Each probe is a Node module under `contributions/probes/` exporting the round-5
|
|
|
60
60
|
| `publish-to-delivery` | AC-29102-1, AC-29102-2, AC-29105-1, AC-29108-1 | 5 messages round-trip body byte-equal with stable message-ids and producer-supplied trace-ids preserved; per-message ack; wrangler-dev-equivalent seam. | false |
|
|
61
61
|
| `retry-and-dlq` | AC-29103-1, AC-29104-1 | Consumer returning `retry` observes same stable message-id with attempts 1..max_retries; DLQ landing fires `messageDeadLettered` at `max_retries + 1`; DLQ contents body byte-equal via the DLQ inspector helper. | false |
|
|
62
62
|
| `event-secrecy` | AC-29106-1 | Every event record carries only the whitelist (event, ts, messageId, queueName, attempts); no PII fixture text on JSON grep. | false |
|
|
63
|
-
| `real-account-concurrency-smoke` | AC-29108-2 |
|
|
63
|
+
| `real-account-concurrency-smoke` | AC-29108-2 | Self-provisioning (v1.0.2): the fixture shim (`packages/rcf-lite/test/fixtures/cf-platform/h2-cf-queue-real-account-shim.mjs`) mints a scratch Cloudflare Queue under the CI scratch prefix `h2-cf-probe-integrity-scratch-q-`, a scratch KV namespace for consumer telemetry under `h2-cf-probe-integrity-scratch-kv-tel-`, and a throwaway consumer Worker under `h2-cf-probe-integrity-scratch-w-` bound to the queue (consumer) with `RCF_TEST_QUEUE` (shipped queue binding name) + `RCF_TEST_TELEMETRY_KV` bindings. The Worker has NO fetch surface and NO workers.dev subdomain is enabled (operator ruling): the consumer is invoked BY THE QUEUE, not over HTTP. Driver publishes 500 messages in 10 concurrent 50-message batches via the Cloudflare Queues REST publish endpoint, polls the telemetry KV namespace via the KV REST list + get endpoints until drained, and asserts `totalConsumed === published` and `1 < maxConcurrent <= 250` per https://developers.cloudflare.com/queues/platform/limits/. Teardown deletes Worker, Queue and telemetry KV namespace on exit; the shim's separate `sweepOrphans` path lists over the account with full pagination (operator ruling item 5) and deletes any prefixed residue after a mid-run crash. **The local proof exercises OUR lifecycle logic against a mock of Cloudflare's contract; the real-account gate is the only surface that proves the wire format.** Without `CI_HAS_CLOUDFLARE_ACCOUNT` records `accountBoundSkipped: true`. | true |
|
|
64
64
|
|
|
65
65
|
## Anatomy
|
|
66
66
|
|
|
@@ -111,7 +111,7 @@ Two live paths are unproven at v1.0.0 and are recorded per AC below so the gate
|
|
|
111
111
|
- **AC-29105-1** (batch consume: 5 messages in one batch, per-message ack semantics under `max_batch_size = 10`): proven against the in-memory realisation of the binding shape (probe `publish-to-delivery`, verdict pass); live Queues `max_batch_size` / `max_batch_timeout` behaviour on the [[queues.consumers]] block unproven pending a reviewer `wrangler dev` run or the accountBound smoke.
|
|
112
112
|
- **AC-29106-1** (metadata-only event whitelist; no PII body / header value / consumer context leaks): proven end-to-end against the in-memory realisation (probe `event-secrecy`, verdict pass; the whitelist is code-enforced in `src/event-sink.mjs`, independent of transport); live-Queues run does not change the sink code path, so this AC has no live-only gap.
|
|
113
113
|
- **AC-29108-1** (wrangler-dev-equivalent seam round-trip): proven end-to-end against the in-memory realisation of the binding shape (probe `publish-to-delivery`, verdict pass); a live `wrangler dev` process was not driven in this pass. Rationale: SDR-3-a on US-29107 makes the wrangler-dev-equivalent seam the shipped local seam because Cloudflare Queues does not support consumer concurrency under `wrangler dev` and does not support `wrangler dev --remote` per the local-development doc, so a live-wrangler run adds observability (a real process on port 8787) but does not add facade-contract certainty over the in-memory realisation. The gate reviewer drives one live `wrangler dev` run in their own scratch to close the observability gap.
|
|
114
|
-
- **AC-29108-2** (real-account concurrency smoke: 500 messages, consumer concurrency up to 250):
|
|
114
|
+
- **AC-29108-2** (real-account concurrency smoke: 500 messages, consumer concurrency up to 250): as of v1.0.2 the probe SELF-PROVISIONS the throwaway Queue + consumer Worker + telemetry KV namespace under the CI scratch prefixes and requires no hand-provisioned CI infrastructure . Declared env for a live run: `CI_HAS_CLOUDFLARE_ACCOUNT` + `CF_ACCOUNT_ID` + `CF_API_TOKEN`. Without `CI_HAS_CLOUDFLARE_ACCOUNT` the probe records `accountBoundSkipped: true` per spec section 3.5 and the per-blueprint report carries `aggregateVerdict: pass` on the skipped shape. **The local proof harness under `packages/rcf-lite/test/fixtures/cf-platform/test/` is a mock of Cloudflare's REST contract, not the wire; the local runs exercise OUR lifecycle logic against that mock, and the real-account gate is the only surface that proves the wire format.**
|
|
115
115
|
|
|
116
116
|
## Other limitations (not mechanism-reach gaps)
|
|
117
117
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"slug": "messaging-queue-cloudflare",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"category": "messaging",
|
|
5
|
-
"capabilities": [
|
|
5
|
+
"capabilities": [
|
|
6
|
+
"queue"
|
|
7
|
+
],
|
|
6
8
|
"suggestedCompanions": [
|
|
7
9
|
{
|
|
8
10
|
"role": "logging",
|
|
@@ -14,23 +16,91 @@
|
|
|
14
16
|
}
|
|
15
17
|
],
|
|
16
18
|
"contributions": [
|
|
17
|
-
{
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
{
|
|
33
|
-
|
|
19
|
+
{
|
|
20
|
+
"id": "messaging-queue-cloudflare-REQ-001",
|
|
21
|
+
"kind": "req",
|
|
22
|
+
"path": "requirements/messaging-queue-cloudflare-req-001.json"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "messaging-queue-cloudflare-REQ-002",
|
|
26
|
+
"kind": "req",
|
|
27
|
+
"path": "requirements/messaging-queue-cloudflare-req-002.json"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "messaging-queue-cloudflare-REQ-003",
|
|
31
|
+
"kind": "req",
|
|
32
|
+
"path": "requirements/messaging-queue-cloudflare-req-003.json"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "messaging-queue-cloudflare-REQ-004",
|
|
36
|
+
"kind": "req",
|
|
37
|
+
"path": "requirements/messaging-queue-cloudflare-req-004.json"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "messaging-queue-cloudflare-REQ-005",
|
|
41
|
+
"kind": "req",
|
|
42
|
+
"path": "requirements/messaging-queue-cloudflare-req-005.json"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "messaging-queue-cloudflare-REQ-006",
|
|
46
|
+
"kind": "req",
|
|
47
|
+
"path": "requirements/messaging-queue-cloudflare-req-006.json"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "messaging-queue-cloudflare-US-29101",
|
|
51
|
+
"kind": "us",
|
|
52
|
+
"path": "user-stories/messaging-queue-cloudflare-us-29101.json"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "messaging-queue-cloudflare-US-29102",
|
|
56
|
+
"kind": "us",
|
|
57
|
+
"path": "user-stories/messaging-queue-cloudflare-us-29102.json"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "messaging-queue-cloudflare-US-29103",
|
|
61
|
+
"kind": "us",
|
|
62
|
+
"path": "user-stories/messaging-queue-cloudflare-us-29103.json"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "messaging-queue-cloudflare-US-29104",
|
|
66
|
+
"kind": "us",
|
|
67
|
+
"path": "user-stories/messaging-queue-cloudflare-us-29104.json"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "messaging-queue-cloudflare-US-29105",
|
|
71
|
+
"kind": "us",
|
|
72
|
+
"path": "user-stories/messaging-queue-cloudflare-us-29105.json"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "messaging-queue-cloudflare-US-29106",
|
|
76
|
+
"kind": "us",
|
|
77
|
+
"path": "user-stories/messaging-queue-cloudflare-us-29106.json"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "messaging-queue-cloudflare-US-29107",
|
|
81
|
+
"kind": "us",
|
|
82
|
+
"path": "user-stories/messaging-queue-cloudflare-us-29107.json"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "messaging-queue-cloudflare-US-29108",
|
|
86
|
+
"kind": "us",
|
|
87
|
+
"path": "user-stories/messaging-queue-cloudflare-us-29108.json"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "TAC-3001-messaging-queue-cloudflare-producer-facade",
|
|
91
|
+
"kind": "tac",
|
|
92
|
+
"path": "tacs/tac-3001-messaging-queue-cloudflare-producer-facade.json"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "TAC-3002-messaging-queue-cloudflare-consumer-registration",
|
|
96
|
+
"kind": "tac",
|
|
97
|
+
"path": "tacs/tac-3002-messaging-queue-cloudflare-consumer-registration.json"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "TAC-3003-messaging-queue-cloudflare-event-sink",
|
|
101
|
+
"kind": "tac",
|
|
102
|
+
"path": "tacs/tac-3003-messaging-queue-cloudflare-event-sink.json"
|
|
103
|
+
},
|
|
34
104
|
{
|
|
35
105
|
"id": "ADR-3001-messaging-queue-cloudflare-adapter",
|
|
36
106
|
"kind": "adr",
|
|
@@ -63,5 +133,43 @@
|
|
|
63
133
|
"elicited": true,
|
|
64
134
|
"standardsTraceClause": "Cloudflare Queues per-consumer batch settings"
|
|
65
135
|
}
|
|
136
|
+
],
|
|
137
|
+
"elicits": [
|
|
138
|
+
{
|
|
139
|
+
"id": "queue-binding-name",
|
|
140
|
+
"prompt": "The Queues binding name declared under wrangler.toml [[queues.producers]] and [[queues.consumers]]. The producer facade reads env under this name at boot.",
|
|
141
|
+
"kind": "string",
|
|
142
|
+
"default": "RCF_TEST_QUEUE"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "queue-name",
|
|
146
|
+
"prompt": "The Cloudflare Queues queue name the binding resolves to. The applied project asserts a real account queue at apply.",
|
|
147
|
+
"kind": "string",
|
|
148
|
+
"default": "app-queue"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "max-attempts",
|
|
152
|
+
"prompt": "Max delivery attempts per ADR-3003 before a message crosses into the DLQ. Default 3 per the Cloudflare Queues documented default; floor 1; ceiling 100 per the Queues platform-limits page.",
|
|
153
|
+
"kind": "string",
|
|
154
|
+
"default": "3"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "dead-letter-queue",
|
|
158
|
+
"prompt": "Dead-letter queue name attached under [[queues.consumers]].dead_letter_queue for the consumer. A dead-lettered message is stamped messageDeadLettered on the lifecycle sink; retention is 4 days per ADR-3003.",
|
|
159
|
+
"kind": "string",
|
|
160
|
+
"default": "app-queue-dlq"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "batch-size",
|
|
164
|
+
"prompt": "max_batch_size for the consumer. Default 10 per ADR-3004; bounded above by 100 per the Cloudflare Queues platform-limits page.",
|
|
165
|
+
"kind": "string",
|
|
166
|
+
"default": "10"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": "batch-timeout-seconds",
|
|
170
|
+
"prompt": "max_batch_timeout seconds for the consumer. Default 5 per ADR-3004; bounded above by 60 per the Cloudflare Queues platform-limits page.",
|
|
171
|
+
"kind": "string",
|
|
172
|
+
"default": "5"
|
|
173
|
+
}
|
|
66
174
|
]
|
|
67
175
|
}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
"version": "1.0.0",
|
|
6
6
|
"status": "accepted",
|
|
7
7
|
"title": "Adapter: Cloudflare Queues as the shipped v1.0.0 first adapter",
|
|
8
|
-
"context": "A project deploying a directed producer-to-consumer worklist queue on Cloudflare Workers has one native shipped answer today: Cloudflare Queues. The Queues surface is bound through wrangler configuration (a [[queues.producers]] block for the producer facade to publish through, a [[queues.consumers]] block for the Worker queue handler to consume from), and the shipped Worker runtime binds env.<binding> to a Queues object with send / sendBatch on the producer side and a batch envelope with ack / retry on the consumer side per https://developers.cloudflare.com/queues/configuration/javascript-apis/. The v1.0.0 facade must hold the adapter reference opaque at the facade boundary so a future non-Cloudflare adapter (an SQS shim, the reserved messaging-queue-postgres sibling per
|
|
8
|
+
"context": "A project deploying a directed producer-to-consumer worklist queue on Cloudflare Workers has one native shipped answer today: Cloudflare Queues. The Queues surface is bound through wrangler configuration (a [[queues.producers]] block for the producer facade to publish through, a [[queues.consumers]] block for the Worker queue handler to consume from), and the shipped Worker runtime binds env.<binding> to a Queues object with send / sendBatch on the producer side and a batch envelope with ack / retry on the consumer side per https://developers.cloudflare.com/queues/configuration/javascript-apis/. The v1.0.0 facade must hold the adapter reference opaque at the facade boundary so a future non-Cloudflare adapter (an SQS shim, the reserved messaging-queue-postgres sibling per maintainer decision) slots in without a facade re-shape, and so a fixture-time in-memory adapter is testable without live Cloudflare Queues access.",
|
|
9
9
|
"decision": "The shipped v1.0.0 default is Cloudflare Queues, wired through wrangler config (producer binding on [[queues.producers]], consumer on [[queues.consumers]] with dead_letter_queue and max_retries per https://developers.cloudflare.com/queues/configuration/dead-letter-queues/). The producer facade module is the sole holder of the Queues binding reference per REQ-001; the consumer registration module is the sole reader of the batch envelope per REQ-002. The adapter reference is OPAQUE at this ADR: the facade dereferences the elicited binding at the top of the module and any consumer wanting a different adapter (an SQS shim, the messaging-queue-postgres sibling minted on demand) replaces the binding reference here without touching the outward interface. A fixture-time in-memory adapter (used by the local probes) implements the same binding shape (send / sendBatch on the producer side, batch with ack / retry on the consumer side) so the facade and consumer surfaces are indistinguishable from the real Queues binding at the facade boundary. The 128 KB per-message cap and 100 messages per batch cap Cloudflare documents at https://developers.cloudflare.com/queues/platform/limits/ apply to every real-Queues run.",
|
|
10
|
-
"consequences": "The project inherits the Cloudflare Queues wire-format, the platform-assigned stable message-id, and the batch envelope's per-message ack semantics. Standards trace clause: Cloudflare Queues documented per-message and per-batch limits (per https://developers.cloudflare.com/queues/platform/limits/), Cloudflare Queues Worker queue-handler contract (per https://developers.cloudflare.com/queues/configuration/javascript-apis/), and Cloudflare Queues dead-letter documentation (per https://developers.cloudflare.com/queues/configuration/dead-letter-queues/). A future non-Cloudflare adapter mints under a sibling blueprint (reserved slug messaging-queue-postgres,
|
|
10
|
+
"consequences": "The project inherits the Cloudflare Queues wire-format, the platform-assigned stable message-id, and the batch envelope's per-message ack semantics. Standards trace clause: Cloudflare Queues documented per-message and per-batch limits (per https://developers.cloudflare.com/queues/platform/limits/), Cloudflare Queues Worker queue-handler contract (per https://developers.cloudflare.com/queues/configuration/javascript-apis/), and Cloudflare Queues dead-letter documentation (per https://developers.cloudflare.com/queues/configuration/dead-letter-queues/). A future non-Cloudflare adapter mints under a sibling blueprint (reserved slug messaging-queue-postgres, maintainer decision) and conflicts by design on deliverySemantics (ADR-3002) with this blueprint; the operator picks one queue backend per project via a project-level ADR.",
|
|
11
11
|
"alternativesConsidered": [
|
|
12
12
|
{
|
|
13
13
|
"name": "External SQS or SNS as the shipped v1.0.0 default",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
{
|
|
18
18
|
"name": "Kafka or NATS as the shipped v1.0.0 default",
|
|
19
19
|
"summary": "Ship a self-hosted Kafka or NATS backend as the primary v1.0.0 queue.",
|
|
20
|
-
"reasonNotChosen": "A self-hosted Kafka or NATS backend adds a persistent operational surface every applying project has to run; the round-5 spec section 5.3 targets a directed producer-to-consumer worklist as a shipped shape whose applying project need not host a broker. The reserved messaging-queue-postgres sibling (
|
|
20
|
+
"reasonNotChosen": "A self-hosted Kafka or NATS backend adds a persistent operational surface every applying project has to run; the round-5 spec section 5.3 targets a directed producer-to-consumer worklist as a shipped shape whose applying project need not host a broker. The reserved messaging-queue-postgres sibling (maintainer decision) covers the self-hosted-transport family separately when demand mints it."
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"name": "Ship a hand-rolled fetch client against the Queues REST API",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"title": "Delivery semantics: at-least-once as the shipped shape (scope global, new topic deliverySemantics)",
|
|
8
8
|
"context": "A directed producer-to-consumer worklist ships one of three delivery shapes at the transport contract: at-most-once (fire and forget, dedup at the producer), at-least-once (guaranteed delivery with duplicates possible, dedup at the consumer), or exactly-once (guaranteed delivery with dedup at the transport, expensive). Cloudflare Queues implements at-least-once with a stable message-id the consumer uses for its own dedup; the WSD-005 messaging standard (operator/knowledge/wsd/wsd-standards/wsd-005-messaging.md) makes at-least-once and out-of-order tolerance the shipped default for domain event handoffs; the messaging-queue-cloudflare blueprint claims the deliverySemantics topic on the shelf so future exactly-once or at-most-once siblings surface as DELIBERATE conflicts and not silent divergences.",
|
|
9
9
|
"decision": "The shipped v1.0.0 shape is at-least-once. Every publish reaches every consumer at least once; duplicates are possible under retry-and-DLQ redelivery paths; consumer code that needs exactly-once semantics maintains its own dedup keyed on the stable message-id per REQ-002. The deliverySemantics topic scope is global on this blueprint; the topic string is deliverySemantics (lower camel case, one concept per topic, no version suffix, per the round-2 rules-for-new-topics clause on the shelf registry). Future exactly-once or at-most-once siblings would contribute the same topic string with a different answer, forcing a DELIBERATE conflict the operator resolves with a project-level ADR per the round-2 conflict pattern.",
|
|
10
|
-
"consequences": "The applying project inherits an at-least-once transport with a stable message-id it uses for consumer-side dedup when the domain calls for exactly-once processing. Standards trace clause: WSD-005 clauses on at-least-once and out-of-order tolerance (satisfied by the message-id and trace-id header contract). The reserved messaging-queue-postgres sibling (
|
|
10
|
+
"consequences": "The applying project inherits an at-least-once transport with a stable message-id it uses for consumer-side dedup when the domain calls for exactly-once processing. Standards trace clause: WSD-005 clauses on at-least-once and out-of-order tolerance (satisfied by the message-id and trace-id header contract). The reserved messaging-queue-postgres sibling (maintainer decision) will claim deliverySemantics with an at-least-once answer too; two shipped answers on one topic surface a DELIBERATE conflict the operator resolves by picking one queue backend per project via a project-level ADR (the same shape as errorEnvelope and authModel conflicts the SPA and API-REST blueprints already carry).",
|
|
11
11
|
"alternativesConsidered": [
|
|
12
12
|
{
|
|
13
13
|
"name": "At-most-once as the shipped v1.0.0 default",
|
|
@@ -1,54 +1,209 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Real-account concurrency smoke.
|
|
2
|
+
* Real-account concurrency smoke for messaging-queue-cloudflare.
|
|
3
|
+
* v1.0.2.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* queue
|
|
5
|
+
* Self-provisioning: the fixture shim (packages/rcf-lite/test/fixtures/
|
|
6
|
+
* cf-platform/h2-cf-queue-real-account-shim.mjs) mints a scratch
|
|
7
|
+
* Cloudflare Queue under the throwaway prefix
|
|
8
|
+
* `h2-cf-probe-integrity-scratch-q-`, a scratch KV namespace for
|
|
9
|
+
* consumer telemetry under `h2-cf-probe-integrity-scratch-kv-tel-`,
|
|
10
|
+
* and a throwaway consumer Worker under `h2-cf-probe-integrity-
|
|
11
|
+
* scratch-w-` bound to the queue (consumer) with RCF_TEST_QUEUE
|
|
12
|
+
* (shipped queue producer binding name) + RCF_TEST_TELEMETRY_KV
|
|
13
|
+
* bindings. NO workers.dev subdomain is enabled (operator ruling
|
|
14
|
+
* 376b4f30): the consumer is invoked BY THE QUEUE, not over HTTP.
|
|
11
15
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
16
|
+
* Driver:
|
|
17
|
+
* 1. Publishes 500 messages via the Cloudflare Queues REST publish
|
|
18
|
+
* endpoint in 10 concurrent 50-message batches
|
|
19
|
+
* (https://developers.cloudflare.com/api/operations/queue-publish-messages).
|
|
20
|
+
* 2. Polls the telemetry KV namespace via the KV REST list + get
|
|
21
|
+
* endpoints until sum(batchSize) across records >= published
|
|
22
|
+
* (drain cap 120s).
|
|
23
|
+
* 3. Computes maxConcurrent from an interval-overlap analysis on
|
|
24
|
+
* the per-invocation (start, end) timestamps the Worker's
|
|
25
|
+
* queue() handler recorded.
|
|
26
|
+
* 4. Asserts totalConsumed === published, maxConcurrent > 1, and
|
|
27
|
+
* maxConcurrent <= 250 per Cloudflare's documented push-consumer
|
|
28
|
+
* cap (https://developers.cloudflare.com/queues/platform/limits/).
|
|
29
|
+
*
|
|
30
|
+
* Local proof is a mock of Cloudflare's REST contract, not the wire.
|
|
31
|
+
* The local run exercises OUR lifecycle logic against a mock of
|
|
32
|
+
* Cloudflare's contract; the real-account gate is the only surface
|
|
33
|
+
* that proves the wire format (operator ruling). This probe is
|
|
34
|
+
* therefore never described as "locally verified" - the local runs
|
|
35
|
+
* are our own lifecycle-logic proof; wire correctness is proven at
|
|
36
|
+
* the operator estate real-account gate.
|
|
37
|
+
*
|
|
38
|
+
* Declared env (dispatch requirement 4):
|
|
39
|
+
* CI_HAS_CLOUDFLARE_ACCOUNT required to enter the driver path.
|
|
40
|
+
* CF_ACCOUNT_ID required (real-account only).
|
|
41
|
+
* CF_API_TOKEN required (real-account only).
|
|
42
|
+
* CF_API_BASE_URL optional test override (mock CF REST API).
|
|
43
|
+
* CF_QUEUE_MESSAGE_COUNT optional; defaults to 500.
|
|
44
|
+
*
|
|
45
|
+
* Without CI_HAS_CLOUDFLARE_ACCOUNT the probe returns pass-with-
|
|
46
|
+
* accountBoundSkipped per spec section 3.5; a pass is never reachable
|
|
47
|
+
* from credential presence alone.
|
|
15
48
|
*
|
|
16
49
|
* Anchors AC-29108-2.
|
|
17
50
|
*/
|
|
18
51
|
|
|
52
|
+
import {
|
|
53
|
+
mintScratchQueueAndWorker, destroyScratchQueueAndWorker,
|
|
54
|
+
DECLARED_ENV, QUEUE_PREFIX, WORKER_PREFIX, TELEMETRY_KV_PREFIX,
|
|
55
|
+
} from '../../../../packages/rcf-lite/test/fixtures/cf-platform/h2-cf-queue-real-account-shim.mjs';
|
|
56
|
+
import { queuePublishBatch, kvListKeys, kvGet } from '../../../../packages/rcf-lite/test/fixtures/cf-platform/h2-cf-account-api.mjs';
|
|
57
|
+
|
|
58
|
+
const DEFAULT_MESSAGE_COUNT = 500;
|
|
59
|
+
const BATCH_SIZE = 50;
|
|
60
|
+
const DRAIN_POLL_INTERVAL_MS = 500;
|
|
61
|
+
const DRAIN_TIMEOUT_MS = 120000;
|
|
62
|
+
const DOCUMENTED_PUSH_CAP = 250;
|
|
63
|
+
|
|
64
|
+
export const anchorAcId = 'AC-29108-2';
|
|
19
65
|
export const accountBound = true;
|
|
20
66
|
|
|
67
|
+
function skipResult(detail) {
|
|
68
|
+
return [{
|
|
69
|
+
anchorAcId: 'AC-29108-2',
|
|
70
|
+
verdict: 'pass',
|
|
71
|
+
detail,
|
|
72
|
+
accountBoundSkipped: true,
|
|
73
|
+
envDeclared: Array.from(DECLARED_ENV),
|
|
74
|
+
throwawayPrefixes: { queue: QUEUE_PREFIX, worker: WORKER_PREFIX, telemetryKv: TELEMETRY_KV_PREFIX },
|
|
75
|
+
}];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Interval-overlap analysis: given records [{start, end, batchSize, ...}]
|
|
79
|
+
// compute the peak simultaneous in-flight invocation count using a
|
|
80
|
+
// sweep line over the (start, +1) / (end, -1) event list.
|
|
81
|
+
function computeMaxConcurrent(records) {
|
|
82
|
+
const events = [];
|
|
83
|
+
for (const r of records) {
|
|
84
|
+
events.push([r.start, +1]);
|
|
85
|
+
events.push([r.end, -1]);
|
|
86
|
+
}
|
|
87
|
+
// Sort by time; process starts before ends at the same instant so a
|
|
88
|
+
// batch that finishes exactly when another begins does not
|
|
89
|
+
// artificially deflate the concurrency count.
|
|
90
|
+
events.sort((a, b) => (a[0] - b[0]) || (b[1] - a[1]));
|
|
91
|
+
let cur = 0, max = 0;
|
|
92
|
+
for (const [, delta] of events) {
|
|
93
|
+
cur += delta;
|
|
94
|
+
if (cur > max) max = cur;
|
|
95
|
+
}
|
|
96
|
+
return max;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
async function readTelemetryRecords({ namespaceId }) {
|
|
100
|
+
const keys = await kvListKeys({ namespaceId, prefix: 'telemetry-', limit: 1000 });
|
|
101
|
+
const records = await Promise.all(keys.map(async (k) => {
|
|
102
|
+
const g = await kvGet({ namespaceId, key: k.name });
|
|
103
|
+
if (!g.ok) return null;
|
|
104
|
+
try { return JSON.parse(g.text); } catch (_err) { return null; }
|
|
105
|
+
}));
|
|
106
|
+
return records.filter((r) => r && typeof r.start === 'number' && typeof r.end === 'number' && typeof r.batchSize === 'number');
|
|
107
|
+
}
|
|
108
|
+
|
|
21
109
|
export default async function runProbe() {
|
|
22
110
|
const hasAccount = process.env.CI_HAS_CLOUDFLARE_ACCOUNT === '1' || process.env.CI_HAS_CLOUDFLARE_ACCOUNT === 'true';
|
|
23
111
|
if (!hasAccount) {
|
|
112
|
+
return skipResult(`accountBoundSkipped: CI_HAS_CLOUDFLARE_ACCOUNT unset; a real-account run requires CI_HAS_CLOUDFLARE_ACCOUNT=true plus CF_ACCOUNT_ID and CF_API_TOKEN. The fixture mints its own throwaway Queue + consumer Worker + telemetry KV namespace under the CI scratch prefixes; publishes via the CF Queues REST publish endpoint (no workers.dev subdomain enabled); reads telemetry via the KV REST list + get endpoints. Cap under test: ${DOCUMENTED_PUSH_CAP} concurrent invocations per push-consumer per https://developers.cloudflare.com/queues/platform/limits/. Message count: ${DEFAULT_MESSAGE_COUNT}.`);
|
|
113
|
+
}
|
|
114
|
+
if (!process.env.CF_ACCOUNT_ID || !process.env.CF_API_TOKEN) {
|
|
24
115
|
return [{
|
|
25
116
|
anchorAcId: 'AC-29108-2',
|
|
26
|
-
verdict: '
|
|
27
|
-
detail:
|
|
28
|
-
|
|
117
|
+
verdict: 'fail',
|
|
118
|
+
detail: `CI_HAS_CLOUDFLARE_ACCOUNT=true but one of CF_ACCOUNT_ID / CF_API_TOKEN is missing: accountIdPresent=${!!process.env.CF_ACCOUNT_ID} tokenPresent=${!!process.env.CF_API_TOKEN}.`,
|
|
119
|
+
envDeclared: Array.from(DECLARED_ENV),
|
|
29
120
|
}];
|
|
30
121
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
122
|
+
|
|
123
|
+
const messageCount = Number.parseInt(process.env.CF_QUEUE_MESSAGE_COUNT ?? '', 10) || DEFAULT_MESSAGE_COUNT;
|
|
124
|
+
const runId = process.env.GITHUB_RUN_ID || `local-${Date.now()}`;
|
|
125
|
+
|
|
126
|
+
let mint = null;
|
|
127
|
+
try {
|
|
128
|
+
mint = await mintScratchQueueAndWorker({ runId });
|
|
129
|
+
} catch (err) {
|
|
130
|
+
return [{
|
|
131
|
+
anchorAcId: 'AC-29108-2',
|
|
132
|
+
verdict: 'fail',
|
|
133
|
+
detail: `mintScratchQueueAndWorker failed: ${err.message}`,
|
|
134
|
+
envDeclared: Array.from(DECLARED_ENV),
|
|
135
|
+
}];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
try {
|
|
139
|
+
const started = Date.now();
|
|
140
|
+
const batches = [];
|
|
141
|
+
for (let i = 0; i < messageCount; i += BATCH_SIZE) {
|
|
142
|
+
const slice = [];
|
|
143
|
+
for (let j = 0; j < BATCH_SIZE && i + j < messageCount; j++) {
|
|
144
|
+
const seq = i + j;
|
|
145
|
+
slice.push({ body: { seq, ts: new Date().toISOString(), payload: `h2-smoke-${seq}` } });
|
|
146
|
+
}
|
|
147
|
+
batches.push(slice);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const publishResults = await Promise.all(batches.map((slice) =>
|
|
151
|
+
queuePublishBatch({ queueId: mint.queue.id, messages: slice })
|
|
152
|
+
.then((r) => ({ ok: true, ...r }))
|
|
153
|
+
.catch((err) => ({ ok: false, error: err.message, status: err.status || 0 })),
|
|
154
|
+
));
|
|
155
|
+
const publishFail = publishResults.find((r) => !r.ok);
|
|
156
|
+
if (publishFail) {
|
|
157
|
+
return [{
|
|
158
|
+
anchorAcId: 'AC-29108-2',
|
|
159
|
+
verdict: 'fail',
|
|
160
|
+
detail: `queuePublishBatch failed: status=${publishFail.status} error=${publishFail.error}`,
|
|
161
|
+
envDeclared: Array.from(DECLARED_ENV),
|
|
162
|
+
}];
|
|
163
|
+
}
|
|
164
|
+
const publishedCount = publishResults.reduce((acc, r) => acc + (r.count ?? 0), 0);
|
|
165
|
+
|
|
166
|
+
let records = [];
|
|
167
|
+
let totalConsumed = 0;
|
|
168
|
+
const drainStart = Date.now();
|
|
169
|
+
while (Date.now() - drainStart < DRAIN_TIMEOUT_MS) {
|
|
170
|
+
records = await readTelemetryRecords({ namespaceId: mint.telemetryKv.id }).catch(() => []);
|
|
171
|
+
totalConsumed = records.reduce((a, r) => a + r.batchSize, 0);
|
|
172
|
+
if (totalConsumed >= publishedCount) break;
|
|
173
|
+
await new Promise((r) => setTimeout(r, DRAIN_POLL_INTERVAL_MS));
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const elapsed = Date.now() - started;
|
|
177
|
+
const batchesConsumed = records.length;
|
|
178
|
+
const maxConcurrent = computeMaxConcurrent(records);
|
|
179
|
+
const drained = totalConsumed >= publishedCount;
|
|
180
|
+
const withinCap = maxConcurrent <= DOCUMENTED_PUSH_CAP;
|
|
181
|
+
const observedConcurrency = maxConcurrent > 1;
|
|
182
|
+
const allOk = drained && withinCap && observedConcurrency;
|
|
183
|
+
|
|
184
|
+
return [{
|
|
185
|
+
anchorAcId: 'AC-29108-2',
|
|
186
|
+
verdict: allOk ? 'pass' : 'fail',
|
|
187
|
+
detail: allOk
|
|
188
|
+
? `queue=${mint.queue.name} (id=${mint.queue.id}) consumerWorker=${mint.worker.name} telemetryKv=${mint.telemetryKv.id}: published ${publishedCount} messages via ${batches.length} REST publish batches; consumer telemetry drawn from ${batchesConsumed} KV records in ${elapsed}ms elapsed: totalConsumed=${totalConsumed} batches=${batchesConsumed} maxConcurrent=${maxConcurrent} (>1 observed, <= ${DOCUMENTED_PUSH_CAP} documented push cap per https://developers.cloudflare.com/queues/platform/limits/); teardown removed worker, queue and telemetry KV namespace on exit.`
|
|
189
|
+
: `queue=${mint.queue.name} publishedCount=${publishedCount} totalConsumed=${totalConsumed} maxConcurrent=${maxConcurrent} batches=${batchesConsumed} elapsed=${elapsed}ms; drained=${drained} withinCap=${withinCap} observedConcurrency=${observedConcurrency}. Documented push cap: ${DOCUMENTED_PUSH_CAP} (https://developers.cloudflare.com/queues/platform/limits/).`,
|
|
190
|
+
queueName: mint.queue.name,
|
|
191
|
+
queueId: mint.queue.id,
|
|
192
|
+
workerName: mint.worker.name,
|
|
193
|
+
telemetryKvId: mint.telemetryKv.id,
|
|
194
|
+
publishedCount,
|
|
195
|
+
totalConsumed,
|
|
196
|
+
batches: batchesConsumed,
|
|
197
|
+
maxConcurrent,
|
|
198
|
+
elapsedMs: elapsed,
|
|
199
|
+
envDeclared: Array.from(DECLARED_ENV),
|
|
200
|
+
throwawayPrefixes: { queue: QUEUE_PREFIX, worker: WORKER_PREFIX, telemetryKv: TELEMETRY_KV_PREFIX },
|
|
201
|
+
}];
|
|
202
|
+
} finally {
|
|
203
|
+
try {
|
|
204
|
+
await destroyScratchQueueAndWorker(mint);
|
|
205
|
+
} catch (err) {
|
|
206
|
+
process.stderr.write(`h2-cf-queue probe: teardown failed for queue=${mint && mint.queue && mint.queue.id} worker=${mint && mint.worker && mint.worker.name} telemetryKv=${mint && mint.telemetryKv && mint.telemetryKv.id}: ${err.message}; sweepOrphans will collect on next run.\n`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
54
209
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"reqId": "messaging-queue-cloudflare-REQ-001",
|
|
3
3
|
"prdId": "PRD-001",
|
|
4
4
|
"title": "One producer facade module is the sole reader of the Cloudflare Queues binding and opens on boot with producerReady",
|
|
5
|
-
"description": "The application publishes to the queue through a single producer facade module in the project's source tree that is the ONLY module holding a reference to the Cloudflare Queues binding (env.RCF_TEST_QUEUE in the fixture; the elicited binding name in a real project). Every other module that publishes reads the facade and calls its typed domain verbs (publish, publishBatch); no other module dereferences the raw Queues binding. On process boot, the facade opens against the bound queue and, once ready, emits a producerReady lifecycle event carrying the queue name. The queue name (or the binding name in a Workers deploy) is elicited at apply time under the Queues binding declared in wrangler config.",
|
|
5
|
+
"description": "The application publishes to the queue through a single producer facade module in the project's source tree that is the ONLY module holding a reference to the Cloudflare Queues binding (env.RCF_TEST_QUEUE in the fixture; the elicited binding name in a real project). Every other module that publishes reads the facade and calls its typed domain verbs (publish, publishBatch); no other module dereferences the raw Queues binding. On process boot, the facade opens against the bound queue and, once ready, emits a producerReady lifecycle event carrying the queue name. The queue name (or the binding name in a Workers deploy) is elicited at apply time under the Queues binding declared in wrangler config. The queue-binding-name is elicited at apply time; the producer facade dereferences env[queue-binding-name] once at boot and holds no other reference. The queue-name is elicited at apply time under the wrangler [[queues.producers]] declaration.",
|
|
6
6
|
"category": "functional",
|
|
7
7
|
"domain": "messaging",
|
|
8
8
|
"priority": "must",
|
|
@@ -14,5 +14,9 @@
|
|
|
14
14
|
"version": "1.0.0",
|
|
15
15
|
"status": "approved",
|
|
16
16
|
"createdAt": "2026-09-06T21:00:00.000Z",
|
|
17
|
-
"updatedAt": "2026-09-
|
|
17
|
+
"updatedAt": "2026-09-09T00:00:00Z",
|
|
18
|
+
"deliveredBy": {
|
|
19
|
+
"tacId": "TAC-3001-messaging-queue-cloudflare-producer-facade",
|
|
20
|
+
"field": "responsibilities.producerReady"
|
|
21
|
+
}
|
|
18
22
|
}
|