All notable changes to @codeforamerica/safety-net-blueprint-contracts will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Cross-resource search API spec (
search-openapi.yaml) withGET /searchendpoint, uniform result shape, typed attributes, and extensible facets - Rule evaluation engine with assignment and priority rule sets (
workflow-rules.yaml,rules-engine.js) evaluate-ruleseffect type in state machine schema and engine- Queue resource endpoints and examples in workflow API spec
onCreateeffects in create handler (audit events + rule evaluation)- Shared pagination component (
components/pagination.yaml) withPaginationschema - Search as cross-cutting domain in
api-patterns.yaml - Search architecture documentation
- Refactored 9 list schemas to compose
PaginationviaallOfwithunevaluatedProperties - Updated pattern validator to traverse
allOfbranches when checking list responses - Refined search result attributes: added required
fieldkey, madelabeloptional, simplified type enum tostring,date,currency, madefacetsoptional
- Postman generator now matches examples to endpoints by resource type instead of applying all examples to every endpoint in multi-resource APIs
- Fixed false 404s for secondary endpoints (e.g.,
/task-audit-events,/token/claims) that don't share seeded example data
- State machine engine with transitions, guards, and set effects (
workflow-state-machine.yaml) - State machine loader, transition handler, and RPC overlay generator
- Create effects and audit events in state machine engine (
$now,$object.*expressions,TaskAuditEventschema) - Behavioral contract JSON Schema format and validation (state machine, rules, metrics)
- Workflow task lifecycle behavioral contracts (3 states, 3 transitions, guards, effects, SLA, audit)
- Bidirectional YAML-CSV conversion scripts for behavioral contracts
- Appointment REST API and scheduling domain (
scheduling-openapi.yaml) - Case Management REST API (
case-management-openapi.yaml) api:updatescript to add entities to existing domain specs--bundleflag for overlay resolution (dereferences all external$refs)- Unit tests for
generate-api.jsandbundle.js
- Renamed CLI flags for consistency:
--specsto--spec,--baseto--spec,--overlaysto--overlay - Renamed
resolve-overlaytoresolve(script, command, test, bin entry) - Improved CLI scripts: fixed flag forwarding, added
--outflag, positional args support
- Over-scoped behavioral contract YAMLs and CSV tables (replaced by simpler state machine in chunk 1)
- Windows glob expansion and duplicate workspace issues in test scripts
copyBaseSpecs()now skipspackage.jsonandnode_modules
- Initial release of OpenAPI contract specs: Persons, Applications, Households
- OpenAPI Overlay Specification 1.0.0 support with smart scoping (two-pass processing)
- Overlay resolver with
update,rename, andreplaceactions - Spec validation (syntax, patterns, schemas) with Spectral linting
- Task REST API for workflow domain
- Reusable component schemas, parameters, and responses
- API design patterns (
api-patterns.yaml) - State overlay system (
overlays/{state}/modifications.yaml) - Design reference HTML generation
- Preflight quality gate script
- npm workspace packaging and publishing infrastructure