Settings storage: S3 versus local
Inkpacket Settings → File storage shows S3-compatible when the S3_* keys are set, otherwise Local fallback. Uploads still work. GET /api/v1/health reports storage.configured and storage.backend. That is settings-storage honesty — not Drive.
Settings → File storage at /desk/settings#storage is a status card, not a folder picker. It shows S3-compatible when S3_BUCKET, S3_ACCESS_KEY_ID, and S3_SECRET_ACCESS_KEY are set. Optional S3_ENDPOINT points at an S3-compatible host. Otherwise Local fallback — uploads still work. GET /api/v1/health reports storage.configured and storage.backend. That is settings-storage honesty: the desk tells you which backend this install is using. It does not pretend a missing bucket is a cloud. It does not pretend local bytes are somewhere else.
Where the object lives on the envelope is where uploaded PDFs are stored. The filed copy after sign is the stamped PDF and audit. Drive archive is a different Settings tip — completed PDF plus audit JSON to a folder, or Drive not configured. Desk help is Docs. Ask Inkpacket for storage settings to open the card. Ask how file storage works to open help. This guide is the card itself.
Local fallback stores PDFs under .data/storage. That path is for development and for installs that have not set S3_*. It is still org-scoped in the product model. Other workspaces cannot see the file. Members of this workspace can preview and download from the envelope. Switching backends is an environment change, not a Billing upgrade. Checkout is not open and does not buy a bucket.
What the card shows
- S3-compatible — the three required S3_* keys are present. Optional S3_ENDPOINT is for a compatible host.
- Local fallback — those keys are missing. Uploads still work.
- storage.configured and storage.backend on GET /api/v1/health match the card.
- Drive archive is not this card. Open Settings #drive for that flag.
Empty uploads return Upload a PDF file. Non-PDFs return Only PDF files are accepted. Unreadable bytes return This file could not be read as a PDF. Oversized files return PDF must be 15 MB or smaller. A missing object returns The PDF could not be loaded from storage. A zero-byte stored object returns The stored PDF is empty. An unreachable bucket returns File storage is unavailable. Re-upload a valid PDF. Inkpacket does not pretend the file landed.
Not Drive, not Billing
Drive archive uploads the stamped PDF and a JSON audit export when credentials are present. Without them the desk reports Drive not configured and does not pretend the upload happened. That soft-fail is when Drive archive soft-fails. Local fallback is not that skip. Local means the signing PDF is on this install’s disk. Drive means a second copy after completion, to a folder you named.
Do not open Billing to “enable S3.” Do not mint an API token to change storage.backend. Owners and admins set environment variables. The card only reports them. A Free workspace stores files the same way a published paid lane would. Storage does not wait on a card. Pricing is envelope math, not object storage.
The click-path
- Sign in. Open /desk/settings#storage.
- Read S3-compatible or Local fallback. Confirm health.storage.backend matches.
- Upload a PDF at Documents → new. Rejects still apply on either backend.
- If preview says Could not load the PDF, refresh; if it persists, re-upload.
- If you need a completed-packet export to a folder, that is Settings #drive — a different flag.
Ask Inkpacket for file storage or storage settings to open the card. Ask upload PDF to open Documents → new. Those phrases stay on the product screens. This article is the public version of the backend line.
What local is not
- Not a broken install. Uploads still work.
- Not a Drive archive. Completion does not write a folder.
- Not a plan unlock. Free stores files.
- Not a reason to clone the envelope. Re-upload on the same envelope if the object is empty or missing.
Signers who see Could not load the PDF should refresh; if it persists, the sender opens the envelope and confirms the file. That message is a read failure, not an expiry and not a void. Do not resend a new envelope because preview failed once.
Caps and what is not open yet
An upload is not a send. The send that issues the signing link is. Free allows 5 packets a month. Free at 5 packets a month is the live cap desk send, bulk rows, Web Form fills, and API send share. Hitting it returns HTTP 402 ENVELOPE_LIMIT. Starter is 20 envelopes — more than Free — plus 3 published Web Forms. Seat counts are planning numbers; invite does not refuse when a workspace is full.
Billing is published, not charging. Checkout is not open. Text-message (SMS) is coming soon. Drive missing: Drive not configured. Stripe off: Payments not live. Local fallback still stores the PDF. None of those flags invent a bucket. The FAQ points at files help for the same storage sentences.
Read the card. Upload a real PDF. Send one envelope. Download the stamped copy from that envelope after they sign. If Drive is off, you still have the file. Open a workspace on Free — see published pricing — or sign in and open Settings → File storage so S3-compatible versus Local fallback is a line you have seen.
Open a workspace on Free
Billing is published, not charging. Send an envelope from the desk without a card.
Open a workspace