The Problem Management plugin's API
Under /api/v1/x/problems, 404 while the plugin is off; problems:read and problems:write. Guide:
problems.
| Endpoint | What |
|---|---|
GET ?status=&priority=&serviceId=&owner=&workaround=&review=&accepted=&q=&orgId= | Problems (status open, all, or statuses; accepted=yes: the risk acceptance register; serviceId: naming the service or one of its offerings, as main or other service). |
GET count | { open, mine, unassigned }: open problems, those you own, those without an owner. |
GET known-errors?q=&serviceId= (the service or its offerings), GET cases/<ref> | Known errors; a case's linked problems and suggestions. |
GET options?orgId=, GET pick?q=&ids= | Templates, causes and categories; problems for pickers. |
GET export?format=&columns= (the list's filters) | The list as a file: csv, xlsx or pdf, all columns or those named; up to 20,000, logged with its filters, rows and checksums (exports). |
POST | { title, description, serviceId, categoryId, impact, urgency, unitIds, confidential, incidentId, incidentIds or caseRef, fromReview }. With incidentIds every incident is linked, with all their units and the first one's service and category; fromReview: true brings the incident's cause and timeline too. |
GET <id or key>, PATCH <id> | The problem; edit (a workaround moves it to Known error). |
POST <id>/links, DELETE <id>/links/<kind>/<refId> | { kind: incident, case or change, ref }, or refs for several. |
POST <id>/close, POST <id>/merge | { code, note, reason, reviewOn }; { into }. |
POST <id>/root-cause/submit, POST <id>/root-cause/decision | Sign-off: { decision: sign or return, comment }. |
POST <id>/request-change, POST <id>/use | A change for the fix; use the workaround on { caseRef } (answers { customerText }). |
GET <id>/timeline | The linked incidents' timelines as one Markdown list, oldest first, times in UTC: { incidents, markdown }. |
POST <id>/reviewed | { note }: a review was held (on time or late); the next review date follows from the priority. |
GET <id>/requesters, POST <id>/tell-requesters | Who an update would reach (the open cases linked to it or its incidents that you may reply to) and the text it starts from; then { body }: one public reply on each, once resolved. Needs problem.manage or being the owner; tokens also need cases:reply. |
PUT <id>/legal-hold | { reason } sets a legal hold, { reason: null } lifts it (case.legal_hold). |
GET <id>/report, GET <id>/export.md | The problem report: { markdown, html, sha256 } for the page to print, or the Markdown file. Both are in the audit log and on the timeline. |
POST <id>/notes, PUT <id>/watch, POST <id>/tasks, PATCH <id>/tasks/<taskId> | Notes, watching, tasks. |
GET report?days=&tz= | Needs report.read: opened, open now, open by age and priority, by service, cause and supplier, time to known error, workarounds used. |
GET evidence?from=&to=, GET evidence.csv | The process evidence for a period (the last year by default): closed as fixed and the share signed off, reviews held, on time and missed, time to known error, risk acceptances due. |
GET export.zip?from=&to= | One Markdown report for each problem opened or closed in the period, index.csv with the SHA-256 of each, and a README; X-Checksum-SHA256 is the ZIP's. |
GET settings?orgId=, PATCH settings?orgId= | Settings (problem.settings), with askOnMajor: ask for a problem on every major incident. |