Skip to content

add optional project row and attachment exports - #19710

Draft
andz-bb wants to merge 8 commits into
project-import-agent-portabilityfrom
codex/project-data-import-export
Draft

andz-bb wants to merge 8 commits into
project-import-agent-portabilityfrom
codex/project-data-import-export

Conversation

@andz-bb

@andz-bb andz-bb commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Description

adds optional project data export on top of #19615.

  • adds an off-by-default option for rows in included Budibase DB tables and their referenced attachments
  • imports fresh row and attachment identities, rebuilds relationships and shows data counts in the existing import summary
  • preserves stored values and maps native user references to the importing user
  • checks row quotas and rolls back partial writes without running row automations or AI generation

this includes every row in each included table, including shared tables. external database data, screen assets and agent knowledge are outside this change. attachment bytes follow the existing workspace encryption exception; the export dialog explains this when encryption is selected.

covered by data export/import, relationship, attachment, quota and rollback tests. schema-only, encrypted and repeated imports have also been checked manually.

part 6 of the six-part projects stack. review against the preceding branch.

Addresses

App Export

  • n/a

Screenshots

  • n/a

Launchcontrol

optionally includes starter data and row attachments when sharing a project


Summary by cubic

Adds an optional rows and attachments export to project packages so recipients can share starter data instead of empty tables. When enabled, every row in each included Budibase DB table, including shared tables, is exported with its referenced attachments. The import result modal now also appears whenever data was imported, even when there are no requirements or unsupported content.

Behavior

  • Imports generate fresh row and attachment identities, rebuild relationships, and report data counts in the import result modal.
  • Imported rows preserve stored values, continue Auto IDs above imported values, and map native user references to the importing user or reject rows without one.
  • Package data and its manifest are validated before import; invalid or duplicate rows, relationships, attachments, and load limits are rejected.
  • Row imports are checked against the row quota and rolled back cleanly on failure, without running row automations or AI generation; partial writes and uploaded attachments are removed, while completed imports are preserved if only releasing the assignment lock fails.
  • Attachment bytes keep the existing workspace encryption exception, so they are not encrypted even when export encryption is selected; the export dialog warns about this.
  • Relationships to rows outside the exported tables are omitted and reported as unsupported content.
  • External database data, screen assets, and agent knowledge are outside this change.

Addresses #18349; part 6 of the six-part projects stack.

Written for commit d549923. Summary will update on new commits.

Review in cubic

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 14 files

Tip: instead of fixing issues one by one fix them all with cubic

Re-trigger cubic

Comment thread packages/server/src/sdk/workspace/projects/backups/imports.ts
Comment thread packages/builder/src/pages/builder/workspace/[workspaceId]/home/index.svelte Outdated
Comment thread packages/server/src/api/controllers/project.ts
Comment thread packages/server/src/sdk/workspace/projects/backups/data.spec.ts
@andz-bb
andz-bb added this pull request to stack #19553 September 22, 2026 09:13
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch from 099e888 to ba6bab9 Compare September 23, 2026 12:19
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch from ba6bab9 to 94067a9 Compare September 23, 2026 13:10
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch 2 times, most recently from 5e36648 to a1bf8df Compare September 24, 2026 08:13
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch 2 times, most recently from 0d480af to 5a74499 Compare September 24, 2026 14:35
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch 2 times, most recently from dfeaa49 to 9832d55 Compare September 28, 2026 15:00
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch from 9832d55 to a39b70b Compare September 29, 2026 19:11
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch 2 times, most recently from 9670416 to d33238a Compare October 1, 2026 09:27
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch from d33238a to 4a4457c Compare October 1, 2026 10:26
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch from 4a4457c to 8c139c2 Compare October 1, 2026 10:36
@andz-bb
andz-bb force-pushed the codex/project-data-import-export branch from 8c139c2 to 5250fad Compare October 1, 2026 11:01

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant