Files
amare/openspec/changes/archive/2026-07-30-add-production-providers/tasks.md
manoel freitas 9dd6fcf409 docs: sync OpenSpec archives and propose foundation parity
Archive completed public-site and production-provider changes into main specs, remove duplicate active changes, and add complete-foundation-parity so Phase 0 staging and remaining foundation gaps block Phase 2 cleanly.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 21:55:04 -03:00

1.6 KiB

1. Dependencies

  • 1.1 Add resend/resend-php to composer.json require
  • 1.2 Add league/flysystem-aws-s3-v3 to composer.json require
  • 1.3 Run composer update resend/resend-php league/flysystem-aws-s3-v3 --with-all-dependencies and commit lockfile

2. Transactional email (transactional-email)

  • 2.1 Confirm config/mail.php resend mailer and config/services.php RESEND_API_KEY binding
  • 2.2 Add RESEND_API_KEY and production mail vars to .env.example with safe local defaults (MAIL_MAILER=log)
  • 2.3 Write feature test asserting resend mailer config and services key resolution

3. Object storage (object-storage)

  • 3.1 Add dedicated r2 disk to config/filesystems.php with R2_* env vars, path-style endpoint, and R2_URL
  • 3.2 Add R2 env vars to .env.example with comments for custom domain setup
  • 3.3 Write feature test asserting r2 disk config (driver, endpoint, path-style, url from R2_URL)

4. CMS media disk selection (content-media)

  • 4.1 Update PublicImageUploadRules::disk() to return r2 when FILESYSTEM_DISK=r2, keep s3 and public fallbacks
  • 4.2 Write unit/feature test for disk selection matrix: r2, s3, local/unset → public

5. Documentation

  • 5.1 Update README.md with production provider section (Resend + R2 + custom domain)
  • 5.2 Document production env checklist: MAIL_MAILER=resend, FILESYSTEM_DISK=r2, required secrets

6. Verification

  • 6.1 Run composer pint:check and composer phpstan
  • 6.2 Run composer test:unit and composer test:feature for new provider tests
  • 6.3 Run composer quality and fix any failures