Documentation
WitnessConfiguration
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.