Skip to content
Scalpels home

Scalpels is officially launching on October 31, 2026. Special early adopter pricing is available now.

← All documentation

Documentation

Witness

Configuration

Updated

Catalog configuration

Witness declares no user-entered environment variables in the Scalpels catalog. Laravel Cloud supplies connection settings for Postgres, the managed queue, and object storage. The application defaults to the database cache and the Scalpels mailer.

Do not add catalog keys that duplicate managed resource variables. If you choose a custom mail transport later, configure and test it as an application-specific Cloud change rather than as a requirement of the Witness recipe.

Permanent domain

Configure the production custom domain before the first envelope. This is environment configuration in Laravel Cloud, not an environment variable in the catalog. Existing invitation and verification links keep their creation host and are not rewritten after a domain change.

Runtime services

Keep all four catalog resources attached:

  • Postgres stores domain records and supplies database-level guards.
  • The queue builds completed PDFs and sends completion mail.
  • Private object storage holds source and completed PDFs.
  • The scheduler runs reminders, expiry, deletion retry, mail reconciliation, and completion recovery.

The deploy hook runs php artisan migrate --force. Witness has no custom build step, native helper binary, or witness:doctor command. Composer's normal post-autoload hook prepares its checked-in PDF fonts.

Fixed safety limits

Witness accepts a single PDF up to 20 MiB and 100 pages. A completion email may attach a final PDF up to 10 MiB; otherwise it sends a seven-day signed download link. Verification codes last ten minutes. Design operating procedures around these limits instead of silently raising them.