Bifrost er Nextarch Studios interne logistikkplattform for utstyr, lager, utlån, kjøretøy, transport, samband, shop, oppgaver og administrasjon.
Repositoryet inneholder både den operative V1-applikasjonen og den nye V2-plattformen. V1 beholdes intakt mens V2 bygges modulvis med full funksjonsparitet og samme MariaDB-datagrunnlag.
Bifrost/
├── V1/ # CodeIgniter 4 / PHP – eksisterende produksjonsløsning
├── V2/
│ ├── Bifrost-API/ # Fastify API / TypeScript
│ ├── Bifrost-Web/ # React / TypeScript / Tailwind
│ ├── Bifrost-Worker/ # ETL, synkronisering og bakgrunnsjobber
│ ├── packages/ # Delte kontrakter og databaselag
│ └── database/ # Eksplisitte V2-migreringer
└── ROADMAP.md # Migreringsplan og akseptansekriterier
- V1 er aktiv og alle funksjoner skal videreføres.
- V1-databasestrukturen er fortsatt system of record.
- V2-fundamentet er opprettet som et pnpm-monorepo.
- Bifrost-API, Bifrost-Web og Bifrost-Worker kjøres som separate PM2-prosesser.
- OIDC/Keycloak er obligatorisk i V2.
- V2 er konfigurert for
https://tg.legacyh.dev/,https://bifrost.tg.no/og lokal utvikling påhttp://127.0.0.1:3000/. - Et separat V2-skjema kan brukes via kontrollerte ETL-/synkroniseringsjobber.
- Dashboard, globalt søk, lager, utstyr, utlån, forespørsler, kjøretøy, profil, transport, samband, Shop, crewtøy, oppgaver, tilbakemeldinger, varsler, administrasjon, regelstyrt Crew-provisjonering, valgfri velkomst-e-post, V1-kompatibel statistikk og kontrollert crew-reset er implementert i V2-kode; staging-paritet gjenstår.
Se ROADMAP.md for plan, arkitektur og leveranserekkefølge.
cd V1
composer install
php spark migrate
php spark serveKopier V1/.env.example til V1/.env og fyll inn lokale databaseinnstillinger før oppstart. Se V1/README.md for detaljer.
Krav: Node.js 26.9.0+, npm 12.0.2+, pnpm 12.4.2+, PM2 7.0.4+ og MariaDB 10.6+.
cd V2
pnpm install
pnpm check
pnpm e2e:install
pnpm e2e
pnpm devOpprett lokale miljøfiler fra .env.example i hver applikasjon:
- API og Worker inneholder kun databaseinnstillinger.
- Web inneholder API-lenke og offentlig klientidentifikator.
- Hemmelige nøkler skal aldri legges i Web-miljøet eller committes.
Lokalt lytter API-et på 127.0.0.1:3001 og Web på 127.0.0.1:3000. PM2-produksjonsprofilen bruker de serverkontrollerte portene 127.0.0.1:3103 og 127.0.0.1:3102. Endepunktene GET /health og GET /ready brukes til driftssjekk.
GitHub Actions kjører låst installasjon, produksjonsaudit, pnpm check og Playwright/Chromium ved V2-endringer og pull requests. En startet installasjon kontrolleres med pnpm smoke.
Se V2/README.md for utvikling, bygg og PM2, staging-runbooken for backup, preflight, paritet og rollback, og cutover-sjekklisten før produksjonssetting.
Etter installasjon og produksjonsbuild:
cd V2
pnpm install --frozen-lockfile
pnpm check
pm2 startOrReload ecosystem.config.cjs --env production --update-env
pm2 saveDatabasemigreringer kjøres som et eksplisitt deploy-steg. De skal ikke kjøres automatisk ved PM2-restart.
V2 beholder de eksisterende rollenavnene:
developer, chief, co-chief, transport_ansvarlig, skiftleder, sambandsansvarlig, logistikk, shop, innkjop, bruker og ingen_tilbakemeldinger.
- Web har aldri direkte databasetilgang.
- API-et håndhever autentisering, autorisasjon, validering og audit.
- Sensitive databaseverdier krypteres med versjonerte nøkler.
- Passord og andre verifiseringshemmeligheter hashes og dekrypteres aldri.
- Lokale filer lagres utenfor Git og skal inngå i backup/restore.
.env, nøkler, logger, opplastinger, dependencies og build-output ignoreres av Git.
Internt prosjekt for Nextarch Studio. Ikke publiser kode, konfigurasjon eller data uten eksplisitt godkjenning.