65 lines
2.1 KiB
Markdown
65 lines
2.1 KiB
Markdown
# ai-compliance-sdk
|
|
|
|
Go/Gin service providing AI-Act compliance analysis: iACE impact assessments, UCCA rules engine, hazard library, training/academy, audit, escalation, portfolio, RBAC, RAG, whistleblower, workshop.
|
|
|
|
**Port:** `8090` → exposed `8093` (container: `bp-compliance-ai-sdk`)
|
|
**Stack:** Go 1.24, Gin, pgx, Postgres.
|
|
|
|
## Architecture
|
|
|
|
Clean-arch refactor is complete:
|
|
|
|
```
|
|
cmd/server/main.go # Thin entrypoint, 7 LOC — wiring in internal/app/
|
|
internal/
|
|
├── app/
|
|
│ ├── app.go # Server initialization + lifecycle
|
|
│ └── routes.go # Route registration
|
|
├── api/handlers/ # 8 sub-resource handler files:
|
|
│ │ # iace_handler_projects, hazards, mitigations,
|
|
│ │ # techfile, monitoring, refdata, rag, components
|
|
├── iace/ # Store split into 7 files:
|
|
│ │ # store_projects, components, hazards,
|
|
│ │ # hazard_library, mitigations, evidence, audit
|
|
│ └── hazard_library/ # Split into 10 category files
|
|
└── ...
|
|
```
|
|
|
|
See `../AGENTS.go.md` for the full convention.
|
|
|
|
**Linting (Phase 5):** `.golangci.yml` added — run `golangci-lint run --timeout 5m ./...`.
|
|
|
|
## Run locally
|
|
|
|
```bash
|
|
cd ai-compliance-sdk
|
|
go mod download
|
|
export COMPLIANCE_DATABASE_URL=...
|
|
go run ./cmd/server
|
|
```
|
|
|
|
## Tests
|
|
|
|
```bash
|
|
go test -race -cover ./...
|
|
golangci-lint run --timeout 5m ./...
|
|
```
|
|
|
|
Co-located `*_test.go`, table-driven. Repo layer uses testcontainers-go (or the compose Postgres) — no SQL mocks.
|
|
|
|
## Public API surface
|
|
|
|
Handlers under `internal/api/handlers/` (8 sub-resource files). Health at `GET /health`. iACE, UCCA, training, academy, portfolio, escalation, audit, rag, whistleblower, workshop subresources. Every route is a contract.
|
|
|
|
## Environment
|
|
|
|
| Var | Purpose |
|
|
|-----|---------|
|
|
| `COMPLIANCE_DATABASE_URL` | Postgres DSN |
|
|
| `LLM_GATEWAY_URL` | LLM router for rag/iACE |
|
|
| `QDRANT_URL` | Vector search |
|
|
|
|
## Don't touch
|
|
|
|
DB schema. Hand-rolled migrations elsewhere own it.
|