Repository navigation
Export all tenant data to a ZIP - #681
Merged
Merged
Conversation
GET /api/export streams the caller's tenant as one archive: Spisy with the case tree, acts and files with all versions, Kontakty, Štítky and export.json. Every document is its own versioned JSON with a schema under docs/export/v1, so the archive reads without the app. The export reads one REPEATABLE READ snapshot. It holds only the outline of cases and acts in memory and reads comments, labels and files one case or act at a time. Names, version naming, Prague entry times and streaming come from the "Stáhnout vše" code, now shared through ZipStreamWriter and FileArchiveLayout's claim helpers. A missing blob is marked in its document and logged instead of failing the export. NJsonSchema (MIT) validates the documents in the tests; JsonSchema.Net moved to a fee-based licence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UovdgdN8r8TkYmqabjAfF3
/settings/export carries the "Exportovat vše" button, which downloads /api/export the way "Stáhnout vše" does, and the name the archive saves under. The settings sections come from one SettingsNav list, so a further section is one line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UovdgdN8r8TkYmqabjAfF3
EvilBrainsBot
pushed a commit
that referenced
this pull request
Oct 30, 2026
Member
Author
Code Review
Generated by Claude Code |
A cut at 80 UTF-16 units could split an emoji, leaving a lone surrogate that UTF-8 cannot encode, so the entry name and the path in the JSON would differ. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UovdgdN8r8TkYmqabjAfF3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UovdgdN8r8TkYmqabjAfF3
Member
Author
Code Review
Generated by Claude Code |
vdolek
approved these changes
Oct 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Martin · project thread
Summary
GET /api/exportstreams the tenant as one ZIP of per-entity JSON documents and files from one REPEATABLE READ snapshot; Settings get the Export section at/settings/export. Any signed-in tenant user may export.Changes
TenantExporterwrites the case tree, contacts, labels andexport.json; naming, versions, Prague times and streaming are shared with "Stáhnout vše".docs/export/v1; SDD-022 is new, SDD-019 and SDD-016 list the section and route.SettingsNavholds the sections as a list, so API tokens and an MCP server for AI agents and integrations #673 adds API tokeny with one line.!stitky.jsonis written only when labels exist.Risks
/settings; API tokens and an MCP server for AI agents and integrations #673 moves it to/settings/labels.Screenshots
Closes #674
https://claude.ai/code/session_01UovdgdN8r8TkYmqabjAfF3
Generated by Claude Code