Skip to content

docs: second part of the archive page, using archives with your own S3 - #753

Open
devin-ai-integration[bot] wants to merge 4 commits into
mainfrom
cdrappier/devin/archive-external-storage-docs
Open

docs: second part of the archive page, using archives with your own S3#753
devin-ai-integration[bot] wants to merge 4 commits into
mainfrom
cdrappier/devin/archive-external-storage-docs

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

The archive page only covered the managed flow (sandbox.archive() / unarchive()). This adds a second part documenting the sandbox-api surface behind it, so users can write the same archive to a bucket they own and restore it later: backups, cross-workspace or cross-region copies, keeping several archives of one sandbox.

New sections under ## Archive to your own storage:

  • Archive contents: uncompressed tar, .blaxel-archive/manifest.json (with a sample manifest) and .blaxel-archive/processes.json, deletions carried in the manifest rather than as tar members, and what is never archived (memory, /tmp, runtime dirs, host-injected identity, volumes and drives).
  • POST /archive/export on sandbox.metadata.url, with the option table (url, async, dryRun, saveProcesses, excludes, headers, multipart) and the mk3.0 imageDevice: /dev/ukp_rom0 note.
  • Dry run to get the exact size before presigning, since the archive is streamed with a length announced up front.
  • Multipart for archives above 5 GB, including the 5 MB minimum part size and why abortUrl matters.
  • Cold storage backups through signed headers (x-amz-storage-class), and saveProcesses: false for a filesystem-only archive.
  • Following an export on GET /archive/status, and the fact that the freeze is not lifted after a successful export (POST /archive/resume).
  • Restoring by setting BL_ARCHIVE_IMPORT_URL at sandbox creation: restore phases, processes relaunched with new IDs, import applied once, and the quarantine behavior after a partial restore.
  • A short list of caveats: presigned URLs are credentials, the one hour transfer bound, same-image requirement, format version and gzip support, one export at a time.

Content checked against sandbox-api/src/handler/archive/* (export, import, tar, multipart, transport, quiesce, restore) and the controlplane archive manager.

Link to Devin session: https://app.devin.ai/sessions/f05412800720448383d385d1ff7121fe
Requested by: @drappier-charles

… S3 storage

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@mintlify

mintlify Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
blaxel 🟢 Ready View Preview Aug 27, 2026, 12:37 AM

… itself

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

Open in Devin Review

Comment thread Sandboxes/Archive.mdx Outdated
"apiVersion": "v0.1.0",
"imageDevice": "/dev/vda",
"root": "/",
"excludes": ["proc", "sys", "dev", "run", "tmp", "mnt", "etc/resolv.conf"],

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

🔍 Manifest excludes sample omits hostname/hosts

The sample excludes (Sandboxes/Archive.mdx:160) lists only etc/resolv.conf, while the prose (Sandboxes/Archive.mdx:176) says host-injected identity also covers /etc/hostname and /etc/hosts. Confirm the sample matches the real default exclude set so readers are not misled.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

drappier-charles and others added 2 commits August 27, 2026 01:44
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant