4.2 KiB
4.2 KiB
Namnbyte – status och runbook (spec §65)
Status
Namnet är inte beslutat. Projektet använder neutrala platshållare
(Matappen, com.example.matappen, api.example.com) tills ett slutgiltigt
namn är valt. Varumärket definieras på EXAKT ett ställe: brand.config.json
i repo-roten. Ingen kod, dokumentation, databas, migrering eller
infrastrukturfil innehåller något riktigt varumärkesnamn.
Så här styr brand.config.json allt
| Fält | Används av |
|---|---|
name |
Mobilappens visningsnamn, iOS-behörighetstexter, alla UI-strängar ({brand} i i18n), admin-titel |
slug |
BullMQ-könamn, healthz-tjänstnamn, S3-bucket-default (<slug>-production), Expo-slug |
urlScheme |
Deep links i mobilappen |
iosBundleId |
Expo iOS bundle ID, Apple-produkt-ID:n (<iosBundleId>.<plan>_monthly) |
androidPackage |
Expo Android-paket, Google Play-verifiering |
apiDomain |
Dokumentation/drift; API:s bas-URL i produktion |
adminDomain |
Adminpanelens produktionsdomän |
supportEmail |
Supportlänkar i appen |
Runbook vid namnbeslut
- Uppdatera samtliga fält i
brand.config.json(enda kodändringen). - Drift: sätt riktiga värden i produktions-
.envom de ska avvika från brand-defaults (S3_BUCKET, APPLE_BUNDLE_ID, GOOGLE_PACKAGE_NAME – tomma värden faller automatiskt tillbaka på brand.config.json). - Butikskonsoler: skapa appen med
iosBundleId/androidPackageoch produkt-ID:n enligt tabellen ovan (App Store Connect + Play Console). - Domäner: registrera
apiDomain/adminDomain, uppdatera TLS/reverse proxy. - Databas/infra: skapa databas + användare enligt
infrastructure/deployment/create-database.sql(namn efterslug). - Verifiera:
pnpm typecheck && pnpm test && pnpm buildsamtgrep -ri "<gamla namnet>"ska ge noll träffar utanförbrand.config.json.
Vakt mot återinträde
- Inga hårdkodade namn i kod, tester, seed, docs eller infrastruktur – kontrollerat med grind-grep (se commit-historik).
- CI-förslag: lägg ett lint-steg som failar på varumärkesnamn utanför
brand.config.jsonnär namnet är beslutat.
Deploya före namnbeslut? Gränsdragningen
| Åtgärd | Före namn? | Varför |
|---|---|---|
| Staging i egen infra + testning | ✅ Gör det | Noll varumärke i DB/API; namnbyte = konfigrad + omstart |
| Riktiga AAMOS + eval-svit | ✅ Gör det | Största tekniska risken – avverka den tidigt |
| Produktionsinfra (RDS, server, larm) | ✅ Går bra | Välj NEUTRALT S3-bucketnamn (buckets kan aldrig döpas om) och gärna en varumärkesfri infra-domän för API:t |
| Riktiga användare | ⚠️ Undvik | Fungerar tekniskt, men mejl hälsar med platshållarnamnet |
| App Store / Google Play-inlämning | ❌ ALDRIG | Bundle-ID och produkt-ID:n blir permanenta vid publicering – kan aldrig bytas, bara ersättas med ny app (recensioner/prenumeranter går förlorade) |