# Telegram Archive Roadmap This document outlines planned features and the long-term vision for Telegram Archive. For version history and changes, see [CHANGELOG.md](./CHANGELOG.md). --- ## Near-term Improvements ### Security Hardening - [ ] Search input validation and length limits - [ ] Telegram session file encryption at rest - [ ] Docker HEALTHCHECK instructions in Dockerfiles ### Notification System - [ ] Detect when user has blocked notifications at OS/browser level - [ ] Auto-disable push subscriptions for blocked users (avoid wasted resources) - [ ] Notification preferences per chat (mute specific chats) ### Mass Operation Protection - [ ] True zero-footprint mode: buffer ALL operations before applying - [ ] Configurable suspicious activity alerts (email/webhook) - [ ] Undo window for deletions (soft-delete with recovery period) ### Viewer Polish - [x] Media Gallery Phase 1+2 (grid view for photos/videos, list view for voice/files) — v7.10.0 - [ ] Media Gallery Phase 3: Links tab (shared URLs extracted from messages) - [ ] Custom themes (light mode, OLED dark, Telegram classic) - [ ] Waveform visualization in the voice/audio player - [ ] Keyboard shortcuts (j/k navigation, Esc to close, etc.) - [ ] Message deep links (shareable URLs to specific messages) - [ ] i18n / localization (viewer is English-only currently) ### Developer Experience - [ ] OpenAPI/Swagger documentation (FastAPI built-in, needs enabling for public use) - [ ] Grafana/Prometheus metrics endpoint (backup health, message counts, media size) - [ ] Database vacuum/optimization scheduled task (SQLite VACUUM, PostgreSQL ANALYZE) - [ ] Backup integrity verification (checksum media files against DB records) --- ## Search & Discovery Substring search over chat names and message text already ships. What is left is the indexed and semantic work, which is not scheduled against a version yet. - [ ] Elasticsearch or Meilisearch integration for full-text search across all messages - [ ] Semantic search (find by meaning, not just keywords) - [ ] Advanced filters: date range, media type, sender, has:link, has:media --- ## v8.0.0 — Forensic & Legal Admissibility **Goal:** Make Telegram Archive valid evidence in judicial systems worldwide. ### Cryptographic Integrity - [ ] SHA-256 hash chains for all messages - [ ] Merkle tree root calculation per backup run - [ ] RFC 3161 Trusted Timestamping Authority integration - [ ] Blockchain anchoring (Bitcoin/Ethereum) for immutable proof - [ ] Tamper detection on archive verification ### Chain of Custody - [ ] Immutable, hash-chained audit log - [ ] Every action logged: backup, view, export, access attempts - [ ] Multi-signature access for sensitive archives - [ ] Role separation: archivist vs viewer permissions - [ ] "Break glass" emergency access with mandatory logging ### Source Authentication - [ ] Store Telegram server-side signatures with messages - [ ] Device attestation (TPM/Secure Enclave where available) - [ ] Cross-reference verification between independent archives ### Court-Ready Export - [ ] Forensic export package format: ``` evidence_package/ ├── messages.json # The actual messages ├── merkle_tree.json # Full hash tree ├── tsa_timestamps/ # RFC 3161 timestamp tokens ├── blockchain_anchors/ # Transaction hashes ├── audit_log.json # Hash-chained access log ├── telegram_signatures/ # Original Telegram auth data ├── device_attestation.json # Device proof └── verification_script.py # Self-contained verifier ``` - [ ] Verification CLI tool: `telegram-archive verify evidence_package/` - [ ] Legal template library (affidavits per jurisdiction) ### Standards Compliance - [ ] ISO 27037 (Digital evidence handling) - [ ] NIST SP 800-86 (Forensic techniques guide) - [ ] eIDAS (EU qualified timestamps/signatures) - [ ] Federal Rules of Evidence 901/902 (US) ### Configuration ```env FORENSIC_MODE=true HASH_ALGORITHM=SHA-256 TSA_URL=https://freetsa.org/tsr BLOCKCHAIN_ANCHOR=ethereum AUDIT_LOG_RETENTION=forever ``` --- ## v9.0.0 — Multi-tenancy & Access Control ### Multi-tenant Architecture - [ ] Single instance serving multiple users - [ ] Per-user isolated databases or schemas - [ ] Shared channel access between users ### Authentication Providers - [ ] OAuth/Social login (Google, GitHub, Discord) - [ ] Magic link authentication (passwordless email) - [ ] OIDC/SAML support (Enterprise SSO) - [ ] 2FA/MFA support ### Role-Based Permissions - [ ] Archivist: backup operations, no deletion --- ## Future Ideas ### Backup Features - [ ] Multi-account support (backup multiple Telegram accounts) - [ ] S3/MinIO cloud storage backend - [ ] End-to-end encryption at rest - [ ] Incremental backup compression - [ ] Backup scheduling presets (conservative, aggressive) - [ ] Telegram bot integration (trigger backup, get status via Telegram) ### Export & Integrations - [ ] REST API for external integrations - [ ] Webhooks for new message notifications - [ ] Export formats: HTML archive, PDF, MBOX - [ ] Scheduled backup reports (email/Slack) - [ ] Import from other backup formats ### Mobile Experience - [ ] Mobile-optimized gesture navigation - [ ] Offline viewing capability (service worker cache) - [ ] iOS/Android native app wrapper ### AI Features - [ ] Chat summarization - [ ] Auto-tagging and categorization - [ ] Sentiment analysis dashboard - [ ] Translation on-demand --- ## Recently Completed Features that were previously on this roadmap and have been implemented: | Feature | Version | Notes | |---------|---------|-------| | Message reactions display | v5.x | Emoji + custom emoji support | | Sticker display | v5.x | Rendered in message view | | Web Push notifications | v5.0 | Full mode with VAPID, persistent subscriptions | | WebSocket real-time updates | v5.0 | Live message sync, edits, deletions | | Mass operation rate limiting | v5.0 | Sliding window with configurable threshold | | PWA support | v5.0 | Service worker, installable | | Pinned messages | v5.4 | Multiple pins, real-time sync, banner | | Forum topics | v6.2.0 | Topic navigation and filtering | | Chat folders | v6.2.0 | Telegram dialog filters | | Archived chats | v6.2.0 | Separate archived section | | Dependabot + CodeQL | v6.2.3 | Automated dependency updates and SAST | | Ruff linter/formatter | v6.2.3 | CI enforcement + pre-commit hooks | | Security hardening | v6.2.3 | CSP, CORS, secure cookies, container hardening | | PBKDF2 auth tokens | v6.2.4 | Replaced weak SHA256 hashing | | Login rate limiting | v7.0.0 | Sliding window on the login and share-token endpoints | | Session tokens with expiration | v7.0.0 | Random per-login tokens honoring `AUTH_SESSION_DAYS`; DB-backed and restart-safe since v7.1.0 | | Admin panel for user management | v7.0.0 | Create, edit and delete viewer accounts from the viewer | | Per-chat access control lists | v7.0.0 | Per-account chat whitelists, enforced on messages and media | | Read-only access to assigned chats | v7.0.0 | Viewer accounts see only their chats; writes stay with the master account | | Voice/audio player | v7.31.0 | One global player with a queue and auto-advance; waveform display is still open | --- ## Contributing Have a feature request? [Open an issue](https://github.com/GeiserX/Telegram-Archive/issues)! See [CONTRIBUTING.md](../CONTRIBUTING.md) for development guidelines.