Commit Graph

206 Commits

Author SHA1 Message Date
739ffafedd fixes 2026-05-23 06:42:44 +02:00
f95de1482d Fix CSRF 403 on all POSTs behind traefik
prod.py never read the CSRF_TRUSTED_ORIGINS env var the deployment already
injects, so Django's setting stayed empty. Behind traefik's TLS termination
Django saw requests as HTTP and rejected the browser's https:// Origin on
every POST with a CSRF failure (403) — forms could not be saved and the DB
stayed empty.

- Read CSRF_TRUSTED_ORIGINS from env (filtering empties).
- Set SECURE_PROXY_SSL_HEADER so Django recognizes HTTPS via X-Forwarded-Proto.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 02:02:42 +02:00
e28739f8f1 Fix Tailwind asset build dropping all utility classes in Docker
The Dockerfile asset stage copied only static/src + vite.config.js, never
the HTML templates. Tailwind v4 generates CSS by scanning source files for
class usage, so with no templates present it emitted a stripped CSS with
zero utility classes — breaking layout and ballooning SVG icons (w-5/h-5
no longer applied) on deployed builds.

- main.css: add explicit @source directive for the templates dir so content
  detection no longer depends on the build CWD.
- Dockerfile: copy vergabe_teilnahme/templates into the assets stage so the
  @source path resolves at build time.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 00:37:07 +02:00
483a4dfd3b Add multi-stage Dockerfile for container deployment
Three-stage build:
- assets: Node 22 + Vite + Tailwind CSS 4 → static/dist/main.css
- python-deps: uv sync --frozen --no-dev against pyproject + uv.lock,
  with the issue-core path dependency satisfied via a BuildKit
  named context (--build-context issue-core=...)
- runtime: python:3.12-slim-bookworm + libpq5 + curl, non-root 'app'
  user, collectstatic at build time, gunicorn on :8000,
  /health/ HEALTHCHECK every 30s

Adds gunicorn>=22 to project dependencies (was missing).

Build:
  docker build --build-context issue-core=/home/worsch/issue-core \
    -t gitea.coulomb.social/coulomb/vergabe-teilnahme:<tag> .

Smoke-verified: container reports (healthy) and /health/ returns
{"status": "ok"} without a database connection.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 23:32:51 +02:00
17f511fbcd Rewire issue tracker integration from issue-facade to issue-core
issue-facade was renamed to issue-core. Update the dependency
declaration and the three Python imports it touched. Model field
names (issue_facade_backend, issue_facade_id) and the Django setting
ISSUE_FACADE_LOCAL_DB stay as-is — they are persisted/semantic
identifiers, not part of the package wiring.

All 20 aufgaben tests pass after the rewire.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 22:33:28 +02:00
341c718511 Refresh agent instruction files 2026-05-18 16:55:54 +02:00
a32ebb9e12 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-16 06:10:43 +02:00
746b035feb chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-16 05:53:23 +02:00
eaddaa1b2f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-16 05:36:09 +02:00
c7c2e8472b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-16 05:18:53 +02:00
6436fc5faf chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-16 05:01:42 +02:00
1ad7674532 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-16 04:44:52 +02:00
3285026c0a chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-16 03:53:08 +02:00
bb70f36068 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-16 03:53:02 +02:00
99b0974732 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-16 03:36:06 +02:00
00e6a9ae6f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-16 03:36:01 +02:00
1f39d6ad85 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-16 03:18:52 +02:00
c9cf3bab87 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-16 03:18:48 +02:00
07a831632b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-16:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-16 02:26:59 +02:00
963997f410 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 22:16:32 +02:00
19118dc534 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 20:08:27 +02:00
0a7f1de5e4 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 19:51:54 +02:00
91ab70710e chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 19:51:49 +02:00
33b6f2ecaf chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 19:35:42 +02:00
656276dda1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 19:35:36 +02:00
9677cb50fb chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 19:19:47 +02:00
67693d9f61 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 19:19:42 +02:00
e55a619bce chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 19:03:35 +02:00
5d0d63fd89 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 19:03:29 +02:00
ff79a4bd57 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 17:58:48 +02:00
ec8aca19c1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 17:41:55 +02:00
07f8a2659d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 17:41:51 +02:00
a9299e37b6 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 16:53:20 +02:00
649f524979 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 14:25:18 +02:00
c103c0d057 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 14:25:13 +02:00
69c7f3eee1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 14:09:07 +02:00
b5b5c6c29b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 13:52:38 +02:00
0ae841b362 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 13:18:56 +02:00
ae32ba4ba6 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 13:02:19 +02:00
b4451ea161 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 10:48:29 +02:00
87e0a557b0 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 10:48:15 +02:00
78a27793c1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 10:31:25 +02:00
34cf25483d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 10:31:13 +02:00
aa940fafe5 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 10:14:37 +02:00
fdccb41fcd chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 09:59:01 +02:00
30c44edb18 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 03:36:23 +02:00
10c6252931 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 03:36:08 +02:00
c1fe26c36b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 03:21:32 +02:00
7568c85acc chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-15 03:06:43 +02:00
58ee79ef2f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-15:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-15 02:51:58 +02:00