Data & More er en multi-tenant GDPR- og datagovernance-platform. Den forbinder sig til en organisations e-mail-, fillagrings- og chatsystemer, scanner det, den finder, profilerer hvert dokument for persondata og håndhæver opbevarings- og sletningspolitikker. Sådan hænger delene sammen: en polyglot mikrotjenestearkitektur med én enkelt sandhedskilde i centrum.
Man kan ikke styre det, man ikke først har læst, klassificeret og forstået.
~42mikrotjenester
2kernesprog (Python, Java)
7pipelinestadier, fra kilde til rapport
1fælles lager: Elasticsearch
Afsnit 01Arkitektur
Platformen på et øjeblik
Hver anmodning indgår via én TLS-afsluttende NGINX-proxy og dirigeres til applikationslaget: Vue-klienten, den primære Flask API samt IAM-, analyse- og LLM-tjenesterne. API'en videregiver tidskrævende opgaver til en asynkron rygrad af Celery-arbejdere over RabbitMQ, som også transporterer scanning-, ingest- og håndhævelsesbeskeder til Java-laget. Det tunge arbejde (crawling af kilder, udtrækning af tekst, håndhævelse af politikker) kører i dette Java-lag. Under det hele befinder datalaget sig, med Elasticsearch som det dokumentlager alle tjenester deler.
Anmodnings- og datastiVedvarende lager / outputUnderkomponent inden for et lag
Sektion 02Dataflow
Fra en rå kilde til en håndhævetpolitik
Et dokument gennemgår den samme proces hver gang. En kilde konfigureres én gang; herefter crawler platformen den, udtrækker teksten, analyserer den for personoplysninger, kontrollerer den mod lejerens politikker, handler på baggrund af afgørelsen og rapporterer resultatet. Billige, deterministiske trin køres først; de omkostningsfulde AI- og håndhævelsestrin køres kun på det, der når frem til dem.
Primær pipeline-stiDelt lager, der berøres på hvert trinOutput til brugeren
Sektion 03Frontend
Vue 3-single-page-applikationen
Klienten er en specialudviklet single-page-applikation uden standardiserede komponentbiblioteker, stilet med sit eget SCSS-designsystem. Det er her, administratorer tilslutter kilder, opbygger klassifikationsregler, administrerer politikker, læser rapporter og kommunikerer med dokumenter via RAG-chatmodulet. Rollebaserede visninger tilpasser grænsefladen til den enkelte persona.
Hvad der indgår i den
Multi-tenant-dashboard med rollebaserede visninger for Admin, Adminlite, AD, PM og DPO.
Dokumentbrowser med træ- og gitterlayout samt forhåndsvisning af PDF, Word og JSON.
Klassifikationsbygger til tags, ordbøger, algoritmer og dokumentklasser.
Politikstyring til GDPR-opbevarings- og sletningsregler.
Chat / LLM-modul, en RAG-assistent over indekserede dokumenter med streamede svar.
Kildeassistenter til Exchange, SharePoint, Google, IMAP og filshares.
Frontend-stack
Framework
Vue 3.5
Build
Vite 6 · TS 5.9
State
Vuex 4.1
Router
Vue Router 4.6
i18n
24+ sprog
Diagrammer
Chart.js
HTTP
Axios + JWT
~400 ruter · 281 komponenter · 35+ API-moduler
Afsnit 04Python-lag
Applikationen og AI-tjenesterne
Python-laget indeholder platformens hjerne: den centrale API, identitetsstyring, analyse, LLM- og chat-stakken, OCR, forebyggelse af datatab samt den spaCy-baserede AI-profiler, der er beskrevet andetsteds. De fleste kører Flask bag Gunicorn; notifikationer kører på FastAPI.
Forebyggelse af datatab, webhook- og regex-scanning
py-dm-notify
FastAPI · Uvicorn
8002
Realtidsnotifikationer og e-mail, asynkron pub/sub
ai-profiler
Flask · Gunicorn
n/a
spaCy NER og ordbogsprofiling, 11+ sprog
alerts
Celery-worker
n/a
Baggrundshåndtering af advarsler via RabbitMQ
Hub
Hoved-API
Python 3.12, Flask 3, Celery 5.4, SQLAlchemy 2. Håndterer CRUD for dokumenter og kilder, politikker, brugere, fakturering (Stripe, HubSpot), eksterne integrationer samt Celery-workers til genindeksering og masseoperationer.
Identitet
IAM
JWT-godkendelse med RSA-nøglepar, LDAP og Active Directory til enterprise SSO, rollebaseret adgangsstyring samt Alembic-styrede migreringer. Lejeriomfang er defineret her.
Indsigt
Analytics
Statistisk og ML-baseret rapportering af scannede data, Plotly-diagrammer eksporteret som statiske billeder, PDF-rapporter via WeasyPrint samt en lokal Ollama-mulighed til AI-assisteret analyse.
Afsnit 05Java-lag
Den tunge behandling motor
java_core
Scan, ingest, håndhæv
Java 11, der kører som meddelelseskonsumenter i forskellige tilstande. Det er arbejdshesten, der håndterer de faktiske data.
SCAN gennemgår postkasser, websteder og delte drev.
INGEST udtrækker tekst med Apache Tika til Elasticsearch.
DELTA håndterer trinvise opdateringer.
CLEANUP fjerner forældet data.
Håndhævelse findes også her: PolicyValidator kontrollerer dokumenter mod regler, PolicyEnforcer udfører slet, flyt, tag, gendan eller ingen handling.
Service
Framework
Java
Formål
java_core
meddelelseskonsument
11
Scanning, indtagelse, politikhåndhævelse
java_profiler
Spring Boot 2.7
17
Regex- og NER-enhedsudtrækning, sprogdetektering (FastText)
Enforcer
Spring Boot
17
Udfører politikhandlinger: slet, flyt, tag, ingen handling
graph-ingestion
Spring Boot
17
Microsoft Graph-indtagelse, administration og håndhævelse
ews
Spring Boot
25
Exchange Web Services-integration
google
Spring Boot
n/a
Google Workspace-integration
Data Subject Manager
Spring Boot
17
Person- og enhedsdatabase samt opslag
java_profiler eksponerer /profile-text, /profile/{fileId} og /language (FastText lid.176, 176 sprog). Dets pipeline udfører tokenisering, præ-tokeniseringsmatching, enhedsmatching, validering, scoring og tagging.
Sektion 06Data & infrastruktur
Hvor alt opbevares
Elasticsearch 9.3
Det centrale datalag og den ene lagring, som alle services deler: scannede dokumenter, profiler, tags, politikker, revisionslogger og ordbøger. Daglige S3-sikkerhedskopier med 180 dages opbevaring og månedlige SLM-snapshots.
PostgreSQL 17.6
Den relationelle database til IAM (brugere, roller, lejere), abonnementer og DLP-revisionsdata, med pgvector-udvidelsen, der lagrer LLM-indlejringer.
RabbitMQ 4.2
Meddelelsesmægleren til Celery-opgavekøer på tværs af API'et, advarsler og notifikationer samt bærer af de scanning-, indtagelses- og håndhævelseshændelser, som Java-niveauet forbruger.
Sektion 07Netværk & sikkerhed
Én indgang, afgrænset af lejer
NGINX-routing
Kun HTTPS, TLS 1.2/1.3 med HSTS, OCSP-stapling og moderne krypteringsalgoritmer. Administrationsværktøjer er kun tilgængelige på VPN-områder.
/
client:9000
/api/
api:8000
/api/auth/
iam:5000
/api/dashboard/
analytics:6000
/api/llm-management/
llm:8000
/api/dlp/
dlp:8000
/kibana/ · /flower/
Kun VPN
Autentificeringsflow
Headers håndhæverX-Frame-Options: DENY, X-Content-Type-Options: nosniff og XSS-beskyttelse, med en uploadgrænse på 10 MB og Microsoft Graph webhook-intervaller på tilladelseslisten for DLP.
Afsnit 08Udrulning
Miljøer og levering
Miljø
Compose-fil
Formål
dev01/02/03
docker-compose.dev.yml
Fuld stak, ~30 tjenester
local
docker-compose.local.yml
Letvægts, ekstern infrastruktur
L2 til L7
docker-compose.l{n}.yml
Produktionskundeniveauer
stage
docker-compose.stage.yml
Validering forud for produktion
on-prem
docker-compose.bosch.yml
Kundespecifik on-premises
Pipeline og overvågning
GitHub Actions kører arbejdsgange pr. tjeneste; pull requests åbnes pr. repository.
Ansible klargør og konfigurerer serverne.
Opgraderingsscripts indeholder versionerede migreringer.
Synkron HTTP håndterer trafik fra klient til API. RabbitMQ og Celery håndterer asynkrone opgaver, og RabbitMQ fungerer desuden som mægler for scan-, ingest- og håndhævelseshændelser i Java-laget. Elasticsearch er det fælles fundament, som alle tjenester læser fra og skriver til, og Dockers interne DNS sørger for tjenesteopdagelse på et fælles netværk.
Én platform, mange lejere
Hver organisation er en lejer identificeret ved company_id. JWT-tokens bærer denne kontekst, Elasticsearch-indekser er afgrænset pr. lejer, IAM administrerer hver lejers brugere og roller, og Stripe håndterer fakturering pr. lejer. En superadministrator kan efterligne enhver lejer med henblik på support via en separat tokenmekanisme.
Fra en konfigureret postkasse til en håndhævet opbevaringsregel følger ethvert dokument én sti gennem en flersproget infrastruktur, der holdes sammen af ét fælles datalager. Arkitekturen er mangfoldig af design; kilden til sandheden er det ikke.
~42 tjenester · Python + Java kerne · Elasticsearch i centrum