-
Notifications
You must be signed in to change notification settings - Fork 1
Compendium chapter 22 encryption
Navigation: Home > Pages
"Kryptographie ist die letzte Verteidigungslinie β sie macht gestohlene Daten wertlos."
Dieses Kapitel beschreibt das vollstΓ€ndige VerschlΓΌsselungskonzept von ThemisDB: von der TransportverschlΓΌsselung ΓΌber Data-at-Rest bis hin zur feingranularen Column-Level Encryption fΓΌr sensible Felder und der VerschlΓΌsselung von Vektordaten.
Was Sie in diesem Kapitel lernen werden:
- Kryptographie-Policy und zugelassene Algorithmen
- Transport-VerschlΓΌsselung (TLS 1.3)
- Data-at-Rest Encryption auf Storage-Ebene
- Column-Level Encryption (AES-256-GCM) fΓΌr Felder
- Vektor-VerschlΓΌsselung (HNSW-kompatibel)
- Key Management (KEK/DEK-Hierarchie, Vault, HSM, PKCS#11)
- Post-Quantum Hybrid Encryption
- BSI C5 / ISO 27001 / DSGVO Compliance
Voraussetzungen: Kapitel 21a (Authentifizierung), Kapitel 36 (Security Hardening).
ThemisDB folgt einer verbindlichen Kryptographie-Policy, die auf BSI TR-02102-1, NIST SP 800-38D und ISO/IEC 27001 basiert.
| Anwendungsfall | Algorithmus | SchlΓΌssellΓ€nge | Standard |
|---|---|---|---|
| Symmetrische VerschlΓΌsselung (primΓ€r) | AES-256-GCM | 256 bit | BSI C5 CRY-01 |
| Symmetrische VerschlΓΌsselung (alt.) | ChaCha20-Poly1305 | 256 bit | NIST |
| Asymmetrische VerschlΓΌsselung | RSA-OAEP/SHA-256 | β₯2048 bit | BSI |
| Elliptic Curve | ECDH/P-256, P-384 | β | NIST |
| Key Exchange | X25519, X448 | β | RFC 7748 |
| Hashing | SHA-256, SHA-384, SHA-512 | β | FIPS 180-4 |
| SchlΓΌsselableitung | HKDF-SHA-256 | β | RFC 5869 |
| Post-Quantum (Hybrid) | CRYSTALS-Kyber-768 + X25519 | β | NIST PQC Round 3 |
Explizit verboten:
- β AES-ECB (Pattern Leakage, keine Authentifizierung)
- β DES / 3DES (veraltet)
- β RC4 (Keystream-Bias)
- β MD5 / SHA-1 fΓΌr Sicherheitszwecke
ThemisDB erzwingt TLS 1.3 fΓΌr alle externen Verbindungen. TLS 1.2 wird nur fΓΌr Legacy-Clients mit expliziter Konfiguration unterstΓΌtzt.
# themisdb.yml β TLS-Konfiguration
server:
tls:
enabled: true
min_version: "TLS1.3"
cert_file: "/etc/themisdb/tls/server.crt"
key_file: "/etc/themisdb/tls/server.key"
ca_file: "/etc/themisdb/tls/ca.crt"
cipher_suites:
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_GCM_SHA256Shard-to-Shard-Kommunikation verwendet mTLS mit gegenseitiger Zertifikatsverifizierung:
cluster:
shard_communication:
mtls:
enabled: true
client_cert: "/etc/themisdb/tls/shard.crt"
client_key: "/etc/themisdb/tls/shard.key"
verify_peer: trueShard A ββββ [mTLS: Client-Cert + Server-Cert Validation] ββββ Shard B
β β
CA-signed CA-signed
Implementierung: src/security/ β mTLS ΓΌber OpenSSL; Details: docs/de/security/MTLS_SHARD_COMMUNICATION.md
ThemisDB kann RocksDB mit einem Encryption-Provider konfigurieren, der alle SST-Dateien und den WAL verschlΓΌsselt.
// Konfiguration in StorageEngine
rocksdb::DBOptions options;
std::shared_ptr<rocksdb::EncryptionProvider> provider;
rocksdb::EncryptionProvider::CreateFromString(
rocksdb::ConfigOptions{},
"AES",
&provider);
options.env = rocksdb::NewEncryptedEnv(rocksdb::Env::Default(),
provider);Backups werden mit AES-256-GCM verschlΓΌsselt. Der Backup-SchlΓΌssel ist vom operativen DEK getrennt und wird im Key Management System (KMS) gespeichert.
DB-Daten ββββ Backup ββββ AES-256-GCM (Backup-DEK) ββββ Backup-Datei
β
Backup-DEK verschlΓΌsselt mit KEK (Vault/HSM)
Column-Level Encryption (CLE) ermΓΆglicht die granulare VerschlΓΌsselung einzelner Datenfelder at-rest β unabhΓ€ngig vom Storage-Layer.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Application Layer β
β EncryptedField<T> (Template, transparent fΓΌr Devs) β
βββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ
β Encryption Layer β
β FieldEncryption: AES-256-GCM Encrypt/Decrypt β
β Key Cache: TTL-basiert (1h, max. 1000 Keys) β
ββββββββββββββ¬βββββββββββββββββββββ¬ββββββββββββββββββββββββ
β β
ββββββββββββΌβββββββ βββββββββββΌββββββββ
β Key Management β β RocksDB Storage β
β VaultKeyProviderβ β (Ciphertext) β
β HSMProvider β βββββββββββββββββββ
βββββββββββββββββββ
Implementierung: include/security/encryption.h (610 Zeilen), src/security/field_encryption.cpp (712 Zeilen)
Entwickler nutzen das EncryptedField<T> Template β VerschlΓΌsselung ist transparent:
#include "security/encryption.h"
struct UserProfile {
// Sensible Felder werden automatisch verschlΓΌsselt
EncryptedField<std::string> email;
EncryptedField<std::string> ssn;
EncryptedField<std::string> credit_card;
EncryptedField<std::vector<float>> embedding; // Vektordaten
// Nicht-sensible Felder unverschlΓΌsselt
std::string username;
uint64_t created_at;
};
// Nutzung β transparent:
UserProfile profile;
profile.email.set("alice@example.com"); // Encrypt on set
std::string email = profile.email.get(); // Decrypt on get// Intern: FieldEncryption::encrypt()
struct EncryptedBlob {
std::string key_id; // z.B. "user_emails"
uint32_t key_version; // FΓΌr Key Rotation
std::vector<uint8_t> iv; // 12 Bytes β einmalig pro Operation
std::vector<uint8_t> ciphertext;
std::vector<uint8_t> tag; // 16 Bytes GCM Auth-Tag
};
EncryptedBlob blob = field_encryption.encrypt(
plaintext_bytes,
"user_emails", // key_id
{} // optional AAD (Additional Authenticated Data)
);Wichtig: Jede VerschlΓΌsselungsoperation generiert einen neuen, zufΓ€lligen IV (96 bit / 12 Bytes). Wiederverwendung von IVs ist fatal fΓΌr GCM-Sicherheit.
ThemisDB unterstΓΌtzt Lazy Re-Encryption und Dual-Write:
Alt-Key (v1) ββββ Lesen: EntschlΓΌsseln mit v1
Schreiben: Neu verschlΓΌsseln mit v2 (Dual-Write)
Nach vollstΓ€ndiger Migration: Alt-Key v1 lΓΆschen
// Key Rotation auslΓΆsen
POST /keys/rotate
{ "key_id": "user_emails" }
// Antwort
{ "success": true, "key_id": "user_emails", "new_version": 3 }Vektordaten (Embeddings) kΓΆnnen ebenfalls verschlΓΌsselt gespeichert werden, was HNSW-Γhnlichkeitssuche auf verschlΓΌsselten Daten ermΓΆglicht.
| Ansatz | Performance | Suchbarkeit | Empfehlung |
|---|---|---|---|
| Individuelle VerschlΓΌsselung (pro Vektor) | βββ | β vollstΓ€ndig (EntschlΓΌsselung vor HNSW) | Empfohlen |
| Batch-VerschlΓΌsselung (BlΓΆcke) | ββββ | β batch-level | FΓΌr groΓe Datasets |
| Storage-Level (RocksDB) | βββββ | β vollstΓ€ndig | Einfachste Integration |
| Homomorphe VerschlΓΌsselung | β | β direkt auf Ciphertext | Experimentell (zu langsam) |
Empfohlener Ansatz: Individuelle VektorverschlΓΌsselung (AES-256-GCM) kombiniert mit RocksDB-Level-Encryption.
# themisdb.yml
vector:
encryption:
enabled: true
key_id: "vector_embeddings"
algorithm: "AES-256-GCM"
batch_decrypt_threshold: 1000 # Batch-EntschlΓΌsselung fΓΌr HNSW-Sucheβββββββββββββββββββββββββββββββββββββββββββββββ
β Master Key (MK) β
β β Schutz durch HSM / Cloud KMS β
βββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β
βββββββββββββββββββΌββββββββββββββββββββββββββββ
β Key Encryption Key (KEK) β
β β VerschlΓΌsselt DEKs β
β β Rotation: jΓ€hrlich (BSI C5 CRY-02) β
βββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β
βββββββββββββββββββΌββββββββββββββββββββββββββββ
β Data Encryption Keys (DEK) β
β β Einer pro Feld-Kategorie (email, ssn...) β
β β Rotation: 90 Tage (empfohlen) β
β β Versioniert fΓΌr Lazy Re-Encryption β
βββββββββββββββββββββββββββββββββββββββββββββββ
class KeyProvider {
public:
virtual ~KeyProvider() = default;
virtual std::vector<uint8_t> getKey(
const std::string& key_id,
uint32_t version = 0) = 0;
virtual uint32_t getCurrentVersion(
const std::string& key_id) = 0;
virtual bool rotateKey(const std::string& key_id) = 0;
};| Provider | Produktionsreif | Use Case |
|---|---|---|
| MockKeyProvider | β | Development / Tests |
| VaultKeyProvider | β (739 Zeilen) | Enterprise KMS (HashiCorp Vault) |
| HSMProvider (PKCS#11) | β (1056 Zeilen) | Hardware Security Module |
VaultKeyProvider β HashiCorp Vault KV v2 und Transit Engine:
security:
key_provider: "vault"
vault:
address: "https://vault.example.com:8200"
token_env: "VAULT_TOKEN"
kv_mount: "secret"
transit_mount: "transit"
timeout_ms: 5000
cache_ttl_seconds: 3600HSMProvider β PKCS#11 fΓΌr Hardware-SchlΓΌsselschutz:
security:
key_provider: "hsm"
hsm:
library_path: "/usr/lib/softhsm/libsofthsm2.so"
slot_id: 0
pin_env: "HSM_PIN"
key_label_prefix: "themisdb_"ThemisDB implementiert Post-Quantum Hybrid Encryption als Vorbereitung auf quantencomputer-resistente Kryptographie.
Klassisch: X25519 (ECDH) ββ
βββ HKDF-SHA-256 β Kombinierter Key β AES-256-GCM
PQC: CRYSTALS-Kyber-768 ββ
Durch die Kombination beider SchlΓΌsselaustauschmechanismen bleibt die VerschlΓΌsselung auch dann sicher, wenn einer der Algorithmen kompromittiert wird (klassisch durch Quantencomputer, PQC durch analytische Angriffe).
Implementierung: src/security/post_quantum_crypto.cpp
security:
post_quantum:
enabled: false # Opt-in (erhΓΆht Key-Exchange-Overhead ~2ms)
algorithm: "kyber768_x25519_hkdf_sha256"| Kontrolle | Anforderung | ThemisDB-Implementierung | Status |
|---|---|---|---|
| BSI C5 CRY-01 | Kryptographie-Policy | CRYPTOGRAPHY_POLICY.md |
β |
| BSI C5 CRY-02 | SchlΓΌsselmanagement | VaultKeyProvider / HSMProvider | β |
| BSI C5 CRY-03 | Data-at-Rest Encryption | RocksDB Encryption + Column-Level | β |
| BSI C5 CRY-04 | Data-in-Transit Encryption | TLS 1.3 + mTLS | β |
| BSI C5 CRY-05 | SchlΓΌsselrotation | Lazy Re-Encryption, Dual-Write | β |
| BSI C5 CRY-06 | Kryptographische IntegritΓ€t | GCM Auth-Tag | β |
| ISO 27001 A.10 | Kryptographie-Kontrollen | VollstΓ€ndig abgedeckt | β |
| DSGVO Art. 32 | Geeignete technische MaΓnahmen | AES-256-GCM + Key Rotation | β |
| DSGVO Art. 25 | Privacy by Design | EncryptedField<T> als Default | β |
Gesamtbewertung: β
BSI C5 KONFORM (Audit: docs/de/security/BSI_C5_COLUMN_ENCRYPTION_COMPLIANCE.md)
| Operation | Overhead | Messmethode |
|---|---|---|
| AES-256-GCM Encrypt (1 KB) | < 1 ms | tests/test_encryption_perf.cpp |
| AES-256-GCM Decrypt (1 KB) | < 1 ms | β |
| Key Cache Hit | < 0,1 ms | TTL-basierter In-Memory-Cache |
| Key Cache Miss (Vault) | 2β10 ms | Netzwerk-RTT abhΓ€ngig |
| HSM-Operation | 5β20 ms | Hardware-abhΓ€ngig |
| TLS Handshake (TLS 1.3) | 1β5 ms | 0-RTT fΓΌr Wiederverbindungen |
| Vector Encrypt (1536-dim float) | < 2 ms | Batch-Mode empfohlen |
Batch-Optimierung: FΓΌr Massen-Operationen (z.B. Vektorindex-Rebuild) unterstΓΌtzt FieldEncryption Batch-Encrypt/Decrypt mit OpenSSL-Pipeline.
| Problem | Ursache | LΓΆsung |
|---|---|---|
EncryptionError: key not found |
Key ID existiert nicht in KMS |
GET /keys prΓΌfen; Key-Konfiguration validieren |
DecryptionError: tag mismatch |
Datenkorruption oder falscher Key | Key-Version prΓΌfen; ggf. Backup wiederherstellen |
| Hohe Latenz bei EntschlΓΌsselung | Key Cache Miss | Cache TTL erhΓΆhen; Vault-Verbindung prΓΌfen |
| TLS Handshake fehlgeschlagen | Zertifikat abgelaufen |
openssl x509 -in server.crt -dates prΓΌfen |
| HSM nicht erreichbar | PKCS#11 Library-Pfad falsch |
library_path in Config prΓΌfen |
VAULT_TOKEN nicht gesetzt |
ENV-Variable fehlt | Deployment-Konfiguration prΓΌfen |
Detaillierte Implementierungsdokumentation zu den behandelten VerschlΓΌsselungsthemen:
β ZurΓΌck: Kapitel 22a: Clients β Weiter: Kapitel 36: Security Hardening
Kapitel 22b von 43 | Teil VI: Sicherheit | Phase-3-Sync: β | ~3.200 WΓΆrter
ThemisDB 1.9.0-beta Β· Home Β· Module-Index Β· GitHub Β· Issues
ThemisDB 1.9.0-beta Β· Home Β· Wiki-Index Β· Module-Index Β· FAQ Β· Quick-Reference Β· GitHub Β· Issues Β· Discussions Β· License
- Home
- Hero Articles
- All Wiki Pages
- FAQ
- Edition Comparison
- Repository README
- Changelog
- Roadmap
- Versioning
- Integration Mapping
- Overview
- Readme
- Appendix D Feature Status
- Appendix E Incident Runbooks
- Appendix F AQL Cheatsheet
- Appendix G Configuration
- Appendix H Glossary
- Appendix I Troubleshooting
- Appendix Literatur
- Chapter 00 Genesis
- Chapter 01 Introduction
- Chapter 02 Architecture
- Chapter 03 Multimodel
- Chapter 04 Installation
- Chapter 05 Relational
- Chapter 06 Graph
- Chapter 07 Document
- Chapter 08 Storage Layer
- Chapter 08 Vector
- Chapter 09 Timeseries
- Chapter 10 Enterprise
- Chapter 11 Realtime
- Chapter 12 Computervision
- Chapter 13 Fulltext
- Chapter 14 Geospatial
- Chapter 15 Analytics
- Chapter 16 Ml
- Chapter 16 Sharding
- Chapter 17 LLM Integration
- Chapter 17 Scaling
- Chapter 18 HA
- Chapter 18 Ml
- Chapter 19 Monitoring
- Chapter 19 Monitoring Observability
- Chapter 20 Backup
- Chapter 20 Performance
- Chapter 21 Auth
- Chapter 21 Performance
- Chapter 22 Clients
- Chapter 22 Encryption
- Chapter 23 Testing Qa
- Chapter 24 Ai Ethics
- Chapter 25 Devops Infrastructure
- Chapter 26 Migration Legacy
- Chapter 27 Troubleshooting
- Chapter 28 AQL Reference
- Chapter 29 Analytics Process Mining
- Chapter 30 Deployment Operations
- Chapter 31 API Protocols
- Chapter 32 API Design Rest Principles
- Chapter 32 AQL Oop Implementation
- Chapter 33 Best Practices
- Chapter 34 Query Optimization
- Chapter 35 Data Modeling Patterns
- Chapter 36 Security Hardening
- Chapter 37 Ecosystem Integration
- Chapter 38 Observability Sre
- Chapter 39 Performance Tuning Cookbook
- Chapter 40 Data Governance Compliance
- Chapter 41 Hands On Labs
- Chapter 42 Docs Assistant Usage
- Chapter MVCC Hlc
- Cover
- Cover Book
- Index
- Preface
- Test Links Example
- Batch Operations
- Best Practices
- CRUD Tutorial
- Custom Document Ingestion
- Getting Started Tutorial
- Interactive Examples
- Schema Design
- Video Tutorials
- AQL Reference
- AQL Examples
- AQL Overview
- AQL Feature Roadmap
- AQL Geospatial Guide
- AQL LLM Migration Guide
- AQL API
- AQL Grammar (EBNF)
- AQL Root Overview
- AQL Examples (root)
- API Reference
- API Module README
- OpenAPI Overview
- Client SDK Overview
- SDK Overview
- Operations
- Operations Overview
- Operations Runbook
- Operations Handbook
- ThemisCtl Admin Guide
- Pipeline E2E SOPs
- Docker Overview
- Docker Hub README
- Helm Overview
- Packaging Overview
- Operator Overview
- Security Policy
- Production Hardening Checklist
- Security Hardening Guide
- Encryption Key Management
- Access Control Framework
- Zero Trust Policy
- API Authentication & Authorization
- HSM Production Setup
- PKCS11 Integration
- DSGVO / SOC2 Checklist
- Access Model Runbooks
- Access Model Dashboard
- Maturity Automation Runbook
- Access Review Automation
- Access Model Dashboard
- Access Model Runbooks
- Rights Revocation
- Dr Checklists
- Dr Testing
- Incident Response Playbook
- Incident Response Testing
- GPU Oom Recovery
- Grammar Debugging
- Metrics Scrape Troubleshooting
- Model Swap Procedure
- Quota Tuning
- Subagent Deployment
- Logging Configuration
- Content Model
- Crypto & Keys
- Feature Flags Reference
- Modular Architecture Roadmap
- Modularization Guide
- Module Architecture Index
- PostgreSQL Wire Protocol
- Query Scheduling
- Raft Consensus Design
- Resource Pooling
- Source Directory Guide
- Unified Access Model
- E1 001 Layered Retrieval Design
- E1 002 Ann Abstraction Strategy
- E1 003 Tensor Summary Types
- E1 004 Lora Package Distinction
- E1 005 Model Switch Compatibility
- E1 006 Federated Tensor Summaries
- E2 001 Evaluation Framework Design
- E2 002 Hardware Profile Strategy
- E2 003 Query Planner Routing Model
- E2 004 Approximation Governance Rules
- E2 005 Cross Layer Fallback Confidence Policy
- E3 001 Distributed Tensor Design
- E3 002 Manifest Coordination Strategy
- E3 003 Recovery And Erasure Choice
- E3 004 Tensor Fabric Infrastructure
- Contributing
- Contributing (root)
- Code of Conduct
- Support
- Maintainers
- CTest Guide
- Build Quick Reference
- Developer Wiki Index
- Build / Test / CI
- Module Index
- Branching Strategy
- Release Strategy
- CI Policy Gates Wave C
- Disabled Stub Policy
- Docs PR Policy
- GA Promotion Sign Off
- Github Milestones Setup
- Governance Policies Phase1
- Maturity Claim Verification Checklist
- Maturity Evidence Registry
- Merge Gate Bot Config
- Merge Gate Status Live
- Phase 1 Closure Report
- Phase Closure Policy
- Phase Dependency Graph
- Phase3 Enforcement Runbook
- Plugin Submodule Rollback
- PR Version Targeting
- PR Version Targeting Backfill
- Production Ready 2026 Delivery Plan
- Publish Workflow Audit 2026 09 23
- Query Module Status
- Readme
- Release Governance
- Release Promotion Gate Policy
- Release Validation Checklist
- Root Hygiene Policy
- SBOM Approved Versions
- Security Compliance Audit Report 2026 08 10
- Security Module 5671 Evidence Summary
- Sharding P6 Residual Risk Acceptance
- Sourcecode Compliance Governance
- Src Module Documentation Compliance 2026 09 20
- Updates Development Status Sign Off
- Wave C Implementation Complete
- Wave C Implementation Plan
- Wave C Ml Exit Gate Sign Off
- Wave C Policy Gate Evidence
- Blob Storage
- Cuda
- Ethics Ai
- Exporters
- Huggingface
- Image Analysis
- Importers
- RPC
- Scraper
- Themisdb Ai Watermark Detector
- User Storage Encrypted
- Chimera Architecture
- Chimera Future
- Chimera Readme
- Chimera Roadmap
- Covina Fastapi Ingestion Architecture
- Covina Fastapi Ingestion Future
- Covina Fastapi Ingestion Roadmap
- Vcc Base Architecture
- Vcc Base Future
- Vcc Base Roadmap
- Vcc Clara Ingestion Architecture
- Vcc Clara Ingestion Future
- Vcc Clara Ingestion Roadmap
- Vcc Veritas Architecture
- Vcc Veritas Future
- Vcc Veritas Roadmap
- 01 Hello World
- 02 Todo App
- 03 Contact Manager
- 04 Inventory System
- 05 Time Series Monitor
- 06 Graph Social Network
- 07 Vector Search Documents
- 08 Dms Erp System
- 09 Iot Sensor Network
- 10 Drone Image Analysis
- 11 Blog Wiki
- 12 Expense Tracker
- 13 Recipe Manager
- 14 Ecommerce Catalog
- 15 Event Management
- 16 Kanban Board
- 17 Crm
- 18 Realtime Chat
- 19 Recommendation Engine
- 20 Smart Home
- 21 Coding Platform
- 22 AQL Diagram Tool
- 23 Traveling Salesman
- 24 Moral Philosophy Debates
- API Versioning
- Distributed Sharding
- Feedback Plugins
- Geo
- Gnn
- Image Analysis
- Legal Lora Training
- LLM
- Lora Sync
- Migration
- Nlp
- Performance
- Railway
- Replication
- Rope Visualization
- Sample Product Config
- Security
- Client SDK Overview
- Quickstart
- Sdk Enhancements
- Sdk Implementation Summary
- Test Suite Readme
- Go
- Java
- Javascript
- Php
- Python
- Ruby
- Rust
- Typescript
- 01 Grundlegende Operationen
- 02 AQL Queries
- 03 Graph Daten
- 04 Multimodell Anwendung
- 01 Quickstart Guide
- 02 AQL Referenz Kurzuebersicht
- 03 Datenmodellierung Guide
- 04 Uebungsaufgaben
- 05 Best Practices Guide
- Training Documents
- Training Overview
- 01 Einfuehrung Und Uebersicht
- 02 Datenmodelle Und Architektur
- 03 AQL Abfragesprache
- 04 Installation Und Setup
- 05 Anwendungsbeispiele
- Training Presentations
- Dependencies Readme
- Processmonitor Readme
- Themis.admintools.shared Readme
- Themis.aqlquerybuilder Readme
- Themis.aqlquerybuilder Roadmap
- Themis.auditlogviewer Readme
- Themis.auditlogviewer Roadmap
- Themis.classificationdashboard Readme
- Themis.classificationdashboard Roadmap
- Themis.compliancereports Readme
- Themis.compliancereports Roadmap
- Themis.gisviewer.controlpanel Readme
- Themis.gisviewer.controlpanel Roadmap
- Themis.impactanalysisviewer Readme
- Themis.impactanalysisviewer Roadmap
- Themis.ingestiontool Readme
- Themis.ingestiontool Roadmap
- Themis.keyrotationdashboard Readme
- Themis.keyrotationdashboard Roadmap
- Themis.piimanager Readme
- Themis.piimanager Roadmap
- Themis.retentionmanager Readme
- Themis.retentionmanager Roadmap
- Themis.sagaverifier Readme
- Themis.sagaverifier Roadmap
- Themis.usbadmintool Readme
- Themis.usbadmintool Roadmap
- Architecture Generator Readme
- CI Readme
- CI Roadmap
- Compiler Diagnostics Readme
- Compiler Diagnostics Roadmap
- Completion Readme
- Copilot Ollama Router Readme
- Copilot Ollama Router Roadmap
- Gnn Readme
- Gnn Roadmap
- Rope Visualizer Readme
- Rope Visualizer Roadmap
- Tco Calculator Readme
- Tco Calculator Roadmap
- Tests Readme
- Tests Roadmap
- Themis Config Wx Readme
- Themis Docs Builder Readme
- Wikipedia Ingestion Readme
- Ai Metadata And Provenance
- Build / Test / CI
- Governance And Roadmap
- Developer Wiki Index
- Module Direct Doxygen Check
- Module Doxygen Baseline Summary
- Module Doxygen Batch
- Module Doxygen Coverage Summary
- Module Doxygen Smoke Summary
- Modules And Apis
- Retrieval Direct Doxygen Check
- Soll Ist Gap Summary
- Wiki Delta Report