--- description: Prominent BE/DB deploy alerts when crash reporter or backend changes need server action alwaysApply: true --- # BE and database deploy alerts When your work touches the crash reporter backend, SQLite schema, nginx, or PHP on the BE (`apps.f0xx.org`), **always** end the relevant reply with a clearly separated block in **BIG CAPITAL LETTERS** if any of the following apply: ## Trigger — show the alert when - **Database**: new/changed tables or columns (`schema.sqlite.sql`, `Database::ensureSchema`, `ALTER TABLE`, `tags_json`, `report_views`, migrations, or data-dir permissions). - **BE deploy**: PHP/views/JS/CSS/config must be copied or synced to the Alpine tree under `android_cast/examples/crash_reporter/backend/`. - **Hard reload on server**: nginx config fragment changed → `nginx -t` + reload; PHP-FPM restart after extension/config changes; opcache may need FPM restart. - **Browser**: static assets (`app.js`, `app.css`) changed → user should hard-refresh after BE files are updated. ## Format (use exactly this style) ``` ═══════════════════════════════════════════════════════════════ ⚠️ ACTION REQUIRED ON BE / DB ═══════════════════════════════════════════════════════════════ • DATABASE: … (what changed; auto-migrate on first request vs manual sqlite step) • SYNC FILES: … (paths to copy) • NGINX: … (reload if api locations changed) • PHP-FPM: … (restart only if needed) • BROWSER: HARD REFRESH after deploy ═══════════════════════════════════════════════════════════════ ``` Use short bullet lines. If only one category applies, still use the banner and list only that item. If nothing requires BE/DB/nginx/browser action, do **not** show the banner. Do not bury this in prose — the banner must be impossible to miss.