generated from john/python-template
6.8 KiB
6.8 KiB
Roadmap Plan (Starting at V6.0)
This roadmap starts at V6.0 and tracks forward-looking work only.
V6.0 - Hosting Migration
Objective: move from local-only operation to secure, stable remote hosting. Status: Completed
Detailed plan: v6_0_hosting_migration_plan.md
Scope
- Containerize app runtime for production deployment.
- Run PostgreSQL in Docker and migrate from SQLite.
- Add Cloudflare Tunnel exposure with Access protection.
- Add operational safeguards (health checks, restart policies, backups).
Deliverables
- Production-ready
docker-composedeployment for app + database + tunnel. - Environment-based configuration for DB, uploads, prompts, and logging.
- Verified data migration path into PostgreSQL.
- Runbook updates for deploy, rollback, and backup/restore.
Exit Criteria
/healthzreports healthy app and worker in deployed environment.- One end-to-end document -> source -> job workflow succeeds remotely.
- Backup and restore procedure is tested.
Accomplished
- Delivered production Docker deployment with split
app/worker,postgres, andcloudflared. - Landed SQLite -> PostgreSQL migration tooling and runbook coverage.
- Added production health/reliability wiring and operational runbooks for deploy/rollback/recovery.
- Established host-visible backup workflow and restore path for PostgreSQL plus media/config assets.
V6.1 - Testing and Refinement
Objective: improve navigation and operational workflows after user feedback. Status: Completed
Scope
- Make Document Detail the primary source-page workspace:
- Use Source-style pan/zoom + previous/next page controls.
- Move editable revision controls into Document Detail.
- Move archival/system metadata to dedicated Document Info route.
- Simplify top navigation:
- Remove top-level Tags and Sources entries.
- Retire the Tags page and the global Source Asset Records entry flow.
- Improve list/detail clarity:
- Add Document transcription status to Archival Documents list.
- Add Document Date in People Detail -> Linked Documents table.
- Add worker-backed Settings maintenance runs:
- Add
maintenance_runpersistence (id,job_type,status,started_at,finished_at,triggered_by,summary,log_path,error_detail). - Add Run Backup and Run Storage Reconciliation actions that enqueue runs and execute in the worker.
- Add run history with status, duration, summary, and log view/download.
- Defer daily/weekly scheduling controls to V6.2.
- Add
Accomplished
- Refactored Document Detail into the primary source-page workspace (pan/zoom viewer, previous/next page navigation, editable revision flow) and moved archival/system metadata to Document Info.
- Simplified top navigation by removing Tags/Sources entries and retiring the Tags page/global Source Asset Records flow.
- Improved data clarity with document transcription status in Archival Documents and Document Date in People Detail linked documents.
- Implemented queue-backed maintenance operations (
maintenance_runmodel/service/worker/UI) with run history and log view/download. - Hardened runtime settings operations in production:
- runtime settings writes target mounted
.env.production, - fallback write path for single-file bind mounts,
- explicit hidden/deployment-key disclosure in Settings UI.
- runtime settings writes target mounted
- Simplified backup configuration and behavior:
- standardized on
BACKUP_DIR+BACKUP_RETENTION_DAYS, - backup script uses
DATABASE__*persistence keys, - compose maps Postgres container init values from
DATABASE__*, - env contract drift tests now guard
.env.production.example.
- standardized on
V6.2 - Reporting Features
[ More thoughts on additional features:
- Ability to search within a document to find potential users to add to the People table.
- Ability to search within a document to find dates to associate with people (e.g., John Smith was born on July 7, 1899; or "In February 1942, Martha and I drove to Wisconsin", "We took a vacation to Alaska in the summer of 1987", etc ]
Objective: improve research value with person-centric outputs.
Scope
- Person timeline views using document dates and linked records.
- AI-assisted biography/family-history generation from curated sources.
- Exportable report views (human-readable, print-oriented).
Deliverables
- Timeline UI and service queries with clear ordering/filters.
- Prompted narrative generation workflow using existing evidence-safe patterns.
- Saved/printable report presentation for review and sharing.
Exit Criteria
- Timelines are reproducible from persisted records.
- Narrative generation is traceable to source records and prompts.
- Reports can be reviewed without modifying archival source data.
V6.3 - Access Control and Multi-User Readiness
[ More thoughts on user accounts:
- Create a generic "view only" user that does not have the rights to alter any of the data
- Limit user accounts access to data by Tag. I have distant family members that I would want to share the transcribed data with, but they would only be interested in a subset of it. For example my Cochran cousins would have no interest in Lancaster documents, so limit the Cochra Clan cousins to view-only access to documents tagged "cochran clan" ]
Objective: prepare for managed collaboration beyond single-user operation.
Scope
- Introduce application-level authentication.
- Add role-based authorization (admin/editor/contributor/viewer).
- Add audit visibility for user-attributed write actions.
Deliverables
- User identity model and login/session flow.
- Route/page/service authorization enforcement.
- Audit metadata for sensitive create/update/delete workflows.
Exit Criteria
- Unauthorized operations are blocked consistently across UI/API.
- Role policies are enforced by deterministic tests.
- User-attributed changes are visible for audit/review.
V7 or later - Scalability and Multi-Tenant Direction (Optional)
Objective: keep architecture ready for broader deployment footprints.
Scope
- Evaluate per-tenant or per-user data partitioning strategy.
- Formalize connection/runtime strategy for tenant-aware DB selection.
- Expand operational telemetry for throughput and cost monitoring.
Deliverables
- Decision document for tenancy model and migration strategy.
- Prototype-safe runtime boundary for selecting data targets.
- Monitoring baseline for queue depth, job latency, and provider cost trends.
Exit Criteria
- Selected tenancy strategy is documented and testable.
- Operational metrics support capacity planning.
Planning Notes
- Keep architecture, schema, and UI contracts synchronized in
docs/as each version lands. - Prefer explicit schema migration over runtime compatibility write paths.
- Preserve evidence/provenance guarantees when adding new AI-powered features.