seedproject-web/api
Carlos Arias dc69d1fd0d Phase 2: media upload pipeline
- cja_media table; POST /api/media/upload (admin-gated, multipart).
- Images optimised with GD (downscale to 1600px, re-encode; WebP for
  transparency, JPG for photos). Video via ffmpeg (scale, compress, drop audio).
- Stored in app/public/media/ (source tree) so uploads survive rebuilds and are
  copied into public/ on build.
- requireAdmin() moved to PublicController base (fixes a static/non-static
  clash with AdminAuth). Type detection uses getimagesize (fileinfo ext absent).

Note: php-fpm must be in the caweb group to write app/public/media (restart
after adding www to caweb).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DoFYZY9gkGPNDqZ7NuEa9a
2026-07-23 22:45:45 +00:00
..
.memory chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
app Phase 2: media upload pipeline 2026-07-23 22:45:45 +00:00
cli Phase 1: admin login page + secret-link token auth 2026-07-23 22:15:50 +00:00
commands feat(api): Foundation — installer, migrations, two-tier auth, health round-trip 2026-07-04 23:23:51 +00:00
core chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
db Phase 2: media upload pipeline 2026-07-23 22:45:45 +00:00
install fix: repair the fresh-clone flow — track api/public + app/public, fix installer schema 2026-07-05 00:15:55 +00:00
public Phase 2: media upload pipeline 2026-07-23 22:45:45 +00:00
system Phase 2: media upload pipeline 2026-07-23 22:45:45 +00:00
templates/emails feat: user auth (email + Google OAuth), Mailer, and CLI bridges 2026-07-11 09:14:25 -05:00
.htaccess chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
composer.json feat: user auth (email + Google OAuth), Mailer, and CLI bridges 2026-07-11 09:14:25 -05:00
composer.lock chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
console feat(api): Foundation — installer, migrations, two-tier auth, health round-trip 2026-07-04 23:23:51 +00:00
index.php chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
manifest.json chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
sw.js chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00