mirror of
https://github.com/block/buzz.git
synced 2026-11-11 20:01:09 +00:00
Make the push gateway origin configurable across the relay, gateway, mobile client, and deployment chart. This is a fresh deployment. The gateway has only run on personal development infrastructure, and push has no existing enabled users. Legacy migration, configured-to-unconfigured mobile transitions, and rolling upgrades from pre-launch gateway binaries are not supported. Populated pre-launch databases are rejected with an informative error before migrations run; their data is untouched. Mobile builds may omit the gateway URL, leaving push unavailable. Once push is enabled, subsequent builds must retain that configuration. ### Validation - All applicable CI checks pass at `5f546cfaf403f0386f146d213adfb4392f4ec29c`, including Rust, mobile/Swift, desktop/integration, security, image builds, and Helm checks. An unrelated agent cancellation test passed on retry. - PostgreSQL CI passed 384 tests, including the production-entry-point regression for refusing populated pre-launch databases before migrations, fresh initialization, and subsequent initialized deployments. - Focused local validation passed all 10 gateway PostgreSQL tests under the CI discovery filter and all 3 unconfigured-mobile tests. Repository-wide PostgreSQL discovery validation and the complete pre-push hooks passed. - Physical-device APNs/App Attest behavior and deployment to a live cluster were not verified in this work. --------- Signed-off-by: Tom Brow <tomb@block.xyz> Co-authored-by: Codex <noreply@openai.com>
30 lines
1.2 KiB
SQL
30 lines
1.2 KiB
SQL
-- This release supports fresh gateway initialization, not populated legacy
|
|
-- development databases. Run before migrations that could alter legacy data.
|
|
DO $$
|
|
DECLARE
|
|
initialized boolean := false;
|
|
populated boolean;
|
|
candidate record;
|
|
BEGIN
|
|
IF to_regclass('_sqlx_migrations') IS NOT NULL THEN
|
|
EXECUTE 'SELECT EXISTS (SELECT 1 FROM _sqlx_migrations WHERE version = 5 AND success)'
|
|
INTO initialized;
|
|
END IF;
|
|
-- Ordinary subsequent deployments of the initialized gateway retain data.
|
|
IF initialized THEN
|
|
RETURN;
|
|
END IF;
|
|
|
|
FOR candidate IN
|
|
SELECT schemaname, tablename FROM pg_tables
|
|
WHERE schemaname = current_schema() AND tablename <> '_sqlx_migrations'
|
|
LOOP
|
|
EXECUTE format('SELECT EXISTS (SELECT 1 FROM %I.%I)',
|
|
candidate.schemaname, candidate.tablename) INTO populated;
|
|
IF populated THEN
|
|
RAISE EXCEPTION 'Cannot initialize push gateway: non-empty pre-launch database (table %). Legacy upgrades are unsupported. Stop the development gateway and provision a fresh dedicated database. No migrations have run.', candidate.tablename;
|
|
END IF;
|
|
END LOOP;
|
|
END
|
|
$$;
|