From d56c3da3dd17a5cf3a218750dc73d06edf538049 Mon Sep 17 00:00:00 2001 From: Ricardo Espinoza Date: Thu, 18 Mar 2021 08:06:51 -0400 Subject: [PATCH] :zap: TheHive: Add Mark as Read operation to alerts (#1541) * :zap: Add Mark as Read operation to TheHive 4 Alerts * Remove version check from Mark as Read operation * Add Mark as Unread operation * Show Alert ID for markAsUnread operation * :zap: Add Ignore SSL Issues parameter to credentials * :zap: Add TheHive and Cortex SVG logos Co-authored-by: Mika Luhta <12100880+mluhta@users.noreply.github.com> --- .../credentials/TheHiveApi.credentials.ts | 6 +++++ .../nodes-base/nodes/Cortex/Cortex.node.ts | 2 +- packages/nodes-base/nodes/Cortex/cortex.png | Bin 837 -> 0 bytes packages/nodes-base/nodes/Cortex/cortex.svg | 1 + .../nodes/TheHive/GenericFunctions.ts | 1 + .../nodes-base/nodes/TheHive/TheHive.node.ts | 24 +++++++++++++++++- .../nodes/TheHive/TheHiveTrigger.node.ts | 2 +- .../TheHive/descriptions/AlertDescription.ts | 2 ++ packages/nodes-base/nodes/TheHive/thehive.png | Bin 819 -> 0 bytes packages/nodes-base/nodes/TheHive/thehive.svg | 1 + 10 files changed, 36 insertions(+), 3 deletions(-) delete mode 100644 packages/nodes-base/nodes/Cortex/cortex.png create mode 100644 packages/nodes-base/nodes/Cortex/cortex.svg delete mode 100644 packages/nodes-base/nodes/TheHive/thehive.png create mode 100644 packages/nodes-base/nodes/TheHive/thehive.svg diff --git a/packages/nodes-base/credentials/TheHiveApi.credentials.ts b/packages/nodes-base/credentials/TheHiveApi.credentials.ts index 19251ec588..0a3b415f56 100644 --- a/packages/nodes-base/credentials/TheHiveApi.credentials.ts +++ b/packages/nodes-base/credentials/TheHiveApi.credentials.ts @@ -41,5 +41,11 @@ export class TheHiveApi implements ICredentialType { }, ], }, + { + displayName: 'Ignore SSL Issues', + name: 'allowUnauthorizedCerts', + type: 'boolean' as NodePropertyTypes, + default: false, + }, ]; } diff --git a/packages/nodes-base/nodes/Cortex/Cortex.node.ts b/packages/nodes-base/nodes/Cortex/Cortex.node.ts index b759594146..eb20b23f2a 100644 --- a/packages/nodes-base/nodes/Cortex/Cortex.node.ts +++ b/packages/nodes-base/nodes/Cortex/Cortex.node.ts @@ -53,7 +53,7 @@ export class Cortex implements INodeType { description: INodeTypeDescription = { displayName: 'Cortex', name: 'cortex', - icon: 'file:cortex.png', + icon: 'file:cortex.svg', group: ['transform'], subtitle: '={{$parameter["resource"]+ ": " + $parameter["operation"]}}', version: 1, diff --git a/packages/nodes-base/nodes/Cortex/cortex.png b/packages/nodes-base/nodes/Cortex/cortex.png deleted file mode 100644 index e517928ed6c94a0679af185a1cd2497dd89f2021..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmV-L1G@Z)P)f-r=B-6R*jKR^Hk!9de3lTkYP53&vJbMRZvNJ1Xrz|e`Wk`@3I zjs>i-`Z4D^){H;ehVBvs5S0)J@l#(Xg_6bZ#pmyw*oo12v2e?i4_epOw%Y z4`=WW^0?Fe;5WPsGh`myh0o?FI)iiR>GK&rtDuU~0_yyIOI5jsnfDcIKZUvSv(G04 zpi4uhN=31&fjoWOMhJ93M9$!^>8Lt+ZG#RNA_b`*p?cAr!8Jb6oU5zywhNJp(*vW@ zDP&sP`8MF0u}E`ZgqW{NZVF%og)?*>JD*`miCwo~F*^EEy@jES+VH@UA1<$!^doe_ zD0l)Rv2^;53E|y@G42aaqTA1^&3F3wNFVXJURvKz!aBJ9riYnQOJ>lm9ckIymK|K$ ze3>fRjxBZNjFiSmal53b_0$+oz{-b}d&g>VuAUh&+sZgjlZ0bcortex-logo \ No newline at end of file diff --git a/packages/nodes-base/nodes/TheHive/GenericFunctions.ts b/packages/nodes-base/nodes/TheHive/GenericFunctions.ts index 3e3e9ae4a3..4a64dd36bb 100644 --- a/packages/nodes-base/nodes/TheHive/GenericFunctions.ts +++ b/packages/nodes-base/nodes/TheHive/GenericFunctions.ts @@ -29,6 +29,7 @@ export async function theHiveApiRequest(this: IHookFunctions | IExecuteFunctions qs: query, uri: uri || `${credentials.url}/api${resource}`, body, + rejectUnauthorized: credentials.allowUnauthorizedCerts as boolean, json: true, }; diff --git a/packages/nodes-base/nodes/TheHive/TheHive.node.ts b/packages/nodes-base/nodes/TheHive/TheHive.node.ts index 72155b8044..b41a50c40a 100644 --- a/packages/nodes-base/nodes/TheHive/TheHive.node.ts +++ b/packages/nodes-base/nodes/TheHive/TheHive.node.ts @@ -67,7 +67,7 @@ export class TheHive implements INodeType { description: INodeTypeDescription = { displayName: 'TheHive', name: 'theHive', - icon: 'file:thehive.png', + icon: 'file:thehive.svg', group: ['transform'], subtitle: '={{$parameter["operation"]}} : {{$parameter["resource"]}}', version: 1, @@ -216,6 +216,8 @@ export class TheHive implements INodeType { { name: 'Execute Responder', value: 'executeResponder', description: 'Execute a responder on the specified alert' }, { name: 'Get', value: 'get', description: 'Get an alert' }, { name: 'Get All', value: 'getAll', description: 'Get all alerts' }, + { name: 'Mark as Read', value: 'markAsRead', description: 'Mark the alert as read' }, + { name: 'Mark as Unread', value: 'markAsUnread', description: 'Mark the alert as unread' }, { name: 'Merge', value: 'merge', description: 'Merge alert into an existing case' }, { name: 'Promote', value: 'promote', description: 'Promote an alert into a case' }, { name: 'Update', value: 'update', description: 'Update alert' }, @@ -535,6 +537,26 @@ export class TheHive implements INodeType { ); } + if (operation === 'markAsRead') { + const alertId = this.getNodeParameter('id', i) as string; + + responseData = await theHiveApiRequest.call( + this, + 'POST', + `/alert/${alertId}/markAsRead`, + ); + } + + if (operation === 'markAsUnread') { + const alertId = this.getNodeParameter('id', i) as string; + + responseData = await theHiveApiRequest.call( + this, + 'POST', + `/alert/${alertId}/markAsUnread`, + ); + } + if (operation === 'merge') { const alertId = this.getNodeParameter('id', i) as string; diff --git a/packages/nodes-base/nodes/TheHive/TheHiveTrigger.node.ts b/packages/nodes-base/nodes/TheHive/TheHiveTrigger.node.ts index 7618bab4e2..fcd211d12e 100644 --- a/packages/nodes-base/nodes/TheHive/TheHiveTrigger.node.ts +++ b/packages/nodes-base/nodes/TheHive/TheHiveTrigger.node.ts @@ -14,7 +14,7 @@ export class TheHiveTrigger implements INodeType { description: INodeTypeDescription = { displayName: 'TheHive Trigger', name: 'theHiveTrigger', - icon: 'file:thehive.png', + icon: 'file:thehive.svg', group: ['trigger'], version: 1, description: 'Starts the workflow when a TheHive event occurs.', diff --git a/packages/nodes-base/nodes/TheHive/descriptions/AlertDescription.ts b/packages/nodes-base/nodes/TheHive/descriptions/AlertDescription.ts index 77ff3336c0..551c68ec02 100644 --- a/packages/nodes-base/nodes/TheHive/descriptions/AlertDescription.ts +++ b/packages/nodes-base/nodes/TheHive/descriptions/AlertDescription.ts @@ -82,6 +82,8 @@ export const alertFields = [ ], operation: [ 'promote', + 'markAsRead', + 'markAsUnread', 'merge', 'update', 'executeResponder', diff --git a/packages/nodes-base/nodes/TheHive/thehive.png b/packages/nodes-base/nodes/TheHive/thehive.png deleted file mode 100644 index a28fa90b5604ee81999ea8d408410f9ba0c25340..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819 zcmV-31I+x1P)?5YyP`GRzBA^=GV01P z?8`8%mNs2eHdRbEww*Pkk2RNrH8e0aE-N)DCp6Z%GKF+DfpIo(Vm3)ZHYX)C-oP^( z95Z%kHa<8ty`(j!kTw4L!G-_;01tFhPE!C2`0wuKvaX7Fb5c?q2Joa~oB#jC8om5%2e~?V*+&$3tdJGy z;xTJXiIMlfjEEV5`Mhep&K@nFV@vXQ%?sDpeh2ez7p!*;%#KVjChfp{+-ogfEd30? z-om%F0i1PSwAP2S0A{6I0M-tC&KiKFufSwaNgIhNZN*?Gz(h=7OH(A;nJ_F#bWLWey+q4IKV$cRRu6VVVMgErEVb&J!13c%X zg~fY8xv-_b0b?Q^mWDe8mGbCVGK}MFb|9iY#$%j_=xV})JggvPNC6YJjRggsk)lYJ zN>nEh&2mo^Z8X_ZsbDm*J2o(U_)7tO0Y;T>Pprk)#fY_NqYc1xr3Yh9p);^p+-?@$ z#OJyEE~#g$MKktenOWE6m%%K$ZYO%^h*4DgSUcw$>IXA6G46+4Ov$(A*HGRCI9Z)E zFlPU6d?an;*LdE;84W&ZX3{sXNnc(+4&aESl_002ovPDHLkV1m%*W|{y1 diff --git a/packages/nodes-base/nodes/TheHive/thehive.svg b/packages/nodes-base/nodes/TheHive/thehive.svg new file mode 100644 index 0000000000..25ee988a32 --- /dev/null +++ b/packages/nodes-base/nodes/TheHive/thehive.svg @@ -0,0 +1 @@ +th-logo \ No newline at end of file