Rename user archive action to deactivate

"Archive" was misleading for users: the action sets a profile to
DEACTIVATED while keeping the person in the organization. Rename it to
"deactivate" across the API, CLI, MCP, n8n, and console UI.

Consolidate the two overlapping operations into a single deactivateUser
backed by the fuller, guarded logic (SCIM guard, last-active-owner
guard, invitation expiry, signature cancellation, membership update,
webhook) and authorized via iam:membership-profile:deactivate. Remove
the archiveUser surface and the thin state-only deactivate path.

Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
Émile Ré
2026-07-28 17:30:14 +02:00
parent 99c3235b46
commit b10fc55b7f
14 changed files with 130 additions and 208 deletions

View File

@@ -1698,7 +1698,7 @@ components:
$ref: "#/components/schemas/GID"
description: Deleted user (profile) ID
ArchiveUserInput:
DeactivateUserInput:
type: object
required:
- organization_id
@@ -1709,16 +1709,16 @@ components:
description: Organization ID
profile_id:
$ref: "#/components/schemas/GID"
description: User (profile) ID to archive
description: User (profile) ID to deactivate
ArchiveUserOutput:
DeactivateUserOutput:
type: object
required:
- archived_user_id
- deactivated_user_id
properties:
archived_user_id:
deactivated_user_id:
$ref: "#/components/schemas/GID"
description: Archived user (profile) ID
description: Deactivated user (profile) ID
GetProfileInput:
type: object
@@ -12679,14 +12679,14 @@ tools:
$ref: "#/components/schemas/RemoveUserInput"
outputSchema:
$ref: "#/components/schemas/RemoveUserOutput"
- name: archiveUser
description: Archive a user in the organization
- name: deactivateUser
description: Deactivate a user in the organization
hints:
readonly: false
inputSchema:
$ref: "#/components/schemas/ArchiveUserInput"
$ref: "#/components/schemas/DeactivateUserInput"
outputSchema:
$ref: "#/components/schemas/ArchiveUserOutput"
$ref: "#/components/schemas/DeactivateUserOutput"
- name: addThirdParty
description: Add a new thirdParty to the organization
hints: