# ── Finance — JWT-baserad auth (ingen basic auth) ─────────────────── location = /ouroboros/finance/whoami { add_header Content-Type "application/json" always; add_header Cache-Control "no-store" always; return 200 '{"status":"jwt-auth-required","message":"Send JWT in Authorization header"}'; } location /ouroboros/finance/ { add_header Cache-Control "no-cache, no-store, must-revalidate" always; add_header Pragma "no-cache" always; alias /opt/amos/public/ouroboros/finance/; index index.html; # Ingen basic auth — JWT hanteras av frontend/backend try_files $uri $uri/ /ouroboros/finance/index.html; } # ── Ledger API — Proxy till aamos-ledger ───────────────────────────── location /api/ledger/ { proxy_pass http://127.0.0.1:3250/api/ledger/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Vidarebefordra JWT från klienten (om den skickar) proxy_set_header Authorization $http_authorization; # Tenant-header (kan överridas av klienten) proxy_set_header x-tenant-id $http_x_tenant_id; proxy_set_header x-user-id $http_x_user_id; proxy_set_header x-trace-id $http_x_trace_id; # CORS proxy_hide_header Access-Control-Allow-Origin; add_header Access-Control-Allow-Origin "https://landvex.com" always; add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always; add_header Access-Control-Allow-Headers "Content-Type, Authorization, x-tenant-id, x-user-id, x-trace-id, x-internal-source" always; add_header Access-Control-Allow-Credentials "true" always; if ($request_method = OPTIONS) { return 204; } # Säkerhetsheaders add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "DENY" always; add_header X-XSS-Protection "1; mode=block" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; }