How devpath56/shipgate works
ShipGate is a release-governance application: users review a change, evaluate its findings against blocking policies, and submit, approve, or ship it through an enforced server-side gate. A blocked change is routed to its policy owner for a noted resolution, then can be re-evaluated and shipped. Transitions—including refusals—are recorded in a verifiable hash-chained ledger. The UI also exposes policy suggestions and deterministic explanations grounded in live application data. The findings feed is simulated; sampled source supports the web/API/engine flow, while some screen-to-endpoint details are documented rather than inspected directly.
Main entry points: App.tsx App shell · engine.ts Governance engine · api.ts Typed API client · app.ts Fastify API
Components 15
Web application
- App shell
web/src/App.tsx - Change dashboard
web/src/pages/Dashboard.tsx - Change detail
web/src/pages/ChangeDetail.tsx - Policy screen
web/src/pages/Policies.tsx - Ledger screen
web/src/pages/Ledger.tsx - Legacy view
web/src/pages/Legacy.tsx - Typed API client
web/src/api.ts
API and governance
- Fastify API
server/app.ts - Governance engine
server/engine.ts - Domain rules
server/domain.ts
State and evidence
- Demo seed data
server/seed.ts - In-memory state
server/engine.ts - Hash-chained ledger
server/ledger.ts
Explanations
- Deterministic reasoning
server/ai.ts
Other components
- Demo roles
Connections 19
- Demo roles → App shell: select role
- App shell → Change dashboard: routes to
- App shell → Change detail: routes to
- App shell → Policy screen: routes to
- App shell → Ledger screen: routes to
- App shell → Legacy view: routes to
- Change dashboard → Typed API client: fetches queue
- Change detail → Typed API client: requests actions
- Policy screen → Typed API client: requests policies
- Ledger screen → Typed API client: requests ledger
- Legacy view → Typed API client: requests baseline
- Typed API client → Fastify API: sends API requests
- Fastify API → Governance engine: dispatches operations
- Governance engine → Domain rules: applies rules
- Governance engine → Demo seed data: loads on reset
- Governance engine → In-memory state: reads and updates
- Governance engine → Hash-chained ledger: appends and verifies
- Fastify API → Deterministic reasoning: requests explanations
- Deterministic reasoning → Governance engine: reads live governance data