-
Notifications
You must be signed in to change notification settings - Fork 1
CRYPTOGRAPHY_POLICY
Version: 1.0
Datum: 15. Dezember 2025
Status: GΓΌltig
Genehmigt durch: ThemisDB Security Team
NΓ€chste ΓberprΓΌfung: 15. Juni 2026
Diese Kryptographie-Policy definiert die Standards und Anforderungen fΓΌr den Einsatz kryptographischer Verfahren in ThemisDB. Sie stellt sicher, dass alle kryptographischen Operationen den aktuellen Best Practices und Compliance-Anforderungen (BSI C5, ISO 27001, DSGVO) entsprechen.
Diese Policy gilt fΓΌr:
- Alle kryptographischen Operationen in ThemisDB
- VerschlΓΌsselung von Daten at-rest und in-transit
- SchlΓΌsselmanagement und -verwaltung
- Entwicklung, Betrieb und Wartung
- BSI C5 (2020): Cloud Computing Compliance Criteria Catalogue, Kontrollen CRY-01 bis CRY-06
- BSI TR-02102-1: Kryptographische Verfahren: Empfehlungen und SchlΓΌssellΓ€ngen (2024-01)
- ISO/IEC 27001:2013: Informationssicherheit, Anhang A.10 (Kryptographie)
- NIST SP 800-38D: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM)
- NIST SP 800-57: Recommendation for Key Management
PrimΓ€r:
Algorithmus: AES-256-GCM (Advanced Encryption Standard)
Modus: Galois/Counter Mode (AEAD - Authenticated Encryption with Associated Data)
SchlΓΌssellΓ€nge: 256 bit (32 bytes)
IV-LΓ€nge: 96 bit (12 bytes) - zufΓ€llig generiert pro Operation
Tag-LΓ€nge: 128 bit (16 bytes) - fΓΌr AuthentifizierungBegrΓΌndung:
- AES-256 ist BSI-empfohlen fΓΌr "VS-NfD" (Verschlusssache - Nur fΓΌr den Dienstgebrauch)
- GCM bietet sowohl Vertraulichkeit als auch IntegritΓ€t (AEAD)
- Keine bekannten praktischen Angriffe auf AES-256-GCM
Alternative (falls erforderlich):
Algorithmus: ChaCha20-Poly1305
SchlΓΌssellΓ€nge: 256 bit
Nonce-LΓ€nge: 96 bit
Tag-LΓ€nge: 128 bitNICHT zugelassen:
- β AES-ECB (keine Authentifizierung, Pattern Leakage)
- β DES, 3DES (veraltet, zu kurze SchlΓΌssel)
- β RC4 (Bias in Keystream)
- β AES-CBC ohne HMAC (keine Authentifizierung)
RSA:
SchlΓΌssellΓ€nge: Minimum 2048 bit, empfohlen 4096 bit
Padding: OAEP (Optimal Asymmetric Encryption Padding) mit SHA-256
Verwendung: SchlΓΌsselaustausch, ZertifikateElliptic Curve (ECDH, ECDSA):
Kurven: P-256 (NIST), P-384, Curve25519
Verwendung: TLS, SchlΓΌsselaustauschNICHT zugelassen:
- β RSA < 2048 bit
- β RSA ohne Padding
- β Schwache Kurven (< 256 bit)
Hash-Funktionen:
PrimΓ€r: SHA-256, SHA-384, SHA-512
Verwendung: IntegritΓ€tsprΓΌfung, Signaturen, HMACMessage Authentication Codes (MAC):
Algorithmus: HMAC-SHA256
Verwendung: NachrichtenauthentifizierungKey Derivation:
Algorithmus: HKDF-SHA256 (HMAC-based Key Derivation Function)
Verwendung: Content-based metadata, SchlΓΌsselableitungNICHT zugelassen:
- β MD5 (Kollisionen gefunden)
- β SHA-1 (schwach, Sunset 2020)
RSA: RSA-SHA256, Minimum 2048 bit
ECDSA: P-256 oder P-384
EdDSA: Ed25519 (fΓΌr moderne Anwendungen)Protokoll: TLS 1.3 (primΓ€r), TLS 1.2 (fallback)
Cipher Suites:
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- ECDHE-RSA-AES256-GCM-SHA384
- ECDHE-RSA-AES128-GCM-SHA256
NICHT zugelassen:
- SSLv2, SSLv3 (unsicher)
- TLS 1.0, TLS 1.1 (veraltet)
- Cipher Suites mit RC4, DES, MD5
- NULL-Cipher
- Export-Grade CipherThemisDB verwendet eine zweistufige SchlΓΌsselhierarchie:
ββββββββββββββββββββββββββββββββββββββββββ
β Key Encryption Key (KEK) β
β - Gespeichert: Vault/KMS/HSM β
β - Rotation: JΓ€hrlich β
β - LΓ€nge: 256 bit β
ββββββββββββββββ¬ββββββββββββββββββββββββββ
β verschlΓΌsselt
βΌ
ββββββββββββββββββββββββββββββββββββββββββ
β Data Encryption Keys (DEK) β
β - Gespeichert: VerschlΓΌsselt im Cache β
β - Rotation: VierteljΓ€hrlich β
β - LΓ€nge: 256 bit β
β - TTL: 1 Stunde (Cache) β
ββββββββββββββββββββββββββββββββββββββββββ
Anforderungen:
- Verwendung kryptographisch sicherer Zufallszahlengeneratoren (CSPRNG)
- OpenSSL
RAND_bytes()oder/dev/urandom(Linux) - Mindest-Entropie: 256 bit fΓΌr symmetrische SchlΓΌssel
Verfahren:
// Korrekt:
std::vector<uint8_t> key(32); // 256 bit
if (RAND_bytes(key.data(), key.size()) != 1) {
throw KeyGenerationException("Insufficient entropy");
}
// NICHT zulΓ€ssig:
std::srand(time(NULL)); // β std::rand() ist NICHT kryptographisch sicherKEK (Key Encryption Keys):
-
MUSS in externem Key Management System gespeichert werden:
- HashiCorp Vault (empfohlen)
- AWS KMS, Azure Key Vault, GCP KMS
- Hardware Security Module (HSM) mit PKCS#11
- DARF NICHT im Klartext auf Festplatte gespeichert werden
- Zugriff nur ΓΌber authentifizierte Service-Principals
DEK (Data Encryption Keys):
- VerschlΓΌsselt mit KEK
- Cache: Max. 1000 Keys, 1 Stunde TTL
- LRU-Eviction bei Cache-Γberlauf
- Im Memory nur fΓΌr aktive Operationen
Verboten:
- β Hardcoded Keys im Quellcode
- β Keys in Konfigurationsdateien (ohne VerschlΓΌsselung)
- β Keys in Versionskontrolle (Git)
- β Keys in Logdateien
Rotationsfrequenzen:
| SchlΓΌsseltyp | RegulΓ€re Rotation | Notfall-Rotation |
|---|---|---|
| KEK (Master) | JΓ€hrlich | < 24 Stunden |
| DEK (Data) | VierteljΓ€hrlich | < 7 Tage |
| TLS-Zertifikate | JΓ€hrlich (90 Tage empfohlen) | < 24 Stunden |
Rotationsprozess (Vier-Phasen-Modell):
-
Phase 1: Dual-Write (Woche 1-2)
- Neuer SchlΓΌssel wird erstellt
- Neue Daten mit neuem SchlΓΌssel verschlΓΌsselt
- Alte Daten mit altem SchlΓΌssel entschlΓΌsselbar
-
Phase 2: Re-Encryption (Woche 3-4)
- Hintergrundjob verschlΓΌsselt alte Daten neu
- Progress Tracking und Monitoring
- Idempotente Operation (Wiederholbar)
-
Phase 3: Deprecation (Woche 5)
- Alter SchlΓΌssel wird als DEPRECATED markiert
- Monitoring fΓΌr unerwartete Zugriffe
- 30 Tage Γbergangszeit
-
Phase 4: Deletion (Woche 8+)
- Alter SchlΓΌssel wird gelΓΆscht
- Audit-Log-Eintrag
- BestΓ€tigung durch Security Team
Notfall-Rotation (bei Kompromittierung):
- Sofortige Deaktivierung des kompromittierten SchlΓΌssels
- Erstellung eines neuen SchlΓΌssels innerhalb 1 Stunde
- Re-Encryption mit hoher PrioritΓ€t (24-48 Stunden)
- Incident Report und Root-Cause-Analysis
Verfahren:
- Sicheres Γberschreiben (mindestens 1x mit Zufallsdaten)
- Verwendung von
memset_s()oderexplicit_bzero() - Loggen der Vernichtung im Audit-Log
- Aufbewahrung von Metadaten (wann, wer, warum) fΓΌr 7 Jahre
// Korrekt:
void secureZero(std::vector<uint8_t>& key) {
#ifdef _WIN32
SecureZeroMemory(key.data(), key.size());
#else
explicit_bzero(key.data(), key.size());
#endif
}
// NICHT ausreichend:
key.clear(); // β Compiler kΓΆnnte optimierenAnforderungen:
- MUSS fΓΌr jede VerschlΓΌsselung einzigartig sein
- MUSS kryptographisch zufΓ€llig generiert werden (CSPRNG)
- DARF NICHT wiederverwendet werden (fΓΌr denselben SchlΓΌssel)
- LΓ€nge: 96 bit (12 bytes) fΓΌr AES-GCM
Implementierung:
// Korrekt:
std::vector<uint8_t> iv(12);
RAND_bytes(iv.data(), iv.size());
// NICHT zulΓ€ssig:
std::vector<uint8_t> iv(12, 0); // β Null-IV
iv = last_iv; // β IV-Wiederverwendung
iv = counter++; // β VorhersagbarAnforderungen:
- MUSS bei AEAD-Modi (GCM, CCM, ChaCha20-Poly1305) verwendet werden
- Tag-LΓ€nge: Minimum 96 bit, empfohlen 128 bit
- MUSS vor EntschlΓΌsselung verifiziert werden
- Bei Verifikationsfehler: Sofort abbrechen, keine Information preisgeben
Implementierung:
// EntschlΓΌsselung mit Tag-Verifikation
int ret = EVP_DecryptFinal_ex(ctx, plaintext + len, &len);
if (ret <= 0) {
// Tag-Verifikation fehlgeschlagen
throw DecryptionException("Authentication failed");
// β NICHT: Details ΓΌber den Fehler preisgeben
}Bei Modi die Padding erfordern (CBC):
- MUSS PKCS#7 Padding verwendet werden
- Padding Oracle-Angriffe vermeiden: Konstante Zeit fΓΌr Fehler
- Besser: Verwende AEAD-Modi (kein Padding erforderlich)
Anforderungen:
- Kryptographische Fehler MΓSSEN geloggt werden (ohne sensitive Daten)
- Keine Details ΓΌber Fehler an Angreifer zurΓΌckgeben
- Konstante Zeit fΓΌr Fehlerbehandlung (Timing-Angriffe vermeiden)
// Gut:
try {
decrypt(ciphertext);
} catch (const DecryptionException& e) {
AuditLogger::log("Decryption failed", {
{"key_id", key_id},
{"error_type", "auth_failed"}
// β NICHT loggen: plaintext, key, iv
});
throw; // Generic error nach auΓen
}Zu loggende Ereignisse:
SchlΓΌsseloperationen:
- SchlΓΌsselerzeugung (key_id, algorithm, creator)
- SchlΓΌsselabruf (key_id, version, timestamp)
- SchlΓΌsselrotation (key_id, old_version, new_version)
- SchlΓΌsseldeaktivierung (key_id, reason)
- SchlΓΌsselvernichtung (key_id, timestamp, operator)
VerschlΓΌsselungsoperationen:
- VerschlΓΌsselung (key_id, key_version, success)
- EntschlΓΌsselung (key_id, key_version, success/failure)
- Authentifizierungsfehler (key_id, timestamp)
Administrative Operationen:
- Policy-Γnderungen (what, who, when)
- KonfigurationsΓ€nderungen (parameter, old_value, new_value)
- Notfall-Rotationen (reason, initiated_by)NICHT loggen:
- β Plaintext-Daten
- β Kryptographische SchlΓΌssel
- β IVs oder Nonces (auΓer als Hash)
- β VollstΓ€ndige Ciphertexte
Metriken:
Performance:
- encryption_operations_total{operation, key_id}
- encryption_duration_seconds{operation, quantile}
- key_cache_hit_rate{key_id}
Sicherheit:
- key_rotation_age_days{key_id}
- deprecated_key_access_total{key_id}
- encryption_errors_total{error_type}
- authentication_failures_total{key_id}Alerts:
Critical:
- Deprecated key access > 0
- Authentication failure rate > 1%
- Key rotation overdue > 30 days
Warning:
- Cache hit rate < 90%
- Encryption error rate > 0.1%
- Key age > 80% of rotation intervalErforderliche Dokumentation:
- β Kryptographie-Policy (dieses Dokument)
- β SchlΓΌsselmanagement-Verfahren
- β Rotations-Runbooks
- β Incident-Response-Playbook
- β Audit-Logs (7 Jahre Aufbewahrung)
RegelmΓ€Γige ΓberprΓΌfungen:
- JΓ€hrliche Policy-Review
- VierteljΓ€hrliche Compliance-Audits
- Monatliche SchlΓΌsselrotations-Checks
Verantwortlichkeiten:
- Genehmigung von Policy-Γnderungen
- Γberwachung der Compliance
- Incident-Response bei Kompromittierung
- JΓ€hrliche Policy-Review
Verantwortlichkeiten:
- Implementierung gemÀà Policy
- Code-Reviews fΓΌr kryptographische Operationen
- Unit-Tests fΓΌr VerschlΓΌsselung
- Dokumentation von Γnderungen
Verantwortlichkeiten:
- SchlΓΌsselrotation durchfΓΌhren
- KMS/Vault-Administration
- Monitoring und Alerting
- Backup und Recovery
Verantwortlichkeiten:
- Audit-ΓberprΓΌfungen
- Compliance-Berichte
- Externe Audits koordinieren
Ausnahmen von dieser Policy sind nur in begrΓΌndeten FΓ€llen zulΓ€ssig und erfordern:
- Schriftliche BegrΓΌndung mit technischer Rechtfertigung
- Risk Assessment durch Security Team
- Formale Genehmigung durch Security Officer
- Befristete GΓΌltigkeit (max. 12 Monate)
- Kompensatorische Kontrollen definieren
- Audit-Trail der Entscheidung
FΓΌr bestehende Implementierungen vor dieser Policy:
- Migration Plan innerhalb 12 Monate
- TemporΓ€re Ausnahme mit Risikobewertung
- Monitoring der Legacy-Verwendung
- Deprecation Timeline festlegen
Versionierung:
- Semantic Versioning (MAJOR.MINOR.PATCH)
- MAJOR: Grundlegende Γnderungen (neue Algorithmen)
- MINOR: ErgΓ€nzungen (neue Abschnitte)
- PATCH: Korrekturen, Klarstellungen
Γnderungsprozess:
- Vorschlag durch Security Team oder Stakeholder
- Impact Analysis
- Review durch Development, Ops, Compliance
- Genehmigung durch Security Officer
- Kommunikation an alle Teams
- Implementation Grace Period (30 Tage)
- RegulΓ€r: JΓ€hrlich (15. Dezember)
- Ad-hoc: Bei SicherheitsvorfΓ€llen oder neuen Bedrohungen
- Trigger: Neue BSI/NIST-Empfehlungen
- Alle Entwickler MΓSSEN diese Policy vor Implementierung kryptographischer Funktionen lesen
- JΓ€hrliche Security-Awareness-Schulung
- Spezielle Schulung bei Policy-Updates
Siehe:
-
docs/security/security_column_encryption.md(Design) -
include/security/encryption.h(API) -
src/security/field_encryption.cpp(Implementierung) -
tests/test_encryption.cpp(Tests)
| BSI C5 | ISO 27001 | NIST | Diese Policy |
|---|---|---|---|
| CRY-01 | A.10.1.1 | SC-12 | Abschnitt 2 |
| CRY-02 | A.10.1.2 | SC-12, SC-13 | Abschnitt 3 |
| CRY-03 | A.10.1.1 | SC-28 | Abschnitt 2 |
| CRY-04 | A.13.1.1 | SC-8 | Abschnitt 2.2 |
| CRY-05 | A.10.1.2 | SC-12 | Abschnitt 3.4 |
| CRY-06 | A.10.1.1 | SC-13 | Abschnitt 4.2 |
HΓ€ufige Fehler (NICHT tun):
// β Schwache SchlΓΌssel
std::vector<uint8_t> key = {'p', 'a', 's', 's', 'w', 'o', 'r', 'd'};
// β IV-Wiederverwendung
static std::vector<uint8_t> iv(12, 0); // Konstante IV
// β Keine Authentifizierung
// CBC-Modus ohne HMAC
// β Hardcoded Keys
const char* KEY = "super_secret_key_1234567890";
// β Unsichere Zufallszahlen
std::srand(time(NULL));
int iv = std::rand();
// β Fehler ignorieren
EVP_EncryptFinal_ex(ctx, out, &len); // return value ignoriertErstellt von: ThemisDB Security Team
Erstellt am: 15. Dezember 2025
Genehmigt von:
- Chief Security Officer (CSO)
- Chief Technology Officer (CTO)
- Compliance Officer
Inkrafttreten: 15. Dezember 2025
NΓ€chste ΓberprΓΌfung: 15. Juni 2026 (6 Monate)
Γnderungshistorie:
| Version | Datum | Autor | Γnderungen |
|---|---|---|---|
| 1.0 | 2025-12-15 | Security Team | Initiale Version |
Dokumentstatus: β
Aktiv
Vertraulichkeit: Intern
Klassifizierung: Organisatorisch
ThemisDB 1.9.0-beta Β· Home Β· Wiki-Index Β· Module-Index Β· FAQ Β· Quick-Reference Β· GitHub Β· Issues Β· Discussions Β· License
- 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
- Deploy Overview
- 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
- Disabled Stub Policy
- Docs PR Policy
- GA Promotion Sign Off
- Github Milestones Setup
- 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
- Query Module Status
- Readme
- Release Promotion Gate Policy
- Release Validation Checklist
- Security Module 5671 Evidence Summary
- Sharding P6 Residual Risk Acceptance
- Sourcecode Compliance Governance
- Updates Development Status Sign Off
- Wave C Implementation Complete
- 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
- 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