Split user remove and archive actions

Restore RemoveUser as a hard delete operation and surface dependency\nconflicts with a dedicated IAM error.\n\nAdd a new ArchiveUser flow that deactivates profiles while keeping the\nmember in the organization, then expose both actions across Connect, MCP,\nCLI, n8n, console UI, and e2e coverage.

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
Cursor Agent
2026-05-27 18:26:33 +00:00
committed by Bryan Frimin
parent a71a7bb56f
commit 1e08a23ddc
15 changed files with 628 additions and 48 deletions

View File

@@ -13,6 +13,7 @@
// PERFORMANCE OF THIS SOFTWARE.
import type { INodeProperties } from 'n8n-workflow';
import * as archiveUserOp from './archiveUser.operation';
import * as listUsersOp from './listUsers.operation';
import * as getUserOp from './getUser.operation';
import * as createUserOp from './createUser.operation';
@@ -35,7 +36,7 @@ export const description: INodeProperties[] = [
options: [
{
name: 'Archive',
value: 'removeUser',
value: 'archiveUser',
description: 'Archive a user in the organization',
action: 'Archive a user',
},
@@ -63,6 +64,12 @@ export const description: INodeProperties[] = [
description: 'List all users in the organization',
action: 'List users',
},
{
name: 'Remove',
value: 'removeUser',
description: 'Remove a user from the organization',
action: 'Remove a user',
},
{
name: 'Update',
value: 'updateUser',
@@ -78,6 +85,7 @@ export const description: INodeProperties[] = [
],
default: 'listUsers',
},
...archiveUserOp.description,
...listUsersOp.description,
...getUserOp.description,
...createUserOp.description,
@@ -88,6 +96,7 @@ export const description: INodeProperties[] = [
];
export {
archiveUserOp as archiveUser,
listUsersOp as listUsers,
getUserOp as getUser,
createUserOp as createUser,