Commit Graph
4 Commits
Author SHA1 Message Date
Fidelis HuberandClaude Sonnet 5 ca5d240cf6 Make admin seed idempotent-upsert so a corrupted password can be fixed by restart
Build and Deploy / version (push) Successful in 1s
Build and Deploy / build (push) Successful in 6s
Build and Deploy / deploy (push) Successful in 1s
Grund: $ in SEED_ADMIN_PASSWORD wird von Docker-Compose/Portainer als
Variablen-Referenz interpretiert und kann dadurch verstümmelt beim Container
ankommen. Seed synct das Passwort jetzt bei jedem Start neu, solange die
Variable gesetzt ist, statt nur einmalig anzulegen. README um Warnhinweis
ergänzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 18:33:36 +02:00
Fidelis HuberandClaude Sonnet 5 97c4aa1c68 Add local username/password login as fallback when Microsoft login isn't available
Build and Deploy / version (push) Successful in 1s
Build and Deploy / build (push) Successful in 21s
Build and Deploy / deploy (push) Successful in 1s
Neues "users"-Table (bcrypt-Hash, nie Klartext), POST /api/auth/login gibt ein
selbst-signiertes JWT (HS256) aus. requireAuth unterscheidet MSAL- (RS256) und
lokale Tokens (HS256) anhand des alg-Headers. Server legt beim Start optional
ein erstes lokales Konto an, wenn SEED_ADMIN_USERNAME/SEED_ADMIN_PASSWORD als
Stack-Env gesetzt sind (idempotent, Klartext-Passwort landet nie im Repo).

Frontend: Login-Screen hat jetzt einen Alternativ-Link zu Benutzername/Passwort,
App.tsx kombiniert MSAL- und lokalen Auth-Status.

Temporärer test-build-only.yml Workflow zur Docker-Build-Verifikation ohne
Registry-Push (wird nach dem Test wieder entfernt).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 17:56:40 +02:00
felixandClaude Opus 4.8 3dd770a6a5 Fix Prisma engine load on Alpine: install openssl + pin musl-openssl-3.0.x
Build and Deploy / version (push) Successful in 2s
Build and Deploy / build (push) Successful in 21s
Build and Deploy / deploy (push) Successful in 1s
node:20-alpine ships OpenSSL 3.x and has no libssl.so.1.1. Without the
openssl CLI, Prisma's version detection failed and fell back to the
openssl-1.1.x engine, which then failed to load its shared library and
emitted plain text instead of JSON ("Unexpected token 'E'..."), crashing
`prisma migrate deploy` at container startup.

- Install openssl in the build and runtime stages so detection succeeds
- Pin binaryTargets to linux-musl-openssl-3.0.x so the correct engine is bundled

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-21 17:44:44 +02:00
Fidelis HuberandClaude Sonnet 5 13cef3c96d Initial scaffold: React/Vite/TS PWA + Express/Prisma/Postgres backend
Build and Deploy / version (push) Successful in 1s
Build and Deploy / build (push) Failing after 1s
Build and Deploy / deploy (push) Skipped
Materialschein & Kabelrechner für BergVOLT Elektrotechnik, portiert von der
vorherigen Single-File-HTML-Version. Microsoft-Entra-ID-Login (MSAL), Projekt-
Dashboard statt einer Datei pro Kunde, Retour-Buchen-Zusammenführung, 111
Kabeltypen aus den offiziellen Meinhart-Datenblättern. gitops/ nach
PROX/deploy-standard: git-backed Portainer-Stack, versionierte Docker-Images,
CI-Commit-back auf gitops/stack.yml.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 17:24:38 +02:00