Skip to content

Extraction and Attachments

Thomas Maerz edited this page Oct 4, 2026 · 1 revision

Extraction and Attachments

Plan selection

For a workspace without an archive, Slackpipe builds a Slackdump archive plan. For an existing archive, it builds a resumable resume plan. Initial ingestion requires completeness and never applies stale skipping.

Steady-state resumes can use SLACKPIPE_INCREMENTAL_STALE_AFTER to pass bounded stale-channel and stale-thread windows to Slackdump. This limits repeated work without changing the initial-ingest contract.

Execution safety

  • Commands are assembled as argument arrays, not shell strings.
  • Authentication uses Slackdump's real auth.test behavior.
  • Subprocess output is normalized and redacted.
  • Authentication, transient execution, timeout, and lock failures are classified.
  • A global advisory lock prevents simultaneous raw-archive mutation.

Attachments

Attachment processing is a distinct stage. Slackpipe:

  1. downloads or resumes file extraction;
  2. indexes local files by Slack file identity;
  3. records exact relative local object paths;
  4. compares observed bytes with source metadata;
  5. reports missing, mismatched, accepted-variance, and valid files;
  6. records reconciliation details for canonical ingestion.

SLACKPIPE_ATTACHMENT_SIZE_ACCEPT is a narrow operator-reviewed exception list for known upstream byte-count variance. It must not be used as a blanket bypass.

Coherent snapshots

Slackdump archives can use SQLite WAL mode. Copying only the main database file can therefore lose committed WAL content. Slackpipe opens the source read-only and uses SQLite's backup API to produce the transform input.

Clone this wiki locally