@jurislm/coolify-plugin 4.0.11 → 4.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coolify-plugin",
3
- "version": "4.0.11",
3
+ "version": "4.0.12",
4
4
  "description": "Fallback Codex metadata for local stdio Coolify tools.",
5
5
  "author": {
6
6
  "name": "JurisLM",
package/api/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "sourceUrl": "https://raw.githubusercontent.com/coollabsio/coolify/v4.3.23/openapi.json",
3
- "fetchedAt": "2026-09-25T10:52:36.232Z",
4
- "sha256": "e891390faf1c4405ca4de1cfcfb0cbbc5316edcdee6f39e653cb05c68eee3563",
3
+ "fetchedAt": "2026-09-25T11:20:11.773Z",
4
+ "sha256": "934bb0ecd71db0b596df44d141152e0d4052a2604cbb302519276ba9558a0b38",
5
5
  "upstreamSha256": "964360ffb3d4c026252aa4657d6561190f59ac4256395bf0645bf6a4f171ec88",
6
6
  "openapiVersion": "3.1.0",
7
7
  "infoVersion": "0.1",
@@ -29,6 +29,7 @@
29
29
  "Resource creation accepts either environment name or UUID as documented",
30
30
  "Docker image build packs and cloud-init/resource clone responses match live Coolify payloads",
31
31
  "Application tag removal and database backup updates match live message responses",
32
- "Application ports_exposes can be null for new Git applications"
32
+ "Application ports_exposes can be null for new Git applications",
33
+ "Private key update uses the routed UUID path rather than the upstream annotation path"
33
34
  ]
34
35
  }
@@ -2501,11 +2501,7 @@ export interface paths {
2501
2501
  delete?: never;
2502
2502
  options?: never;
2503
2503
  head?: never;
2504
- /**
2505
- * Update
2506
- * @description Update a private key.
2507
- */
2508
- patch: operations["update-private-key"];
2504
+ patch?: never;
2509
2505
  trace?: never;
2510
2506
  };
2511
2507
  "/security/keys/{uuid}": {
@@ -2529,7 +2525,11 @@ export interface paths {
2529
2525
  delete: operations["delete-private-key-by-uuid"];
2530
2526
  options?: never;
2531
2527
  head?: never;
2532
- patch?: never;
2528
+ /**
2529
+ * Update
2530
+ * @description Update a private key.
2531
+ */
2532
+ patch: operations["update-private-key"];
2533
2533
  trace?: never;
2534
2534
  };
2535
2535
  "/servers/{uuid}/cloudflare-tunnel": {
@@ -12967,39 +12967,6 @@ export interface operations {
12967
12967
  422: components["responses"]["422"];
12968
12968
  };
12969
12969
  };
12970
- "update-private-key": {
12971
- parameters: {
12972
- query?: never;
12973
- header?: never;
12974
- path?: never;
12975
- cookie?: never;
12976
- };
12977
- requestBody: {
12978
- content: {
12979
- "application/json": {
12980
- name?: string;
12981
- description?: string;
12982
- private_key: string;
12983
- };
12984
- };
12985
- };
12986
- responses: {
12987
- /** @description The updated private key's UUID. */
12988
- 201: {
12989
- headers: {
12990
- [name: string]: unknown;
12991
- };
12992
- content: {
12993
- "application/json": {
12994
- uuid?: string;
12995
- };
12996
- };
12997
- };
12998
- 400: components["responses"]["400"];
12999
- 401: components["responses"]["401"];
13000
- 422: components["responses"]["422"];
13001
- };
13002
- };
13003
12970
  "get-private-key-by-uuid": {
13004
12971
  parameters: {
13005
12972
  query?: never;
@@ -13079,6 +13046,43 @@ export interface operations {
13079
13046
  };
13080
13047
  };
13081
13048
  };
13049
+ "update-private-key": {
13050
+ parameters: {
13051
+ query?: never;
13052
+ header?: never;
13053
+ path: {
13054
+ /** @description Private Key UUID */
13055
+ uuid: string;
13056
+ };
13057
+ cookie?: never;
13058
+ };
13059
+ requestBody: {
13060
+ content: {
13061
+ "application/json": {
13062
+ name?: string;
13063
+ description?: string;
13064
+ private_key: string;
13065
+ };
13066
+ };
13067
+ };
13068
+ responses: {
13069
+ /** @description The updated private key's UUID. */
13070
+ 201: {
13071
+ headers: {
13072
+ [name: string]: unknown;
13073
+ };
13074
+ content: {
13075
+ "application/json": {
13076
+ uuid?: string;
13077
+ };
13078
+ };
13079
+ };
13080
+ 400: components["responses"]["400"];
13081
+ 401: components["responses"]["401"];
13082
+ 404: components["responses"]["404"];
13083
+ 422: components["responses"]["422"];
13084
+ };
13085
+ };
13082
13086
  "get-server-cloudflare-tunnel": {
13083
13087
  parameters: {
13084
13088
  query?: never;
@@ -188,9 +188,9 @@ export const operations = [
188
188
  { name: "coolify_execute_scheduled_task_by_service_uuid", method: "POST", path: "/services/{uuid}/scheduled-tasks/{task_uuid}/execute", description: "Execute Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
189
189
  { name: "coolify_list_private_keys", method: "GET", path: "/security/keys", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "private_key": z.string().optional(), "public_key": z.string().describe("The public key of the private key.").optional(), "fingerprint": z.string().describe("The fingerprint of the private key.").optional(), "is_git_related": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Private Key model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
190
190
  { name: "coolify_create_private_key", method: "POST", path: "/security/keys", description: "Create", inputSchema: z.object({ body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
191
- { name: "coolify_update_private_key", method: "PATCH", path: "/security/keys", description: "Update", inputSchema: z.object({ body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
192
191
  { name: "coolify_get_private_key_by_uuid", method: "GET", path: "/security/keys/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "private_key": z.string().optional(), "public_key": z.string().describe("The public key of the private key.").optional(), "fingerprint": z.string().describe("The fingerprint of the private key.").optional(), "is_git_related": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Private Key model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
193
192
  { name: "coolify_delete_private_key_by_uuid", method: "DELETE", path: "/security/keys/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
193
+ { name: "coolify_update_private_key", method: "PATCH", path: "/security/keys/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
194
194
  { name: "coolify_get_server_cloudflare_tunnel", method: "GET", path: "/servers/{uuid}/cloudflare-tunnel", description: "Get Cloudflare Tunnel settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "is_cloudflare_tunnel": z.boolean().optional(), "ip": z.string().optional(), "ip_previous": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
195
195
  { name: "coolify_update_server_cloudflare_tunnel", method: "PATCH", path: "/servers/{uuid}/cloudflare-tunnel", description: "Update Cloudflare Tunnel settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "is_cloudflare_tunnel": z.boolean().optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
196
196
  { name: "coolify_enable_server_cloudflare_tunnel", method: "POST", path: "/servers/{uuid}/cloudflare-tunnel/enable", description: "Enable Cloudflare Tunnel (manual)", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
@@ -15290,70 +15290,6 @@
15290
15290
  "bearerAuth": []
15291
15291
  }
15292
15292
  ]
15293
- },
15294
- "patch": {
15295
- "tags": [
15296
- "Private Keys"
15297
- ],
15298
- "summary": "Update",
15299
- "description": "Update a private key.",
15300
- "operationId": "update-private-key",
15301
- "requestBody": {
15302
- "required": true,
15303
- "content": {
15304
- "application/json": {
15305
- "schema": {
15306
- "required": [
15307
- "private_key"
15308
- ],
15309
- "properties": {
15310
- "name": {
15311
- "type": "string"
15312
- },
15313
- "description": {
15314
- "type": "string"
15315
- },
15316
- "private_key": {
15317
- "type": "string"
15318
- }
15319
- },
15320
- "type": "object",
15321
- "additionalProperties": false
15322
- }
15323
- }
15324
- }
15325
- },
15326
- "responses": {
15327
- "201": {
15328
- "description": "The updated private key's UUID.",
15329
- "content": {
15330
- "application/json": {
15331
- "schema": {
15332
- "properties": {
15333
- "uuid": {
15334
- "type": "string"
15335
- }
15336
- },
15337
- "type": "object"
15338
- }
15339
- }
15340
- }
15341
- },
15342
- "400": {
15343
- "$ref": "#/components/responses/400"
15344
- },
15345
- "401": {
15346
- "$ref": "#/components/responses/401"
15347
- },
15348
- "422": {
15349
- "$ref": "#/components/responses/422"
15350
- }
15351
- },
15352
- "security": [
15353
- {
15354
- "bearerAuth": []
15355
- }
15356
- ]
15357
15293
  }
15358
15294
  },
15359
15295
  "/security/keys/{uuid}": {
@@ -15468,6 +15404,84 @@
15468
15404
  "bearerAuth": []
15469
15405
  }
15470
15406
  ]
15407
+ },
15408
+ "patch": {
15409
+ "tags": [
15410
+ "Private Keys"
15411
+ ],
15412
+ "summary": "Update",
15413
+ "description": "Update a private key.",
15414
+ "operationId": "update-private-key",
15415
+ "requestBody": {
15416
+ "required": true,
15417
+ "content": {
15418
+ "application/json": {
15419
+ "schema": {
15420
+ "required": [
15421
+ "private_key"
15422
+ ],
15423
+ "properties": {
15424
+ "name": {
15425
+ "type": "string"
15426
+ },
15427
+ "description": {
15428
+ "type": "string"
15429
+ },
15430
+ "private_key": {
15431
+ "type": "string"
15432
+ }
15433
+ },
15434
+ "type": "object",
15435
+ "additionalProperties": false
15436
+ }
15437
+ }
15438
+ }
15439
+ },
15440
+ "responses": {
15441
+ "201": {
15442
+ "description": "The updated private key's UUID.",
15443
+ "content": {
15444
+ "application/json": {
15445
+ "schema": {
15446
+ "properties": {
15447
+ "uuid": {
15448
+ "type": "string"
15449
+ }
15450
+ },
15451
+ "type": "object"
15452
+ }
15453
+ }
15454
+ }
15455
+ },
15456
+ "400": {
15457
+ "$ref": "#/components/responses/400"
15458
+ },
15459
+ "401": {
15460
+ "$ref": "#/components/responses/401"
15461
+ },
15462
+ "404": {
15463
+ "$ref": "#/components/responses/404"
15464
+ },
15465
+ "422": {
15466
+ "$ref": "#/components/responses/422"
15467
+ }
15468
+ },
15469
+ "security": [
15470
+ {
15471
+ "bearerAuth": []
15472
+ }
15473
+ ],
15474
+ "parameters": [
15475
+ {
15476
+ "name": "uuid",
15477
+ "in": "path",
15478
+ "description": "Private Key UUID",
15479
+ "required": true,
15480
+ "schema": {
15481
+ "type": "string"
15482
+ }
15483
+ }
15484
+ ]
15471
15485
  }
15472
15486
  },
15473
15487
  "/servers/{uuid}/cloudflare-tunnel": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jurislm/coolify-plugin",
3
- "version": "4.0.11",
3
+ "version": "4.0.12",
4
4
  "description": "Portable local stdio MCP plugin for Coolify",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "coolify-plugin",
4
- "version": "4.0.11",
4
+ "version": "4.0.12",
5
5
  "description": "Portable Coolify MCP plugin with local stdio tools generated from the official OpenAPI contract.",
6
6
  "author": {
7
7
  "name": "JurisLM",