Add third-party REST API (/api/v1) + Swagger UI and Jobangebote page

- REST API under /api/v1 with X-API-Key auth (API_TOKEN), documented with
  OpenAPI 3.0; Swagger UI at /swagger, spec at /swagger.json
- Endpoints: applications CRUD + timeline, attachments/emails download,
  generation trigger/status, settings, statistics, export, templates, joboffers
- Jobangebote page (/jobangebote) listing offers ingested via the REST API,
  with "Als Bewerbung übernehmen" and delete actions; header nav + badge
- jobangebote table with (quelle, external_id) upsert for third-party ingestion

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-03 21:30:33 +02:00
co-authored by Claude
parent 0af731695a
commit 88875dbc33
7 changed files with 1889 additions and 0 deletions
+8
View File
@@ -24,3 +24,11 @@ MAIL_FROM=name@example.com
# IMAP-Postfach + Abrufintervall (ms) für neue Antwortmails
MAIL_IMAP_MAILBOX=INBOX
MAIL_POLL_MS=180000
# --- REST-API für Drittanbietersoftware (/api/v1) ---
# Ist dieser Schlüssel gesetzt, ist die API aktiv und erwartet den Wert im
# Header "X-API-Key" jedes Requests. Ohne Schlüssel antwortet die API (bis auf
# /health) mit 503. Swagger-UI läuft unter /swagger, das OpenAPI-Dokument unter
# /swagger.json beides ist auch ohne Token erreichbar.
# Beispiel: API_TOKEN=dein_geheimer_schluessel
API_TOKEN=