teqo/src
Francisco Solla dabc00f46c ops(OPS52): migra a media de produção do Vercel Blob para o Garage S3
- payload.config.ts: vercelBlobStorage -> s3Storage (@payloadcms/storage-s3)
  com endpoint Garage (forcePathStyle, region garage); bucket privado — o
  staticHandler do plugin streama os objetos em /api/media/file/<filename>,
  mantendo o contrato de URL relativa das 40 rows pré-existentes
- src/utilities/mediaStorage.ts: resolveS3StorageEnv fail-closed (S3_* parcial
  -> throw no boot com a lista exata; nenhuma -> storage local dev/test)
- seed-posts: remove pre-delete do @vercel/blob (S3 sobrescreve nativamente)
- worktree-env.mjs: s3EnvCopiedLines all-or-nothing (unit-testada)
- envs S3_BUCKET/S3_ENDPOINT/S3_REGION/S3_ACCESS_KEY_ID/S3_SECRET_ACCESS_KEY
  no .env.example/.env.test; cloud-setup.sh sem o sed morto do blob
- deps: -storage-vercel-blob -@vercel/blob +storage-s3; importMap regenerado
- docs: impl plan (revisão A->B: Garage v2 sem acesso anônimo na API S3),
  AGENTS.md, changelog 2026-08-18-ops52
2026-08-17 22:36:34 -03:00
..
app ops(OPS52): migra a media de produção do Vercel Blob para o Garage S3 2026-08-17 22:36:34 -03:00
collections feat(C139): schemas e actions de contato — criação staff e edição por célula 2026-08-13 14:12:53 -03:00
components feat(PUB5): slogan 'Mais saúde mais futuro' no hero e rodapé 2026-08-18 01:31:28 +00:00
globals security: lock public globals update to payloadAdminOnly (Pass 4 P0) 2026-07-31 20:57:18 -03:00
hooks feat(C95): seletor de modo de visualização no header do app (agenda) 2026-08-09 12:34:04 -03:00
lib feat(C139): ficha mobile de contatos em bottom sheet (Fase 5) 2026-08-13 15:06:20 -03:00
migrations feat(C129): nome de legenda da dobradinha — campo ballotName + display discreto sob o nome (Closes #696) 2026-08-12 12:52:35 -03:00
utilities ops(OPS52): migra a media de produção do Vercel Blob para o Garage S3 2026-08-17 22:36:34 -03:00
css-modules.d.ts Adopt TypeScript 6 for tooling and TypeScript 7 for typecheck. 2026-07-21 20:32:15 -03:00
payload-types.ts feat(C129): nome de legenda da dobradinha — campo ballotName + display discreto sob o nome (Closes #696) 2026-08-12 12:52:35 -03:00
payload.config.ts ops(OPS52): migra a media de produção do Vercel Blob para o Garage S3 2026-08-17 22:36:34 -03:00