Apps

Archive (soft-delete) or purge an app (v2)

Auth: Tenant Actor

Default behavior is soft archive: the app's status flips to archived, login and listing endpoints hide it, and all child entities (users, chats, messages, files) are retained. The archive is reversible via POST /v2/apps/{appId}/restore.

Pass ?mode=hard for a cascade purge (irreversible). The app is immediately flipped to status: 'deleting' and a backend-jobs worker drains every related collection (users + XMPP accounts, chats + MUC rooms + MAM, files + MinIO objects, sources, AppAcl, RefreshToken, SessionsLog, BotInstance, AppStat, Owner2App, App doc).

The hard-delete response is 202 Accepted with a jobId and statusUrl so the admin panel can poll progress via GET /v2/apps/purge-jobs/{jobId}. Soft archive returns 200 immediately since it has no async work.

Optional ?reason=... is stored alongside the archive metadata for audit purposes (visible to the tenant owner via the list endpoint with ?status=archived).

Supports User JWT and B2B Server JWT.

delete/v2/apps/{appId}

Request

  • Base URL: https://api.chat.ethora.com
  • URL: https://api.chat.ethora.com/v2/apps/{appId}
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer

Path parameters

appIdstring required

Target App ID. Must be an app the calling actor owns or has been delegated access to.

Query parameters

mode'soft' | 'hard'

soft (default): reversible archive, returns 200. hard: cascade purge, returns 202 + jobId.

reasonstring

Optional human-readable explanation stored with the archive.

Response

archived ok (mode=soft)

Changes

No recorded changes to this operation across all 1 revision of this API.