Action Item

Resolve an action item

Mark an action item as resolved. If an approval action gates action_item:resolve for this item, it moves to pending_verification until the approval request is decided. Otherwise it transitions straight to resolved.

post/action_item/{id}/resolve

Path parameters

idstring required

The action item ID.

Request body

resolutionstring

A description of how the issue was resolved.

evidence_urlstring

An optional URL to evidence of the resolution (e.g., a pull request).

actorstring

The email of the user performing the action. If provided, the caller must be authorized to act on behalf of that user.

Example request

{
  "resolution": "Upgraded base image to node:20-alpine3.19",
  "evidence_url": "https://github.com/org/repo/pull/42",
  "actor": "jane@example.com"
}

Response

The updated action item.

idstring

The unique action item ID.

slugstring

Auto-generated URL-friendly slug.

nrnstring

The NRN that owns this action item.

titlestring

The title.

descriptionstring

The description. Supports Markdown.

status'open' | 'in_progress' | 'pending_deferral' | 'deferred' | 'pending_verification' | 'resolved' | 'pending_rejection' | 'rejected' | 'closed'

The current status.

priority'low' | 'medium' | 'high' | 'critical'

Priority level.

scoreinteger

Calculated score based on value and priority.

category_idstring

The category ID.

valuenumber

Estimated benefit of resolving the item.

created_bystring

The creator email or agent identifier.

assignee_idinteger

The nullplatform user ID of the item's owner, or null when nobody owns it.

assigned_atstring date-time

When the current assignment was made. ISO 8601 date-time.

assigned_bystring

Who made the current assignment: a user email or an agent identifier.

due_datestring date-time

Optional deadline. ISO 8601 date-time.

deferred_untilstring date

Date until which the item is deferred.

resolved_atstring date

Date when the item was resolved.

labelsobject

Key-value pairs for classification.

metadataobject

Flexible metadata.

deferral_countinteger

Number of times this item has been deferred.

created_atstring date-time

Creation timestamp.

updated_atstring date-time

Last update timestamp.

Example response

{
  "id": "xYz789AbCdEf",
  "slug": "upgrade-base-image-to-fix-cve-2026-1234",
  "nrn": "organization=1:account=2:namespace=3:application=4",
  "title": "Upgrade base image to fix CVE-2026-1234",
  "description": "The current base image has a critical vulnerability.",
  "status": "open",
  "priority": "critical",
  "score": 2000,
  "category_id": "abc123def456",
  "value": 500,
  "created_by": "security-scanner-agent",
  "assignee_id": 2345,
  "assigned_at": "2026-08-20T14:32:00Z",
  "assigned_by": "jane@example.com",
  "due_date": "2026-05-01T00:00:00Z",
  "labels": {
    "source": "container-scan",
    "cve": "CVE-2026-1234"
  },
  "affected_resources": [
    {
      "type": "application",
      "name": "my-api-service",
      "permalink": "https://app.nullplatform.com/applications/4",
      "description": "Main API service"
    }
  ],
  "references": [
    {
      "name": "CVE-2026-1234",
      "permalink": "https://nvd.nist.gov/vuln/detail/CVE-2026-1234",
      "description": "NVD entry for this vulnerability"
    }
  ],
  "metadata": {
    "cve_id": "CVE-2026-1234"
  },
  "config": {
    "max_deferral_days": 90,
    "max_deferral_count": 3
  },
  "comments": [
    {
      "id": "cmt123AbCdEf",
      "author": "jane@example.com",
      "content": "This should be prioritized for the next sprint.",
      "created_at": "2026-04-06T14:30:00.000Z"
    }
  ],
  "audit_logs": [
    {
      "id": "3c35f973-d53b-4e60-a578-2e8fba1dbbb1",
      "actor": "jane@example.com",
      "action": "deferred",
      "details": {
        "from": "open",
        "to": "deferred",
        "reason": "Waiting for the next maintenance window."
      },
      "timestamp": "2026-04-06T12:00:00.000Z"
    }
  ],
  "created_at": "2026-04-06T12:00:00.000Z",
  "updated_at": "2026-04-06T12:00:00.000Z"
}

Changes