VendorFlow is a portfolio-grade .NET vendor-onboarding workflow. It accepts a vendor application, validates it, calls a simulated compliance service, routes risk with Camunda DMN, and records either automatic or human approval.
All external enterprise dependencies are simulated locally. This repository demonstrates architecture and operational practices; it is not a production vendor-management system.
- Clean Domain / Application / Infrastructure boundaries
- Camunda BPMN orchestration and DMN risk routing
- SQL Server business persistence, idempotency, worker execution, audit, and outbox records
- Human review, recovery, retries, incidents, and manual remediation
- JWT/OIDC role policies for applicant, reviewer, and administrator operations
- Correlated logs, liveness/readiness checks, tests, formatting, vulnerability checks, and CI
flowchart LR
Client --> API[ASP.NET Core API]
API --> SQL[(SQL Server)]
API --> Camunda[Camunda]
Camunda --> Workers[.NET Workers]
Workers --> Mock[Mock Compliance API]
Workers --> SQL
Workers --> Camunda
flowchart LR
Submit --> Validate --> Compliance --> Risk{DMN risk}
Risk -->|Low| AutoApprove --> Complete
Risk -->|Medium| StandardReview --> Complete
Risk -->|High| EnhancedReview --> Complete
Compliance -->|Business error| Remediation --> EnhancedReview
- Start SQL Server and Camunda as described in docs/Camunda.md.
- Before starting the local identity provider, choose a local Keycloak bootstrap username and unique password. Set them only in your shell as
KEYCLOAK_ADMIN_USERNAMEandKEYCLOAK_ADMIN_PASSWORD, then follow docs/LocalIdentity.md to start Keycloak and create the demo users. Never commit credentials. - Configure connection strings plus
Jwt__AuthorityandJwt__Audiencewith user secrets or environment variables. - Deploy the BPMN and DMN resources using the command in docs/Camunda.md.
- Run
VendorFlow.MockComplianceApi,VendorFlow.Workers, andVendorFlow.Api. - Submit a vendor application with an
Idempotency-Keyheader and a bearer token for the appropriate role.
See Quality Gates, Operations, Security, and Mock Compliance API.
| Concern | Approach |
|---|---|
| Business state | SQL Server is the system of record. Camunda owns long-running workflow state. |
| Reliability | API and worker idempotency records, bounded retries, BPMN error routing, recovery audit, outbox dispatch. |
| Security | JWT/OIDC authentication, role policies, externally configured settings, threat model. |
| Operability | Correlation header, structured worker context, health/readiness, runbook. |
dotnet restore
dotnet build VendorFlow.slnx --no-restore --configuration Release
dotnet format VendorFlow.slnx --no-restore --verify-no-changes
dotnet test VendorFlow.slnx --no-build --configuration ReleaseUse DemoScript.md for a three-to-five-minute walkthrough, including a failed compliance call and recovery path.