@stackfactor/client-api 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/lib/axiosClient.d.ts.map +1 -1
- package/dist/cjs/lib/axiosClient.js +51 -5
- package/dist/cjs/lib/axiosClient.js.map +1 -1
- package/dist/cjs/lib/constants.d.ts +4 -0
- package/dist/cjs/lib/constants.d.ts.map +1 -1
- package/dist/cjs/lib/constants.js +11 -0
- package/dist/cjs/lib/constants.js.map +1 -1
- package/dist/cjs/lib/incident.d.ts +210 -0
- package/dist/cjs/lib/incident.d.ts.map +1 -0
- package/dist/cjs/lib/incident.js +270 -0
- package/dist/cjs/lib/incident.js.map +1 -0
- package/dist/cjs/lib/index.d.ts +1 -0
- package/dist/cjs/lib/index.d.ts.map +1 -1
- package/dist/cjs/lib/index.js +3 -2
- package/dist/cjs/lib/index.js.map +1 -1
- package/dist/esm/lib/axiosClient.d.ts.map +1 -1
- package/dist/esm/lib/axiosClient.js +51 -5
- package/dist/esm/lib/axiosClient.js.map +1 -1
- package/dist/esm/lib/constants.d.ts +4 -0
- package/dist/esm/lib/constants.d.ts.map +1 -1
- package/dist/esm/lib/constants.js +11 -0
- package/dist/esm/lib/constants.js.map +1 -1
- package/dist/esm/lib/incident.d.ts +210 -0
- package/dist/esm/lib/incident.d.ts.map +1 -0
- package/dist/esm/lib/incident.js +245 -0
- package/dist/esm/lib/incident.js.map +1 -0
- package/dist/esm/lib/index.d.ts +1 -0
- package/dist/esm/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +1 -0
- package/dist/esm/lib/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosClient.d.ts","sourceRoot":"","sources":["../../../src/lib/axiosClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,UAAU,EAAiB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"axiosClient.d.ts","sourceRoot":"","sources":["../../../src/lib/axiosClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,UAAU,EAAiB,MAAM,OAAO,CAAC;AAsBzD,eAAO,MAAM,MAAM,+BAGjB,CAAC;AAoDH;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,UAAU,KAAG,MA2BjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,KAAG,MAIhD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,UAAU,KAChB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAKnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,qBAAqB,OAAO,EAC5B,OAAO,UAAU,KAChB,OAMF,CAAC"}
|
|
@@ -45,6 +45,54 @@ exports.client = axios_1.default.create({
|
|
|
45
45
|
baseURL: baseUrl,
|
|
46
46
|
withCredentials: true,
|
|
47
47
|
});
|
|
48
|
+
//Fields whose value must never be echoed back to the screen. A validation error on
|
|
49
|
+
//one of these used to render the value the user typed — so a rejected password was
|
|
50
|
+
//printed in the error message under it.
|
|
51
|
+
const REDACTED_FIELDS = [
|
|
52
|
+
"password",
|
|
53
|
+
"newpassword",
|
|
54
|
+
"currentpassword",
|
|
55
|
+
"token",
|
|
56
|
+
"secret",
|
|
57
|
+
"authorization",
|
|
58
|
+
"apikey",
|
|
59
|
+
"accesstoken",
|
|
60
|
+
"refreshtoken",
|
|
61
|
+
];
|
|
62
|
+
//Long values (a pasted document, a base64 blob) would bury the message they are meant
|
|
63
|
+
//to illustrate.
|
|
64
|
+
const MAX_VALUE_LENGTH = 60;
|
|
65
|
+
/**
|
|
66
|
+
* Renders one validation error as a sentence: the server's message, then the field it
|
|
67
|
+
* is about and the value that was rejected.
|
|
68
|
+
*
|
|
69
|
+
* The value matters — "must be at least 4 characters long" is a lot less useful when
|
|
70
|
+
* you cannot see what you typed — but only when it is safe and short enough to help.
|
|
71
|
+
*/
|
|
72
|
+
const validationErrorToString = (item) => {
|
|
73
|
+
//express-validator 7 reports the field as `path`; 6 reported it as `param`. Reading
|
|
74
|
+
//only one of them is how this message came to read "param undefined".
|
|
75
|
+
const field = item.path ?? item.param;
|
|
76
|
+
const message = item.msg ?? "Invalid value";
|
|
77
|
+
if (!field) {
|
|
78
|
+
return message;
|
|
79
|
+
}
|
|
80
|
+
const redacted = REDACTED_FIELDS.indexOf(field.toLowerCase()) >= 0;
|
|
81
|
+
let value = null;
|
|
82
|
+
if (!redacted && item.value !== null && item.value !== undefined) {
|
|
83
|
+
value =
|
|
84
|
+
typeof item.value === "object"
|
|
85
|
+
? JSON.stringify(item.value)
|
|
86
|
+
: String(item.value);
|
|
87
|
+
if (value.length === 0) {
|
|
88
|
+
value = null;
|
|
89
|
+
}
|
|
90
|
+
else if (value.length > MAX_VALUE_LENGTH) {
|
|
91
|
+
value = `${value.slice(0, MAX_VALUE_LENGTH)}…`;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return `${message} (${field}${value === null ? "" : `: "${value}"`})`;
|
|
95
|
+
};
|
|
48
96
|
/**
|
|
49
97
|
* Returns the error as a string
|
|
50
98
|
* @param {AxiosError} error
|
|
@@ -54,13 +102,11 @@ const errorToString = (error) => {
|
|
|
54
102
|
try {
|
|
55
103
|
if (error != null) {
|
|
56
104
|
if (error.response?.data) {
|
|
57
|
-
let asString = "";
|
|
58
105
|
const responseData = error.response.data;
|
|
59
106
|
if (Array.isArray(responseData.errors)) {
|
|
60
|
-
responseData.errors
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return asString;
|
|
107
|
+
return responseData.errors
|
|
108
|
+
.map((item) => validationErrorToString(item))
|
|
109
|
+
.join("; ");
|
|
64
110
|
}
|
|
65
111
|
else if (responseData.error) {
|
|
66
112
|
return responseData.error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosClient.js","sourceRoot":"","sources":["../../../src/lib/axiosClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAyD;AACzD,iDAA+C;AAC/C,kDAAoC;
|
|
1
|
+
{"version":3,"file":"axiosClient.js","sourceRoot":"","sources":["../../../src/lib/axiosClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,6 +83,10 @@ export declare const PERMISSIONS: {
|
|
|
83
83
|
readonly ADMIN_KNOWLEDGE_BASE: "8ad63643098109cdc48f7dbe";
|
|
84
84
|
readonly RELEASE_QUARANTINE: "7cf80c6b1ea8c0d7d6893afd";
|
|
85
85
|
readonly MANAGE_COMPLIANCE: "f86e5d976f93ea849af69eea";
|
|
86
|
+
readonly INCIDENTS_READ: "1c99552174c5f22e6db345c6";
|
|
87
|
+
readonly INCIDENTS_MANAGE: "1f9247689c96be15a9d49781";
|
|
88
|
+
readonly INCIDENTS_INTAKE_ADMIN: "1e5316c54a779f85c4a1e29c";
|
|
89
|
+
readonly INCIDENTS_CLOSE: "1503b88282a7fa822a295b65";
|
|
86
90
|
};
|
|
87
91
|
/**
|
|
88
92
|
* Quota units used by billing profile quota entries.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmChB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,IAAI;;;;;CAKP,CAAC;AAEX,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmChB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,IAAI;;;;;CAKP,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CtB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CA0C5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB,oBAAoB;;;;;;IAMpB,uBAAuB;;;;;;;IAOvB,8BAA8B;;;;;;IAM9B,yCAAyC;;;;;;;;;IASzC,kCAAkC;;;;;;IAMlC,6EAA6E;;;;;;;IAO7E,yCAAyC;;;;;;;CAOjC,CAAC"}
|
|
@@ -86,6 +86,13 @@ exports.PERMISSIONS = {
|
|
|
86
86
|
ADMIN_KNOWLEDGE_BASE: "8ad63643098109cdc48f7dbe",
|
|
87
87
|
RELEASE_QUARANTINE: "7cf80c6b1ea8c0d7d6893afd",
|
|
88
88
|
MANAGE_COMPLIANCE: "f86e5d976f93ea849af69eea",
|
|
89
|
+
// Shield Incident Management. These are the FIRST SHIELD-exclusive permissions
|
|
90
|
+
// on the platform, and they mirror backend-core's groupsConstants.constants —
|
|
91
|
+
// the ObjectIds are the contract and must not drift.
|
|
92
|
+
INCIDENTS_READ: "1c99552174c5f22e6db345c6",
|
|
93
|
+
INCIDENTS_MANAGE: "1f9247689c96be15a9d49781",
|
|
94
|
+
INCIDENTS_INTAKE_ADMIN: "1e5316c54a779f85c4a1e29c",
|
|
95
|
+
INCIDENTS_CLOSE: "1503b88282a7fa822a295b65",
|
|
89
96
|
};
|
|
90
97
|
/**
|
|
91
98
|
* Quota units used by billing profile quota entries.
|
|
@@ -176,6 +183,10 @@ exports.PERMISSION_DESCRIPTIONS = {
|
|
|
176
183
|
[exports.PERMISSIONS.ADMIN_KNOWLEDGE_BASE]: "Knowledge Base - Admin",
|
|
177
184
|
[exports.PERMISSIONS.RELEASE_QUARANTINE]: "Knowledge Base - Release Quarantine",
|
|
178
185
|
[exports.PERMISSIONS.MANAGE_COMPLIANCE]: "Knowledge Base - Manage Compliance",
|
|
186
|
+
[exports.PERMISSIONS.INCIDENTS_READ]: "Incidents - View",
|
|
187
|
+
[exports.PERMISSIONS.INCIDENTS_MANAGE]: "Incidents - Manage",
|
|
188
|
+
[exports.PERMISSIONS.INCIDENTS_INTAKE_ADMIN]: "Incidents - Manage Intake",
|
|
189
|
+
[exports.PERMISSIONS.INCIDENTS_CLOSE]: "Incidents - Verify and Close",
|
|
179
190
|
};
|
|
180
191
|
/**
|
|
181
192
|
* Knowledge Base enums (mirrors `@stackfactor/backend-core` const `KNOWLEDGE_BASE`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG;IAC9B,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;CACd,CAAC;AAEE,QAAA,aAAa,GAAG;IAC3B,gBAAgB,EAAE,GAAG;IACrB,iBAAiB,EAAE,GAAG;IACtB,KAAK,EAAE,GAAG;IACV,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,kBAAkB,EAAE,GAAG;IACvB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,kBAAkB,EAAE,GAAG;IACvB,cAAc,EAAE,GAAG;IACnB,6BAA6B,EAAE,GAAG;IAClC,eAAe,EAAE,GAAG;IACpB,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;IACT,eAAe,EAAE,GAAG;IACpB,mBAAmB,EAAE,GAAG;IACxB,wBAAwB,EAAE,GAAG;IAC7B,oBAAoB,EAAE,GAAG;IACzB,sBAAsB,EAAE,GAAG;IAC3B,+BAA+B,EAAE,GAAG;IACpC,kBAAkB,EAAE,GAAG;IACvB,iBAAiB,EAAE,GAAG;IACtB,iBAAiB,EAAE,GAAG;IACtB,oBAAoB,EAAE,GAAG;IACzB,qBAAqB,EAAE,GAAG;IAC1B,eAAe,EAAE,GAAG;IACpB,WAAW,EAAE,GAAG;IAChB,mBAAmB,EAAE,GAAG;IACxB,eAAe,EAAE,GAAG;IACpB,0BAA0B,EAAE,GAAG;IAC/B,sBAAsB,EAAE,GAAG;CACnB,CAAC;AAEX;;;;;;GAMG;AACU,QAAA,IAAI,GAAG;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAEE,QAAA,WAAW,GAAG;IACzB,4BAA4B,EAAE,0BAA0B;IACxD,oBAAoB,EAAE,0BAA0B;IAChD,6BAA6B,EAAE,0BAA0B;IACzD,qBAAqB,EAAE,0BAA0B;IACjD,8BAA8B,EAAE,0BAA0B;IAC1D,8BAA8B,EAAE,0BAA0B;IAC1D,cAAc,EAAE,0BAA0B;IAC1C,cAAc,EAAE,0BAA0B;IAC1C,wBAAwB,EAAE,0BAA0B;IACpD,gBAAgB,EAAE,0BAA0B;IAC5C,aAAa,EAAE,0BAA0B;IACzC,uBAAuB,EAAE,0BAA0B;IACnD,qBAAqB,EAAE,0BAA0B;IACjD,+BAA+B,EAAE,0BAA0B;IAC3D,uCAAuC,EAAE,0BAA0B;IACnE,kCAAkC,EAAE,0BAA0B;IAC9D,iCAAiC,EAAE,0BAA0B;IAC7D,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,0BAA0B;IAC3C,oCAAoC,EAAE,0BAA0B;IAChE,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,0BAA0B;IACxC,eAAe,EAAE,0BAA0B;IAC3C,8BAA8B,EAAE,0BAA0B;IAC1D,qBAAqB,EAAE,0BAA0B;IACjD,iBAAiB,EAAE,0BAA0B;IAC7C,gBAAgB,EAAE,0BAA0B;IAC5C,mBAAmB,EAAE,0BAA0B;IAC/C,oBAAoB,EAAE,0BAA0B;IAChD,kBAAkB,EAAE,0BAA0B;IAC9C,iBAAiB,EAAE,0BAA0B;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/** A queue filter set. Every field is optional; unknown values widen rather than error. */
|
|
2
|
+
export interface IncidentQueueFilters {
|
|
3
|
+
status?: string | string[];
|
|
4
|
+
severity?: string | string[];
|
|
5
|
+
/** Tenant-configured business-process key. Not a fixed enum, by design. */
|
|
6
|
+
process?: string;
|
|
7
|
+
frameworkTag?: string;
|
|
8
|
+
sourceKind?: string | string[];
|
|
9
|
+
senderId?: string;
|
|
10
|
+
ownerId?: string;
|
|
11
|
+
controlId?: string;
|
|
12
|
+
/** Incidents with no owner, which is a distinct filter rather than an empty ownerId. */
|
|
13
|
+
unassigned?: boolean;
|
|
14
|
+
slaBreached?: boolean;
|
|
15
|
+
/** ISO-8601. Filters on ingestion time, matching how the SLA clock is measured. */
|
|
16
|
+
from?: string;
|
|
17
|
+
to?: string;
|
|
18
|
+
/** Free text. A value like "INC-2043" or a bare number matches the human id exactly. */
|
|
19
|
+
q?: string;
|
|
20
|
+
page?: number;
|
|
21
|
+
limit?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Incident queue, with filters, free-text search and pagination.
|
|
25
|
+
* @param {IncidentQueueFilters} filters
|
|
26
|
+
* @param {String} token Authorization token
|
|
27
|
+
* @returns {Promise<object>} `{ items, page, limit, total, totalPages }`
|
|
28
|
+
*/
|
|
29
|
+
export declare const getIncidents: (filters: IncidentQueueFilters, token: string) => Promise<object>;
|
|
30
|
+
/**
|
|
31
|
+
* One incident, complete. Tasks, training, timeline, evidence and agent runs are
|
|
32
|
+
* embedded, so the detail view needs no follow-up calls.
|
|
33
|
+
* @param {String} id
|
|
34
|
+
* @param {String} token Authorization token
|
|
35
|
+
* @returns {Promise<object>}
|
|
36
|
+
*/
|
|
37
|
+
export declare const getIncident: (id: string, token: string) => Promise<object>;
|
|
38
|
+
/**
|
|
39
|
+
* Dashboard tiles. Note that `medianTimeToRemediateMs` is null rather than 0 when
|
|
40
|
+
* nothing closed in the window, and that severity/process buckets can carry a
|
|
41
|
+
* null key for incidents not yet triaged.
|
|
42
|
+
* @param {Number} windowDays Trailing window for the trend and median tiles
|
|
43
|
+
* @param {String} token Authorization token
|
|
44
|
+
* @returns {Promise<object>}
|
|
45
|
+
*/
|
|
46
|
+
export declare const getIncidentDashboard: (windowDays: number | undefined, token: string) => Promise<object>;
|
|
47
|
+
/**
|
|
48
|
+
* The signed-in user's own corrective actions and training assignments.
|
|
49
|
+
* Authenticated but not permission-gated: an assignee can see their work without
|
|
50
|
+
* holding read over the whole queue.
|
|
51
|
+
* @param {Boolean} includeCompleted
|
|
52
|
+
* @param {String} token Authorization token
|
|
53
|
+
* @returns {Promise<object>} `{ tasks, training }`
|
|
54
|
+
*/
|
|
55
|
+
export declare const getMyIncidentWork: (includeCompleted: boolean | undefined, token: string) => Promise<object>;
|
|
56
|
+
/**
|
|
57
|
+
* Tenant incident settings: severity mapping, SLA hours, dedup window, the
|
|
58
|
+
* business-process list, the AI-triage toggle and the remediation-agent mode.
|
|
59
|
+
* Read-gated rather than admin-gated, because the queue's process filter needs
|
|
60
|
+
* the process list.
|
|
61
|
+
* @param {String} token Authorization token
|
|
62
|
+
* @returns {Promise<object>}
|
|
63
|
+
*/
|
|
64
|
+
export declare const getIncidentSettings: (token: string) => Promise<object>;
|
|
65
|
+
/**
|
|
66
|
+
* Update tenant incident settings. Requires INCIDENTS_INTAKE_ADMIN.
|
|
67
|
+
* @param {Object} settings Partial settings; unknown keys are ignored
|
|
68
|
+
* @param {String} token Authorization token
|
|
69
|
+
* @returns {Promise<object>} The effective settings after the write
|
|
70
|
+
*/
|
|
71
|
+
export declare const updateIncidentSettings: (settings: object, token: string) => Promise<object>;
|
|
72
|
+
/**
|
|
73
|
+
* File an incident by hand. Takes the same normalized event contract the public
|
|
74
|
+
* intake endpoint accepts, so a manual incident and an ingested one are
|
|
75
|
+
* indistinguishable afterwards apart from their source.
|
|
76
|
+
* @param {Object} event `{ source, title, occurred_at, ... }`
|
|
77
|
+
* @param {String} token Authorization token
|
|
78
|
+
* @returns {Promise<object>} `{ incidentId, humanId, deduplicated }`
|
|
79
|
+
*/
|
|
80
|
+
export declare const createIncident: (event: object, token: string) => Promise<object>;
|
|
81
|
+
/**
|
|
82
|
+
* Edit whitelisted fields. Status and severity are deliberately not among them:
|
|
83
|
+
* they move through `transitionIncident` and `changeIncidentSeverity`, so neither
|
|
84
|
+
* the state machine nor the reason requirement can be bypassed by an edit.
|
|
85
|
+
* @param {Object} data Must carry `_id`
|
|
86
|
+
* @param {String} token Authorization token
|
|
87
|
+
* @returns {Promise<object>}
|
|
88
|
+
*/
|
|
89
|
+
export declare const updateIncident: (data: object, token: string) => Promise<object>;
|
|
90
|
+
/**
|
|
91
|
+
* Move an incident through the lifecycle. Enforces the legal-transition table,
|
|
92
|
+
* requires a root cause before verification, a reason to dismiss, and refuses
|
|
93
|
+
* closure while corrective actions or training remain outstanding.
|
|
94
|
+
* @param {String} id
|
|
95
|
+
* @param {Object} data `{ to, note?, dismissReason? }`
|
|
96
|
+
* @param {String} token Authorization token
|
|
97
|
+
* @returns {Promise<object>}
|
|
98
|
+
*/
|
|
99
|
+
export declare const transitionIncident: (id: string, data: object, token: string) => Promise<object>;
|
|
100
|
+
/**
|
|
101
|
+
* Change severity. The reason is mandatory and audit-logged, and the SLA
|
|
102
|
+
* deadline is recomputed to match.
|
|
103
|
+
* @param {String} id
|
|
104
|
+
* @param {Object} data `{ severity, reason }`
|
|
105
|
+
* @param {String} token Authorization token
|
|
106
|
+
* @returns {Promise<object>}
|
|
107
|
+
*/
|
|
108
|
+
export declare const changeIncidentSeverity: (id: string, data: object, token: string) => Promise<object>;
|
|
109
|
+
/**
|
|
110
|
+
* Attach evidence.
|
|
111
|
+
* @param {String} id
|
|
112
|
+
* @param {Object} data `{ type: "url" | "fileRef" | "text", ref }`
|
|
113
|
+
* @param {String} token Authorization token
|
|
114
|
+
* @returns {Promise<object>}
|
|
115
|
+
*/
|
|
116
|
+
export declare const addIncidentEvidence: (id: string, data: object, token: string) => Promise<object>;
|
|
117
|
+
/**
|
|
118
|
+
* Add a corrective-action task.
|
|
119
|
+
* @param {String} id
|
|
120
|
+
* @param {Object} data `{ title, description?, assigneeId?, dueAt? }`
|
|
121
|
+
* @param {String} token Authorization token
|
|
122
|
+
* @returns {Promise<object>}
|
|
123
|
+
*/
|
|
124
|
+
export declare const addIncidentTask: (id: string, data: object, token: string) => Promise<object>;
|
|
125
|
+
/**
|
|
126
|
+
* Update a task, including completing or reopening it. Reopening clears the
|
|
127
|
+
* completion stamp.
|
|
128
|
+
* @param {String} id
|
|
129
|
+
* @param {Object} data `{ taskId, done?, title?, assigneeId?, dueAt? }`
|
|
130
|
+
* @param {String} token Authorization token
|
|
131
|
+
* @returns {Promise<object>}
|
|
132
|
+
*/
|
|
133
|
+
export declare const updateIncidentTask: (id: string, data: object, token: string) => Promise<object>;
|
|
134
|
+
/**
|
|
135
|
+
* Assign training by hand. The Remediation Agent is the normal path once it
|
|
136
|
+
* exists; this produces the identical record, marked as user-created.
|
|
137
|
+
* @param {String} id
|
|
138
|
+
* @param {Object} data `{ assigneeId, learningPathId?, dueAt? }`
|
|
139
|
+
* @param {String} token Authorization token
|
|
140
|
+
* @returns {Promise<object>}
|
|
141
|
+
*/
|
|
142
|
+
export declare const assignIncidentTraining: (id: string, data: object, token: string) => Promise<object>;
|
|
143
|
+
/**
|
|
144
|
+
* Retract a training assignment, including one the agent created. The assignment
|
|
145
|
+
* is removed so it stops blocking closure; the timeline keeps a record of it.
|
|
146
|
+
* @param {String} id
|
|
147
|
+
* @param {Object} data `{ assignmentId, reason? }`
|
|
148
|
+
* @param {String} token Authorization token
|
|
149
|
+
* @returns {Promise<object>}
|
|
150
|
+
*/
|
|
151
|
+
export declare const retractIncidentTraining: (id: string, data: object, token: string) => Promise<object>;
|
|
152
|
+
/**
|
|
153
|
+
* Waive a training assignment. Requires INCIDENTS_CLOSE, not merely manage,
|
|
154
|
+
* because waiving is the only way an incident closes without the training
|
|
155
|
+
* actually being completed. The reason is mandatory.
|
|
156
|
+
* @param {String} id
|
|
157
|
+
* @param {Object} data `{ assignmentId, reason }`
|
|
158
|
+
* @param {String} token Authorization token
|
|
159
|
+
* @returns {Promise<object>}
|
|
160
|
+
*/
|
|
161
|
+
export declare const waiveIncidentTraining: (id: string, data: object, token: string) => Promise<object>;
|
|
162
|
+
/**
|
|
163
|
+
* Accept, modify or reject an AI triage suggestion. Accepting applies it and
|
|
164
|
+
* stamps the applied value with its AI provenance; nothing the AI proposes takes
|
|
165
|
+
* effect until a human decides. A suggestion can only be decided once.
|
|
166
|
+
* @param {String} id
|
|
167
|
+
* @param {Object} data `{ suggestionId, disposition, edits? }`
|
|
168
|
+
* @param {String} token Authorization token
|
|
169
|
+
* @returns {Promise<object>}
|
|
170
|
+
*/
|
|
171
|
+
export declare const decideIncidentSuggestion: (id: string, data: object, token: string) => Promise<object>;
|
|
172
|
+
/**
|
|
173
|
+
* Auditor export: whole incidents including timeline, agent runs and evidence,
|
|
174
|
+
* matching the same filters the queue uses. Capped server-side.
|
|
175
|
+
* @param {IncidentQueueFilters} filters
|
|
176
|
+
* @param {String} token Authorization token
|
|
177
|
+
* @returns {Promise<object>} `{ items, total, truncated }`
|
|
178
|
+
*/
|
|
179
|
+
export declare const exportIncidents: (filters: IncidentQueueFilters, token: string) => Promise<object>;
|
|
180
|
+
/**
|
|
181
|
+
* Soft-delete an incident. Requires INCIDENTS_CLOSE. The record is retained and
|
|
182
|
+
* simply leaves the queue; there is no hard delete.
|
|
183
|
+
* @param {String} id
|
|
184
|
+
* @param {String} token Authorization token
|
|
185
|
+
* @returns {Promise<object>}
|
|
186
|
+
*/
|
|
187
|
+
export declare const deleteIncident: (id: string, token: string) => Promise<object>;
|
|
188
|
+
/**
|
|
189
|
+
* List intake credentials. Never returns secret material.
|
|
190
|
+
* @param {String} token Authorization token
|
|
191
|
+
* @returns {Promise<object>}
|
|
192
|
+
*/
|
|
193
|
+
export declare const getIntakeKeys: (token: string) => Promise<object>;
|
|
194
|
+
/**
|
|
195
|
+
* Create an intake credential. The plaintext key is in this response and nowhere
|
|
196
|
+
* else, ever; only its hash is stored. A caller that loses it must issue a new one.
|
|
197
|
+
* @param {Object} data `{ name }`
|
|
198
|
+
* @param {String} token Authorization token
|
|
199
|
+
* @returns {Promise<object>} `{ key, record }`
|
|
200
|
+
*/
|
|
201
|
+
export declare const createIntakeKey: (data: object, token: string) => Promise<object>;
|
|
202
|
+
/**
|
|
203
|
+
* Revoke an intake credential. The record is kept so historical incidents can
|
|
204
|
+
* still resolve which credential delivered them.
|
|
205
|
+
* @param {String} id
|
|
206
|
+
* @param {String} token Authorization token
|
|
207
|
+
* @returns {Promise<object>}
|
|
208
|
+
*/
|
|
209
|
+
export declare const revokeIntakeKey: (id: string, token: string) => Promise<object>;
|
|
210
|
+
//# sourceMappingURL=incident.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident.d.ts","sourceRoot":"","sources":["../../../src/lib/incident.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.revokeIntakeKey = exports.createIntakeKey = exports.getIntakeKeys = exports.deleteIncident = exports.exportIncidents = exports.decideIncidentSuggestion = exports.waiveIncidentTraining = exports.retractIncidentTraining = exports.assignIncidentTraining = exports.updateIncidentTask = exports.addIncidentTask = exports.addIncidentEvidence = exports.changeIncidentSeverity = exports.transitionIncident = exports.updateIncident = exports.createIncident = exports.updateIncidentSettings = exports.getIncidentSettings = exports.getMyIncidentWork = exports.getIncidentDashboard = exports.getIncident = exports.getIncidents = void 0;
|
|
4
|
+
const axiosClient_js_1 = require("./axiosClient.js");
|
|
5
|
+
const toQueryString = (params = {}) => {
|
|
6
|
+
const search = new URLSearchParams();
|
|
7
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
8
|
+
if (value === undefined || value === null || value === "")
|
|
9
|
+
return;
|
|
10
|
+
if (Array.isArray(value)) {
|
|
11
|
+
value.forEach((entry) => search.append(key, String(entry)));
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
search.append(key, String(value));
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
const query = search.toString();
|
|
18
|
+
return query ? `?${query}` : "";
|
|
19
|
+
};
|
|
20
|
+
const request = (promise) => new Promise((resolve, reject) => {
|
|
21
|
+
promise
|
|
22
|
+
.then((response) => resolve(response.data))
|
|
23
|
+
.catch((error) => reject(error));
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Incident queue, with filters, free-text search and pagination.
|
|
27
|
+
* @param {IncidentQueueFilters} filters
|
|
28
|
+
* @param {String} token Authorization token
|
|
29
|
+
* @returns {Promise<object>} `{ items, page, limit, total, totalPages }`
|
|
30
|
+
*/
|
|
31
|
+
const getIncidents = (filters, token) => request(axiosClient_js_1.client.get(`/api/v1/shield/incidents/${toQueryString(filters)}`, {
|
|
32
|
+
headers: { authorization: token },
|
|
33
|
+
}));
|
|
34
|
+
exports.getIncidents = getIncidents;
|
|
35
|
+
/**
|
|
36
|
+
* One incident, complete. Tasks, training, timeline, evidence and agent runs are
|
|
37
|
+
* embedded, so the detail view needs no follow-up calls.
|
|
38
|
+
* @param {String} id
|
|
39
|
+
* @param {String} token Authorization token
|
|
40
|
+
* @returns {Promise<object>}
|
|
41
|
+
*/
|
|
42
|
+
const getIncident = (id, token) => request(axiosClient_js_1.client.get(`/api/v1/shield/incidents/${id}`, {
|
|
43
|
+
headers: { authorization: token },
|
|
44
|
+
}));
|
|
45
|
+
exports.getIncident = getIncident;
|
|
46
|
+
/**
|
|
47
|
+
* Dashboard tiles. Note that `medianTimeToRemediateMs` is null rather than 0 when
|
|
48
|
+
* nothing closed in the window, and that severity/process buckets can carry a
|
|
49
|
+
* null key for incidents not yet triaged.
|
|
50
|
+
* @param {Number} windowDays Trailing window for the trend and median tiles
|
|
51
|
+
* @param {String} token Authorization token
|
|
52
|
+
* @returns {Promise<object>}
|
|
53
|
+
*/
|
|
54
|
+
const getIncidentDashboard = (windowDays, token) => request(axiosClient_js_1.client.get(`/api/v1/shield/incidents/dashboard${toQueryString({ windowDays })}`, { headers: { authorization: token } }));
|
|
55
|
+
exports.getIncidentDashboard = getIncidentDashboard;
|
|
56
|
+
/**
|
|
57
|
+
* The signed-in user's own corrective actions and training assignments.
|
|
58
|
+
* Authenticated but not permission-gated: an assignee can see their work without
|
|
59
|
+
* holding read over the whole queue.
|
|
60
|
+
* @param {Boolean} includeCompleted
|
|
61
|
+
* @param {String} token Authorization token
|
|
62
|
+
* @returns {Promise<object>} `{ tasks, training }`
|
|
63
|
+
*/
|
|
64
|
+
const getMyIncidentWork = (includeCompleted, token) => request(axiosClient_js_1.client.get(`/api/v1/shield/incidents/mine${toQueryString({ includeCompleted })}`, { headers: { authorization: token } }));
|
|
65
|
+
exports.getMyIncidentWork = getMyIncidentWork;
|
|
66
|
+
/**
|
|
67
|
+
* Tenant incident settings: severity mapping, SLA hours, dedup window, the
|
|
68
|
+
* business-process list, the AI-triage toggle and the remediation-agent mode.
|
|
69
|
+
* Read-gated rather than admin-gated, because the queue's process filter needs
|
|
70
|
+
* the process list.
|
|
71
|
+
* @param {String} token Authorization token
|
|
72
|
+
* @returns {Promise<object>}
|
|
73
|
+
*/
|
|
74
|
+
const getIncidentSettings = (token) => request(axiosClient_js_1.client.get("/api/v1/shield/incidents/settings", {
|
|
75
|
+
headers: { authorization: token },
|
|
76
|
+
}));
|
|
77
|
+
exports.getIncidentSettings = getIncidentSettings;
|
|
78
|
+
/**
|
|
79
|
+
* Update tenant incident settings. Requires INCIDENTS_INTAKE_ADMIN.
|
|
80
|
+
* @param {Object} settings Partial settings; unknown keys are ignored
|
|
81
|
+
* @param {String} token Authorization token
|
|
82
|
+
* @returns {Promise<object>} The effective settings after the write
|
|
83
|
+
*/
|
|
84
|
+
const updateIncidentSettings = (settings, token) => request(axiosClient_js_1.client.post("/api/v1/shield/incidents/settings", settings, {
|
|
85
|
+
headers: { authorization: token },
|
|
86
|
+
}));
|
|
87
|
+
exports.updateIncidentSettings = updateIncidentSettings;
|
|
88
|
+
/**
|
|
89
|
+
* File an incident by hand. Takes the same normalized event contract the public
|
|
90
|
+
* intake endpoint accepts, so a manual incident and an ingested one are
|
|
91
|
+
* indistinguishable afterwards apart from their source.
|
|
92
|
+
* @param {Object} event `{ source, title, occurred_at, ... }`
|
|
93
|
+
* @param {String} token Authorization token
|
|
94
|
+
* @returns {Promise<object>} `{ incidentId, humanId, deduplicated }`
|
|
95
|
+
*/
|
|
96
|
+
const createIncident = (event, token) => request(axiosClient_js_1.client.put("/api/v1/shield/incidents", event, {
|
|
97
|
+
headers: { authorization: token },
|
|
98
|
+
}));
|
|
99
|
+
exports.createIncident = createIncident;
|
|
100
|
+
/**
|
|
101
|
+
* Edit whitelisted fields. Status and severity are deliberately not among them:
|
|
102
|
+
* they move through `transitionIncident` and `changeIncidentSeverity`, so neither
|
|
103
|
+
* the state machine nor the reason requirement can be bypassed by an edit.
|
|
104
|
+
* @param {Object} data Must carry `_id`
|
|
105
|
+
* @param {String} token Authorization token
|
|
106
|
+
* @returns {Promise<object>}
|
|
107
|
+
*/
|
|
108
|
+
const updateIncident = (data, token) => request(axiosClient_js_1.client.post("/api/v1/shield/incidents/update", data, {
|
|
109
|
+
headers: { authorization: token },
|
|
110
|
+
}));
|
|
111
|
+
exports.updateIncident = updateIncident;
|
|
112
|
+
/**
|
|
113
|
+
* Move an incident through the lifecycle. Enforces the legal-transition table,
|
|
114
|
+
* requires a root cause before verification, a reason to dismiss, and refuses
|
|
115
|
+
* closure while corrective actions or training remain outstanding.
|
|
116
|
+
* @param {String} id
|
|
117
|
+
* @param {Object} data `{ to, note?, dismissReason? }`
|
|
118
|
+
* @param {String} token Authorization token
|
|
119
|
+
* @returns {Promise<object>}
|
|
120
|
+
*/
|
|
121
|
+
const transitionIncident = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/transition`, data, {
|
|
122
|
+
headers: { authorization: token },
|
|
123
|
+
}));
|
|
124
|
+
exports.transitionIncident = transitionIncident;
|
|
125
|
+
/**
|
|
126
|
+
* Change severity. The reason is mandatory and audit-logged, and the SLA
|
|
127
|
+
* deadline is recomputed to match.
|
|
128
|
+
* @param {String} id
|
|
129
|
+
* @param {Object} data `{ severity, reason }`
|
|
130
|
+
* @param {String} token Authorization token
|
|
131
|
+
* @returns {Promise<object>}
|
|
132
|
+
*/
|
|
133
|
+
const changeIncidentSeverity = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/severity`, data, {
|
|
134
|
+
headers: { authorization: token },
|
|
135
|
+
}));
|
|
136
|
+
exports.changeIncidentSeverity = changeIncidentSeverity;
|
|
137
|
+
/**
|
|
138
|
+
* Attach evidence.
|
|
139
|
+
* @param {String} id
|
|
140
|
+
* @param {Object} data `{ type: "url" | "fileRef" | "text", ref }`
|
|
141
|
+
* @param {String} token Authorization token
|
|
142
|
+
* @returns {Promise<object>}
|
|
143
|
+
*/
|
|
144
|
+
const addIncidentEvidence = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/evidence`, data, {
|
|
145
|
+
headers: { authorization: token },
|
|
146
|
+
}));
|
|
147
|
+
exports.addIncidentEvidence = addIncidentEvidence;
|
|
148
|
+
/**
|
|
149
|
+
* Add a corrective-action task.
|
|
150
|
+
* @param {String} id
|
|
151
|
+
* @param {Object} data `{ title, description?, assigneeId?, dueAt? }`
|
|
152
|
+
* @param {String} token Authorization token
|
|
153
|
+
* @returns {Promise<object>}
|
|
154
|
+
*/
|
|
155
|
+
const addIncidentTask = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/tasks`, data, {
|
|
156
|
+
headers: { authorization: token },
|
|
157
|
+
}));
|
|
158
|
+
exports.addIncidentTask = addIncidentTask;
|
|
159
|
+
/**
|
|
160
|
+
* Update a task, including completing or reopening it. Reopening clears the
|
|
161
|
+
* completion stamp.
|
|
162
|
+
* @param {String} id
|
|
163
|
+
* @param {Object} data `{ taskId, done?, title?, assigneeId?, dueAt? }`
|
|
164
|
+
* @param {String} token Authorization token
|
|
165
|
+
* @returns {Promise<object>}
|
|
166
|
+
*/
|
|
167
|
+
const updateIncidentTask = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/tasks/update`, data, {
|
|
168
|
+
headers: { authorization: token },
|
|
169
|
+
}));
|
|
170
|
+
exports.updateIncidentTask = updateIncidentTask;
|
|
171
|
+
/**
|
|
172
|
+
* Assign training by hand. The Remediation Agent is the normal path once it
|
|
173
|
+
* exists; this produces the identical record, marked as user-created.
|
|
174
|
+
* @param {String} id
|
|
175
|
+
* @param {Object} data `{ assigneeId, learningPathId?, dueAt? }`
|
|
176
|
+
* @param {String} token Authorization token
|
|
177
|
+
* @returns {Promise<object>}
|
|
178
|
+
*/
|
|
179
|
+
const assignIncidentTraining = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/training`, data, {
|
|
180
|
+
headers: { authorization: token },
|
|
181
|
+
}));
|
|
182
|
+
exports.assignIncidentTraining = assignIncidentTraining;
|
|
183
|
+
/**
|
|
184
|
+
* Retract a training assignment, including one the agent created. The assignment
|
|
185
|
+
* is removed so it stops blocking closure; the timeline keeps a record of it.
|
|
186
|
+
* @param {String} id
|
|
187
|
+
* @param {Object} data `{ assignmentId, reason? }`
|
|
188
|
+
* @param {String} token Authorization token
|
|
189
|
+
* @returns {Promise<object>}
|
|
190
|
+
*/
|
|
191
|
+
const retractIncidentTraining = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/training/retract`, data, {
|
|
192
|
+
headers: { authorization: token },
|
|
193
|
+
}));
|
|
194
|
+
exports.retractIncidentTraining = retractIncidentTraining;
|
|
195
|
+
/**
|
|
196
|
+
* Waive a training assignment. Requires INCIDENTS_CLOSE, not merely manage,
|
|
197
|
+
* because waiving is the only way an incident closes without the training
|
|
198
|
+
* actually being completed. The reason is mandatory.
|
|
199
|
+
* @param {String} id
|
|
200
|
+
* @param {Object} data `{ assignmentId, reason }`
|
|
201
|
+
* @param {String} token Authorization token
|
|
202
|
+
* @returns {Promise<object>}
|
|
203
|
+
*/
|
|
204
|
+
const waiveIncidentTraining = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/training/waive`, data, {
|
|
205
|
+
headers: { authorization: token },
|
|
206
|
+
}));
|
|
207
|
+
exports.waiveIncidentTraining = waiveIncidentTraining;
|
|
208
|
+
/**
|
|
209
|
+
* Accept, modify or reject an AI triage suggestion. Accepting applies it and
|
|
210
|
+
* stamps the applied value with its AI provenance; nothing the AI proposes takes
|
|
211
|
+
* effect until a human decides. A suggestion can only be decided once.
|
|
212
|
+
* @param {String} id
|
|
213
|
+
* @param {Object} data `{ suggestionId, disposition, edits? }`
|
|
214
|
+
* @param {String} token Authorization token
|
|
215
|
+
* @returns {Promise<object>}
|
|
216
|
+
*/
|
|
217
|
+
const decideIncidentSuggestion = (id, data, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/${id}/suggestions/decide`, data, {
|
|
218
|
+
headers: { authorization: token },
|
|
219
|
+
}));
|
|
220
|
+
exports.decideIncidentSuggestion = decideIncidentSuggestion;
|
|
221
|
+
/**
|
|
222
|
+
* Auditor export: whole incidents including timeline, agent runs and evidence,
|
|
223
|
+
* matching the same filters the queue uses. Capped server-side.
|
|
224
|
+
* @param {IncidentQueueFilters} filters
|
|
225
|
+
* @param {String} token Authorization token
|
|
226
|
+
* @returns {Promise<object>} `{ items, total, truncated }`
|
|
227
|
+
*/
|
|
228
|
+
const exportIncidents = (filters, token) => request(axiosClient_js_1.client.get(`/api/v1/shield/incidents/export${toQueryString(filters)}`, { headers: { authorization: token } }));
|
|
229
|
+
exports.exportIncidents = exportIncidents;
|
|
230
|
+
/**
|
|
231
|
+
* Soft-delete an incident. Requires INCIDENTS_CLOSE. The record is retained and
|
|
232
|
+
* simply leaves the queue; there is no hard delete.
|
|
233
|
+
* @param {String} id
|
|
234
|
+
* @param {String} token Authorization token
|
|
235
|
+
* @returns {Promise<object>}
|
|
236
|
+
*/
|
|
237
|
+
const deleteIncident = (id, token) => request(axiosClient_js_1.client.delete(`/api/v1/shield/incidents/${id}`, {
|
|
238
|
+
headers: { authorization: token },
|
|
239
|
+
}));
|
|
240
|
+
exports.deleteIncident = deleteIncident;
|
|
241
|
+
/**
|
|
242
|
+
* List intake credentials. Never returns secret material.
|
|
243
|
+
* @param {String} token Authorization token
|
|
244
|
+
* @returns {Promise<object>}
|
|
245
|
+
*/
|
|
246
|
+
const getIntakeKeys = (token) => request(axiosClient_js_1.client.get("/api/v1/shield/incidents/intakekeys", {
|
|
247
|
+
headers: { authorization: token },
|
|
248
|
+
}));
|
|
249
|
+
exports.getIntakeKeys = getIntakeKeys;
|
|
250
|
+
/**
|
|
251
|
+
* Create an intake credential. The plaintext key is in this response and nowhere
|
|
252
|
+
* else, ever; only its hash is stored. A caller that loses it must issue a new one.
|
|
253
|
+
* @param {Object} data `{ name }`
|
|
254
|
+
* @param {String} token Authorization token
|
|
255
|
+
* @returns {Promise<object>} `{ key, record }`
|
|
256
|
+
*/
|
|
257
|
+
const createIntakeKey = (data, token) => request(axiosClient_js_1.client.post("/api/v1/shield/incidents/intakekeys", data, {
|
|
258
|
+
headers: { authorization: token },
|
|
259
|
+
}));
|
|
260
|
+
exports.createIntakeKey = createIntakeKey;
|
|
261
|
+
/**
|
|
262
|
+
* Revoke an intake credential. The record is kept so historical incidents can
|
|
263
|
+
* still resolve which credential delivered them.
|
|
264
|
+
* @param {String} id
|
|
265
|
+
* @param {String} token Authorization token
|
|
266
|
+
* @returns {Promise<object>}
|
|
267
|
+
*/
|
|
268
|
+
const revokeIntakeKey = (id, token) => request(axiosClient_js_1.client.post(`/api/v1/shield/incidents/intakekeys/${id}/revoke`, {}, { headers: { authorization: token } }));
|
|
269
|
+
exports.revokeIntakeKey = revokeIntakeKey;
|
|
270
|
+
//# sourceMappingURL=incident.js.map
|