Every project-management tool tells you your data is yours. Then it hands you a CSV, a PDF, or nothing at all. Ithura's Workspace File is the opposite: your whole workspace as one SQLite database, downloadable in one click, queryable in every tool that speaks SQL.
Nineteen tables, indexed, with parent-child foreign keys intact. A bundled README with the schema and a DuckDB cookbook. No Ithura-specific tooling required to read a single row.
Who this is for. Anyone who needs to answer a question the built-in reports don't cover, migrate away without losing history, satisfy a data-portability audit request, or keep an offline archive that outlives any subscription. Where to find it. Workspace settings, Exports, New export, Workspace file (SQLite). Enterprise plan, workspace-admin only.
Why we built it
Portable-export used to mean "here's a spreadsheet, good luck." The workspace file is the position that your data is yours in a way you can actually use: analyse in DuckDB without an API token, ship to your SIEM without a middleware rewrite, migrate to a new instance without reverse-engineering a proprietary format, or archive to git and diff two quarters line-by-line.
It also makes the sovereign story demo-able rather than marketed. GDPR Article 20 (data portability) is a single click. Auditors get a file they can grep. Nothing about your data is stuck behind Ithura's UI.
What's in the file
The download is a small zip:
workspace.db: SQLite 3 database, indexed on hot columns, timestamps in ISO 8601 UTC.README.md: the schema plus five example DuckDB queries out of the box.
The 19 tables, grouped:
- workspace
- users
- workspace_members
- projects
- project_members
- states
- labels
- cycles
- modules
- issues
- issue_assignees
- issue_labels
- issue_cycles
- issue_modules
- issue_comments
- issue_activities
- wiki_pages
- goals
- audit_logs
Wiki page HTML bodies are included. The Yjs update logs that power live wiki and board collaboration are not yet encoded; attachment binaries live in the object store and are not in the bundle. Both are follow-ups on the sovereign roadmap.
Reading the file
SQLite 3 is a universal format. Every serious tool reads it. Our favourite path is DuckDB because it treats the file as a normal analytical database:
SELECT ROUND(AVG(julianday(completed_at) - julianday(created_at)), 1) AS avg_days, COUNT(*) AS completed FROM issues WHERE completed_at IS NOT NULL AND completed_at >= '2026-05-01';
SELECT c.name, COUNT(*) AS committed, SUM(CASE WHEN i.completed_at IS NOT NULL THEN 1 END) AS done FROM issue_cycles ic JOIN cycles c ON c.id = ic.cycle_id JOIN issues i ON i.id = ic.issue_id WHERE c.end_date IS NOT NULL GROUP BY c.name, c.end_date ORDER BY c.end_date DESC LIMIT 6;
SELECT created_at, action, entity_type, entity_id, ip_address FROM audit_logs al JOIN users u ON u.id = al.actor_user_id WHERE u.email = 'alice@example.com' AND created_at BETWEEN '2026-07-01' AND '2026-08-01' ORDER BY created_at DESC;
Where it fits in the sovereign story
The workspace file is the point where portable data becomes usable data:
- Data residency: the file is generated on your hardware for self-hosted Ithura; it never leaves your rack. On Ithura Cloud, it's generated in the EU and served over a 7-day presigned link.
- GDPR Article 20 (portability): a single click for the whole workspace. Article 15 (access) is the same file.
- NIS2 21(2)(c) (business continuity): Postgres plus RustFS plus this file is your backup posture. If you can move the three, you can move Ithura anywhere.
- DORA exit and substitutability: the whole workspace in one file makes "switching cost" a bounded number, not a scary one.
Not yet
Round-trip import is on the roadmap; today the file is read-only. Attachment binaries and Yjs CRDT logs are separate encoding work and will land in follow-ups.
Get started
- Workspace admins on the Enterprise plan can trigger an export from Settings → Exports → New export → Workspace file (SQLite). A row appears with status
queued, thenprocessing, then a download link once the bundle lands. You'll also get an email when it's ready. - The 7-day presigned URL is your download window. Grab it, archive it, and re-trigger any time.
- Full technical detail: docs/features/workspace-file. The sovereign context lives at docs/sovereign.