cdb571c509
- packages/shared: VersionResponse { name, version, channel, commit, buildTime }
- apps/api: health/app-version.ts (getAppVersion mit ||-Vorgaben dev/dev, formatAppVersionLine),
HealthController.getVersion delegiert (bleibt @Public, T-KU1-03), main.ts protokolliert
"Tessera API <version> (<channel>) <commit>" beim Start; neuer Spec mit 6 Tests
- apps/web: lib/app-version.ts (NEXT_PUBLIC_APP_* mit vollem Literalnamen, loadApiVersion
memoisiert und still bei Fehler), AppVersionBadge unten in der Seitenleiste (auch mobil,
nicht eingeklappt), sidebar.channel.{beta,live,dev} in de/en; 5 + 4 + 1 neue Tests
- Suiten: API 65 Dateien / 1060 Tests, Web 40 / 243, tsc in shared/api/web Exit 0
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9CD3ebPKm1b32bPpBknY
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import type { VersionResponse } from '@tessera/shared';
|
|
|
|
/**
|
|
* Versionsstempel der API (quick-260914-ku1).
|
|
*
|
|
* Woher die Werte kommen: das CI-Skript `.gitea/scripts/publish-images.sh`
|
|
* berechnet `APP_VERSION` (`git describe --tags --always`), `APP_CHANNEL`
|
|
* (`beta` fuer main, `live` fuer Tags v*), `APP_COMMIT` und `APP_BUILD_TIME`
|
|
* und uebergibt sie als `--build-arg`; die Runner-Stufe beider Dockerfiles
|
|
* setzt sie als `ENV`, sodass sie hier zur Laufzeit lesbar sind. Lokal ohne
|
|
* Build-Args greifen die Vorgaben `dev`/`dev`/``/``.
|
|
*
|
|
* Warum `||` statt `??`: Docker Compose reicht unbelegte Variablen als
|
|
* Leerstring weiter — ein leerer Wert muss wie ein fehlender zaehlen.
|
|
*
|
|
* `main.ts` protokolliert `formatAppVersionLine()` beim Start direkt nach der
|
|
* Port-Zeile, `HealthController.getVersion()` liefert `getAppVersion()`.
|
|
*/
|
|
export function getAppVersion(): VersionResponse {
|
|
return {
|
|
name: 'tessera',
|
|
version: process.env.APP_VERSION || 'dev',
|
|
channel: process.env.APP_CHANNEL || 'dev',
|
|
commit: process.env.APP_COMMIT || '',
|
|
buildTime: process.env.APP_BUILD_TIME || '',
|
|
};
|
|
}
|
|
|
|
export function formatAppVersionLine(v: VersionResponse = getAppVersion()): string {
|
|
const base = `Tessera API ${v.version} (${v.channel})`;
|
|
return v.commit ? `${base} ${v.commit}` : base;
|
|
}
|