Initial commit (unpacked platform)

This commit is contained in:
Sven (AAMOS AI)
2026-08-05 19:21:11 +07:00
commit ac5340195a
314 changed files with 57584 additions and 0 deletions
@@ -0,0 +1,29 @@
-- Körs som RDS master-användare EN gång (spec §52).
-- Separat databas + användare med minsta möjliga privilegier.
-- Ingen delning av andras tabeller.
CREATE DATABASE app; -- byt namn per varumärke (brand.config.json slug)
-- Byt ut lösenordet mot ett genererat värde från Secrets Manager!
CREATE USER app_user WITH PASSWORD 'CHANGE_ME_FROM_SECRETS_MANAGER';
-- Anslut till den nya databasen och kör:
\connect app
-- Sök-extensions (i18n M7): skapas av master appanvändaren saknar rättighet.
CREATE EXTENSION IF NOT EXISTS unaccent;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
-- Låst schema: appanvändaren äger public-schemat i sin egen databas
GRANT CONNECT ON DATABASE app TO app_user;
GRANT USAGE, CREATE ON SCHEMA public TO app_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT USAGE, SELECT ON SEQUENCES TO app_user;
-- Ingen superuser, ingen replication, ingen åtkomst till andra databaser:
REVOKE ALL ON DATABASE postgres FROM app_user;
-- Migrationer körs av samma användare (CREATE på schemat räcker för drizzle).
-- Vid senare utbrytning till egen RDS: pg_dump/pg_restore enligt docs/infrastruktur.md.