From cc02519d7bf0dd6c00f2c9f5fd16d273f94f1870 Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Mon, 22 Jun 2026 10:59:52 +0200 Subject: [PATCH] Add resourceAlias resource to n8n node Move the set and remove alias operations out of the trust center resource into a dedicated resourceAlias resource so n8n workflows can alias any resource. Signed-off-by: Bryan Frimin --- packages/n8n-node/nodes/Probo/Probo.node.ts | 5 ++ .../n8n-node/nodes/Probo/actions/index.ts | 2 + .../Probo/actions/resourceAlias/index.ts | 53 +++++++++++++++++++ .../remove.operation.ts} | 10 ++-- .../set.operation.ts} | 16 +++--- .../nodes/Probo/actions/trustCenter/index.ts | 18 ------- 6 files changed, 73 insertions(+), 31 deletions(-) create mode 100644 packages/n8n-node/nodes/Probo/actions/resourceAlias/index.ts rename packages/n8n-node/nodes/Probo/actions/{trustCenter/removeAlias.operation.ts => resourceAlias/remove.operation.ts} (86%) rename packages/n8n-node/nodes/Probo/actions/{trustCenter/setAlias.operation.ts => resourceAlias/set.operation.ts} (85%) diff --git a/packages/n8n-node/nodes/Probo/Probo.node.ts b/packages/n8n-node/nodes/Probo/Probo.node.ts index b447aa10d..d08e5f8d8 100644 --- a/packages/n8n-node/nodes/Probo/Probo.node.ts +++ b/packages/n8n-node/nodes/Probo/Probo.node.ts @@ -176,6 +176,11 @@ export class Probo implements INodeType { value: 'processingActivity', description: 'Manage processing activities', }, + { + name: 'Resource Alias', + value: 'resourceAlias', + description: 'Manage resource aliases', + }, { name: 'Rights Request', value: 'rightsRequest', diff --git a/packages/n8n-node/nodes/Probo/actions/index.ts b/packages/n8n-node/nodes/Probo/actions/index.ts index 5632de21f..9552662b6 100644 --- a/packages/n8n-node/nodes/Probo/actions/index.ts +++ b/packages/n8n-node/nodes/Probo/actions/index.ts @@ -35,6 +35,7 @@ import * as organization from './organization'; import * as organizationContext from './organizationContext'; import * as processingActivity from './processingActivity'; import * as rightsRequest from './rightsRequest'; +import * as resourceAlias from './resourceAlias'; import * as riskAssessment from './riskAssessment'; import * as user from './user'; import * as risk from './risk'; @@ -78,6 +79,7 @@ export const resources: Record = { organizationContext: organizationContext as ResourceModule, processingActivity: processingActivity as ResourceModule, rightsRequest: rightsRequest as ResourceModule, + resourceAlias: resourceAlias as ResourceModule, riskAssessment: riskAssessment as ResourceModule, user: user as ResourceModule, risk: risk as ResourceModule, diff --git a/packages/n8n-node/nodes/Probo/actions/resourceAlias/index.ts b/packages/n8n-node/nodes/Probo/actions/resourceAlias/index.ts new file mode 100644 index 000000000..2142acb06 --- /dev/null +++ b/packages/n8n-node/nodes/Probo/actions/resourceAlias/index.ts @@ -0,0 +1,53 @@ +// Copyright (c) 2025-2026 Probo Inc . +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +// OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +import type { INodeProperties } from 'n8n-workflow'; +import * as removeOp from './remove.operation'; +import * as setOp from './set.operation'; + +export const description: INodeProperties[] = [ + { + displayName: 'Operation', + name: 'operation', + type: 'options', + noDataExpression: true, + displayOptions: { + show: { + resource: ['resourceAlias'], + }, + }, + options: [ + { + name: 'Remove', + value: 'remove', + description: 'Remove a resource alias from a resource', + action: 'Remove a resource alias', + }, + { + name: 'Set', + value: 'set', + description: 'Set a resource alias for a document, file, or audit', + action: 'Set a resource alias', + }, + ], + default: 'set', + }, + ...setOp.description, + ...removeOp.description, +]; + +export { + removeOp as remove, + setOp as set, +}; diff --git a/packages/n8n-node/nodes/Probo/actions/trustCenter/removeAlias.operation.ts b/packages/n8n-node/nodes/Probo/actions/resourceAlias/remove.operation.ts similarity index 86% rename from packages/n8n-node/nodes/Probo/actions/trustCenter/removeAlias.operation.ts rename to packages/n8n-node/nodes/Probo/actions/resourceAlias/remove.operation.ts index 4db4809a9..ab2779e98 100644 --- a/packages/n8n-node/nodes/Probo/actions/trustCenter/removeAlias.operation.ts +++ b/packages/n8n-node/nodes/Probo/actions/resourceAlias/remove.operation.ts @@ -22,12 +22,12 @@ export const description: INodeProperties[] = [ type: 'string', displayOptions: { show: { - resource: ['trustCenter'], - operation: ['removeAlias'], + resource: ['resourceAlias'], + operation: ['remove'], }, }, default: '', - description: 'Document, trust center file, or audit ID', + description: 'ID of the resource whose alias to remove', required: true, }, ]; @@ -39,8 +39,8 @@ export async function execute( const resourceId = this.getNodeParameter('resourceId', itemIndex) as string; const query = ` - mutation RemoveTrustCenterAlias($input: RemoveTrustCenterAliasInput!) { - removeTrustCenterAlias(input: $input) { + mutation RemoveResourceAlias($input: RemoveResourceAliasInput!) { + removeResourceAlias(input: $input) { deletedResourceId } } diff --git a/packages/n8n-node/nodes/Probo/actions/trustCenter/setAlias.operation.ts b/packages/n8n-node/nodes/Probo/actions/resourceAlias/set.operation.ts similarity index 85% rename from packages/n8n-node/nodes/Probo/actions/trustCenter/setAlias.operation.ts rename to packages/n8n-node/nodes/Probo/actions/resourceAlias/set.operation.ts index 7d4f8e355..2f6693b21 100644 --- a/packages/n8n-node/nodes/Probo/actions/trustCenter/setAlias.operation.ts +++ b/packages/n8n-node/nodes/Probo/actions/resourceAlias/set.operation.ts @@ -22,12 +22,12 @@ export const description: INodeProperties[] = [ type: 'string', displayOptions: { show: { - resource: ['trustCenter'], - operation: ['setAlias'], + resource: ['resourceAlias'], + operation: ['set'], }, }, default: '', - description: 'Document, trust center file, or audit ID', + description: 'ID of the resource to alias', required: true, }, { @@ -36,8 +36,8 @@ export const description: INodeProperties[] = [ type: 'string', displayOptions: { show: { - resource: ['trustCenter'], - operation: ['setAlias'], + resource: ['resourceAlias'], + operation: ['set'], }, }, default: '', @@ -54,9 +54,9 @@ export async function execute( const alias = this.getNodeParameter('alias', itemIndex) as string; const query = ` - mutation SetTrustCenterAlias($input: SetTrustCenterAliasInput!) { - setTrustCenterAlias(input: $input) { - alias { + mutation SetResourceAlias($input: SetResourceAliasInput!) { + setResourceAlias(input: $input) { + resourceAlias { resourceId alias } diff --git a/packages/n8n-node/nodes/Probo/actions/trustCenter/index.ts b/packages/n8n-node/nodes/Probo/actions/trustCenter/index.ts index 7900ada71..d35209eab 100644 --- a/packages/n8n-node/nodes/Probo/actions/trustCenter/index.ts +++ b/packages/n8n-node/nodes/Probo/actions/trustCenter/index.ts @@ -22,8 +22,6 @@ import * as getAllFilesOp from './getAllFiles.operation'; import * as deleteFileOp from './deleteFile.operation'; import * as createExternalUrlOp from './createExternalUrl.operation'; import * as deleteExternalUrlOp from './deleteExternalUrl.operation'; -import * as setAliasOp from './setAlias.operation'; -import * as removeAliasOp from './removeAlias.operation'; export const description: INodeProperties[] = [ { @@ -85,18 +83,6 @@ export const description: INodeProperties[] = [ description: 'Get many trust center references', action: 'Get many trust center references', }, - { - name: 'Remove Alias', - value: 'removeAlias', - description: 'Remove a trust center alias from a resource', - action: 'Remove a trust center alias', - }, - { - name: 'Set Alias', - value: 'setAlias', - description: 'Set a trust center alias for a document, file, or audit', - action: 'Set a trust center alias', - }, { name: 'Update', value: 'update', @@ -115,8 +101,6 @@ export const description: INodeProperties[] = [ ...deleteFileOp.description, ...createExternalUrlOp.description, ...deleteExternalUrlOp.description, - ...setAliasOp.description, - ...removeAliasOp.description, ]; export { @@ -129,6 +113,4 @@ export { deleteFileOp as deleteFile, createExternalUrlOp as createExternalUrl, deleteExternalUrlOp as deleteExternalUrl, - setAliasOp as setAlias, - removeAliasOp as removeAlias, };