sqlinsight-pro/src/SQLInsight.Contracts
Søren Eggert Lundsteen Olsen f3551b1bf0 Support cases through the API: create, read and close
- POST/GET /api/v1/support-cases[/{id}] and POST .../{id}/close in
  SQLInsight Web, sharing the /support form's logic: same checks, finding
  prefill without sensitive evidence, Idempotency-Key as the request id,
  202 Accepted with Location, problem+json 403 without the support:write
  scope or a support license. RequestedBy is the Windows user or
  token:<name>.
- Closing: "Luk sag" on /support and the API record CloseRequested
  (migration 0012, column-level UPDATE for the read-only web login); the
  agent sends it to the hub with backoff and sets Closed when confirmed;
  a pending case is closed once it has a number; an older hub list never
  turns CloseRequested back to Open.
- Hub: POST /api/v1/cases/{reference}/close for the license's own cases
  (others 404), idempotent, ClosedBy/ClosedComment (EF migration
  CaseClosedBy). Portal closing records "SEOSoft: <user>"; the customer
  page shows who closed and why; the support report and CSV get "Lukket af".

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 09:47:58 +02:00
..
FindingsSubmission.cs Fase 3: findings sync from agent to hub (queue, retry, data minimization) 2026-09-29 08:35:22 +00:00
HubInsights.cs Fase 4: experience across customers 2026-09-29 10:33:37 +00:00
SQLInsight.Contracts.csproj Fase 0: solution structure, capability model, rule engine, least-privilege script 2026-09-29 05:40:49 +00:00
SupportCases.cs Support cases through the API: create, read and close 2026-10-02 09:47:58 +02:00