Commit Graph

295 Commits

Author SHA1 Message Date
Benjamin Admin
1698912a27 Fix: map quiz_questions and content from backend to frontend Lesson type
- Add quizQuestions field to Lesson interface
- Map quiz_questions (snake_case) to quizQuestions (camelCase) in course mapping
- Map correct_index to correctOptionIndex for quiz rendering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:36:54 +01:00
Benjamin Admin
94006be778 Revert LLM model to qwen3:30b-a3b (qwen3.5 download incomplete)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:17:47 +01:00
Benjamin Admin
77a8170a6e Fix proxy UUID validation: reject non-UUID tenant/user IDs and use defaults
The training API client sends X-Tenant-ID: "default" which the proxy was
forwarding as-is, causing the backend to return 0 results. Now both proxies
validate that tenant/user IDs match UUID format before forwarding, falling
back to the configured defaults.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:55:09 +01:00
Benjamin Admin
20bc51b86c Fix: show all training modules in course generator, not just unlinked ones
All 28 modules already have academy_course_id set, so the filter was hiding
everything. Now shows all modules with a "Kurs vorhanden" badge for linked ones.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:42:22 +01:00
Benjamin Admin
3ffba9ef4f Fix Academy new course: use training module selector instead of topic input
The "generate course" feature now shows a list of available training modules
to select from, instead of a free-text topic field. This correctly sends the
module_id to the backend GenerateCourseFromTraining handler.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:20:57 +01:00
Benjamin Admin
c78a7b687e Fix Academy page crash: optional chaining for byStatus and categoryInfo fallback
- statistics.byStatus.in_progress could crash on empty object → optional chaining
- COURSE_CATEGORY_INFO[course.category] could return undefined → fallback to 'custom'
- Update LLM model to qwen3.5:35b-a3b in docker-compose.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 14:49:02 +01:00
Benjamin Admin
759c725793 fix(proxy): add default X-User-ID and X-Tenant-ID headers to API proxies
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 39s
CI / test-python-backend-compliance (push) Successful in 37s
CI / test-python-document-crawler (push) Successful in 28s
CI / test-python-dsms-gateway (push) Successful in 23s
Both academy and training proxy routes now set default identity headers
so the Go backend RBAC middleware can set the tenant context. Without
these defaults, the browser doesn't send X-User-ID and modules/courses
return empty.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 12:05:08 +01:00
Benjamin Admin
66988d1304 feat(academy): bridge Academy with Training Engine for course generation
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 46s
CI / test-python-backend-compliance (push) Successful in 31s
CI / test-python-document-crawler (push) Successful in 25s
CI / test-python-dsms-gateway (push) Successful in 29s
- Add POST /academy/courses/generate endpoint that creates an academy
  course from a training module (with content + quiz as lessons)
- Add POST /academy/courses/generate-all to bulk-generate all courses
- Fix academy API response mapping (snake_case → camelCase)
- Fix fetchCourses/fetchCourse/fetchEnrollments/fetchStats to unwrap
  backend response wrappers ({courses:[...]}, {course:{...}})
- Add "Alle Kurse generieren" button to academy overview page
- Fix bulkResult.errors crash in training page (optional chaining)
- Add SetAcademyCourseID to training store for bidirectional linking

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 11:57:13 +01:00
Benjamin Admin
305a068354 feat(admin): add /api/admin/health endpoint for service status checks
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 39s
CI / test-python-backend-compliance (push) Successful in 31s
CI / test-python-document-crawler (push) Successful in 26s
CI / test-python-dsms-gateway (push) Successful in 23s
Create server-side health check API that probes actual compliance services
(Backend, AI SDK, Ollama, TTS, Embedding, RAG, Qdrant, Valkey, MinIO)
from within the Docker network. Replaces the non-existent endpoint that
caused all services to show as offline. Also updates ServiceStatus
component to list compliance-relevant services instead of lehrer services.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 10:56:06 +01:00
Benjamin Admin
bc57bfe1c5 feat(training): add Training Engine to SDK sidebar navigation
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 35s
CI / test-python-backend-compliance (push) Successful in 26s
CI / test-python-document-crawler (push) Successful in 20s
CI / test-python-dsms-gateway (push) Successful in 19s
Add training step to the Betrieb package in SDK_STEPS so it appears
in the sidebar after Compliance Academy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 10:07:25 +01:00
Benjamin Admin
71bc48449d fix(training): resolve Gin route param conflicts for content/media routes
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 45s
CI / test-python-backend-compliance (push) Successful in 34s
CI / test-python-document-crawler (push) Successful in 22s
CI / test-python-dsms-gateway (push) Successful in 20s
Use consistent :moduleId param name for content routes and :mediaId for
media routes. Add param adapters for handlers that expect different names.
Fix frontend media API paths to match backend route structure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 09:52:15 +01:00
Benjamin Admin
e5cb5e37ad feat(training): register training routes and add missing academy API functions
Connect the existing training engine handlers (40+ endpoints) to the router
in main.go. This was the critical blocker preventing the training content
pipeline from being accessible. Also adds generateCourse, generateVideos,
and getVideoStatus functions to the academy API client, plus the
GenerateCourseRequest type.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 09:46:16 +01:00
Benjamin Admin
76038c43fd fix(academy): use proxy path instead of unreachable localhost:8093
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 35s
CI / test-python-backend-compliance (push) Successful in 28s
CI / test-python-document-crawler (push) Successful in 26s
CI / test-python-dsms-gateway (push) Successful in 19s
The Academy API client was using NEXT_PUBLIC_SDK_API_URL with fallback
to http://localhost:8093, which is unreachable from the browser. Changed
to use the existing Next.js proxy at /api/sdk/v1/academy/.
2026-02-25 23:42:25 +01:00
Benjamin Admin
6e715fbd28 docs: update CLAUDE.md for direct MacBook development workflow
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 36s
CI / test-python-backend-compliance (push) Successful in 30s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 18s
Remove rsync-based workflow, document git push + Mac Mini pull workflow.
2026-02-25 23:09:41 +01:00
Benjamin Boenisch
03708d9e5b feat(iace): sync IACE frontend, API routes, and scope engine updates from breakpilot-pwa
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 35s
CI / test-python-backend-compliance (push) Successful in 29s
CI / test-python-document-crawler (push) Successful in 24s
CI / test-python-dsms-gateway (push) Successful in 21s
- Add IACE project pages (classification, evidence, hazards, mitigations, monitoring, tech-file, verification)
- Add IACE API catch-all route
- Update compliance-scope-engine with IACE AI Act product triggers
- Update compliance-scope-types, navigation, roles, and sidebar for IACE
- Update company-profile page
2026-02-25 23:03:03 +01:00
Benjamin Boenisch
5314db49e2 fix(academy): add missing course detail and creation pages
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 29s
CI / test-python-document-crawler (push) Successful in 21s
CI / test-python-dsms-gateway (push) Successful in 19s
Sync [id]/page.tsx and new/page.tsx that were missing from deployment,
causing 404 on all course detail URLs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 22:52:08 +01:00
Benjamin Boenisch
06711bad1c feat(sdk,iace): add Personalized Drafting Pipeline v2 and IACE engine
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 44s
CI / test-python-backend-compliance (push) Successful in 37s
CI / test-python-document-crawler (push) Successful in 22s
CI / test-python-dsms-gateway (push) Successful in 20s
Drafting Engine: 7-module pipeline with narrative tags, allowed facts governance,
PII sanitizer, prose validator with repair loop, hash-based cache, and terminology
guide. v1 fallback via ?v=1 query param.

IACE: Initial AI-Act Conformity Engine with risk classifier, completeness checker,
hazard library, and PostgreSQL store for AI system assessments.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 22:27:06 +01:00
Benjamin Boenisch
3efa391de5 feat(sdk): add global seq numbering and visibleWhen for SDK flow navigation
Fix interleaved step ordering by introducing global sequence numbers (100-4700)
instead of package-relative order. Add conditional visibility (visibleWhen) for
optional steps like Import and DSFA. Fix TOM/workflow prerequisite bugs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 22:26:40 +01:00
Benjamin Boenisch
16e3c251cc fix(admin): tune chat params, add Training sidebar link, fix reporting API keys
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 36s
CI / test-python-backend-compliance (push) Successful in 28s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 18s
- Reduce chat history from 10 to 6 messages to fit context window
- Lower num_predict from 8192 to 2048 for faster responses
- Add Training module link to SDK sidebar navigation
- Add snake_case to camelCase key transformation for reporting API
  (Go backend returns snake_case, TypeScript expects camelCase)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 23:46:19 +01:00
Benjamin Boenisch
899e22a31b feat(rag): connect bp_compliance_ce vector corpus to SDK
Some checks failed
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 46s
CI / test-python-backend-compliance (push) Successful in 30s
CI / test-python-dsms-gateway (push) Has been cancelled
CI / test-python-document-crawler (push) Has been cancelled
- Switch LegalRAGClient from empty bp_legal_corpus to bp_compliance_ce
  collection (3,734 chunks across 14 regulations)
- Replace embedding-service (384-dim MiniLM) with Ollama bge-m3 (1024-dim)
- Add standalone RAG search endpoint: POST /sdk/v1/rag/search
- Add regulations list endpoint: GET /sdk/v1/rag/regulations
- Add QDRANT_HOST/PORT env vars to docker-compose.yml
- Update regulation ID mapping to match actual Qdrant payload schema
- Update determineRelevantRegulations for CE corpus regulation IDs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 23:44:47 +01:00
Benjamin Boenisch
ec1575fc56 fix(training): resolve Gin route conflicts and fix TTS Dockerfile
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 36s
CI / test-python-backend-compliance (push) Successful in 30s
CI / test-python-document-crawler (push) Successful in 24s
CI / test-python-dsms-gateway (push) Successful in 17s
- Fix route param conflict: /content/publish/:id instead of /content/:id/publish
- Fix route conflict: /media/module/:moduleId for module media list
- Use Piper binary instead of pip package (ARM64 compatibility)
- Update frontend API URLs to match new routes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 22:04:47 +01:00
Benjamin Boenisch
375914e568 feat(training): add Media Pipeline — TTS Audio, Presentation Video, Bulk Generation
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 36s
CI / test-python-backend-compliance (push) Successful in 31s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 21s
Phase A: 8 new IT-Security training modules (SEC-PWD, SEC-DESK, SEC-KIAI,
SEC-BYOD, SEC-VIDEO, SEC-USB, SEC-INC, SEC-HOME) with CTM entries.
Bulk content and quiz generation endpoints for all 28 modules.

Phase B: Piper TTS service (Python/FastAPI) for local German speech synthesis.
training_media table, TTSClient in Go backend, audio generation endpoints,
AudioPlayer component in frontend. MinIO storage integration.

Phase C: FFmpeg presentation video pipeline — LLM generates slide scripts,
ImageMagick renders 1920x1080 slides, FFmpeg combines with audio to MP4.
VideoPlayer and ScriptPreview components in frontend.

New files: 15 created, 9 modified
- compliance-tts-service/ (Dockerfile, main.py, tts_engine.py, storage.py,
  slide_renderer.py, video_generator.py)
- migrations 014-016 (training engine, IT-security modules, media table)
- training package (models, store, content_generator, media, handlers)
- frontend (AudioPlayer, VideoPlayer, ScriptPreview, api, types, page)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 21:45:05 +01:00
Benjamin Boenisch
fba4c411dc fix(sdk): auto-select role on direct SDK URL access instead of redirecting
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 35s
CI / test-python-backend-compliance (push) Successful in 28s
CI / test-python-document-crawler (push) Successful in 26s
CI / test-python-dsms-gateway (push) Successful in 17s
When accessing SDK pages directly (e.g. /sdk/gci) without a stored role,
the layout now auto-selects 'developer' instead of redirecting to '/',
which on port 3002 would hit bp-lehrer-admin and bounce to /dashboard.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 23:37:43 +01:00
Benjamin Boenisch
7a09086930 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
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>
2026-02-15 22:20:17 +01:00
Benjamin Boenisch
2d909a8f8e fix(ci): update Go to 1.24 for ai-compliance-sdk
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 43s
CI / test-python-backend-compliance (push) Successful in 30s
CI / test-python-document-crawler (push) Successful in 26s
CI / test-python-dsms-gateway (push) Successful in 19s
The ai-compliance-sdk go.mod requires go >= 1.24.0 but CI was using
golang:1.23-alpine. Updated both Gitea Actions and Woodpecker pipelines.
Also updated golangci-lint to v1.62 for Go 1.24 compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:43:27 +01:00
Benjamin Boenisch
0d37be807a ci: retrigger pipeline after vendor fix
Some checks failed
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) Failing after 2s
CI / test-python-backend-compliance (push) Successful in 26s
CI / test-python-document-crawler (push) Successful in 20s
CI / test-python-dsms-gateway (push) Successful in 19s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:35:48 +01:00
Benjamin Boenisch
6b60c2b0f7 fix(ci): replace actions/checkout with manual git clone
Some checks failed
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) Failing after 3s
CI / test-python-backend-compliance (push) Successful in 30s
CI / test-python-document-crawler (push) Successful in 24s
CI / test-python-dsms-gateway (push) Successful in 19s
The act_runner cannot create /home/act_runner cache dir inside
container images. Replace actions/checkout@v4 with manual
git clone using GITHUB_SERVER_URL and GITHUB_REPOSITORY env vars.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 16:58:31 +01:00
Benjamin Boenisch
8776643045 fix(ci): use docker runner label instead of ubuntu-latest
Some checks failed
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) Failing after 1s
CI / test-python-backend-compliance (push) Failing after 1s
CI / test-python-document-crawler (push) Failing after 1s
CI / test-python-dsms-gateway (push) Failing after 1s
The Gitea Actions runner on meghsakha uses label "docker".

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 16:53:33 +01:00
Benjamin Boenisch
fb625bdb97 ci: add Gitea Actions workflow for external CI
Some checks failed
CI / go-lint (push) Has been cancelled
CI / python-lint (push) Has been cancelled
CI / nodejs-lint (push) Has been cancelled
CI / test-go-ai-compliance (push) Has been cancelled
CI / test-python-backend-compliance (push) Has been cancelled
CI / test-python-document-crawler (push) Has been cancelled
CI / test-python-dsms-gateway (push) Has been cancelled
Adds .gitea/workflows/ci.yaml with lint and test jobs.
Runs on gitea.meghsakha.com with Gitea Actions runner.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 16:39:01 +01:00
Benjamin Boenisch
1098dac141 Fix test paths: backend-compliance -> compliance/tests/, dsms-gateway -> test_main.py 2026-02-15 12:31:45 +01:00
Benjamin Boenisch
b7fd2d0ca2 Re-add clone config with extra_hosts (repos now trusted) 2026-02-15 11:28:11 +01:00
Benjamin Boenisch
b6f12435a7 Fix pipeline: remove custom clone and extra_hosts (trust level) 2026-02-15 10:57:08 +01:00
Benjamin Boenisch
cb57a34129 Add Woodpecker CI/CD pipeline
- Lint: golangci-lint (ai-compliance-sdk), ruff (Python), next lint (Node.js)
- Tests: Go tests, pytest for backend-compliance, document-crawler, dsms-gateway
- Build: Docker images for all services
- Security: SBOM generation + vulnerability scanning
- Deploy: manual docker compose deployment
2026-02-15 10:56:02 +01:00
Benjamin Boenisch
dccb3e9f36 feat: add reporting frontend, fix module categorization, update docs
- Create Reporting module frontend (page.tsx) with executive dashboard
  showing compliance score, risk overview, deadlines, module KPIs
- Create Reporting lib (types.ts, api.ts) matching Go backend models
- Add Reporting to STEP_EXPLANATIONS and both SDK sidebars
- Remove DSB Portal, Multi-Tenant, SSO from SDK sidebars (admin-only)
- Add Multi-Tenant, SSO, DSB Portal to dashboard navigation.ts
  with 'Plattform-Verwaltung' subgroup
- Update docs: academy.md (PDF certs), reporting.md (new),
  index.md (SDK vs Admin categorization), mkdocs.yml (all modules)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 01:03:53 +01:00
Benjamin Boenisch
f1b9e585e6 fix: add missing STEP_EXPLANATIONS and sidebar entries for new SDK modules
Add STEP_EXPLANATIONS for academy, whistleblower, incidents, dsb-portal,
industry-templates, multi-tenant, sso, document-crawler, advisory-board
to fix client-side crashes. Add all new modules to Zusatzmodule section
in both SDKSidebar and SDKPipelineSidebar (FAB).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:46:12 +01:00
Benjamin Boenisch
f358c1d6e6 feat: add frontend pages, API routes and libs for all SDK modules
Add Next.js pages for Academy, Whistleblower, Incidents, Document Crawler,
DSB Portal, Industry Templates, Multi-Tenant and SSO. Add API proxy routes
and TypeScript SDK client libraries. Add server binary to .gitignore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:07:42 +01:00
Benjamin Boenisch
85d2362724 feat(academy): add PDF certificate generation and download endpoint
Add gofpdf-based certificate PDF generation for the Compliance Academy.
Landscape A4 certificates with company branding, course details, and
verification URL. New route: GET /sdk/v1/academy/certificates/:id/pdf

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:05:31 +01:00
Benjamin Boenisch
9a7c3bf4d9 docs: update MkDocs index with full service table and SDK module overview
- Add complete service table with containers, ports, and tech stack
- Add all SDK modules (TOM, DSFA, VVT, Academy, Whistleblower, etc.)
- Add Core dependency table
- Add deployment and git instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:51:14 +01:00
Benjamin Boenisch
0e9970ff32 docs: Add MkDocs documentation for Document Crawler and SDK modules
Adds documentation pages for:
- Document Crawler (architecture, API endpoints, gap analysis)
- Academy/Schulungsmodul
- Whistleblower/Hinweisgebersystem (HinSchG)
- Incidents/Datenschutzvorfaelle (Art. 33/34 DSGVO)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 22:05:30 +01:00
Benjamin Boenisch
504dd3591b feat: Add Academy, Whistleblower, Incidents, Vendor, DSB, SSO, Reporting, Multi-Tenant and Industry backends
Go handlers, models, stores and migrations for all SDK modules.
Updates developer portal navigation and BYOEH page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:11:27 +01:00
Benjamin Boenisch
364d2c69ff feat: Add Document Crawler & Auto-Onboarding service (Phase 1.4)
New standalone Python/FastAPI service for automatic compliance document
scanning, LLM-based classification, IPFS archival, and gap analysis.
Includes extractors (PDF, DOCX, XLSX, PPTX), keyword fallback classifier,
compliance matrix, and full REST API on port 8098.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 20:35:15 +01:00
Benjamin Boenisch
0923c03756 chore: Add development screens, update navigation and docker-compose
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:29:27 +01:00
Benjamin Boenisch
d9c13c947b refactor(admin-compliance): Rename to Admin Compliance
Rename Admin v2 to Admin Compliance in sidebar, header, and browser title.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:01:20 +01:00
Benjamin Boenisch
c11270f8e0 Add CLAUDE.md, MkDocs docs, docs page in admin, .claude/rules
- CLAUDE.md: Comprehensive documentation for Compliance SDK platform
- docs-src: AI-Compliance-SDK docs (architecture, developer, auditor, SBOM)
- mkdocs.yml: Compliance-specific nav with purple theme
- docker-compose: Added docs service (port 8011, profile: docs)
- admin-compliance: New /development/docs page with iframe + quick links
- navigation.ts: Added development category with docs module
- .claude/rules: testing, docs, open-source, compliance-checklist

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:49:28 +01:00
Benjamin Boenisch
4435e7ea0a Initial commit: breakpilot-compliance - Compliance SDK Platform
Services: Admin-Compliance, Backend-Compliance,
AI-Compliance-SDK, Consent-SDK, Developer-Portal,
PCA-Platform, DSMS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:47:28 +01:00