rcf-lite 0.12.0 → 0.13.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 +11 -0
- package/README.md +2 -0
- package/bin/view-supervisor-child.mjs +0 -0
- package/blueprints/application-api-rest/README.md +40 -0
- package/blueprints/application-api-rest/assets/middleware/auth-classes.md +45 -0
- package/blueprints/application-api-rest/assets/openapi/openapi-skeleton.yaml +322 -0
- package/blueprints/application-api-rest/assets/sample-data/sample-resources.json +53 -0
- package/blueprints/application-api-rest/assets/samples/request-response-pairs.md +204 -0
- package/blueprints/application-api-rest/blueprint.json +265 -0
- package/blueprints/application-api-rest/contributions/adrs/adr-301-application-api-rest-error-envelope.json +25 -0
- package/blueprints/application-api-rest/contributions/adrs/adr-302-application-api-rest-auth-model.json +25 -0
- package/blueprints/application-api-rest/contributions/adrs/adr-303-application-api-rest-api-versioning.json +25 -0
- package/blueprints/application-api-rest/contributions/adrs/adr-304-application-api-rest-logging.json +25 -0
- package/blueprints/application-api-rest/contributions/adrs/adr-305-application-api-rest-pagination.json +25 -0
- package/blueprints/application-api-rest/contributions/adrs/adr-306-application-api-rest-idempotency.json +25 -0
- package/blueprints/application-api-rest/contributions/adrs/adr-307-application-api-rest-openapi-generation.json +25 -0
- package/blueprints/application-api-rest/contributions/adrs/adr-308-application-api-rest-rate-limiting.json +25 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-001.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-002.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-003.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-004.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-005.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-006.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-007.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-008.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-009.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-010.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-011.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-012.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-013.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-014.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-015.json +18 -0
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-016.json +18 -0
- package/blueprints/application-api-rest/contributions/tacs/tac-301-application-api-rest-request-pipeline.json +48 -0
- package/blueprints/application-api-rest/contributions/tacs/tac-302-application-api-rest-auth-middleware.json +41 -0
- package/blueprints/application-api-rest/contributions/tacs/tac-303-application-api-rest-contract-surface.json +46 -0
- package/blueprints/application-api-rest/contributions/tacs/tac-304-application-api-rest-resource-layer.json +46 -0
- package/blueprints/application-api-rest/contributions/tacs/tac-305-application-api-rest-observability.json +40 -0
- package/blueprints/application-api-rest/contributions/tacs/tac-306-application-api-rest-operability.json +46 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2101.json +72 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2102.json +73 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2103.json +63 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2104.json +72 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2105.json +63 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2106.json +73 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2107.json +90 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2108.json +90 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2109.json +72 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2110.json +72 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2111.json +72 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2112.json +72 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2113.json +73 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2114.json +63 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2115.json +63 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2116.json +63 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2117.json +64 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2118.json +72 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2119.json +63 -0
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2120.json +73 -0
- package/blueprints/application-api-rest/docs/topics.md +46 -0
- package/blueprints/application-api-rest/guide/application-api-rest.md +41 -0
- package/blueprints/application-spa/README.md +90 -0
- package/blueprints/application-spa/assets/component-specs/actions-and-text-inputs.md +36 -0
- package/blueprints/application-spa/assets/component-specs/data-display.md +19 -0
- package/blueprints/application-spa/assets/component-specs/feedback-and-status.md +27 -0
- package/blueprints/application-spa/assets/component-specs/overlays.md +23 -0
- package/blueprints/application-spa/assets/component-specs/selection-controls.md +23 -0
- package/blueprints/application-spa/assets/sample-data/sample-entities.json +41 -0
- package/blueprints/application-spa/assets/tokens/design-tokens.json +140 -0
- package/blueprints/application-spa/assets/tokens/theme.css +169 -0
- package/blueprints/application-spa/assets/viewports.md +18 -0
- package/blueprints/application-spa/assets/wireframes/dashboard.md +48 -0
- package/blueprints/application-spa/assets/wireframes/detail.md +40 -0
- package/blueprints/application-spa/assets/wireframes/empty.md +31 -0
- package/blueprints/application-spa/assets/wireframes/error.md +46 -0
- package/blueprints/application-spa/assets/wireframes/form.md +50 -0
- package/blueprints/application-spa/assets/wireframes/list.md +45 -0
- package/blueprints/application-spa/assets/wireframes/session-expired.md +35 -0
- package/blueprints/application-spa/assets/wireframes/sign-in.md +41 -0
- package/blueprints/application-spa/assets/wireframes/sign-out.md +32 -0
- package/blueprints/application-spa/blueprint.json +387 -0
- package/blueprints/application-spa/contributions/adrs/adr-201-application-spa-routing.json +25 -0
- package/blueprints/application-spa/contributions/adrs/adr-202-application-spa-theming.json +25 -0
- package/blueprints/application-spa/contributions/adrs/adr-203-application-spa-client-state.json +25 -0
- package/blueprints/application-spa/contributions/adrs/adr-204-application-spa-error-envelope.json +25 -0
- package/blueprints/application-spa/contributions/adrs/adr-205-application-spa-auth-model.json +25 -0
- package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json +13 -0
- package/blueprints/application-spa/contributions/adrs/adr-207-application-spa-motion.json +13 -0
- package/blueprints/application-spa/contributions/adrs/adr-208-application-spa-i18n.json +13 -0
- package/blueprints/application-spa/contributions/adrs/adr-209-application-spa-telemetry-naming.json +13 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-001.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-002.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-003.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-004.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-005.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-006.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-007.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-008.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-009.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-010.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-011.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-012.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-013.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-014.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-015.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-016.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-017.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-018.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-019.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-020.json +18 -0
- package/blueprints/application-spa/contributions/requirements/application-spa-req-021.json +18 -0
- package/blueprints/application-spa/contributions/tacs/tac-201-application-spa-app-shell.json +45 -0
- package/blueprints/application-spa/contributions/tacs/tac-202-application-spa-theme-system.json +32 -0
- package/blueprints/application-spa/contributions/tacs/tac-203-application-spa-component-library.json +32 -0
- package/blueprints/application-spa/contributions/tacs/tac-204-application-spa-client-data-layer.json +27 -0
- package/blueprints/application-spa/contributions/tacs/tac-205-application-spa-forms-engine.json +27 -0
- package/blueprints/application-spa/contributions/tacs/tac-206-application-spa-telemetry.json +19 -0
- package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +57 -0
- package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +56 -0
- package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +61 -0
- package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +70 -0
- package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +70 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1101.json +72 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1102.json +63 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1103.json +72 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1104.json +63 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1105.json +69 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1106.json +63 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1107.json +63 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1108.json +90 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1109.json +90 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1110.json +100 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1111.json +90 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1112.json +81 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1113.json +82 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1114.json +60 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1115.json +73 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1116.json +72 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1117.json +73 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1118.json +54 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1119.json +63 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1120.json +72 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1121.json +73 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1122.json +69 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1123.json +63 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1124.json +60 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1125.json +69 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1126.json +78 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1127.json +63 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1128.json +51 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +54 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +54 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +72 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +72 -0
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +72 -0
- package/blueprints/application-spa/docs/topics.md +57 -0
- package/blueprints/application-spa/guide/application-spa.md +40 -0
- package/blueprints/ci-pipeline/README.md +49 -0
- package/blueprints/ci-pipeline/assets/ci-provider-examples/github-actions.yml +61 -0
- package/blueprints/ci-pipeline/assets/ci-provider-examples/notes.md +50 -0
- package/blueprints/ci-pipeline/assets/report-samples/per-gate.json +12 -0
- package/blueprints/ci-pipeline/assets/report-samples/pipeline.json +28 -0
- package/blueprints/ci-pipeline/blueprint.json +46 -0
- package/blueprints/ci-pipeline/contributions/adrs/adr-701-ci-pipeline-ci-gates.json +25 -0
- package/blueprints/ci-pipeline/contributions/adrs/adr-702-ci-pipeline-strict-coverage-gate.json +25 -0
- package/blueprints/ci-pipeline/contributions/adrs/adr-703-ci-pipeline-node-only-runner.json +25 -0
- package/blueprints/ci-pipeline/contributions/adrs/adr-704-ci-pipeline-report-shape.json +25 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-001.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-002.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-003.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-004.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-005.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-006.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-007.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-008.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-009.json +18 -0
- package/blueprints/ci-pipeline/contributions/requirements/ci-pipeline-req-010.json +18 -0
- package/blueprints/ci-pipeline/contributions/tacs/tac-701-ci-pipeline-gate-runner.json +59 -0
- package/blueprints/ci-pipeline/contributions/tacs/tac-702-ci-pipeline-gate-report.json +32 -0
- package/blueprints/ci-pipeline/contributions/tacs/tac-703-ci-pipeline-aggregate-report.json +41 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6101.json +37 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6102.json +36 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6103.json +37 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6104.json +37 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6105.json +36 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6106.json +36 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6107.json +37 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6108.json +37 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6109.json +36 -0
- package/blueprints/ci-pipeline/contributions/user-stories/ci-pipeline-us-6110.json +36 -0
- package/blueprints/ci-pipeline/docs/topics.md +49 -0
- package/blueprints/ci-pipeline/guide/ci-pipeline.md +79 -0
- package/blueprints/deploy-cloudflare-workers/README.md +63 -0
- package/blueprints/deploy-cloudflare-workers/assets/ci-workflows/build-and-upload.yml.md +109 -0
- package/blueprints/deploy-cloudflare-workers/assets/ci-workflows/promote.yml.md +120 -0
- package/blueprints/deploy-cloudflare-workers/assets/verification/served-surface-probes.md +90 -0
- package/blueprints/deploy-cloudflare-workers/assets/wrangler-samples/bootstrap-vs-steady-state.md +87 -0
- package/blueprints/deploy-cloudflare-workers/assets/wrangler-samples/preview-alias-shape.md +86 -0
- package/blueprints/deploy-cloudflare-workers/assets/wrangler-samples/wrangler-toml-shape.md +85 -0
- package/blueprints/deploy-cloudflare-workers/blueprint.json +48 -0
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1301-deploy-cloudflare-workers-deployment-target.json +30 -0
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1302-deploy-cloudflare-workers-default-vendor.json +35 -0
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1303-deploy-cloudflare-workers-preview-vs-production.json +30 -0
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1304-deploy-cloudflare-workers-rollback-is-promote.json +25 -0
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1305-deploy-cloudflare-workers-dev-mode-drift.json +25 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-001.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-002.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-003.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-004.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-005.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-006.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-007.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-008.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-009.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-010.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-011.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-012.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1301-deploy-cloudflare-workers-deploy-adapter.json +54 -0
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1302-deploy-cloudflare-workers-wrangler-manifest.json +45 -0
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1303-deploy-cloudflare-workers-preview-url-resolver.json +46 -0
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1304-deploy-cloudflare-workers-promote-gate.json +57 -0
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1305-deploy-cloudflare-workers-served-surface-verifier.json +51 -0
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1306-deploy-cloudflare-workers-deploy-ci-workflows.json +64 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12101.json +54 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12102.json +45 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12103.json +46 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12104.json +46 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12105.json +46 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12106.json +46 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12107.json +46 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12108.json +46 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12109.json +47 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12110.json +46 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12111.json +45 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12112.json +46 -0
- package/blueprints/deploy-cloudflare-workers/docs/topics.md +46 -0
- package/blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md +74 -0
- package/blueprints/email-smtp-resend/README.md +45 -0
- package/blueprints/email-smtp-resend/assets/from-address-rotation-pattern.md +44 -0
- package/blueprints/email-smtp-resend/assets/resend-verification-pointer.md +25 -0
- package/blueprints/email-smtp-resend/assets/stub-adapter.md +65 -0
- package/blueprints/email-smtp-resend/blueprint.json +23 -0
- package/blueprints/email-smtp-resend/contributions/adrs/adr-401-email-smtp-resend-transport-choice.json +30 -0
- package/blueprints/email-smtp-resend/contributions/adrs/adr-402-email-smtp-resend-retry-and-backoff-posture.json +30 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-001.json +18 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-002.json +18 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-003.json +18 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-004.json +18 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-005.json +18 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-006.json +18 -0
- package/blueprints/email-smtp-resend/contributions/tacs/tac-401-email-smtp-resend-send-adapter.json +53 -0
- package/blueprints/email-smtp-resend/contributions/tacs/tac-402-email-smtp-resend-webhook-verifier.json +56 -0
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4101.json +45 -0
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4102.json +36 -0
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4103.json +45 -0
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4104.json +45 -0
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4105.json +36 -0
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4106.json +37 -0
- package/blueprints/email-smtp-resend/docs/topics.md +44 -0
- package/blueprints/email-smtp-resend/guide/email-smtp-resend.md +71 -0
- package/blueprints/observability-essentials/README.md +53 -0
- package/blueprints/observability-essentials/assets/probe-samples/liveness-body.json +4 -0
- package/blueprints/observability-essentials/assets/probe-samples/readiness-body.json +18 -0
- package/blueprints/observability-essentials/assets/status-page-samples/status-page-clean.html +22 -0
- package/blueprints/observability-essentials/assets/status-page-samples/status-page-with-notice.html +25 -0
- package/blueprints/observability-essentials/blueprint.json +54 -0
- package/blueprints/observability-essentials/contributions/adrs/adr-801-observability-essentials-health-probes.json +30 -0
- package/blueprints/observability-essentials/contributions/adrs/adr-802-observability-essentials-readiness-semantics.json +30 -0
- package/blueprints/observability-essentials/contributions/adrs/adr-803-observability-essentials-status-page-contract.json +30 -0
- package/blueprints/observability-essentials/contributions/adrs/adr-804-observability-essentials-probe-secrecy.json +25 -0
- package/blueprints/observability-essentials/contributions/adrs/adr-805-observability-essentials-notification-outcome-model.json +25 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-001.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-002.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-003.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-004.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-005.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-006.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-007.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-008.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-009.json +18 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-010.json +18 -0
- package/blueprints/observability-essentials/contributions/tacs/tac-801-observability-essentials-liveness-probe.json +32 -0
- package/blueprints/observability-essentials/contributions/tacs/tac-802-observability-essentials-readiness-probe.json +43 -0
- package/blueprints/observability-essentials/contributions/tacs/tac-803-observability-essentials-status-page.json +37 -0
- package/blueprints/observability-essentials/contributions/tacs/tac-804-observability-essentials-notification-outcome.json +42 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7101.json +45 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7102.json +45 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7103.json +45 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7104.json +45 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7105.json +45 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7106.json +45 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7107.json +46 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7108.json +47 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7109.json +45 -0
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7110.json +46 -0
- package/blueprints/observability-essentials/docs/topics.md +57 -0
- package/blueprints/observability-essentials/guide/observability-essentials.md +68 -0
- package/blueprints/observability-probe-endpoints/README.md +53 -0
- package/blueprints/observability-probe-endpoints/assets/docker/dockerfile-healthcheck.md +19 -0
- package/blueprints/observability-probe-endpoints/assets/kubernetes/podspec-probes-separate-port.md +54 -0
- package/blueprints/observability-probe-endpoints/assets/kubernetes/podspec-probes.md +36 -0
- package/blueprints/observability-probe-endpoints/assets/load-balancer/health-check-config.md +23 -0
- package/blueprints/observability-probe-endpoints/assets/systemd/notify-service.md +30 -0
- package/blueprints/observability-probe-endpoints/assets/uptime-monitor/monitor-config.md +22 -0
- package/blueprints/observability-probe-endpoints/blueprint.json +44 -0
- package/blueprints/observability-probe-endpoints/contributions/adrs/adr-1501-observability-probe-endpoints-health-probes.json +30 -0
- package/blueprints/observability-probe-endpoints/contributions/adrs/adr-1502-observability-probe-endpoints-readiness-semantics.json +30 -0
- package/blueprints/observability-probe-endpoints/contributions/adrs/adr-1503-observability-probe-endpoints-kubernetes-default.json +30 -0
- package/blueprints/observability-probe-endpoints/contributions/adrs/adr-1504-observability-probe-endpoints-separate-port-option.json +30 -0
- package/blueprints/observability-probe-endpoints/contributions/adrs/adr-1505-observability-probe-endpoints-external-response-secrecy.json +30 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-001.json +18 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-002.json +18 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-003.json +18 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-004.json +18 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-005.json +18 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-006.json +18 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-007.json +18 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-008.json +18 -0
- package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1501-observability-probe-endpoints-profile-resolver.json +39 -0
- package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1502-observability-probe-endpoints-handler-set.json +40 -0
- package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1503-observability-probe-endpoints-listener-topology.json +51 -0
- package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1504-observability-probe-endpoints-non-http-adapters.json +39 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14101.json +46 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14102.json +46 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14103.json +46 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14104.json +45 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14105.json +46 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14106.json +45 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14107.json +45 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14108.json +46 -0
- package/blueprints/observability-probe-endpoints/docs/topics.md +51 -0
- package/blueprints/observability-probe-endpoints/guide/observability-probe-endpoints.md +83 -0
- package/blueprints/persistence-data-d1/README.md +50 -0
- package/blueprints/persistence-data-d1/assets/batch-usage/batch-atomicity-example.md +72 -0
- package/blueprints/persistence-data-d1/assets/facade-shape/facade-module-shape.md +115 -0
- package/blueprints/persistence-data-d1/assets/migration-shape/migration-file-shape.md +119 -0
- package/blueprints/persistence-data-d1/assets/wrangler-config/d1-binding-shape.md +93 -0
- package/blueprints/persistence-data-d1/blueprint.json +42 -0
- package/blueprints/persistence-data-d1/contributions/adrs/adr-1401-persistence-data-d1-store-model.json +30 -0
- package/blueprints/persistence-data-d1/contributions/adrs/adr-1402-persistence-data-d1-migration-discipline.json +30 -0
- package/blueprints/persistence-data-d1/contributions/adrs/adr-1403-persistence-data-d1-event-secrecy.json +25 -0
- package/blueprints/persistence-data-d1/contributions/adrs/adr-1404-persistence-data-d1-store-boundary.json +25 -0
- package/blueprints/persistence-data-d1/contributions/adrs/adr-1405-persistence-data-d1-recovery-model.json +30 -0
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-001.json +18 -0
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-002.json +18 -0
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-003.json +18 -0
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-004.json +18 -0
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-005.json +18 -0
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-006.json +18 -0
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-007.json +18 -0
- package/blueprints/persistence-data-d1/contributions/tacs/tac-1401-persistence-data-d1-facade.json +51 -0
- package/blueprints/persistence-data-d1/contributions/tacs/tac-1402-persistence-data-d1-migration-catalog.json +31 -0
- package/blueprints/persistence-data-d1/contributions/tacs/tac-1403-persistence-data-d1-deploy-gate.json +38 -0
- package/blueprints/persistence-data-d1/contributions/tacs/tac-1404-persistence-data-d1-recovery-runner.json +39 -0
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13101.json +45 -0
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13102.json +45 -0
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13103.json +46 -0
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13104.json +45 -0
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13105.json +45 -0
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13106.json +46 -0
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13107.json +38 -0
- package/blueprints/persistence-data-d1/docs/topics.md +59 -0
- package/blueprints/persistence-data-d1/guide/persistence-data-d1.md +77 -0
- package/blueprints/persistence-data-sqlite/README.md +50 -0
- package/blueprints/persistence-data-sqlite/assets/backup-procedures/hot-checkpoint-note.md +22 -0
- package/blueprints/persistence-data-sqlite/assets/backup-procedures/sqlite-file-copy.md +70 -0
- package/blueprints/persistence-data-sqlite/assets/schema-samples/catalog-file-layout.md +73 -0
- package/blueprints/persistence-data-sqlite/assets/schema-samples/migration-shape.md +76 -0
- package/blueprints/persistence-data-sqlite/blueprint.json +50 -0
- package/blueprints/persistence-data-sqlite/contributions/adrs/adr-601-persistence-data-sqlite-store-model.json +30 -0
- package/blueprints/persistence-data-sqlite/contributions/adrs/adr-602-persistence-data-sqlite-migration-discipline.json +30 -0
- package/blueprints/persistence-data-sqlite/contributions/adrs/adr-603-persistence-data-sqlite-event-secrecy.json +25 -0
- package/blueprints/persistence-data-sqlite/contributions/adrs/adr-604-persistence-data-sqlite-store-boundary.json +25 -0
- package/blueprints/persistence-data-sqlite/contributions/adrs/adr-605-persistence-data-sqlite-backup-model.json +25 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-001.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-002.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-003.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-004.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-005.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-006.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-007.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-008.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-009.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-010.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-011.json +18 -0
- package/blueprints/persistence-data-sqlite/contributions/tacs/tac-601-persistence-data-sqlite-store.json +57 -0
- package/blueprints/persistence-data-sqlite/contributions/tacs/tac-602-persistence-data-sqlite-migration-runner.json +34 -0
- package/blueprints/persistence-data-sqlite/contributions/tacs/tac-603-persistence-data-sqlite-migration-catalog.json +31 -0
- package/blueprints/persistence-data-sqlite/contributions/tacs/tac-604-persistence-data-sqlite-backup-runner.json +33 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5101.json +46 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5102.json +46 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5103.json +37 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5104.json +45 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5105.json +45 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5106.json +46 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5107.json +45 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5108.json +46 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5109.json +46 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5110.json +37 -0
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5111.json +37 -0
- package/blueprints/persistence-data-sqlite/docs/topics.md +49 -0
- package/blueprints/persistence-data-sqlite/guide/persistence-data-sqlite.md +69 -0
- package/blueprints/security-auth-clerk/README.md +50 -0
- package/blueprints/security-auth-clerk/assets/authorisation/role-claim-mapping-sample.md +99 -0
- package/blueprints/security-auth-clerk/assets/middleware/node-middleware-shape.md +86 -0
- package/blueprints/security-auth-clerk/assets/wiring/clerk-provider-react.md +48 -0
- package/blueprints/security-auth-clerk/assets/wiring/clerk-provider-vue.md +41 -0
- package/blueprints/security-auth-clerk/blueprint.json +42 -0
- package/blueprints/security-auth-clerk/contributions/adrs/adr-1001-security-auth-clerk-auth-model.json +30 -0
- package/blueprints/security-auth-clerk/contributions/adrs/adr-1002-security-auth-clerk-middleware-boundary.json +25 -0
- package/blueprints/security-auth-clerk/contributions/adrs/adr-1003-security-auth-clerk-authorisation-adapter-contract.json +25 -0
- package/blueprints/security-auth-clerk/contributions/adrs/adr-1004-security-auth-clerk-claims-mapping-discipline.json +25 -0
- package/blueprints/security-auth-clerk/contributions/adrs/adr-1005-security-auth-clerk-session-lifecycle.json +25 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-001.json +18 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-002.json +18 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-003.json +18 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-004.json +18 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-005.json +18 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-006.json +18 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-007.json +18 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-008.json +18 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-009.json +18 -0
- package/blueprints/security-auth-clerk/contributions/tacs/tac-1001-security-auth-clerk-middleware.json +42 -0
- package/blueprints/security-auth-clerk/contributions/tacs/tac-1002-security-auth-clerk-authorisation-adapter.json +30 -0
- package/blueprints/security-auth-clerk/contributions/tacs/tac-1003-security-auth-clerk-session-verifier.json +38 -0
- package/blueprints/security-auth-clerk/contributions/tacs/tac-1004-security-auth-clerk-claims-mapper.json +22 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9101.json +46 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9102.json +38 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9103.json +46 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9104.json +46 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9105.json +36 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9106.json +36 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9107.json +37 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9108.json +36 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9109.json +36 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9110.json +37 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9111.json +36 -0
- package/blueprints/security-auth-clerk/docs/topics.md +56 -0
- package/blueprints/security-auth-clerk/guide/security-auth-clerk.md +71 -0
- package/blueprints/security-auth-keycloak/README.md +56 -0
- package/blueprints/security-auth-keycloak/assets/local-container/keycloak-bootstrap.md +54 -0
- package/blueprints/security-auth-keycloak/assets/middleware/verifier-wiring.md +93 -0
- package/blueprints/security-auth-keycloak/assets/mock-introspection/mock-introspection-shape.md +62 -0
- package/blueprints/security-auth-keycloak/assets/provider-router/router-shape.md +71 -0
- package/blueprints/security-auth-keycloak/assets/realm-skeleton/realm-config-shape.md +55 -0
- package/blueprints/security-auth-keycloak/blueprint.json +49 -0
- package/blueprints/security-auth-keycloak/contributions/adrs/adr-1201-security-auth-keycloak-auth-model.json +35 -0
- package/blueprints/security-auth-keycloak/contributions/adrs/adr-1202-security-auth-keycloak-verification-mode-choice.json +30 -0
- package/blueprints/security-auth-keycloak/contributions/adrs/adr-1203-security-auth-keycloak-provider-routing-seam.json +30 -0
- package/blueprints/security-auth-keycloak/contributions/adrs/adr-1204-security-auth-keycloak-session-vs-token-contract.json +25 -0
- package/blueprints/security-auth-keycloak/contributions/adrs/adr-1205-security-auth-keycloak-jwks-rotation-cache-lifetime.json +30 -0
- package/blueprints/security-auth-keycloak/contributions/adrs/adr-1206-security-auth-keycloak-refresh-and-sign-out-posture.json +25 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-001.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-002.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-003.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-004.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-005.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-006.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-007.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-008.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-009.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-010.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-011.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-012.json +18 -0
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1201-security-auth-keycloak-discovery-client.json +51 -0
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1202-security-auth-keycloak-jwt-verifier.json +46 -0
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1203-security-auth-keycloak-introspection-client.json +45 -0
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1204-security-auth-keycloak-provider-router.json +37 -0
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1205-security-auth-keycloak-role-adapter.json +32 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11101.json +47 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11102.json +45 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11103.json +36 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11104.json +36 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11105.json +45 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11106.json +46 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11107.json +45 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11108.json +45 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11109.json +37 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11110.json +45 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11111.json +45 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11112.json +37 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11113.json +36 -0
- package/blueprints/security-auth-keycloak/docs/topics.md +74 -0
- package/blueprints/security-auth-keycloak/guide/security-auth-keycloak.md +81 -0
- package/blueprints/security-auth-magic-link/README.md +46 -0
- package/blueprints/security-auth-magic-link/assets/email-templates/magic-link-email.md +44 -0
- package/blueprints/security-auth-magic-link/assets/email-templates/stub-adapter.md +55 -0
- package/blueprints/security-auth-magic-link/assets/principal-registry-samples/allow-list-file.md +46 -0
- package/blueprints/security-auth-magic-link/assets/principal-registry-samples/single-address.md +35 -0
- package/blueprints/security-auth-magic-link/blueprint.json +45 -0
- package/blueprints/security-auth-magic-link/contributions/adrs/adr-501-security-auth-magic-link-model.json +30 -0
- package/blueprints/security-auth-magic-link/contributions/adrs/adr-502-security-auth-magic-link-token-secrecy.json +25 -0
- package/blueprints/security-auth-magic-link/contributions/adrs/adr-503-security-auth-magic-link-anti-enumeration-budget.json +25 -0
- package/blueprints/security-auth-magic-link/contributions/adrs/adr-504-security-auth-magic-link-session-lifecycle.json +30 -0
- package/blueprints/security-auth-magic-link/contributions/adrs/adr-505-security-auth-magic-link-rate-limiting.json +25 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-001.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-002.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-003.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-004.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-005.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-006.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-007.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-008.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-009.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-010.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-011.json +18 -0
- package/blueprints/security-auth-magic-link/contributions/tacs/tac-501-security-auth-magic-link-manager.json +45 -0
- package/blueprints/security-auth-magic-link/contributions/tacs/tac-502-security-auth-magic-link-session-manager.json +46 -0
- package/blueprints/security-auth-magic-link/contributions/tacs/tac-503-security-auth-magic-link-login-routes.json +76 -0
- package/blueprints/security-auth-magic-link/contributions/tacs/tac-504-security-auth-magic-link-email-delivery-adapter.json +26 -0
- package/blueprints/security-auth-magic-link/contributions/tacs/tac-505-security-auth-magic-link-principal-registry.json +26 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3101.json +64 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3102.json +54 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3103.json +45 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3104.json +55 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3105.json +46 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3106.json +46 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3107.json +54 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3108.json +46 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3109.json +48 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3110.json +45 -0
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3111.json +45 -0
- package/blueprints/security-auth-magic-link/docs/topics.md +45 -0
- package/blueprints/security-auth-magic-link/guide/security-auth-magic-link.md +65 -0
- package/blueprints/security-auth-oauth2/README.md +50 -0
- package/blueprints/security-auth-oauth2/assets/mock-provider/mock-oidc-shape.md +55 -0
- package/blueprints/security-auth-oauth2/assets/provider-selector/list-shape.md +27 -0
- package/blueprints/security-auth-oauth2/assets/providers/generic-oidc-discovery.md +31 -0
- package/blueprints/security-auth-oauth2/assets/providers/github-oauth2-only.md +31 -0
- package/blueprints/security-auth-oauth2/assets/providers/google-oidc.md +31 -0
- package/blueprints/security-auth-oauth2/assets/session-bridge/opaque-handle-shape.md +59 -0
- package/blueprints/security-auth-oauth2/blueprint.json +44 -0
- package/blueprints/security-auth-oauth2/contributions/adrs/adr-1101-security-auth-oauth2-auth-model.json +35 -0
- package/blueprints/security-auth-oauth2/contributions/adrs/adr-1102-security-auth-oauth2-provider-abstraction-contract.json +25 -0
- package/blueprints/security-auth-oauth2/contributions/adrs/adr-1103-security-auth-oauth2-pkce-discipline.json +25 -0
- package/blueprints/security-auth-oauth2/contributions/adrs/adr-1104-security-auth-oauth2-session-bridge-shape.json +25 -0
- package/blueprints/security-auth-oauth2/contributions/adrs/adr-1105-security-auth-oauth2-refresh-token-posture.json +25 -0
- package/blueprints/security-auth-oauth2/contributions/adrs/adr-1106-security-auth-oauth2-multi-provider-routing.json +25 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-001.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-002.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-003.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-004.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-005.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-006.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-007.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-008.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-009.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-010.json +18 -0
- package/blueprints/security-auth-oauth2/contributions/tacs/tac-1101-security-auth-oauth2-flow-controller.json +61 -0
- package/blueprints/security-auth-oauth2/contributions/tacs/tac-1102-security-auth-oauth2-provider-adapter.json +33 -0
- package/blueprints/security-auth-oauth2/contributions/tacs/tac-1103-security-auth-oauth2-session-bridge.json +51 -0
- package/blueprints/security-auth-oauth2/contributions/tacs/tac-1104-security-auth-oauth2-provider-selector.json +29 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10101.json +47 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10102.json +45 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10103.json +36 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10104.json +36 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10105.json +55 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10106.json +45 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10107.json +46 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10108.json +46 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10109.json +37 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10110.json +37 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10111.json +28 -0
- package/blueprints/security-auth-oauth2/docs/topics.md +58 -0
- package/blueprints/security-auth-oauth2/guide/security-auth-oauth2.md +65 -0
- package/blueprints/security-secrets-management/README.md +48 -0
- package/blueprints/security-secrets-management/assets/cli-usage/agent-access-pattern.md +69 -0
- package/blueprints/security-secrets-management/assets/manifest-samples/environment-aware-example.md +33 -0
- package/blueprints/security-secrets-management/assets/manifest-samples/secrets-yaml-shape.md +74 -0
- package/blueprints/security-secrets-management/assets/ui-integration/three-way-choice.md +44 -0
- package/blueprints/security-secrets-management/blueprint.json +43 -0
- package/blueprints/security-secrets-management/contributions/adrs/adr-901-security-secrets-management-secrets-source.json +30 -0
- package/blueprints/security-secrets-management/contributions/adrs/adr-902-security-secrets-management-default-vendor.json +35 -0
- package/blueprints/security-secrets-management/contributions/adrs/adr-903-security-secrets-management-agent-access-discipline.json +25 -0
- package/blueprints/security-secrets-management/contributions/adrs/adr-904-security-secrets-management-dotenv-reflection.json +25 -0
- package/blueprints/security-secrets-management/contributions/adrs/adr-905-security-secrets-management-rotation-and-audit.json +30 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-001.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-002.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-003.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-004.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-005.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-006.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-007.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-008.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-009.json +18 -0
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-010.json +18 -0
- package/blueprints/security-secrets-management/contributions/tacs/tac-901-security-secrets-management-manager-client.json +52 -0
- package/blueprints/security-secrets-management/contributions/tacs/tac-902-security-secrets-management-manifest.json +34 -0
- package/blueprints/security-secrets-management/contributions/tacs/tac-903-security-secrets-management-env-reflector.json +46 -0
- package/blueprints/security-secrets-management/contributions/tacs/tac-904-security-secrets-management-rotation-gate.json +57 -0
- package/blueprints/security-secrets-management/contributions/tacs/tac-905-security-secrets-management-agent-cli.json +59 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8101.json +46 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8102.json +45 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8103.json +37 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8104.json +45 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8105.json +55 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8106.json +46 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8107.json +46 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8108.json +45 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8109.json +46 -0
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8110.json +45 -0
- package/blueprints/security-secrets-management/docs/topics.md +46 -0
- package/blueprints/security-secrets-management/guide/security-secrets-management.md +68 -0
- package/fixtures/canary-manifest.json +1 -101
- package/package.json +15 -9
- package/rcf/.identity/profile.md +37 -0
- package/rcf/knowledge/INDEX.md +12 -0
- package/rcf/knowledge/README.md +41 -0
- package/rcf/knowledge/docs/.gitkeep +0 -0
- package/rcf/knowledge/notes/.gitkeep +0 -0
- package/scripts/preinstall-node-check.mjs +61 -0
- package/src/blueprint/apply.js +12 -6
- package/src/blueprint/conflicts.js +8 -8
- package/src/blueprint/index.js +2 -1
- package/src/blueprint/list.js +60 -0
- package/src/blueprint/loader.js +26 -1
- package/src/blueprint/namespace.js +20 -16
- package/src/blueprint/shelf-resolver.js +173 -0
- package/src/blueprint/supersede.js +3 -2
- package/src/browser-verify/invariants.js +40 -0
- package/src/browser-verify/runner.js +2 -0
- package/src/cli/blueprint.js +53 -9
- package/src/cli/init.js +2 -0
- package/src/core/store/writer.js +64 -2
- package/src/setup/agent-setup.js +28 -10
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Wireframe: sign-in
|
|
2
|
+
|
|
3
|
+
The authentication entry surface (application-spa-US-1115). Motion-quiet (AC-1119-4), full application-spa-REQ-007 form contract, both themes, all breakpoints.
|
|
4
|
+
|
|
5
|
+
## Shape
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
+--------------------------------------------------------------------------+
|
|
9
|
+
| minimal banner: product logo (links to landing) | theme toggle |
|
|
10
|
+
| |
|
|
11
|
+
| +------------------------------+ |
|
|
12
|
+
| | h1 Sign in to <Product> | |
|
|
13
|
+
| | | |
|
|
14
|
+
| | [ error alert renders here | |
|
|
15
|
+
| | on failed sign-in ] | |
|
|
16
|
+
| | | |
|
|
17
|
+
| | Email | |
|
|
18
|
+
| | [___________________] | |
|
|
19
|
+
| | | |
|
|
20
|
+
| | Password | |
|
|
21
|
+
| | [___________________] [show]| |
|
|
22
|
+
| | | |
|
|
23
|
+
| | [ Sign in ] | |
|
|
24
|
+
| | | |
|
|
25
|
+
| | Forgot your password? | |
|
|
26
|
+
| +------------------------------+ |
|
|
27
|
+
| |
|
|
28
|
+
| contentinfo: support link | legal |
|
|
29
|
+
+--------------------------------------------------------------------------+
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Card on surface-raised above 768; full-width single column on surface at 360.
|
|
33
|
+
|
|
34
|
+
## Behaviour
|
|
35
|
+
|
|
36
|
+
- Email field: type=email, autocomplete=username, inputmode=email. Password: autocomplete=current-password, show/hide toggle with accessible name and state (AC-1113-6).
|
|
37
|
+
- Failed sign-in: one alert above the form, safe copy that never says which element was wrong (AC-1115-2); fields keep their values except the password.
|
|
38
|
+
- Pending: button busy, duplicate submits ignored (AC-1115-3).
|
|
39
|
+
- Success: forward to the deep-link target when one is pending (AC-1116-5, validated per AC-1116-6), else the default authenticated route.
|
|
40
|
+
- Arriving already signed in redirects to the default authenticated route.
|
|
41
|
+
- First focusable element is the skip-link, then the email field receives initial focus.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Wireframe: sign-out confirmation
|
|
2
|
+
|
|
3
|
+
The surface rendered after a completed sign-out (AC-1115-4). Its job: confirm the session is closed, reassure, and offer the two next steps that make sense.
|
|
4
|
+
|
|
5
|
+
## Shape
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
+--------------------------------------------------------------------------+
|
|
9
|
+
| minimal banner: product logo | theme toggle |
|
|
10
|
+
| |
|
|
11
|
+
| +------------------------------+ |
|
|
12
|
+
| | [ success icon alias ] | |
|
|
13
|
+
| | | |
|
|
14
|
+
| | h1 You are signed out | |
|
|
15
|
+
| | | |
|
|
16
|
+
| | Body: Your session has | |
|
|
17
|
+
| | ended on this device. | |
|
|
18
|
+
| | | |
|
|
19
|
+
| | [ Sign back in ] | |
|
|
20
|
+
| | [ go to the public site ] | |
|
|
21
|
+
| +------------------------------+ |
|
|
22
|
+
| |
|
|
23
|
+
| contentinfo |
|
|
24
|
+
+--------------------------------------------------------------------------+
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Behaviour
|
|
28
|
+
|
|
29
|
+
- Reached only after the server-side session is invalidated and client caches are cleared (ADR-205); rendering this surface with a live session is a defect.
|
|
30
|
+
- The theme choice persists across sign-out for the session (AC-1107-3); the per-user preference reapplies on next sign-in (AC-1107-4).
|
|
31
|
+
- Back-navigation after sign-out must not reveal cached authenticated content.
|
|
32
|
+
- No auto-redirect: the user chose to leave; let the surface rest.
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "application-spa",
|
|
3
|
+
"version": "1.3.1",
|
|
4
|
+
"category": "application",
|
|
5
|
+
"contributions": [
|
|
6
|
+
{
|
|
7
|
+
"id": "application-spa-REQ-001",
|
|
8
|
+
"kind": "req",
|
|
9
|
+
"path": "requirements/application-spa-req-001.json"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "application-spa-REQ-002",
|
|
13
|
+
"kind": "req",
|
|
14
|
+
"path": "requirements/application-spa-req-002.json"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "application-spa-REQ-003",
|
|
18
|
+
"kind": "req",
|
|
19
|
+
"path": "requirements/application-spa-req-003.json"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "application-spa-REQ-004",
|
|
23
|
+
"kind": "req",
|
|
24
|
+
"path": "requirements/application-spa-req-004.json"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "application-spa-REQ-005",
|
|
28
|
+
"kind": "req",
|
|
29
|
+
"path": "requirements/application-spa-req-005.json"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "application-spa-REQ-006",
|
|
33
|
+
"kind": "req",
|
|
34
|
+
"path": "requirements/application-spa-req-006.json"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "application-spa-REQ-007",
|
|
38
|
+
"kind": "req",
|
|
39
|
+
"path": "requirements/application-spa-req-007.json"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "application-spa-REQ-008",
|
|
43
|
+
"kind": "req",
|
|
44
|
+
"path": "requirements/application-spa-req-008.json"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "application-spa-REQ-009",
|
|
48
|
+
"kind": "req",
|
|
49
|
+
"path": "requirements/application-spa-req-009.json"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "application-spa-REQ-010",
|
|
53
|
+
"kind": "req",
|
|
54
|
+
"path": "requirements/application-spa-req-010.json"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "application-spa-REQ-011",
|
|
58
|
+
"kind": "req",
|
|
59
|
+
"path": "requirements/application-spa-req-011.json"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "application-spa-REQ-012",
|
|
63
|
+
"kind": "req",
|
|
64
|
+
"path": "requirements/application-spa-req-012.json"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "application-spa-REQ-013",
|
|
68
|
+
"kind": "req",
|
|
69
|
+
"path": "requirements/application-spa-req-013.json"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "application-spa-REQ-014",
|
|
73
|
+
"kind": "req",
|
|
74
|
+
"path": "requirements/application-spa-req-014.json"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "application-spa-REQ-015",
|
|
78
|
+
"kind": "req",
|
|
79
|
+
"path": "requirements/application-spa-req-015.json"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "application-spa-REQ-016",
|
|
83
|
+
"kind": "req",
|
|
84
|
+
"path": "requirements/application-spa-req-016.json"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "application-spa-REQ-017",
|
|
88
|
+
"kind": "req",
|
|
89
|
+
"path": "requirements/application-spa-req-017.json"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "application-spa-REQ-018",
|
|
93
|
+
"kind": "req",
|
|
94
|
+
"path": "requirements/application-spa-req-018.json"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "application-spa-REQ-019",
|
|
98
|
+
"kind": "req",
|
|
99
|
+
"path": "requirements/application-spa-req-019.json"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "application-spa-REQ-020",
|
|
103
|
+
"kind": "req",
|
|
104
|
+
"path": "requirements/application-spa-req-020.json"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"id": "application-spa-REQ-021",
|
|
108
|
+
"kind": "req",
|
|
109
|
+
"path": "requirements/application-spa-req-021.json"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "application-spa-US-1101",
|
|
113
|
+
"kind": "us",
|
|
114
|
+
"path": "user-stories/application-spa-us-1101.json"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "application-spa-US-1102",
|
|
118
|
+
"kind": "us",
|
|
119
|
+
"path": "user-stories/application-spa-us-1102.json"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "application-spa-US-1103",
|
|
123
|
+
"kind": "us",
|
|
124
|
+
"path": "user-stories/application-spa-us-1103.json"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"id": "application-spa-US-1104",
|
|
128
|
+
"kind": "us",
|
|
129
|
+
"path": "user-stories/application-spa-us-1104.json"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "application-spa-US-1105",
|
|
133
|
+
"kind": "us",
|
|
134
|
+
"path": "user-stories/application-spa-us-1105.json"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "application-spa-US-1106",
|
|
138
|
+
"kind": "us",
|
|
139
|
+
"path": "user-stories/application-spa-us-1106.json"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "application-spa-US-1107",
|
|
143
|
+
"kind": "us",
|
|
144
|
+
"path": "user-stories/application-spa-us-1107.json"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "application-spa-US-1108",
|
|
148
|
+
"kind": "us",
|
|
149
|
+
"path": "user-stories/application-spa-us-1108.json"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"id": "application-spa-US-1109",
|
|
153
|
+
"kind": "us",
|
|
154
|
+
"path": "user-stories/application-spa-us-1109.json"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "application-spa-US-1110",
|
|
158
|
+
"kind": "us",
|
|
159
|
+
"path": "user-stories/application-spa-us-1110.json"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "application-spa-US-1111",
|
|
163
|
+
"kind": "us",
|
|
164
|
+
"path": "user-stories/application-spa-us-1111.json"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "application-spa-US-1112",
|
|
168
|
+
"kind": "us",
|
|
169
|
+
"path": "user-stories/application-spa-us-1112.json"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"id": "application-spa-US-1113",
|
|
173
|
+
"kind": "us",
|
|
174
|
+
"path": "user-stories/application-spa-us-1113.json"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"id": "application-spa-US-1114",
|
|
178
|
+
"kind": "us",
|
|
179
|
+
"path": "user-stories/application-spa-us-1114.json"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"id": "application-spa-US-1115",
|
|
183
|
+
"kind": "us",
|
|
184
|
+
"path": "user-stories/application-spa-us-1115.json"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"id": "application-spa-US-1116",
|
|
188
|
+
"kind": "us",
|
|
189
|
+
"path": "user-stories/application-spa-us-1116.json"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "application-spa-US-1117",
|
|
193
|
+
"kind": "us",
|
|
194
|
+
"path": "user-stories/application-spa-us-1117.json"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"id": "application-spa-US-1118",
|
|
198
|
+
"kind": "us",
|
|
199
|
+
"path": "user-stories/application-spa-us-1118.json"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"id": "application-spa-US-1119",
|
|
203
|
+
"kind": "us",
|
|
204
|
+
"path": "user-stories/application-spa-us-1119.json"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"id": "application-spa-US-1120",
|
|
208
|
+
"kind": "us",
|
|
209
|
+
"path": "user-stories/application-spa-us-1120.json"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "application-spa-US-1121",
|
|
213
|
+
"kind": "us",
|
|
214
|
+
"path": "user-stories/application-spa-us-1121.json"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"id": "application-spa-US-1122",
|
|
218
|
+
"kind": "us",
|
|
219
|
+
"path": "user-stories/application-spa-us-1122.json"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": "application-spa-US-1123",
|
|
223
|
+
"kind": "us",
|
|
224
|
+
"path": "user-stories/application-spa-us-1123.json"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"id": "application-spa-US-1124",
|
|
228
|
+
"kind": "us",
|
|
229
|
+
"path": "user-stories/application-spa-us-1124.json"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"id": "application-spa-US-1125",
|
|
233
|
+
"kind": "us",
|
|
234
|
+
"path": "user-stories/application-spa-us-1125.json"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"id": "application-spa-US-1126",
|
|
238
|
+
"kind": "us",
|
|
239
|
+
"path": "user-stories/application-spa-us-1126.json"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"id": "application-spa-US-1127",
|
|
243
|
+
"kind": "us",
|
|
244
|
+
"path": "user-stories/application-spa-us-1127.json"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"id": "application-spa-US-1128",
|
|
248
|
+
"kind": "us",
|
|
249
|
+
"path": "user-stories/application-spa-us-1128.json"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"id": "application-spa-US-1129",
|
|
253
|
+
"kind": "us",
|
|
254
|
+
"path": "user-stories/application-spa-us-1129.json"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"id": "application-spa-US-1130",
|
|
258
|
+
"kind": "us",
|
|
259
|
+
"path": "user-stories/application-spa-us-1130.json"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"id": "application-spa-US-1131",
|
|
263
|
+
"kind": "us",
|
|
264
|
+
"path": "user-stories/application-spa-us-1131.json"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"id": "application-spa-US-1132",
|
|
268
|
+
"kind": "us",
|
|
269
|
+
"path": "user-stories/application-spa-us-1132.json"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"id": "application-spa-US-1133",
|
|
273
|
+
"kind": "us",
|
|
274
|
+
"path": "user-stories/application-spa-us-1133.json"
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"id": "TAC-201-application-spa-app-shell",
|
|
278
|
+
"kind": "tac",
|
|
279
|
+
"path": "tacs/tac-201-application-spa-app-shell.json"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "TAC-202-application-spa-theme-system",
|
|
283
|
+
"kind": "tac",
|
|
284
|
+
"path": "tacs/tac-202-application-spa-theme-system.json"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"id": "TAC-203-application-spa-component-library",
|
|
288
|
+
"kind": "tac",
|
|
289
|
+
"path": "tacs/tac-203-application-spa-component-library.json"
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"id": "TAC-204-application-spa-client-data-layer",
|
|
293
|
+
"kind": "tac",
|
|
294
|
+
"path": "tacs/tac-204-application-spa-client-data-layer.json"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"id": "TAC-205-application-spa-forms-engine",
|
|
298
|
+
"kind": "tac",
|
|
299
|
+
"path": "tacs/tac-205-application-spa-forms-engine.json"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"id": "TAC-206-application-spa-telemetry",
|
|
303
|
+
"kind": "tac",
|
|
304
|
+
"path": "tacs/tac-206-application-spa-telemetry.json"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"id": "TAC-207-application-spa-token-adherence-probe",
|
|
308
|
+
"kind": "tac",
|
|
309
|
+
"path": "tacs/tac-207-application-spa-token-adherence-probe.json"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"id": "TAC-208-application-spa-icon-adherence-probe",
|
|
313
|
+
"kind": "tac",
|
|
314
|
+
"path": "tacs/tac-208-application-spa-icon-adherence-probe.json"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"id": "TAC-209-application-spa-csp-styled-adherence-probe",
|
|
318
|
+
"kind": "tac",
|
|
319
|
+
"path": "tacs/tac-209-application-spa-csp-styled-adherence-probe.json"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"id": "TAC-210-application-spa-external-dependency-provisioning-probe",
|
|
323
|
+
"kind": "tac",
|
|
324
|
+
"path": "tacs/tac-210-application-spa-external-dependency-provisioning-probe.json"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"id": "TAC-211-application-spa-core-flow-e2e-probe",
|
|
328
|
+
"kind": "tac",
|
|
329
|
+
"path": "tacs/tac-211-application-spa-core-flow-e2e-probe.json"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"id": "ADR-201-application-spa-routing",
|
|
333
|
+
"kind": "adr",
|
|
334
|
+
"path": "adrs/adr-201-application-spa-routing.json",
|
|
335
|
+
"scope": "global",
|
|
336
|
+
"topic": "clientRouting"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"id": "ADR-202-application-spa-theming",
|
|
340
|
+
"kind": "adr",
|
|
341
|
+
"path": "adrs/adr-202-application-spa-theming.json",
|
|
342
|
+
"scope": "global",
|
|
343
|
+
"topic": "theming"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"id": "ADR-203-application-spa-client-state",
|
|
347
|
+
"kind": "adr",
|
|
348
|
+
"path": "adrs/adr-203-application-spa-client-state.json",
|
|
349
|
+
"scope": "global",
|
|
350
|
+
"topic": "clientState"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"id": "ADR-204-application-spa-error-envelope",
|
|
354
|
+
"kind": "adr",
|
|
355
|
+
"path": "adrs/adr-204-application-spa-error-envelope.json",
|
|
356
|
+
"scope": "global",
|
|
357
|
+
"topic": "errorEnvelope"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"id": "ADR-205-application-spa-auth-model",
|
|
361
|
+
"kind": "adr",
|
|
362
|
+
"path": "adrs/adr-205-application-spa-auth-model.json",
|
|
363
|
+
"scope": "global",
|
|
364
|
+
"topic": "authModel"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"id": "ADR-206-application-spa-iconography",
|
|
368
|
+
"kind": "adr",
|
|
369
|
+
"path": "adrs/adr-206-application-spa-iconography.json"
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"id": "ADR-207-application-spa-motion",
|
|
373
|
+
"kind": "adr",
|
|
374
|
+
"path": "adrs/adr-207-application-spa-motion.json"
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"id": "ADR-208-application-spa-i18n",
|
|
378
|
+
"kind": "adr",
|
|
379
|
+
"path": "adrs/adr-208-application-spa-i18n.json"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"id": "ADR-209-application-spa-telemetry-naming",
|
|
383
|
+
"kind": "adr",
|
|
384
|
+
"path": "adrs/adr-209-application-spa-telemetry-naming.json"
|
|
385
|
+
}
|
|
386
|
+
]
|
|
387
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-201-application-spa-routing",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Client-side routing over the History API with a declared route inventory",
|
|
8
|
+
"context": "A single-page application needs one answer to how URLs map to surfaces. Implicit or component-local routing makes deep links, canonical URLs, 404 handling, and telemetry unverifiable. The route model is a whole-project decision: two routing regimes in one deployable produce broken back-button behaviour and unshareable URLs.",
|
|
9
|
+
"decision": "Routing is client-side over the History API (clean paths, no hash routing) against a single declared route inventory. Every route is named, every resource class has one canonical URL shape, unknown paths render the 404 surface, and removed resources render 410. The server serves the application shell for any route path so deep links cold-load.",
|
|
10
|
+
"consequences": "Deep links, breadcrumbs, navigation rendering, and telemetry all derive from one inventory. The hosting layer must rewrite unknown paths to the shell (documented in the project deploy target). Hash-based routing is unavailable even where hosting rewrites are awkward; that constraint is accepted for canonical URLs.",
|
|
11
|
+
"alternativesConsidered": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Hash routing",
|
|
14
|
+
"summary": "Fragment-based routes needing no server rewrites.",
|
|
15
|
+
"reasonNotChosen": "Non-canonical URLs, weaker analytics and SEO, and a legacy feel that fails the visual quality bar."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Server-driven navigation",
|
|
19
|
+
"summary": "Full page loads per navigation.",
|
|
20
|
+
"reasonNotChosen": "Out of scope for the application-spa blueprint; that shape belongs to a different blueprint."
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
24
|
+
"updatedAt": "2026-08-19T09:00:00Z"
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-202-application-spa-theming",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.1.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Semantic design tokens as CSS custom properties with a root-level theme switch",
|
|
8
|
+
"context": "Dark and light parity is a ratified requirement (application-spa-REQ-005). Parity is only checkable when every colour decision routes through a named token that exists in both palettes. How theming is realised is a whole-project decision: two theming mechanisms cannot coexist without drift. Watchpost run4 demonstrated that declaring the discipline is not the same as compelling it: raw palette values can sit in component stylesheets across passing build cycles. v1.1 pairs the decision with a runtime-observable enforcement handle so the ship gate refuses on violation, not the operator's later reading of the ADR.",
|
|
9
|
+
"decision": "The token layer in assets/tokens/design-tokens.json is the single source of colour, spacing, radius, typography, elevation, and motion values. Tokens are realised as CSS custom properties on the document root (assets/tokens/theme.css); the active theme is a data-theme attribute swap. Components consume semantic tokens only; raw palette values in component styles are a defect.",
|
|
10
|
+
"consequences": "Theme parity and contrast become data checks over one JSON file. Re-skinning is a token edit. The indirection cost is one layer of naming; the working agent extends tokens by adding pairs, never by inlining values. The v1.1 token-adherence probe (TAC-207-application-spa-token-adherence-probe) is the runtime-observable handle the ship gate exercises: the probe scans the built stylesheet output for raw colour literals outside the token-realisation file and diffs the light and dark token key sets, and exits non-zero on any violation. When the probe is wired as a ci-pipeline gate (TAC-701), a violation refuses ship through the ordinary gate-failure path.",
|
|
11
|
+
"alternativesConsidered": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Per-component theme conditionals",
|
|
14
|
+
"summary": "Components branch on theme in code.",
|
|
15
|
+
"reasonNotChosen": "Parity becomes unverifiable and every component is a divergence point."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Two compiled stylesheets",
|
|
19
|
+
"summary": "Separate light and dark CSS builds.",
|
|
20
|
+
"reasonNotChosen": "Doubles the drift surface and breaks the instant toggle requirement."
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
24
|
+
"updatedAt": "2026-08-24T00:00:00Z"
|
|
25
|
+
}
|
package/blueprints/application-spa/contributions/adrs/adr-203-application-spa-client-state.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-203-application-spa-client-state",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Server-state cache separated from UI state, stale-while-revalidate by default",
|
|
8
|
+
"context": "application-spa-REQ-013 requires a client cache discipline. Whether client state is one store or two regimes is a whole-project decision; mixing regimes per feature produces stale lists, flicker, and phantom optimistic state.",
|
|
9
|
+
"decision": "Server state lives in a keyed query cache with stale-while-revalidate reads and explicit invalidation on writes. UI state (selection, open panels, form drafts) lives in local component or page state and never enters the server-state cache. Optimistic updates are opt-in per mutation and roll back visibly on failure. Cache keys derive from canonical resource URLs.",
|
|
10
|
+
"consequences": "Data freshness has one policy to verify. Screens read query status instead of hand-rolling loading flags, which is what makes the application-spa-REQ-010 state quartet cheap. The discipline forbids stuffing view state into the cache even when convenient.",
|
|
11
|
+
"alternativesConsidered": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Single global store for everything",
|
|
14
|
+
"summary": "One store holding server data and view state.",
|
|
15
|
+
"reasonNotChosen": "Couples wire lifecycles to view lifecycles; invalidation becomes manual and error-prone."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Fetch-per-render, no cache",
|
|
19
|
+
"summary": "Always fetch fresh.",
|
|
20
|
+
"reasonNotChosen": "Fails the performance budget and produces loading flicker on every navigation."
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
24
|
+
"updatedAt": "2026-08-19T09:00:00Z"
|
|
25
|
+
}
|
package/blueprints/application-spa/contributions/adrs/adr-204-application-spa-error-envelope.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-204-application-spa-error-envelope",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "RFC 7807 problem details as the error shape the client consumes",
|
|
8
|
+
"context": "The client must render errors it can rely on structurally. The wire error shape is a whole-project decision shared with whatever serves the API; this ADR records the client half. A application-api-rest blueprint applied to the same project contributes its own decision on the same topic, and blueprint composition will surface that pairing for the operator to reconcile at add time. That surfacing is intended.",
|
|
9
|
+
"decision": "The client treats RFC 7807 problem details (type, title, status, detail, instance, plus service extensions) as the canonical error shape. The data layer (TAC-204) normalises any non-conforming response into this shape at the boundary; UI code renders from the envelope, mapping fields to user-actionable copy per application-spa-REQ-017, and never parses ad-hoc error bodies.",
|
|
10
|
+
"consequences": "Error rendering is uniform and specifiable. When the backend natively emits problem details the normaliser is a pass-through; when it does not, the normaliser is quarantine for the inconsistency. Composing with the application-api-rest blueprint raises a deliberate conflict on this topic; the expected resolution is one project-level ADR adopting RFC 7807 end to end.",
|
|
11
|
+
"alternativesConsidered": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Per-endpoint error shapes",
|
|
14
|
+
"summary": "Render whatever each endpoint returns.",
|
|
15
|
+
"reasonNotChosen": "Unverifiable error UX and blame-shaped fallback copy."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Message-string-only errors",
|
|
19
|
+
"summary": "Reduce every failure to a string.",
|
|
20
|
+
"reasonNotChosen": "Loses status semantics and retry-ability the UX requirements need."
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
24
|
+
"updatedAt": "2026-08-19T09:00:00Z"
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-205-application-spa-auth-model",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Cookie-based session authentication with client-side expiry handling",
|
|
8
|
+
"context": "The blueprint scope is public plus authenticated surfaces with session-based auth. The authentication model is a whole-project decision: the client, the API, and the deploy target must hold the same answer. A application-api-rest blueprint contributes its own decision on this topic; composition surfaces the pairing for operator reconciliation, which is intended.",
|
|
9
|
+
"decision": "Authentication is a server-issued session carried in a Secure, HttpOnly, SameSite cookie; the bundle never stores tokens in script-readable storage. The client treats 401 as session expiry: the current route is remembered, the session-expired surface renders, and successful re-authentication returns the user to the remembered route (application-spa-REQ-009). Sign-out invalidates server-side and clears client caches.",
|
|
10
|
+
"consequences": "XSS cannot exfiltrate a bearer token because none is script-visible. CSRF posture must be handled with the API (SameSite plus the API blueprint auth classes). Session lifetime is server-owned; the client responds to expiry rather than predicting it.",
|
|
11
|
+
"alternativesConsidered": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Bearer tokens in localStorage",
|
|
14
|
+
"summary": "JWT held by the client and attached per request.",
|
|
15
|
+
"reasonNotChosen": "Script-readable credentials fail the application-spa-REQ-018 floor."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "OAuth authorization-code with PKCE per session",
|
|
19
|
+
"summary": "Delegated identity flow.",
|
|
20
|
+
"reasonNotChosen": "Valid where an external IdP is a project requirement; heavier than the blueprint default. Projects override by superseding this ADR."
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
24
|
+
"updatedAt": "2026-08-19T09:00:00Z"
|
|
25
|
+
}
|
package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-206-application-spa-iconography",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.1.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "One icon set behind semantic aliases",
|
|
8
|
+
"context": "application-spa-REQ-011 requires a single icon set. Which construction (stroke width, grid) and how components reference icons needs one recorded answer inside the SPA. Watchpost run4 demonstrated that recording the discipline is not the same as compelling it: a build cycle passed while eight surfaces shipped zero icons. v1.1 pairs the decision with a runtime-observable enforcement handle so the ship gate refuses on violation, not the operator's later reading of the ADR.",
|
|
9
|
+
"decision": "The project selects exactly one icon set (consistent stroke and grid across all glyphs) and components reference icons only through semantic aliases (icon.close, icon.danger, icon.search, and peers) declared in one registry. Bespoke per-component artwork requires extending the registry, not inlining SVG.",
|
|
10
|
+
"consequences": "Swapping icon sets is a registry edit. Decorative versus meaningful icon semantics get one enforcement point for the application-spa-REQ-019 naming rules. The v1.1 icon-adherence probe (TAC-208-application-spa-icon-adherence-probe) is the runtime-observable handle the ship gate exercises: the probe scans the component source for inline SVG outside the registry and for icon references naming aliases the registry does not declare, and exits non-zero on any violation. When the probe is wired as a ci-pipeline gate (TAC-701), a violation refuses ship through the ordinary gate-failure path.",
|
|
11
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
12
|
+
"updatedAt": "2026-08-24T00:00:00Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-207-application-spa-motion",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Motion tokens with ease-out defaults and a reduced-motion kill switch",
|
|
8
|
+
"context": "application-spa-REQ-012 requires tokenised motion. The duration range, easing family, and the reduced-motion mechanism need one recorded answer inside the SPA.",
|
|
9
|
+
"decision": "Motion durations and easings come from the motion tokens (fast 150ms, base 200ms, slow 250ms; ease-out family) in the token file. prefers-reduced-motion collapses non-essential transitions to none via one root-level media rule, not per-component checks.",
|
|
10
|
+
"consequences": "Motion is consistent and disableable in one place. Choreographed long-form animation is out of the blueprint's scope and would need its own decision.",
|
|
11
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
12
|
+
"updatedAt": "2026-08-19T09:00:00Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-208-application-spa-i18n",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "String extraction and locale-aware formatting from day one, translations deferred",
|
|
8
|
+
"context": "application-spa-REQ-015 requires internationalisation readiness without shipping translations. The mechanism needs one recorded answer inside the SPA.",
|
|
9
|
+
"decision": "User-facing strings live in an extraction catalogue keyed by stable identifiers; components render through the catalogue lookup. Dates, numbers, and currency format through the platform locale APIs (Intl). Layout is authored with logical properties (inline-start over left) so RTL rendering survives without a parallel stylesheet.",
|
|
10
|
+
"consequences": "Localisation later is catalogue work, not surgery. The discipline costs a lookup per string and forbids concatenated sentence fragments, which also improves copy review.",
|
|
11
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
12
|
+
"updatedAt": "2026-08-19T09:00:00Z"
|
|
13
|
+
}
|
package/blueprints/application-spa/contributions/adrs/adr-209-application-spa-telemetry-naming.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-209-application-spa-telemetry-naming",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Typed journey-checkpoint events named domain.surface.action",
|
|
8
|
+
"context": "application-spa-REQ-016 requires named events. Free-text names drift with refactors and kill dashboard continuity; the scheme needs one recorded answer inside the SPA.",
|
|
9
|
+
"decision": "Telemetry events are declared in a typed registry and named domain.surface.action in lower camel segments (for example auth.signIn.succeeded, orders.list.filtered). Error-boundary reports and the two performance marks (firstPaint, timeToInteractive) use reserved names in the same registry. Emitting an unregistered event name is a build-time error.",
|
|
10
|
+
"consequences": "Dashboards and alerts survive refactors because names are contracts. New journeys pay one registry entry per checkpoint, which doubles as the checkpoint inventory application-spa-REQ-008 walks.",
|
|
11
|
+
"createdAt": "2026-08-19T09:00:00Z",
|
|
12
|
+
"updatedAt": "2026-08-19T09:00:00Z"
|
|
13
|
+
}
|