vanhecke/celmex/3.0.0

Unavailable. Nobody can download this version any more, with elm or with the Lamdera compiler: github.com/vanhecke/celmex is gone (deleted or private); Software Heritage not asked yet (this run's --swh-calls were used up); no fork with the same repo name found; no cached copy. Use another version.

Details

Cortex.Api.Issues

Cortex issue records (alerts/incidents) and their tenant-defined schema.

The /public_api/v1/issue/search endpoint returns a paginated list of Issue records — each with ~50 normalized fields covering issue identity, detection metadata, asset references, MITRE ATT&CK mapping, status/resolution lifecycle, and assignment. The /public_api/v1/issue/schema endpoint returns the field schema (field_name, field_pretty_name, data_type) for every issue field — including custom fields the tenant has defined.

type alias SearchArgs =
{ filters : List Filter
, sort : Maybe Sort
, range : Maybe Range
, timeframe : Maybe Timeframe
, extra : List ( String, Value )
}

Arguments to search. All fields are optional; pass defaultSearchArgs for an unfiltered request. extra is merged last into request_data and overrides any SDK-generated key on collision — use it for request fields the SDK has not modeled yet.

defaultSearchArgs : SearchArgs

A SearchArgs with no filters, sort, pagination, or timeframe.

type alias Issue =
{ id : Maybe Int
, externalId : Maybe String
, name : Maybe String
, description : Maybe String
, extendedDescription : Maybe String
, initialEvidence : Maybe String
, owner : Maybe String
, domain : Maybe String
, category : Maybe String
, type_ : Maybe String
, severity : Maybe String
, detectionMethod : Maybe String
, detectionRuleId : Maybe String
, insertTime : Maybe Int
, observationTime : Maybe Int
, lastModified : Maybe Int
, resolutionTime : Maybe Int
, resolutionStatusModifiedTs : Maybe Int
, statusProgress : Maybe String
, statusResolutionReason : Maybe String
, statusResolutionComment : Maybe String
, assignedTo : Maybe String
, assignedToPretty : Maybe String
, isStarred : Maybe Bool
, isExcluded : Maybe Bool
, isExcepted : Maybe Bool
, exceptionIds : List String
, exceptionExpiration : Maybe Int
, tags : List String
, findings : List String
, assetIds : List String
, assetNames : List String
, assetGroupIds : List Int
, assetClasses : List String
, assetCategories : List String
, assetRegions : List String
, assetProviders : List String
, assetAccounts : List String
, assetTypes : List String
, assetExternalProviderIds : List String
, assetCloudAccountNames : List String
, mitreTactics : List String
, mitreTechniques : List String
, caseIds : List Int
, remediation : Maybe String
, impact : Maybe String
, agenticResponseStatus : Maybe String
, agenticAssistantId : Maybe String
, agenticResponseConversationId : Maybe String
, actionStatus : Maybe String
, normalizedFields : Maybe Value
, customFields : Maybe Value
}

A single issue record. All fields are Maybe because population varies by detection method, tenant, and feature flags. Field names use the live wire format (dotted namespacing for detection.* / status.*), with oneOf fallback to spec-form underscore names for forward compat.

normalizedFields (~70 XDM-prefixed forensic fields) and customFields (tenant-defined arbitrary keys) are preserved verbatim — the former is fully populated only for advanced detection methods and is best surfaced as raw JSON until typed sub-records are added; the latter is unconstrained per tenant configuration and cannot be typed at the SDK layer.

type alias SearchResponse =
{ data : List Issue
, filterCount : Maybe Int
, totalCount : Maybe Int
}

Paginated response from search. The live API returns DATA/TOTAL_COUNT/FILTER_COUNT (uppercase); the spec documents issues/total_count/result_count (lowercase). Both are accepted.

type alias IssueSchemaField =
{ fieldName : Maybe String
, fieldPrettyName : Maybe String
, dataType : Maybe String
}

One row of the issue field-schema response from schema.

schema : Request (List IssueSchemaField)

POST /public_api/v1/issue/schema

Retrieve the issue field schema — every documented field, plus the tenant's custom fields. Some tenants surface this as HTTP 500 when not licensed.