Forbes
12ecffdabe
feat(api): approvals + ECO workflow API with YAML-configurable workflows
- Add internal/workflow/ package for YAML workflow definitions (Load, LoadAll, Validate)
- Add internal/db/item_approvals.go repository (Create, AddSignature, GetWithSignatures, ListByItemWithSignatures, UpdateState, UpdateSignature)
- Add internal/api/approval_handlers.go with 4 endpoints:
- GET /{partNumber}/approvals (list approvals with signatures)
- POST /{partNumber}/approvals (create ECO with workflow + signers)
- POST /{partNumber}/approvals/{id}/sign (approve or reject)
- GET /workflows (list available workflow definitions)
- Rule-driven state transitions: any_reject and all_required_approve
- Pack approvals into silo/approvals.json on .kc checkout
- Add WorkflowsConfig to config, load workflows at startup
- Migration 019: add workflow_name column to item_approvals
- Example workflows: engineering-change.yaml, quick-review.yaml
- 7 workflow tests, all passing
Closes #145
2026-02-18 19:38:20 -06:00
..
2026-02-11 09:50:31 -06:00
2026-02-14 13:09:41 -06:00
2026-02-07 01:57:10 -06:00
2026-02-07 01:57:10 -06:00
2026-01-31 09:20:27 -06:00
2026-02-18 19:38:20 -06:00
2026-02-18 18:53:40 -06:00
2026-02-13 15:17:38 -06:00
2026-02-17 12:30:20 -06:00
2026-02-18 19:03:44 -06:00
2026-02-18 16:37:39 -06:00
2026-02-13 15:17:38 -06:00
2026-02-11 09:50:31 -06:00
2026-02-17 12:30:20 -06:00
2026-02-14 13:11:41 -06:00
2026-02-15 03:15:54 -06:00
2026-02-07 01:57:10 -06:00
2026-02-11 09:50:31 -06:00
2026-02-07 01:57:10 -06:00
2026-02-08 18:45:41 -06:00
2026-02-15 02:51:00 -06:00
2026-01-31 11:20:12 -06:00