- 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>
4 KiB
Supportsager
Kunder med Professional eller Enterprise kan oprette supportsager hos SEOSoft direkte fra SQLInsight Web og følge deres status.
Krav
- En gyldig Professional- eller Enterprise-licens og deling med SQLInsight Hub slået til (
SQLInsight:Hub:Enabled, se installation.md). Under System i webbrugerfladen kan I se, om licensen er gyldig. - Uden det viser siden Support en forklaring i stedet for formularen, og der er ingen "Opret supportsag" på fundene.
Opret en sag
- Support i menuen: titel, beskrivelse, kontaktperson, e-mail og eventuelt telefon. Kontaktpersonen er udfyldt med jeres Windows-brugernavn og kan rettes.
- Fra et fund: højreklik på et fund i en fundliste eller på fundets overskrift, og vælg Opret supportsag (tastatur: Shift+F10 eller kontekstmenu-tasten på et markeret fund; Escape lukker). På fundets side er der også en knap. Titlen og beskrivelsen udfyldes med fundets instans, regel, alvor, forklaring og målinger. Følsomme målinger (forespørgselstekst, logins, servernavne) sættes ikke ind.
Sagen sendes af agenten, ikke af webbrugerfladen: den gemmes i repository-databasen, og agenten sender den til SQLInsight Hub inden for et halvt minut. Hubben giver den et sagsnummer (SUP-000001, SUP-000002 …), som vises på siden Support. Kan hubben ikke nås, prøver agenten igen. Afviser hubben sagen (fx fordi licensen ikke dækker support), står den som Afvist med årsagen.
Status
Siden Support viser alle jeres sager, også dem SEOSoft har oprettet for jer, med status Åben eller Lukket. Agenten henter status fra hubben hvert 5. minut. Dialogen om sagen foregår på mail eller telefon.
Rettigheder
Webbrugerfladens login har kun db_datareader på repositoriet. For at kunne oprette en sag har rollen public i repository-databasen fået INSERT på den ene tabel insight.SupportCases (migration 0005_support_cases.sql). Kun repositoriets egne brugere findes i den database.
Hvad der sendes til SEOSoft, står i databehandling.md.
Supportsager via API'et
Sager kan oprettes, læses og lukkes fra fx et ITSM-system (ServiceNow, TOPdesk) eller PowerShell. Det kræver det samme som formularen (Professional/Enterprise og deling med SQLInsight Hub), og et token med scope support:write (oprettes med SQLInsight.Web.exe new-api-token itsm --scope read,support:write). Windows-brugere med adgang til webbrugerfladen må det samme.
| Kald | Svar |
|---|---|
POST /api/v1/support-cases |
Body { title, description, contactName, contactEmail, contactPhone?, findingId? }. Med findingId udfyldes titel og beskrivelse med fundets ikke-følsomme oplysninger. Svar 202 med lokalt id og status Pending; sagsnummeret (SUP-…) kommer, når agenten har talt med hubben. Header Idempotency-Key giver samme sag ved gentagelse. 403 (problem+json) uden scope eller licens |
GET /api/v1/support-cases?status=&from=&to=&limit= |
Sagerne, nyeste først (sider med X-Continuation) |
GET /api/v1/support-cases/{id} |
Status (Pending, Open, CloseRequested, Closed, Failed), sagsnummer, oprettet/lukket, lukket af, fejl |
POST /api/v1/support-cases/{id}/close |
Body { comment? }. Status CloseRequested, indtil hubben har bekræftet, så Closed. Allerede lukket: 200. En sag uden sagsnummer endnu lukkes, så snart den er oprettet |
Sager kan også lukkes med knappen Luk sag på siden Support. SEOSoft ser i portalen, hvem der lukkede sagen (kunde eller SEOSoft) og kommentaren, og supportrapporten har kolonnen "Lukket af".
$h = @{ Authorization = "Bearer $token"; "Idempotency-Key" = "INC0012345" }
$sag = Invoke-RestMethod https://sqlinsight.domæne.local/api/v1/support-cases -Method Post -Headers $h -ContentType application/json `
-Body (@{ contactName = "Servicedesk"; contactEmail = "servicedesk@firma.dk"; findingId = 4711 } | ConvertTo-Json)
# senere: sagsnummer og status
Invoke-RestMethod "https://sqlinsight.domæne.local/api/v1/support-cases/$($sag.id)" -Headers $h