feat(gci): add Gesamt-Compliance-Index scoring engine and dashboard
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 34s
CI / test-python-backend-compliance (push) Successful in 28s
CI / test-python-document-crawler (push) Successful in 24s
CI / test-python-dsms-gateway (push) Successful in 17s
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 34s
CI / test-python-backend-compliance (push) Successful in 28s
CI / test-python-document-crawler (push) Successful in 24s
CI / test-python-dsms-gateway (push) Successful in 17s
Implements the 4-level GCI scoring model (Module -> Risk-Weighted -> Regulation Area -> Final GCI) with DSGVO, NIS2, ISO 27001, and EU AI Act integration. Backend: - 9 Go files: engine, models, weights, validity, NIS2 roles/scoring, ISO mapping/gap-analysis, mock data - GCI handlers with 13 API endpoints under /sdk/v1/gci/ - Routes registered in main.go Frontend: - TypeScript types, API client, Next.js API proxy - Dashboard page with 6 tabs (Overview, Breakdown, NIS2, ISO 27001, Matrix, Audit Trail) - Sidebar navigation entry Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -27,6 +27,7 @@ import (
|
||||
"github.com/breakpilot/ai-compliance-sdk/internal/vendor"
|
||||
"github.com/breakpilot/ai-compliance-sdk/internal/workshop"
|
||||
"github.com/breakpilot/ai-compliance-sdk/internal/portfolio"
|
||||
"github.com/breakpilot/ai-compliance-sdk/internal/gci"
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/jackc/pgx/v5/pgxpool"
|
||||
@@ -124,6 +125,10 @@ func main() {
|
||||
industryHandlers := handlers.NewIndustryHandlers()
|
||||
dsbHandlers := handlers.NewDSBHandlers(dsbStore)
|
||||
|
||||
// Initialize GCI engine and handlers
|
||||
gciEngine := gci.NewEngine()
|
||||
gciHandlers := handlers.NewGCIHandlers(gciEngine)
|
||||
|
||||
// Initialize middleware
|
||||
rbacMiddleware := rbac.NewMiddleware(rbacService, policyEngine)
|
||||
|
||||
@@ -652,6 +657,29 @@ func main() {
|
||||
dsbRoutes.POST("/assignments/:id/communications", dsbHandlers.CreateCommunication)
|
||||
dsbRoutes.GET("/assignments/:id/communications", dsbHandlers.ListCommunications)
|
||||
}
|
||||
|
||||
// GCI routes - Gesamt-Compliance-Index
|
||||
gciRoutes := v1.Group("/gci")
|
||||
{
|
||||
// Core GCI endpoints
|
||||
gciRoutes.GET("/score", gciHandlers.GetScore)
|
||||
gciRoutes.GET("/score/breakdown", gciHandlers.GetScoreBreakdown)
|
||||
gciRoutes.GET("/score/history", gciHandlers.GetHistory)
|
||||
gciRoutes.GET("/matrix", gciHandlers.GetMatrix)
|
||||
gciRoutes.GET("/audit-trail", gciHandlers.GetAuditTrail)
|
||||
gciRoutes.GET("/profiles", gciHandlers.GetWeightProfiles)
|
||||
|
||||
// NIS2 sub-routes
|
||||
gciRoutes.GET("/nis2/score", gciHandlers.GetNIS2Score)
|
||||
gciRoutes.GET("/nis2/roles", gciHandlers.ListNIS2Roles)
|
||||
gciRoutes.POST("/nis2/roles/assign", gciHandlers.AssignNIS2Role)
|
||||
|
||||
// ISO 27001 sub-routes
|
||||
gciRoutes.GET("/iso/gap-analysis", gciHandlers.GetISOGapAnalysis)
|
||||
gciRoutes.GET("/iso/mappings", gciHandlers.ListISOMappings)
|
||||
gciRoutes.GET("/iso/mappings/:controlId", gciHandlers.GetISOMapping)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Create HTTP server
|
||||
|
||||
Reference in New Issue
Block a user