Skip to content

Commit 679fcb5

Browse files
author
Lasim
committed
feat(all): queue MCP server deletion as background job with cascade notifications
1 parent 5bf215b commit 679fcb5

File tree

11 files changed

+778
-159
lines changed

11 files changed

+778
-159
lines changed

services/backend/api-spec.json

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20299,7 +20299,7 @@
2029920299
"tags": [
2030020300
"MCP Servers"
2030120301
],
20302-
"description": "Delete an existing global MCP server - requires global admin permissions. Only global servers can be deleted through this endpoint. This action is irreversible.",
20302+
"description": "Queues deletion of a global MCP server. The server and all team installations will be removed via a background job. Each team with an installation will be notified and satellites will be updated. Requires global admin permissions.",
2030320303
"parameters": [
2030420304
{
2030520305
"schema": {
@@ -20318,42 +20318,49 @@
2031820318
}
2031920319
],
2032020320
"responses": {
20321-
"200": {
20322-
"description": "Global MCP server deleted successfully",
20321+
"202": {
20322+
"description": "Server deletion has been queued",
2032320323
"content": {
2032420324
"application/json": {
2032520325
"schema": {
2032620326
"type": "object",
2032720327
"properties": {
2032820328
"success": {
2032920329
"type": "boolean",
20330-
"description": "Indicates successful server deletion"
20330+
"description": "Indicates request was accepted"
2033120331
},
2033220332
"message": {
2033320333
"type": "string",
20334-
"description": "Success message"
20334+
"description": "Status message"
2033520335
},
2033620336
"data": {
2033720337
"type": "object",
2033820338
"properties": {
2033920339
"id": {
2034020340
"type": "string",
20341-
"description": "ID of the deleted server"
20341+
"description": "ID of the server being deleted"
2034220342
},
2034320343
"name": {
2034420344
"type": "string",
20345-
"description": "Name of the deleted server"
20345+
"description": "Name of the server being deleted"
2034620346
},
20347-
"deleted_at": {
20347+
"job_id": {
2034820348
"type": "string",
20349-
"format": "date-time",
20350-
"description": "Deletion timestamp"
20349+
"description": "Background job ID for tracking"
20350+
},
20351+
"status": {
20352+
"type": "string",
20353+
"enum": [
20354+
"queued"
20355+
],
20356+
"description": "Deletion status"
2035120357
}
2035220358
},
2035320359
"required": [
2035420360
"id",
2035520361
"name",
20356-
"deleted_at"
20362+
"job_id",
20363+
"status"
2035720364
]
2035820365
}
2035920366
},
@@ -20362,7 +20369,7 @@
2036220369
"message",
2036320370
"data"
2036420371
],
20365-
"description": "Global MCP server deleted successfully"
20372+
"description": "Server deletion has been queued"
2036620373
}
2036720374
}
2036820375
}

services/backend/api-spec.yaml

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14324,9 +14324,10 @@ paths:
1432414324
summary: Delete global MCP server (Global Admin only)
1432514325
tags:
1432614326
- MCP Servers
14327-
description: Delete an existing global MCP server - requires global admin
14328-
permissions. Only global servers can be deleted through this endpoint.
14329-
This action is irreversible.
14327+
description: Queues deletion of a global MCP server. The server and all team
14328+
installations will be removed via a background job. Each team with an
14329+
installation will be notified and satellites will be updated. Requires
14330+
global admin permissions.
1433014331
parameters:
1433114332
- schema:
1433214333
type: string
@@ -14338,41 +14339,46 @@ paths:
1433814339
security:
1433914340
- cookieAuth: []
1434014341
responses:
14341-
"200":
14342-
description: Global MCP server deleted successfully
14342+
"202":
14343+
description: Server deletion has been queued
1434314344
content:
1434414345
application/json:
1434514346
schema:
1434614347
type: object
1434714348
properties:
1434814349
success:
1434914350
type: boolean
14350-
description: Indicates successful server deletion
14351+
description: Indicates request was accepted
1435114352
message:
1435214353
type: string
14353-
description: Success message
14354+
description: Status message
1435414355
data:
1435514356
type: object
1435614357
properties:
1435714358
id:
1435814359
type: string
14359-
description: ID of the deleted server
14360+
description: ID of the server being deleted
1436014361
name:
1436114362
type: string
14362-
description: Name of the deleted server
14363-
deleted_at:
14363+
description: Name of the server being deleted
14364+
job_id:
1436414365
type: string
14365-
format: date-time
14366-
description: Deletion timestamp
14366+
description: Background job ID for tracking
14367+
status:
14368+
type: string
14369+
enum:
14370+
- queued
14371+
description: Deletion status
1436714372
required:
1436814373
- id
1436914374
- name
14370-
- deleted_at
14375+
- job_id
14376+
- status
1437114377
required:
1437214378
- success
1437314379
- message
1437414380
- data
14375-
description: Global MCP server deleted successfully
14381+
description: Server deletion has been queued
1437614382
"400":
1437714383
description: Bad Request - Invalid input or missing Content-Type header
1437814384
content:

0 commit comments

Comments
 (0)