Arbeitsantritt = bestehender Lock-in (setzt checkedInAt); neu dazu: - Check-Out / Feierabend: dayEntry.checkedOutAt + Endpoint dayEntry.checkOut; Heute-Seite zeigt „Arbeitsantritt HH:MM" und einen „Feierabend / Check-Out"- Button, danach Antritt/Feierabend/Dauer. - Kimai-Anbindung (config-gated, best-effort, nicht blockierend): lib/kimai.ts mit clockIn/clockOut. Check-In startet ein Kimai-Timesheet, Check-Out stoppt es; ID + Sync-Status auf dem dayEntry (kimaiTimesheetId, kimaiSynced). No-Op solange KIMAI_BASE_URL/API_TOKEN/PROJECT_ID/ACTIVITY_ID nicht gesetzt. Migration 0014 (checkedOutAt, kimaiTimesheetId, kimaiSynced). Env-Vars als optional ergänzt + in .env.example dokumentiert. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
34 lines
1.1 KiB
Bash
34 lines
1.1 KiB
Bash
# --- Postgres ---
|
|
DATABASE_URL=postgres://cockpit:cockpit_dev@localhost:55432/cockpit
|
|
|
|
# --- Authentik OIDC (Story 1.3) ---
|
|
# Anlage als „Provider" und „Application" in Authentik unter https://auth.tool-ctrl.de
|
|
# → siehe docs/operations.md (kommt in Story 1.7)
|
|
AUTHENTIK_ISSUER=https://auth.tool-ctrl.de/application/o/cockpit/
|
|
AUTHENTIK_CLIENT_ID=
|
|
AUTHENTIK_CLIENT_SECRET=
|
|
AUTHENTIK_REDIRECT_URI=http://localhost:3000/api/auth/callback
|
|
|
|
# --- Session ---
|
|
SESSION_COOKIE_NAME=cockpit_session
|
|
SESSION_TTL_HOURS=24
|
|
SESSION_COOKIE_SECRET=please-change-me-in-prod-at-least-32-chars
|
|
|
|
# --- Cron Bearer (Story 2.6 + 5.1 + 6.3) ---
|
|
CRON_BEARER_TOKEN=please-change-me-in-prod
|
|
|
|
# --- App ---
|
|
NODE_ENV=development
|
|
LOG_LEVEL=info
|
|
PORT=3000
|
|
PUBLIC_BASE_URL=http://localhost:5173
|
|
|
|
# --- Kimai-Sync (optional, ENTWICKLUN-9) ---
|
|
# Nur wenn ALLE vier gesetzt sind, synct ebw beim Check-In/Out nach Kimai
|
|
# (sonst No-Op). API-Token in Kimai unter Benutzerprofil → API-Zugriff.
|
|
# PROJECT/ACTIVITY = numerische IDs des Default-Projekts/-Tätigkeit in Kimai.
|
|
# KIMAI_BASE_URL=https://kimai.tool-ctrl.de
|
|
# KIMAI_API_TOKEN=
|
|
# KIMAI_PROJECT_ID=
|
|
# KIMAI_ACTIVITY_ID=
|