@fluentcommerce/fc-connect-sdk 0.1.48 → 0.1.52

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.
Files changed (47) hide show
  1. package/CHANGELOG.md +506 -379
  2. package/README.md +343 -0
  3. package/dist/cjs/clients/fluent-client.js +110 -14
  4. package/dist/cjs/data-sources/s3-data-source.js +1 -1
  5. package/dist/cjs/data-sources/sftp-data-source.js +1 -1
  6. package/dist/cjs/index.d.ts +1 -1
  7. package/dist/cjs/services/extraction/extraction-orchestrator.d.ts +4 -1
  8. package/dist/cjs/services/extraction/extraction-orchestrator.js +84 -11
  9. package/dist/cjs/types/index.d.ts +79 -10
  10. package/dist/cjs/versori/fluent-versori-client.d.ts +4 -1
  11. package/dist/cjs/versori/fluent-versori-client.js +131 -13
  12. package/dist/esm/clients/fluent-client.js +110 -14
  13. package/dist/esm/data-sources/s3-data-source.js +1 -1
  14. package/dist/esm/data-sources/sftp-data-source.js +1 -1
  15. package/dist/esm/index.d.ts +1 -1
  16. package/dist/esm/services/extraction/extraction-orchestrator.d.ts +4 -1
  17. package/dist/esm/services/extraction/extraction-orchestrator.js +84 -11
  18. package/dist/esm/types/index.d.ts +79 -10
  19. package/dist/esm/versori/fluent-versori-client.d.ts +4 -1
  20. package/dist/esm/versori/fluent-versori-client.js +131 -13
  21. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  22. package/dist/tsconfig.tsbuildinfo +1 -1
  23. package/dist/tsconfig.types.tsbuildinfo +1 -1
  24. package/dist/types/index.d.ts +1 -1
  25. package/dist/types/services/extraction/extraction-orchestrator.d.ts +4 -1
  26. package/dist/types/types/index.d.ts +79 -10
  27. package/dist/types/versori/fluent-versori-client.d.ts +4 -1
  28. package/docs/02-CORE-GUIDES/api-reference/event-api-input-output-reference.md +478 -18
  29. package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-01-client-api.md +83 -0
  30. package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-types.md +52 -0
  31. package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-partial-responses.md +212 -0
  32. package/docs/02-CORE-GUIDES/api-reference/readme.md +1 -1
  33. package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-08-extraction-orchestrator.md +68 -4
  34. package/docs/02-CORE-GUIDES/mapping/modules/mapping-01-foundations.md +450 -448
  35. package/docs/02-CORE-GUIDES/mapping/modules/mapping-02-quick-start.md +476 -474
  36. package/docs/02-CORE-GUIDES/mapping/modules/mapping-03-schema-validation.md +464 -462
  37. package/docs/02-CORE-GUIDES/mapping/modules/mapping-05-advanced-patterns.md +1366 -1364
  38. package/docs/readme.md +245 -245
  39. package/package.json +17 -6
  40. package/docs/versori-apis/ACTIVATIONS-AND-VARIABLES-GUIDE.md +0 -60
  41. package/docs/versori-apis/JWT-GENERATION-GUIDE.md +0 -94
  42. package/docs/versori-apis/QUICK-WORKFLOW.md +0 -293
  43. package/docs/versori-apis/README.md +0 -73
  44. package/docs/versori-apis/VERSORI-PLATFORM-ARCHITECTURE.md +0 -880
  45. package/docs/versori-apis/Versori-Platform-API.postman_collection.json +0 -2925
  46. package/docs/versori-apis/Versori-Platform-API.postman_environment.example.json +0 -62
  47. package/docs/versori-apis/Versori-Platform-API.postman_environment.json +0 -178
@@ -1,2925 +0,0 @@
1
- {
2
- "info": {
3
- "_postman_id": "versori-platform-api-organized",
4
- "name": "Versori Platform API",
5
- "description": "Organized collection of Versori Platform API endpoints matching the documentation structure.",
6
- "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
7
- },
8
- "item": [
9
- {
10
- "name": "projects",
11
- "description": "Manage projects and their configurations",
12
- "item": [
13
- {
14
- "name": "List Projects",
15
- "request": {
16
- "method": "GET",
17
- "header": [],
18
- "url": {
19
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects",
20
- "host": [
21
- "{{baseUrl}}"
22
- ],
23
- "path": [
24
- "o",
25
- "{{organisation_id}}",
26
- "projects"
27
- ]
28
- },
29
- "description": "**List all projects in the organization**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** Get all projects accessible to your organization. Use this as a starting point to find project IDs for further operations.\n\n**Response:** Array of project objects with:\n- `id` - Project identifier\n- `name` - Project name\n- `environments` - Available deployment environments\n- `connectionTemplates` - Connection template configurations\n\n**Related Endpoints:**\n- `GET /projects/{id}` - Get specific project details\n- `POST /projects` - Create new project"
30
- }
31
- },
32
- {
33
- "name": "Get Project",
34
- "request": {
35
- "method": "GET",
36
- "header": [],
37
- "url": {
38
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}",
39
- "host": [
40
- "{{baseUrl}}"
41
- ],
42
- "path": [
43
- "o",
44
- "{{organisation_id}}",
45
- "projects",
46
- "{{project_id}}"
47
- ]
48
- },
49
- "description": "**Get detailed information about a specific project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** Retrieve complete project configuration including files, connection templates, and environment settings.\n\n**Response includes:**\n- Project metadata (name, description, created/updated timestamps)\n- `environments[]` - Deployment environments (save `environments[0].id` as `environment_id`)\n- `connectionTemplates[]` - Connection templates (needed for activations)\n- Current file list\n- Variable schema configuration\n\n**Important:** Before activating users, you must get connection template IDs from this response.\n\n**Related Endpoints:**\n- `GET /projects/{id}/connection-templates` - Get connection templates\n- `GET /projects/{id}/variables` - Get variable schema\n- `PUT /projects/{id}/deploy` - Deploy project"
50
- }
51
- },
52
- {
53
- "name": "Create Project",
54
- "request": {
55
- "method": "POST",
56
- "header": [
57
- {
58
- "key": "Content-Type",
59
- "value": "application/json"
60
- }
61
- ],
62
- "body": {
63
- "mode": "raw",
64
- "raw": "{\n \"name\": \"My Project\"\n}"
65
- },
66
- "url": {
67
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects",
68
- "host": [
69
- "{{baseUrl}}"
70
- ],
71
- "path": [
72
- "o",
73
- "{{organisation_id}}",
74
- "projects"
75
- ]
76
- },
77
- "description": "**Create a new project in the organization**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Body:**\n```json\n{\n \"name\": \"My Integration Project\",\n \"description\": \"Optional description\"\n}\n```\n\n**Purpose:** Initialize a new integration project. After creation, you'll need to:\n1. Upload files (`PUT /projects/{id}/files`)\n2. Configure connection templates\n3. Set variable schema (`PUT /projects/{id}/variables`)\n4. Deploy to environment\n\n**Response:** New project object with generated `id`\n\n**Related Endpoints:**\n- `PUT /projects/{id}/files` - Upload project code\n- `PUT /projects/{id}/variables` - Set variable schema\n- `PUT /projects/{id}/deploy` - Deploy project"
78
- }
79
- },
80
- {
81
- "name": "Update Project",
82
- "request": {
83
- "method": "PUT",
84
- "header": [
85
- {
86
- "key": "Content-Type",
87
- "value": "application/json"
88
- }
89
- ],
90
- "body": {
91
- "mode": "raw",
92
- "raw": "{\n \"name\": \"Updated Project Name\"\n}"
93
- },
94
- "url": {
95
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}",
96
- "host": [
97
- "{{baseUrl}}"
98
- ],
99
- "path": [
100
- "o",
101
- "{{organisation_id}}",
102
- "projects",
103
- "{{project_id}}"
104
- ]
105
- },
106
- "description": "**Update project metadata (name, description)**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Body:**\n```json\n{\n \"name\": \"Updated Project Name\",\n \"description\": \"Updated description\"\n}\n```\n\n**Important:** This endpoint only updates project metadata. It does NOT:\n- Modify project files (use `PUT /projects/{id}/files`)\n- Redeploy the project (use `PUT /projects/{id}/deploy`)\n- Change connection templates or variables\n\n**Related Endpoints:**\n- `PUT /projects/{id}/files` - Update code files\n- `PUT /projects/{id}/deploy` - Deploy changes"
107
- }
108
- },
109
- {
110
- "name": "Delete Project",
111
- "request": {
112
- "method": "DELETE",
113
- "header": [],
114
- "url": {
115
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}",
116
- "host": [
117
- "{{baseUrl}}"
118
- ],
119
- "path": [
120
- "o",
121
- "{{organisation_id}}",
122
- "projects",
123
- "{{project_id}}"
124
- ]
125
- },
126
- "description": "**Permanently delete a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Warning:** This action is irreversible and will:\n- Delete all project files and configuration\n- Remove all deployments\n- Delete associated connection templates\n- Remove all activations for this project\n\n**Use `POST /projects/{id}/clone` first** if you want to create a backup before deletion.\n\n**Related Endpoints:**\n- `POST /projects/{id}/clone` - Clone project before deleting"
127
- }
128
- },
129
- {
130
- "name": "Get Project Variables Schema",
131
- "request": {
132
- "method": "GET",
133
- "header": [],
134
- "url": {
135
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/variables",
136
- "host": [
137
- "{{baseUrl}}"
138
- ],
139
- "path": [
140
- "o",
141
- "{{organisation_id}}",
142
- "projects",
143
- "{{project_id}}",
144
- "variables"
145
- ]
146
- },
147
- "description": "**Get the JSON schema defining allowed dynamic variables for this project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** Retrieve the variable schema that validates activation variables. This schema defines:\n- Available variable names\n- Data types (`string`, `number`, `boolean`, etc.)\n- Required vs optional variables\n- Validation rules and descriptions\n\n**Response Example:**\n```json\n{\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\",\n \"description\": \"API key for external service\"\n },\n \"accountId\": {\n \"type\": \"string\"\n },\n \"enableDebug\": {\n \"type\": \"boolean\",\n \"default\": false\n }\n },\n \"required\": [\"apiKey\", \"accountId\"]\n}\n```\n\n**When to Use:** Before creating/updating activations to understand which variables are required.\n\n**Related Endpoints:**\n- `PUT /projects/{id}/variables` - Set/update schema\n- `PATCH /activations/{id}/variables` - Set activation variables (validated against this schema)"
148
- }
149
- },
150
- {
151
- "name": "Set Project Variables Schema",
152
- "request": {
153
- "method": "PUT",
154
- "header": [
155
- {
156
- "key": "Content-Type",
157
- "value": "application/json"
158
- }
159
- ],
160
- "body": {
161
- "mode": "raw",
162
- "raw": "{\n \"properties\": {\n \"myVar\": {\n \"type\": \"string\"\n }\n }\n}"
163
- },
164
- "url": {
165
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/variables",
166
- "host": [
167
- "{{baseUrl}}"
168
- ],
169
- "path": [
170
- "o",
171
- "{{organisation_id}}",
172
- "projects",
173
- "{{project_id}}",
174
- "variables"
175
- ]
176
- },
177
- "description": "**Define or replace the complete variable schema for a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Body:** JSON Schema object\n```json\n{\n \"properties\": {\n \"apiKey\": {\n \"type\": \"string\",\n \"description\": \"API key for authentication\"\n },\n \"baseUrl\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"timeout\": {\n \"type\": \"number\",\n \"default\": 30000\n }\n },\n \"required\": [\"apiKey\", \"baseUrl\"]\n}\n```\n\n**Important:**\n- This is a **complete replacement** (not a merge)\n- Variables must match JSON Schema specification\n- All existing activations will be validated against new schema\n- Invalid activations will need variable updates to become valid\n\n**Use `PATCH /projects/{id}/variables` for partial updates**\n\n**Related Endpoints:**\n- `PATCH /projects/{id}/variables` - Partial schema update\n- `GET /projects/{id}/variables` - View current schema"
178
- }
179
- },
180
- {
181
- "name": "Patch Project Variables Schema",
182
- "request": {
183
- "method": "PATCH",
184
- "header": [
185
- {
186
- "key": "Content-Type",
187
- "value": "application/json"
188
- }
189
- ],
190
- "body": {
191
- "mode": "raw",
192
- "raw": "{\n \"properties\": {\n \"myVar\": {\n \"type\": \"string\"\n }\n }\n}"
193
- },
194
- "url": {
195
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/variables",
196
- "host": [
197
- "{{baseUrl}}"
198
- ],
199
- "path": [
200
- "o",
201
- "{{organisation_id}}",
202
- "projects",
203
- "{{project_id}}",
204
- "variables"
205
- ]
206
- },
207
- "description": "**Partially update the project's variable schema**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Body:** Partial JSON Schema (merged with existing)\n```json\n{\n \"properties\": {\n \"newVariable\": {\n \"type\": \"string\",\n \"description\": \"New variable description\"\n }\n }\n}\n```\n\n**Behavior:**\n- Merges with existing schema (doesn't replace)\n- New properties are added\n- Existing properties can be updated\n- Properties not mentioned remain unchanged\n\n**Use `PUT /projects/{id}/variables` for complete replacement**\n\n**Related Endpoints:**\n- `PUT /projects/{id}/variables` - Complete schema replacement\n- `GET /projects/{id}/variables` - View current schema"
208
- }
209
- },
210
- {
211
- "name": "Clone Project",
212
- "request": {
213
- "method": "POST",
214
- "header": [],
215
- "url": {
216
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/clone",
217
- "host": [
218
- "{{baseUrl}}"
219
- ],
220
- "path": [
221
- "o",
222
- "{{organisation_id}}",
223
- "projects",
224
- "{{project_id}}",
225
- "clone"
226
- ]
227
- },
228
- "description": "**Create a copy of an existing project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** Duplicate a project for:\n- Creating development/staging versions\n- Template-based project creation\n- Backup before major changes\n\n**What gets copied:**\n- All project files\n- Configuration settings\n- Connection templates\n- Variable schema\n\n**What does NOT get copied:**\n- Deployments (new project is undeployed)\n- Activations\n- Actual connections (only templates)\n- Logs and execution history\n\n**Response:** New project object with unique `id`\n\n**Next Steps:**\n1. Update project name: `PUT /projects/{new_id}`\n2. Modify files if needed: `PUT /projects/{new_id}/files`\n3. Deploy to environment: `PUT /projects/{new_id}/deploy`\n\n**Related Endpoints:**\n- `PUT /projects/{id}` - Update cloned project name\n- `PUT /projects/{id}/deploy` - Deploy cloned project"
229
- }
230
- },
231
- {
232
- "name": "Add Project Sentiment",
233
- "request": {
234
- "method": "POST",
235
- "header": [
236
- {
237
- "key": "Content-Type",
238
- "value": "application/json"
239
- }
240
- ],
241
- "body": {
242
- "mode": "raw",
243
- "raw": "{\n \"sentiment\": \"positive\"\n}"
244
- },
245
- "url": {
246
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/sentiment",
247
- "host": [
248
- "{{baseUrl}}"
249
- ],
250
- "path": [
251
- "o",
252
- "{{organisation_id}}",
253
- "projects",
254
- "{{project_id}}",
255
- "sentiment"
256
- ]
257
- },
258
- "description": "**Add user feedback/sentiment data to project history**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Body:**\n```json\n{\n \"sentiment\": \"positive\",\n \"comment\": \"Optional feedback comment\"\n}\n```\n\n**Purpose:** Track user satisfaction and feedback over time. Sentiment values typically: `positive`, `neutral`, `negative`\n\n**Behavior:**\n- Appends to existing sentiment history (doesn't replace)\n- Includes timestamp automatically\n- Used for analytics and project health monitoring\n\n**Related Endpoints:**\n- `GET /projects/{id}` - View project metadata including sentiment history"
259
- }
260
- },
261
- {
262
- "name": "Get Files",
263
- "request": {
264
- "method": "GET",
265
- "header": [],
266
- "url": {
267
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/files",
268
- "host": [
269
- "{{baseUrl}}"
270
- ],
271
- "path": [
272
- "o",
273
- "{{organisation_id}}",
274
- "projects",
275
- "{{project_id}}",
276
- "files"
277
- ]
278
- },
279
- "description": "**Download all files in the project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** Retrieve current project source code and configuration files.\n\n**Important:** These are the **current files**, which may differ from deployed files if changes were made after last deployment.\n\n**Response:** Array of file objects:\n```json\n[\n {\n \"filename\": \"src/index.ts\",\n \"content\": \"export const handler = ...\"\n },\n {\n \"filename\": \"package.json\",\n \"content\": \"{\\\"name\\\": \\\"my-project\\\"}\"\n }\n]\n```\n\n**Related Endpoints:**\n- `PUT /projects/{id}/files` - Upload/update files\n- `PUT /projects/{id}/deploy` - Deploy files to environment"
280
- }
281
- },
282
- {
283
- "name": "Update Files",
284
- "request": {
285
- "description": "**Upload or update project source code files**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Body:**\n```json\n{\n \"files\": [\n {\n \"filename\": \"src/index.ts\",\n \"content\": \"import { webhook } from '@versori/run';\\n\\nexport const handler = webhook('order', async (ctx) => { ... });\"\n },\n {\n \"filename\": \"package.json\",\n \"content\": \"{\\\"name\\\": \\\"my-integration\\\"}\"\n }\n ],\n \"labels\": {}\n}\n```\n\n**Important:**\n- This **replaces all files** in the project\n- Files not included in the request will be **deleted**\n- Does NOT automatically deploy (use `PUT /projects/{id}/deploy`)\n- Use `PUT /projects/{id}/validate` to check files before deploying\n\n**Workflow:**\n1. Update files with this endpoint\n2. Validate: `PUT /projects/{id}/validate`\n3. Deploy: `PUT /projects/{id}/deploy`\n\n**Related Endpoints:**\n- `GET /projects/{id}/files` - Download current files\n- `PUT /projects/{id}/validate` - Validate files before deploy\n- `PUT /projects/{id}/deploy` - Deploy updated files",
286
- "method": "PUT",
287
- "header": [
288
- {
289
- "key": "Content-Type",
290
- "value": "application/json"
291
- }
292
- ],
293
- "body": {
294
- "mode": "raw",
295
- "raw": "{\n \"files\": [\n {\n \"filename\": \"src/index.ts\",\n \"content\": \"console.log('Hello World');\"\n },\n {\n \"filename\": \"package.json\",\n \"content\": \"{\\\"name\\\": \\\"my-project\\\"}\"\n }\n ],\n \"labels\": {}\n}"
296
- },
297
- "url": {
298
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/files",
299
- "host": [
300
- "{{baseUrl}}"
301
- ],
302
- "path": [
303
- "o",
304
- "{{organisation_id}}",
305
- "projects",
306
- "{{project_id}}",
307
- "files"
308
- ]
309
- }
310
- }
311
- },
312
- {
313
- "name": "Deploy Project",
314
- "request": {
315
- "method": "PUT",
316
- "header": [
317
- {
318
- "key": "Content-Type",
319
- "value": "application/json"
320
- }
321
- ],
322
- "body": {
323
- "mode": "raw",
324
- "raw": "{\n \"environment\": \"production\"\n}"
325
- },
326
- "url": {
327
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/deploy?environment={{environment_id}}",
328
- "host": [
329
- "{{baseUrl}}"
330
- ],
331
- "path": [
332
- "o",
333
- "{{organisation_id}}",
334
- "projects",
335
- "{{project_id}}",
336
- "deploy"
337
- ],
338
- "query": [
339
- {
340
- "key": "environment",
341
- "value": "{{environment_id}}"
342
- }
343
- ]
344
- },
345
- "description": "**Deploy project to a specific environment**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `environment_id` (query parameter or body)\n\n**Purpose:** Deploy the current project files to make them live. This:\n- Builds a Docker container with your code\n- Deploys to specified environment (production/staging/etc)\n- Makes webhooks/schedules active\n- Creates/updates the underlying connector\n\n**Body:**\n```json\n{\n \"environment\": \"production\"\n}\n```\n\n**Important:**\n- Deploys **current files** from `GET /projects/{id}/files`\n- Use `PUT /projects/{id}/validate` first to catch errors\n- Deployment creates environment if it doesn't exist\n- Existing activations remain active with new deployment\n\n**Deployment Process:**\n1. Validates TypeScript code\n2. Builds Docker image\n3. Updates connector configuration\n4. Deploys to environment\n\n**Related Endpoints:**\n- `PUT /projects/{id}/validate` - Validate before deploy\n- `GET /environments` - List available environments\n- `POST /projects/{id}/testing/start` - Test before deploying"
346
- }
347
- },
348
- {
349
- "name": "Deploy Project Version",
350
- "request": {
351
- "method": "PUT",
352
- "header": [
353
- {
354
- "key": "Content-Type",
355
- "value": "application/json"
356
- }
357
- ],
358
- "body": {
359
- "mode": "raw",
360
- "raw": "{\n \"environment\": \"production\"\n}"
361
- },
362
- "url": {
363
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/versions/{{version_id}}/deploy",
364
- "host": [
365
- "{{baseUrl}}"
366
- ],
367
- "path": [
368
- "o",
369
- "{{organisation_id}}",
370
- "projects",
371
- "{{project_id}}",
372
- "versions",
373
- "{{version_id}}",
374
- "deploy"
375
- ]
376
- },
377
- "description": "**Deploy a specific historical version of the project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `version_id`\n\n**Body:**\n```json\n{\n \"environment\": \"production\"\n}\n```\n\n**Purpose:** Roll back to a previous deployment or promote a tested version.\n\n**Behavior:**\n- Deploys files from specific version (not current files)\n- Builds Docker image if not already built for this version\n- Useful for rollbacks and version management\n\n**Use Cases:**\n- Rollback after problematic deployment\n- Promote staging version to production\n- A/B testing different versions\n\n**Related Endpoints:**\n- `GET /projects/{id}/versions` - List available versions\n- `PUT /projects/{id}/deploy` - Deploy current files"
378
- }
379
- },
380
- {
381
- "name": "Start Test Container",
382
- "request": {
383
- "method": "POST",
384
- "header": [],
385
- "url": {
386
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/testing/start",
387
- "host": [
388
- "{{baseUrl}}"
389
- ],
390
- "path": [
391
- "o",
392
- "{{organisation_id}}",
393
- "projects",
394
- "{{project_id}}",
395
- "testing",
396
- "start"
397
- ]
398
- },
399
- "description": "**Start a temporary test environment for the project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** Create an isolated test container to:\n- Test webhooks and schedules without affecting production\n- Validate integration behavior\n- Debug issues in a controlled environment\n\n**Response:** Available triggers (webhooks, schedules, http endpoints)\n```json\n{\n \"triggers\": {\n \"webhooks\": {\n \"orderHandler\": \"https://test.versori.io/...\"\n },\n \"schedules\": {\n \"dailySync\": \"manual-trigger-info\"\n }\n }\n}\n```\n\n**Important:**\n- Test container is temporary (auto-expires)\n- Uses real connections and credentials from activations\n- Logs are available via normal logging endpoints\n\n**Workflow:**\n1. Start test container (this endpoint)\n2. Trigger workflows: `POST /projects/{id}/testing/trigger/{name}`\n3. Check logs: `GET /projects/{id}/logs`\n4. Container auto-stops after timeout\n\n**Related Endpoints:**\n- `POST /projects/{id}/testing/trigger/{name}` - Trigger specific workflow\n- `GET /projects/{id}/logs` - View test execution logs"
400
- }
401
- },
402
- {
403
- "name": "Trigger Workflow",
404
- "request": {
405
- "method": "POST",
406
- "header": [
407
- {
408
- "key": "Content-Type",
409
- "value": "application/json"
410
- }
411
- ],
412
- "body": {
413
- "mode": "raw",
414
- "raw": "{\n \"payload\": {}\n}"
415
- },
416
- "url": {
417
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/testing/trigger/{{trigger_name}}",
418
- "host": [
419
- "{{baseUrl}}"
420
- ],
421
- "path": [
422
- "o",
423
- "{{organisation_id}}",
424
- "projects",
425
- "{{project_id}}",
426
- "testing",
427
- "trigger",
428
- "{{trigger_name}}"
429
- ]
430
- },
431
- "description": "**Manually trigger a specific workflow in test container**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `trigger_name` - Name of webhook/schedule/http handler\n\n**Body:**\n```json\n{\n \"payload\": {\n \"orderId\": \"12345\",\n \"customData\": \"test\"\n }\n}\n```\n\n**Purpose:** Test individual workflows with custom payloads.\n\n**Prerequisites:**\n1. Start test container first: `POST /projects/{id}/testing/start`\n2. Get available trigger names from start response\n\n**Use Cases:**\n- Test webhook handlers with sample data\n- Manually trigger scheduled tasks\n- Debug integration logic\n\n**Response:** Workflow execution response (depends on implementation)\n\n**Related Endpoints:**\n- `POST /projects/{id}/testing/start` - Start test container (required first)\n- `GET /projects/{id}/logs` - View execution logs"
432
- }
433
- },
434
- {
435
- "name": "Validate Files",
436
- "request": {
437
- "method": "PUT",
438
- "header": [
439
- {
440
- "key": "Content-Type",
441
- "value": "application/json"
442
- }
443
- ],
444
- "body": {
445
- "mode": "raw",
446
- "raw": "{\n \"files\": {}\n}"
447
- },
448
- "url": {
449
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/validate",
450
- "host": [
451
- "{{baseUrl}}"
452
- ],
453
- "path": [
454
- "o",
455
- "{{organisation_id}}",
456
- "projects",
457
- "{{project_id}}",
458
- "validate"
459
- ]
460
- },
461
- "description": "**Validate project files without deploying**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Body:**\n```json\n{\n \"files\": {\n \"src/index.ts\": \"import { webhook } from '@versori/run'; ...\"\n }\n}\n```\n\n**Purpose:** Check for TypeScript errors and Deno compatibility issues before deployment.\n\n**Validation Checks:**\n- TypeScript type checking (`deno check`)\n- Import resolution\n- Syntax errors\n- Runtime compatibility\n\n**Response:**\n- Success: Empty or validation OK message\n- Errors: Detailed TypeScript/Deno error messages\n\n**Best Practice:** Always validate before deploying to catch errors early.\n\n**Workflow:**\n1. Update files: `PUT /projects/{id}/files`\n2. **Validate: This endpoint**\n3. Deploy: `PUT /projects/{id}/deploy`\n\n**Related Endpoints:**\n- `PUT /projects/{id}/files` - Upload files to validate\n- `PUT /projects/{id}/deploy` - Deploy after successful validation"
462
- }
463
- },
464
- {
465
- "name": "Get Project Logs",
466
- "request": {
467
- "description": "**Retrieve execution logs for a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Query Parameters:**\n- `project_env` (required) - Environment name: \"production\", \"staging\", etc.\n- `start` - Start time (ISO 8601 or Unix timestamp)\n- `end` - End time (ISO 8601 or Unix timestamp)\n- `limit` - Number of logs to return (max varies by plan)\n- `nextToken` - Pagination token from previous response\n\n**Example:**\n```\nGET /o/{org}/projects/{id}/logs?project_env=production&start=2025-01-01T00:00:00Z&end=2025-01-19T23:59:59Z&limit=500\n```\n\n**Time Format Options:**\n- ISO 8601: `2025-01-15T10:30:00Z`\n- Unix timestamp: `1705315800000`\n\n**Response:**\n```json\n{\n \"logs\": [\n {\n \"timestamp\": \"2025-01-15T10:30:00Z\",\n \"level\": \"info\",\n \"message\": \"Processing order 12345\",\n \"metadata\": {}\n }\n ],\n \"nextToken\": \"pagination_token_here\"\n}\n```\n\n**Pagination:**\nIf more logs exist, response includes `nextToken`. Use it in next request:\n```\nGET ...&nextToken=pagination_token_here\n```\n\n**Related Endpoints:**\n- `GET /logs/{id}` - Get specific log entry\n- `POST /projects/{id}/testing/start` - Generate test logs",
468
- "method": "GET",
469
- "header": [],
470
- "url": {
471
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/logs?environment={{environment_id}}&start={{start_time}}&end={{end_time}}&search={{search_text}}",
472
- "host": [
473
- "{{baseUrl}}"
474
- ],
475
- "path": [
476
- "o",
477
- "{{organisation_id}}",
478
- "projects",
479
- "{{project_id}}",
480
- "logs"
481
- ],
482
- "query": [
483
- {
484
- "key": "environment",
485
- "value": "{{environment_id}}",
486
- "description": "Filter by environment",
487
- "disabled": true
488
- },
489
- {
490
- "key": "start",
491
- "value": "{{start_time}}",
492
- "description": "Start time (ISO 8601)",
493
- "disabled": true
494
- },
495
- {
496
- "key": "end",
497
- "value": "{{end_time}}",
498
- "description": "End time (ISO 8601)",
499
- "disabled": true
500
- },
501
- {
502
- "key": "search",
503
- "value": "{{search_text}}",
504
- "description": "Search text",
505
- "disabled": true
506
- },
507
- {
508
- "key": "latest",
509
- "value": "false",
510
- "description": "Return only latest logs",
511
- "disabled": true
512
- },
513
- {
514
- "key": "order",
515
- "value": "desc",
516
- "description": "asc or desc",
517
- "disabled": true
518
- }
519
- ]
520
- }
521
- }
522
- },
523
- {
524
- "name": "List Traces",
525
- "request": {
526
- "method": "GET",
527
- "header": [],
528
- "url": {
529
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/traces?environment={{environment_id}}",
530
- "host": [
531
- "{{baseUrl}}"
532
- ],
533
- "path": [
534
- "o",
535
- "{{organisation_id}}",
536
- "projects",
537
- "{{project_id}}",
538
- "traces"
539
- ],
540
- "query": [
541
- {
542
- "key": "environment",
543
- "value": "{{environment_id}}"
544
- }
545
- ]
546
- },
547
- "description": "**List execution traces for debugging**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** View execution traces for workflow debugging and monitoring.\n\n**Response:** Array of trace objects with execution details, timing, and errors.\n\n**Related Endpoints:**\n- `GET /traces/{id}` - Get specific trace details"
548
- }
549
- },
550
- {
551
- "name": "Get Trace",
552
- "request": {
553
- "method": "GET",
554
- "header": [],
555
- "url": {
556
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/traces/{{trace_id}}",
557
- "host": [
558
- "{{baseUrl}}"
559
- ],
560
- "path": [
561
- "o",
562
- "{{organisation_id}}",
563
- "projects",
564
- "{{project_id}}",
565
- "traces",
566
- "{{trace_id}}"
567
- ]
568
- },
569
- "description": "**Get detailed information about a specific execution trace**\n\n**Required Parameters:**\n- `organisation_id`\n- `trace_id`\n\n**Purpose:** View complete execution trace including steps, timing, errors, and data flow.\n\n**Related Endpoints:**\n- `GET /project/{id}/logs` - View logs for the same execution"
570
- }
571
- },
572
- {
573
- "name": "Get Integration Flows",
574
- "request": {
575
- "method": "GET",
576
- "header": [],
577
- "url": {
578
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/workflows",
579
- "host": [
580
- "{{baseUrl}}"
581
- ],
582
- "path": [
583
- "o",
584
- "{{organisation_id}}",
585
- "projects",
586
- "{{project_id}}",
587
- "workflows"
588
- ]
589
- },
590
- "description": "**List all integration flows for a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** Retrieve workflow definitions and configurations.\n\n**Related Endpoints:**\n- `GET /flows/{id}` - Get specific flow details"
591
- }
592
- },
593
- {
594
- "name": "Get Integration Flow",
595
- "request": {
596
- "method": "GET",
597
- "header": [],
598
- "url": {
599
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/workflows/{{flow_name}}",
600
- "host": [
601
- "{{baseUrl}}"
602
- ],
603
- "path": [
604
- "o",
605
- "{{organisation_id}}",
606
- "projects",
607
- "{{project_id}}",
608
- "workflows",
609
- "{{flow_name}}"
610
- ]
611
- },
612
- "description": "**Get details of a specific integration flow**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `flow_id`\n\n**Purpose:** View flow configuration, steps, and metadata.\n\n**Related Endpoints:**\n- `PUT /flows/{id}` - Update flow configuration"
613
- }
614
- },
615
- {
616
- "name": "Update Integration Flow",
617
- "request": {
618
- "method": "PUT",
619
- "header": [
620
- {
621
- "key": "Content-Type",
622
- "value": "application/json"
623
- }
624
- ],
625
- "body": {
626
- "mode": "raw",
627
- "raw": "{\n \"name\": \"{{flow_name}}\",\n \"steps\": []\n}"
628
- },
629
- "url": {
630
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/workflows/{{flow_name}}",
631
- "host": [
632
- "{{baseUrl}}"
633
- ],
634
- "path": [
635
- "o",
636
- "{{organisation_id}}",
637
- "projects",
638
- "{{project_id}}",
639
- "workflows",
640
- "{{flow_name}}"
641
- ]
642
- },
643
- "description": "**Update integration flow configuration**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `flow_id`\n\n**Purpose:** Modify flow steps, configuration, or metadata.\n\n**Related Endpoints:**\n- `GET /flows/{id}` - View current flow"
644
- }
645
- },
646
- {
647
- "name": "Delete Flow",
648
- "request": {
649
- "method": "DELETE",
650
- "header": [],
651
- "url": {
652
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/workflows/{{flow_name}}",
653
- "host": [
654
- "{{baseUrl}}"
655
- ],
656
- "path": [
657
- "o",
658
- "{{organisation_id}}",
659
- "projects",
660
- "{{project_id}}",
661
- "workflows",
662
- "{{flow_name}}"
663
- ]
664
- },
665
- "description": "**Delete an integration flow**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `flow_id`\n\n**Warning:** This permanently removes the flow configuration.\n\n**Related Endpoints:**\n- `GET /flows` - List remaining flows"
666
- }
667
- },
668
- {
669
- "name": "Suspend Project",
670
- "request": {
671
- "method": "POST",
672
- "header": [],
673
- "url": {
674
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/suspend?environment={{environment_id}}",
675
- "host": [
676
- "{{baseUrl}}"
677
- ],
678
- "path": [
679
- "o",
680
- "{{organisation_id}}",
681
- "projects",
682
- "{{project_id}}",
683
- "suspend"
684
- ],
685
- "query": [
686
- {
687
- "key": "environment",
688
- "value": "{{environment_id}}"
689
- }
690
- ]
691
- },
692
- "description": "**Suspend a project deployment**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** Temporarily disable all workflows without deleting the project.\n\n**Effect:**\n- Webhooks become unavailable\n- Schedules stop running\n- Activations remain but are inactive\n\n**Related Endpoints:**\n- `PUT /projects/{id}/deploy` - Resume project"
693
- }
694
- },
695
- {
696
- "name": "Update Environment Config",
697
- "request": {
698
- "method": "PATCH",
699
- "header": [
700
- {
701
- "key": "Content-Type",
702
- "value": "application/json"
703
- }
704
- ],
705
- "body": {
706
- "mode": "raw",
707
- "raw": "{\n \"config\": {\n \"nodeVersion\": \"18\",\n \"memory\": 1024\n }\n}"
708
- },
709
- "url": {
710
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/config",
711
- "host": [
712
- "{{baseUrl}}"
713
- ],
714
- "path": [
715
- "o",
716
- "{{organisation_id}}",
717
- "environments",
718
- "{{environment_id}}",
719
- "config"
720
- ]
721
- },
722
- "description": "**Update environment-level configuration settings**\n\n**Required Parameters:**\n- `organisation_id`\n- `environment_id`\n\n**Body:**\n```json\n{\n \"config\": {\n \"logLevel\": \"debug\",\n \"timeout\": 30000,\n \"customSetting\": \"value\"\n }\n}\n```\n\n**Purpose:** Configure environment-specific settings that apply to all activations.\n\n**Important:**\n- Changes apply to all activations in this environment\n- Does NOT trigger redeployment (settings take effect immediately)\n- Different from project variables (which are per-activation)\n\n**Related Endpoints:**\n- `GET /environments/{id}` - View current config\n- `GET /projects/{id}/variables` - For per-activation variables"
723
- }
724
- }
725
- ]
726
- },
727
- {
728
- "name": "connections",
729
- "description": "Manage connections to external systems",
730
- "item": [
731
- {
732
- "name": "List Connections",
733
- "request": {
734
- "method": "GET",
735
- "header": [],
736
- "url": {
737
- "raw": "{{baseUrl}}/o/{{organisation_id}}/connections",
738
- "host": [
739
- "{{baseUrl}}"
740
- ],
741
- "path": [
742
- "o",
743
- "{{organisation_id}}",
744
- "connections"
745
- ]
746
- },
747
- "description": "**List all connections in the organization**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** Get available connections to use when activating users.\n\n**Response:** Array of connection objects\n```json\n[\n {\n \"id\": \"conn_s3_customer_1\",\n \"name\": \"Customer S3 Bucket\",\n \"type\": \"s3\",\n \"credentials\": {\n \"accessKeyId\": \"AKIA...\",\n \"region\": \"us-east-1\"\n },\n \"createdAt\": \"2025-01-01T00:00:00Z\"\n }\n]\n```\n\n**Use Cases:**\n- Find existing connection to reuse for new activation\n- Audit active connections\n- Check connection configuration\n\n**Workflow for Activations:**\n1. List connections (this endpoint)\n2. Find matching connection by `type` and `name`\n3. Use `connection.id` as `existingConnectionId` in activation\n\n**Related Endpoints:**\n- `POST /connections` - Create new connection\n- `GET /connections/{id}` - Get specific connection\n- `POST /activations` - Use connection in activation"
748
- }
749
- },
750
- {
751
- "name": "Get Connection",
752
- "request": {
753
- "method": "GET",
754
- "header": [],
755
- "url": {
756
- "raw": "{{baseUrl}}/o/{{organisation_id}}/connections/{{connection_id}}",
757
- "host": [
758
- "{{baseUrl}}"
759
- ],
760
- "path": [
761
- "o",
762
- "{{organisation_id}}",
763
- "connections",
764
- "{{connection_id}}"
765
- ]
766
- },
767
- "description": "**Get detailed information about a specific connection**\n\n**Required Parameters:**\n- `organisation_id`\n- `connection_id`\n\n**Purpose:** View connection configuration and credentials.\n\n**Response:**\n```json\n{\n \"id\": \"conn_abc123\",\n \"name\": \"Production S3\",\n \"type\": \"s3\",\n \"credentials\": {\n \"accessKeyId\": \"AKIA...\",\n \"secretAccessKey\": \"***\", // May be redacted\n \"region\": \"us-east-1\"\n },\n \"metadata\": {},\n \"createdAt\": \"2025-01-01T00:00:00Z\",\n \"updatedAt\": \"2025-01-15T00:00:00Z\"\n}\n```\n\n**Security Note:** Sensitive credentials may be partially redacted in the response.\n\n**Related Endpoints:**\n- `PUT /connections/{id}` - Update connection\n- `POST /connections/{id}/test` - Test connection validity"
768
- }
769
- },
770
- {
771
- "name": "Create Connection",
772
- "request": {
773
- "method": "POST",
774
- "header": [
775
- {
776
- "key": "Content-Type",
777
- "value": "application/json"
778
- }
779
- ],
780
- "body": {
781
- "mode": "raw",
782
- "raw": "{\n \"name\": \"My Connection\",\n \"type\": \"http\",\n \"credentials\": {}\n}"
783
- },
784
- "url": {
785
- "raw": "{{baseUrl}}/o/{{organisation_id}}/connections",
786
- "host": [
787
- "{{baseUrl}}"
788
- ],
789
- "path": [
790
- "o",
791
- "{{organisation_id}}",
792
- "connections"
793
- ]
794
- },
795
- "description": "**Create a new connection to an external service**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Body:**\n```json\n{\n \"name\": \"Customer AWS S3\",\n \"type\": \"s3\",\n \"credentials\": {\n \"accessKeyId\": \"AKIA...\",\n \"secretAccessKey\": \"...\",\n \"region\": \"us-east-1\"\n },\n \"metadata\": {\n \"customField\": \"value\"\n }\n}\n```\n\n**Common Connection Types:**\n- `s3` - AWS S3 storage\n- `sftp` - SFTP server\n- `http` - HTTP/REST API\n- `database` - Database connection\n\n**Credentials Structure by Type:**\n\n**S3:**\n```json\n{\n \"accessKeyId\": \"AKIA...\",\n \"secretAccessKey\": \"...\",\n \"region\": \"us-east-1\",\n \"bucket\": \"my-bucket\"\n}\n```\n\n**SFTP:**\n```json\n{\n \"host\": \"sftp.example.com\",\n \"port\": 22,\n \"username\": \"user\",\n \"password\": \"pass\"\n}\n```\n\n**HTTP:**\n```json\n{\n \"baseUrl\": \"https://api.example.com\",\n \"apiKey\": \"...\",\n \"headers\": {}\n}\n```\n\n**Response:** Connection object with generated `id`\n\n**Next Steps:**\n1. Create connection (this endpoint)\n2. Test connection: `POST /connections/{id}/test`\n3. Use in activation: `POST /activations`\n\n**Related Endpoints:**\n- `POST /connections/{id}/test` - Verify connection works\n- `POST /activations` - Use connection in activation"
796
- }
797
- },
798
- {
799
- "name": "Update Connection",
800
- "request": {
801
- "method": "PUT",
802
- "header": [
803
- {
804
- "key": "Content-Type",
805
- "value": "application/json"
806
- }
807
- ],
808
- "body": {
809
- "mode": "raw",
810
- "raw": "{\n \"name\": \"Updated Connection\"\n}"
811
- },
812
- "url": {
813
- "raw": "{{baseUrl}}/o/{{organisation_id}}/connections/{{connection_id}}",
814
- "host": [
815
- "{{baseUrl}}"
816
- ],
817
- "path": [
818
- "o",
819
- "{{organisation_id}}",
820
- "connections",
821
- "{{connection_id}}"
822
- ]
823
- },
824
- "description": "**Update connection credentials or configuration**\n\n**Required Parameters:**\n- `organisation_id`\n- `connection_id`\n\n**Body:**\n```json\n{\n \"name\": \"Updated Name\",\n \"credentials\": {\n \"accessKeyId\": \"NEW_KEY\",\n \"secretAccessKey\": \"NEW_SECRET\"\n }\n}\n```\n\n**Purpose:** Rotate credentials or update connection settings.\n\n**Important:**\n- All activations using this connection will use new credentials immediately\n- Test connection after updating: `POST /connections/{id}/test`\n- Partial updates supported (only send fields to change)\n\n**Related Endpoints:**\n- `POST /connections/{id}/test` - Test updated credentials\n- `GET /activations` - See which activations use this connection"
825
- }
826
- },
827
- {
828
- "name": "Delete Connection",
829
- "request": {
830
- "method": "DELETE",
831
- "header": [],
832
- "url": {
833
- "raw": "{{baseUrl}}/o/{{organisation_id}}/connections/{{connection_id}}",
834
- "host": [
835
- "{{baseUrl}}"
836
- ],
837
- "path": [
838
- "o",
839
- "{{organisation_id}}",
840
- "connections",
841
- "{{connection_id}}"
842
- ]
843
- },
844
- "description": "**Permanently delete a connection**\n\n**Required Parameters:**\n- `organisation_id`\n- `connection_id`\n\n**Warning:** This will:\n- Delete the connection record\n- **May break activations** using this connection\n- Remove stored credentials\n\n**Before Deleting:**\n1. Check which activations use this connection: `GET /activations`\n2. Update or delete those activations first\n3. Ensure no active integrations depend on this connection\n\n**Related Endpoints:**\n- `GET /activations` - Find activations using this connection\n- `PUT /activations/{id}` - Update activation to use different connection"
845
- }
846
- },
847
- {
848
- "name": "Link Connection To Environment",
849
- "request": {
850
- "method": "POST",
851
- "header": [
852
- {
853
- "key": "Content-Type",
854
- "value": "application/json"
855
- }
856
- ],
857
- "body": {
858
- "mode": "raw",
859
- "raw": "{\n \"environmentId\": \"{{environment_id}}\"\n}"
860
- },
861
- "url": {
862
- "raw": "{{baseUrl}}/o/{{organisation_id}}/connections/{{connection_id}}/link",
863
- "host": [
864
- "{{baseUrl}}"
865
- ],
866
- "path": [
867
- "o",
868
- "{{organisation_id}}",
869
- "connections",
870
- "{{connection_id}}",
871
- "link"
872
- ]
873
- },
874
- "description": "**Associate a connection with an environment**\n\n**Required Parameters:**\n- `organisation_id`\n- `environment_id`\n- `connection_id`\n\n**Purpose:** Make a connection available in a specific environment.\n\n**Related Endpoints:**\n- `GET /environments/{id}/connections` - View environment connections"
875
- }
876
- },
877
- {
878
- "name": "List Environment Connections",
879
- "request": {
880
- "method": "GET",
881
- "header": [],
882
- "url": {
883
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/connections",
884
- "host": [
885
- "{{baseUrl}}"
886
- ],
887
- "path": [
888
- "o",
889
- "{{organisation_id}}",
890
- "projects",
891
- "{{project_id}}",
892
- "connections"
893
- ]
894
- },
895
- "description": "**List all connections associated with an environment**\n\n**Required Parameters:**\n- `organisation_id`\n- `environment_id`\n\n**Purpose:** View connections available to activations in this environment.\n\n**Related Endpoints:**\n- `POST /environments/{id}/connections` - Link new connection"
896
- }
897
- },
898
- {
899
- "name": "Get Activation Connection",
900
- "request": {
901
- "method": "GET",
902
- "header": [],
903
- "url": {
904
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environment-systems/{{env_system_id}}/activations/{{activation_id}}",
905
- "host": [
906
- "{{baseUrl}}"
907
- ],
908
- "path": [
909
- "o",
910
- "{{organisation_id}}",
911
- "environment-systems",
912
- "{{env_system_id}}",
913
- "activations",
914
- "{{activation_id}}"
915
- ]
916
- },
917
- "description": "**Get connection details for a specific activation**\n\n**Required Parameters:**\n- `organisation_id`\n- `activation_id`\n- `connection_id`\n\n**Purpose:** View connection credentials and configuration for an activation.\n\n**Related Endpoints:**\n- `GET /activations/{id}` - View activation details"
918
- }
919
- },
920
- {
921
- "name": "Initialise OAuth2 Connection",
922
- "request": {
923
- "method": "POST",
924
- "header": [
925
- {
926
- "key": "Content-Type",
927
- "value": "application/json"
928
- }
929
- ],
930
- "body": {
931
- "mode": "raw",
932
- "raw": "{\n \"credentialId\": \"{{credential_id}}\",\n \"redirectUri\": \"https://example.com/callback\"\n}"
933
- },
934
- "url": {
935
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/oauth2/initialise",
936
- "host": [
937
- "{{baseUrl}}"
938
- ],
939
- "path": [
940
- "o",
941
- "{{organisation_id}}",
942
- "systems",
943
- "{{system_id}}",
944
- "oauth2",
945
- "initialise"
946
- ]
947
- },
948
- "description": "**Start OAuth2 authorization flow for a connection**\n\n**Required Parameters:**\n- `organisation_id`\n- `connection_id`\n\n**Purpose:** Generate OAuth2 authorization URL for user consent.\n\n**Response:** Authorization URL to redirect user to.\n\n**OAuth2 Flow:**\n1. Initialize OAuth2 (this endpoint) → Get auth URL\n2. Redirect user to auth URL\n3. User grants permission\n4. Callback URL receives authorization code\n5. Exchange code for access token (automatic)\n\n**Related Endpoints:**\n- `POST /connections` - Create connection first"
949
- }
950
- },
951
- {
952
- "name": "Initialise OAuth1 Connection",
953
- "request": {
954
- "method": "POST",
955
- "header": [
956
- {
957
- "key": "Content-Type",
958
- "value": "application/json"
959
- }
960
- ],
961
- "body": {
962
- "mode": "raw",
963
- "raw": "{\n \"credentialId\": \"{{credential_id}}\",\n \"redirectUri\": \"https://example.com/callback\"\n}"
964
- },
965
- "url": {
966
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/oauth1/initialise",
967
- "host": [
968
- "{{baseUrl}}"
969
- ],
970
- "path": [
971
- "o",
972
- "{{organisation_id}}",
973
- "systems",
974
- "{{system_id}}",
975
- "oauth1",
976
- "initialise"
977
- ]
978
- },
979
- "description": "**Start OAuth1 authorization flow for a connection**\n\n**Required Parameters:**\n- `organisation_id`\n- `connection_id`\n\n**Purpose:** Generate OAuth1 request token and authorization URL.\n\n**Response:** Authorization URL and request token.\n\n**OAuth1 Flow:**\n1. Initialize OAuth1 (this endpoint) → Get request token + auth URL\n2. Redirect user to auth URL\n3. User grants permission\n4. Callback URL receives verifier\n5. Exchange for access token (automatic)\n\n**Related Endpoints:**\n- `POST /connections` - Create connection first"
980
- }
981
- }
982
- ]
983
- },
984
- {
985
- "name": "end_users",
986
- "description": "Manage users within the organization",
987
- "item": [
988
- {
989
- "name": "List Users",
990
- "request": {
991
- "method": "GET",
992
- "header": [],
993
- "url": {
994
- "raw": "{{baseUrl}}/o/{{organisation_id}}/users",
995
- "host": [
996
- "{{baseUrl}}"
997
- ],
998
- "path": [
999
- "o",
1000
- "{{organisation_id}}",
1001
- "users"
1002
- ]
1003
- },
1004
- "description": "**List all users in the organization**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** Get all users to find user IDs for activation management.\n\n**Response:** Array of user objects\n```json\n[\n {\n \"id\": \"user_abc123\",\n \"externalId\": \"customer-456\",\n \"displayName\": \"Customer Name\",\n \"email\": \"customer@example.com\",\n \"createdAt\": \"2025-01-01T00:00:00Z\"\n }\n]\n```\n\n**Common Workflow:**\n1. List users (this endpoint)\n2. Find user by `externalId` or `email`\n3. Use `id` for creating activations\n\n**Related Endpoints:**\n- `POST /users` - Create new user\n- `GET /users/{id}` - Get specific user details\n- `GET /activations` - See which users have activations"
1005
- }
1006
- },
1007
- {
1008
- "name": "Get User",
1009
- "request": {
1010
- "method": "GET",
1011
- "header": [],
1012
- "url": {
1013
- "raw": "{{baseUrl}}/o/{{organisation_id}}/users/{{user_id}}",
1014
- "host": [
1015
- "{{baseUrl}}"
1016
- ],
1017
- "path": [
1018
- "o",
1019
- "{{organisation_id}}",
1020
- "users",
1021
- "{{user_id}}"
1022
- ]
1023
- },
1024
- "description": "**Get detailed information about a specific user**\n\n**Required Parameters:**\n- `organisation_id`\n- `user_id`\n\n**Purpose:** Retrieve user details and associated metadata.\n\n**Response:**\n```json\n{\n \"id\": \"user_abc123\",\n \"externalId\": \"customer-456\",\n \"displayName\": \"Customer Name\",\n \"email\": \"customer@example.com\",\n \"metadata\": {},\n \"createdAt\": \"2025-01-01T00:00:00Z\",\n \"updatedAt\": \"2025-01-15T00:00:00Z\"\n}\n```\n\n**Related Endpoints:**\n- `PUT /users/{id}` - Update user details\n- `GET /activations` - Find user's activations"
1025
- }
1026
- },
1027
- {
1028
- "name": "Create User",
1029
- "request": {
1030
- "description": "**Create a new user in the organization**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Body:**\n```json\n{\n \"externalId\": \"customer-789\",\n \"displayName\": \"Customer Name\",\n \"email\": \"customer@example.com\",\n \"metadata\": {\n \"customField\": \"value\"\n }\n}\n```\n\n**Purpose:** Register a new user before activating them on projects.\n\n**Important Fields:**\n- `externalId` - Your internal customer/user ID (must be unique)\n- `displayName` - Human-readable name\n- `email` - Contact email (optional)\n- `metadata` - Any custom data (optional)\n\n**Response:** User object with generated `id`\n\n**Next Steps:**\n1. Create user (this endpoint)\n2. Save returned `id`\n3. Create activation: `POST /activations`\n\n**Related Endpoints:**\n- `POST /activations` - Activate user on project\n- `GET /users` - List all users",
1031
- "method": "POST",
1032
- "header": [
1033
- {
1034
- "key": "Content-Type",
1035
- "value": "application/json"
1036
- }
1037
- ],
1038
- "body": {
1039
- "mode": "raw",
1040
- "raw": "{\n \"externalId\": \"customer-123\",\n \"displayName\": \"John Doe\"\n}"
1041
- },
1042
- "url": {
1043
- "raw": "{{baseUrl}}/o/{{organisation_id}}/users",
1044
- "host": [
1045
- "{{baseUrl}}"
1046
- ],
1047
- "path": [
1048
- "o",
1049
- "{{organisation_id}}",
1050
- "users"
1051
- ]
1052
- }
1053
- }
1054
- },
1055
- {
1056
- "name": "Update User",
1057
- "request": {
1058
- "method": "PUT",
1059
- "header": [
1060
- {
1061
- "key": "Content-Type",
1062
- "value": "application/json"
1063
- }
1064
- ],
1065
- "body": {
1066
- "mode": "raw",
1067
- "raw": "{\n \"displayName\": \"Jane Doe\"\n}"
1068
- },
1069
- "url": {
1070
- "raw": "{{baseUrl}}/o/{{organisation_id}}/users/{{user_id}}",
1071
- "host": [
1072
- "{{baseUrl}}"
1073
- ],
1074
- "path": [
1075
- "o",
1076
- "{{organisation_id}}",
1077
- "users",
1078
- "{{user_id}}"
1079
- ]
1080
- },
1081
- "description": "**Update user information**\n\n**Required Parameters:**\n- `organisation_id`\n- `user_id`\n\n**Body:**\n```json\n{\n \"displayName\": \"Updated Name\",\n \"email\": \"newemail@example.com\",\n \"metadata\": {\n \"tier\": \"premium\"\n }\n}\n```\n\n**Purpose:** Modify user details without affecting activations.\n\n**Note:** This does NOT update:\n- User ID or external ID\n- Activation variables (use `PATCH /activations/{id}/variables`)\n- Connections (use connection endpoints)\n\n**Related Endpoints:**\n- `PATCH /activations/{id}/variables` - Update user's integration variables\n- `GET /users/{id}` - View current user data"
1082
- }
1083
- },
1084
- {
1085
- "name": "Delete User",
1086
- "request": {
1087
- "method": "DELETE",
1088
- "header": [],
1089
- "url": {
1090
- "raw": "{{baseUrl}}/o/{{organisation_id}}/users/{{user_id}}",
1091
- "host": [
1092
- "{{baseUrl}}"
1093
- ],
1094
- "path": [
1095
- "o",
1096
- "{{organisation_id}}",
1097
- "users",
1098
- "{{user_id}}"
1099
- ]
1100
- },
1101
- "description": "**Permanently delete a user**\n\n**Required Parameters:**\n- `organisation_id`\n- `user_id`\n\n**Warning:** This action is irreversible and will:\n- Delete the user record\n- **Remove all activations** for this user\n- Disconnect all connections associated with this user\n- Remove all user-specific data\n\n**Before deleting:**\n1. List user's activations: `GET /activations` (filter by userId)\n2. Backup any important data\n3. Ensure no active integrations depend on this user\n\n**Related Endpoints:**\n- `GET /activations` - Check user's activations before deleting\n- `DELETE /activations/{id}` - Delete individual activations first"
1102
- }
1103
- }
1104
- ]
1105
- },
1106
- {
1107
- "name": "activations",
1108
- "description": "Manage activations and their variables",
1109
- "item": [
1110
- {
1111
- "name": "List Activations (Environment)",
1112
- "request": {
1113
- "method": "GET",
1114
- "header": [],
1115
- "url": {
1116
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/activations",
1117
- "host": [
1118
- "{{baseUrl}}"
1119
- ],
1120
- "path": [
1121
- "o",
1122
- "{{organisation_id}}",
1123
- "environments",
1124
- "{{environment_id}}",
1125
- "activations"
1126
- ]
1127
- },
1128
- "description": "**List all activations in a specific environment (alternative endpoint)**\n\n**Required Parameters:**\n- `organisation_id`\n- `environment_id`\n\n**Purpose:** Same as `GET /environments/{id}/activations` - view activations filtered by environment.\n\n**Note:** This is an alternative URL pattern for the same functionality.\n\n**Related Endpoints:**\n- `GET /environments/{id}/activations` - Preferred endpoint\n- `GET /activations` - List all activations"
1129
- }
1130
- },
1131
- {
1132
- "name": "Get Activation",
1133
- "request": {
1134
- "method": "GET",
1135
- "header": [],
1136
- "url": {
1137
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/activations/{{activation_id}}",
1138
- "host": [
1139
- "{{baseUrl}}"
1140
- ],
1141
- "path": [
1142
- "o",
1143
- "{{organisation_id}}",
1144
- "environments",
1145
- "{{environment_id}}",
1146
- "activations",
1147
- "{{activation_id}}"
1148
- ]
1149
- },
1150
- "description": "**Get detailed activation information including current variable values**\n\n**Required Parameters:**\n- `organisation_id`\n- `activation_id`\n\n**Purpose:** View complete activation configuration including dynamic variables.\n\n**Response:**\n```json\n{\n \"id\": \"activation_xyz\",\n \"user\": {\n \"id\": \"user_abc\",\n \"displayName\": \"Customer Name\"\n },\n \"environment\": {\n \"id\": \"env_123\",\n \"name\": \"production\"\n },\n \"project\": {\n \"id\": \"proj_456\",\n \"name\": \"My Integration\"\n },\n \"connections\": [\n {\n \"connectionTemplateId\": \"template_1\",\n \"existingConnectionId\": \"conn_789\"\n }\n ],\n \"dynamicVariables\": {\n \"apiKey\": \"current-api-key\",\n \"accountId\": \"12345\",\n \"enableDebug\": \"false\"\n },\n \"status\": \"active\",\n \"createdAt\": \"2025-01-01T00:00:00Z\"\n}\n```\n\n**Important:** This is the **primary way** to view a user's current variable values. There is no separate variables endpoint.\n\n**Related Endpoints:**\n- `PATCH /activations/{id}/variables` - Update variables\n- `GET /projects/{id}/variables` - View variable schema\n- `PUT /activations/{id}` - Update activation"
1151
- }
1152
- },
1153
- {
1154
- "name": "Activate User",
1155
- "request": {
1156
- "description": "**Activate a user on a project (alternative endpoint)**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** Same as `POST /activations` - create a new activation.\n\n**Note:** This is an alternative URL pattern for the same functionality.\n\n**Related Endpoints:**\n- `POST /activations` - Preferred endpoint",
1157
- "method": "POST",
1158
- "header": [
1159
- {
1160
- "key": "Content-Type",
1161
- "value": "application/json"
1162
- }
1163
- ],
1164
- "body": {
1165
- "mode": "raw",
1166
- "raw": "{\n \"userId\": \"{{user_id}}\",\n \"environmentId\": \"{{environment_id}}\",\n \"connections\": [\n {\n \"connectionTemplateId\": \"{{template_id}}\",\n \"existingConnectionId\": \"{{connection_id}}\"\n }\n ],\n \"dynamicVariables\": {\n \"apiKey\": \"your-api-key\",\n \"region\": \"us-east-1\"\n }\n}"
1167
- },
1168
- "url": {
1169
- "raw": "{{baseUrl}}/o/{{organisation_id}}/activations",
1170
- "host": [
1171
- "{{baseUrl}}"
1172
- ],
1173
- "path": [
1174
- "o",
1175
- "{{organisation_id}}",
1176
- "activations"
1177
- ]
1178
- }
1179
- }
1180
- },
1181
- {
1182
- "name": "Delete Activation",
1183
- "request": {
1184
- "method": "DELETE",
1185
- "header": [],
1186
- "url": {
1187
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/activations/{{activation_id}}",
1188
- "host": [
1189
- "{{baseUrl}}"
1190
- ],
1191
- "path": [
1192
- "o",
1193
- "{{organisation_id}}",
1194
- "environments",
1195
- "{{environment_id}}",
1196
- "activations",
1197
- "{{activation_id}}"
1198
- ]
1199
- },
1200
- "description": "**Remove a user's activation from an environment**\n\n**Required Parameters:**\n- `organisation_id`\n- `activation_id`\n\n**Warning:** This will:\n- Deactivate the user's integration\n- Remove their access to the project environment\n- Preserve the user record and connections\n- NOT delete the user (use `DELETE /users/{id}` for that)\n\n**Use Cases:**\n- Deactivate a customer's integration\n- Remove test activations\n- Clean up inactive integrations\n\n**Related Endpoints:**\n- `POST /activations` - Reactivate user later\n- `DELETE /users/{id}` - Delete user entirely"
1201
- }
1202
- },
1203
- {
1204
- "name": "Set Dynamic Variables",
1205
- "request": {
1206
- "description": "**Update multiple dynamic variables for an activation (partial update)**\n\n**Required Parameters:**\n- `organisation_id`\n- `environment_id`\n- `activation_id`\n\n**Body:** JSON object with variable key-value pairs\n```json\n{\n \"apiKey\": \"new-api-key-value\",\n \"accountId\": \"67890\",\n \"enableDebug\": \"true\"\n}\n```\n\n**Critical Validation Rule:**\nVariables are validated against the project's schema on **every update**. Even though this is a partial update (PATCH), the **final state** must be valid.\n\n**If your activation is missing required variables:**\nYou MUST include them in this request, even if you're not changing them.\n\n**Example - The Wrong Way:**\n```json\n// ❌ FAILS if required variables are missing\n{\n \"enableDebug\": \"false\"\n}\n// Error: \"missing properties: 'apiKey', 'accountId'\"\n```\n\n**Example - The Correct Way:**\n```json\n// ✅ SUCCEEDS - includes required variables\n{\n \"enableDebug\": \"false\",\n \"apiKey\": \"existing-value\", // Include even if not changing\n \"accountId\": \"12345\" // Include even if not changing\n}\n```\n\n**Once activation is valid**, you can update individual variables freely.\n\n**Important Notes:**\n- Variables not included in request remain unchanged\n- Use `PUT /variables/{name}` to update a single variable\n- Get current values: `GET /activations/{id}`\n- Get schema: `GET /projects/{id}/variables`\n\n**Related Endpoints:**\n- `GET /activations/{id}` - View current variable values\n- `GET /projects/{id}/variables` - View required variable schema\n- `PUT /variables/{variable_name}` - Update single variable",
1207
- "method": "PATCH",
1208
- "header": [
1209
- {
1210
- "key": "Content-Type",
1211
- "value": "application/json"
1212
- }
1213
- ],
1214
- "body": {
1215
- "mode": "raw",
1216
- "raw": "{\n \"variableName\": \"value\"\n}"
1217
- },
1218
- "url": {
1219
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/activations/{{activation_id}}/variables",
1220
- "host": [
1221
- "{{baseUrl}}"
1222
- ],
1223
- "path": [
1224
- "o",
1225
- "{{organisation_id}}",
1226
- "environments",
1227
- "{{environment_id}}",
1228
- "activations",
1229
- "{{activation_id}}",
1230
- "variables"
1231
- ]
1232
- }
1233
- }
1234
- },
1235
- {
1236
- "name": "Set Dynamic Variable",
1237
- "request": {
1238
- "method": "PUT",
1239
- "header": [
1240
- {
1241
- "key": "Content-Type",
1242
- "value": "application/json"
1243
- }
1244
- ],
1245
- "body": {
1246
- "mode": "raw",
1247
- "raw": "\"value\""
1248
- },
1249
- "url": {
1250
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/activations/{{activation_id}}/variables/{{variable_name}}",
1251
- "host": [
1252
- "{{baseUrl}}"
1253
- ],
1254
- "path": [
1255
- "o",
1256
- "{{organisation_id}}",
1257
- "environments",
1258
- "{{environment_id}}",
1259
- "activations",
1260
- "{{activation_id}}",
1261
- "variables",
1262
- "{{variable_name}}"
1263
- ]
1264
- },
1265
- "description": "**Update a single dynamic variable**\n\n**Required Parameters:**\n- `organisation_id`\n- `environment_id`\n- `activation_id`\n- `variable_name` - The variable key to update\n\n**Body:**\n```json\n{\n \"value\": \"new-value\"\n}\n```\n\n**Purpose:** Update one specific variable without sending all variables.\n\n**Validation:** Same validation rules apply - the **final state** must be valid against the project schema.\n\n**When to Use:**\n- **Single variable update:** Use this endpoint (PUT)\n- **Multiple variables:** Use `PATCH /variables` instead (more efficient)\n\n**Example:**\n```\nPUT /o/{org}/environments/{env}/activations/{id}/variables/apiKey\n{\n \"value\": \"new-api-key-12345\"\n}\n```\n\n**Important:** If this variable is **required** and doesn't exist yet, ensure all other required variables exist first.\n\n**Related Endpoints:**\n- `PATCH /variables` - Update multiple variables at once\n- `GET /activations/{id}` - View current variable values\n- `GET /projects/{id}/variables` - View variable schema"
1266
- }
1267
- },
1268
- {
1269
- "name": "Set Static User Variables",
1270
- "request": {
1271
- "method": "PATCH",
1272
- "header": [
1273
- {
1274
- "key": "Content-Type",
1275
- "value": "application/json"
1276
- }
1277
- ],
1278
- "body": {
1279
- "mode": "raw",
1280
- "raw": "{\n \"variableName\": \"value\"\n}"
1281
- },
1282
- "url": {
1283
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/variables",
1284
- "host": [
1285
- "{{baseUrl}}"
1286
- ],
1287
- "path": [
1288
- "o",
1289
- "{{organisation_id}}",
1290
- "environments",
1291
- "{{environment_id}}",
1292
- "variables"
1293
- ]
1294
- },
1295
- "description": "**Set static (non-dynamic) variables for a user**\n\n**Required Parameters:**\n- `organisation_id`\n- `user_id`\n\n**Body:**\n```json\n{\n \"variables\": {\n \"staticVar1\": \"value\",\n \"staticVar2\": \"value\"\n }\n}\n```\n\n**Purpose:** Set user-level variables that are NOT part of activation dynamic variables.\n\n**Difference from Dynamic Variables:**\n- **Static:** User-level, same across all environments\n- **Dynamic:** Activation-level, environment-specific\n\n**Related Endpoints:**\n- `PATCH /activations/{id}/variables` - For dynamic variables"
1296
- }
1297
- },
1298
- {
1299
- "name": "List User Activations",
1300
- "request": {
1301
- "method": "GET",
1302
- "header": [],
1303
- "url": {
1304
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environment/{{environment_id}}/users/{{external_user_id}}/activations",
1305
- "host": [
1306
- "{{baseUrl}}"
1307
- ],
1308
- "path": [
1309
- "o",
1310
- "{{organisation_id}}",
1311
- "environment",
1312
- "{{environment_id}}",
1313
- "users",
1314
- "{{external_user_id}}",
1315
- "activations"
1316
- ]
1317
- },
1318
- "description": "**List all activations for a specific user**\n\n**Required Parameters:**\n- `organisation_id`\n- `user_id`\n\n**Purpose:** View all environments/projects where this user is activated.\n\n**Response:** Array of activation objects for this user.\n\n**Related Endpoints:**\n- `GET /activations` - List all activations (filter by userId)"
1319
- }
1320
- }
1321
- ]
1322
- },
1323
- {
1324
- "name": "systems",
1325
- "description": "Manage systems and integrations",
1326
- "item": [
1327
- {
1328
- "name": "List Systems",
1329
- "request": {
1330
- "method": "GET",
1331
- "header": [],
1332
- "url": {
1333
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems",
1334
- "host": [
1335
- "{{baseUrl}}"
1336
- ],
1337
- "path": [
1338
- "o",
1339
- "{{organisation_id}}",
1340
- "systems"
1341
- ]
1342
- },
1343
- "description": "**List all external systems**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** View registered external systems and their configurations.\n\n**Systems** represent external APIs/services that your integrations connect to.\n\n**Related Endpoints:**\n- `POST /systems` - Register new system\n- `GET /systems/{id}` - Get system details"
1344
- }
1345
- },
1346
- {
1347
- "name": "Get System",
1348
- "request": {
1349
- "method": "GET",
1350
- "header": [],
1351
- "url": {
1352
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}",
1353
- "host": [
1354
- "{{baseUrl}}"
1355
- ],
1356
- "path": [
1357
- "o",
1358
- "{{organisation_id}}",
1359
- "systems",
1360
- "{{system_id}}"
1361
- ]
1362
- },
1363
- "description": "**Get details of a specific external system**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n\n**Purpose:** View system configuration, actions, triggers, and auth schemes.\n\n**Related Endpoints:**\n- `PUT /systems/{id}` - Update system\n- `GET /systems/{id}/actions` - List system actions"
1364
- }
1365
- },
1366
- {
1367
- "name": "Create System",
1368
- "request": {
1369
- "method": "POST",
1370
- "header": [
1371
- {
1372
- "key": "Content-Type",
1373
- "value": "application/json"
1374
- }
1375
- ],
1376
- "body": {
1377
- "mode": "raw",
1378
- "raw": "{\n \"name\": \"My System\"\n}"
1379
- },
1380
- "url": {
1381
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems",
1382
- "host": [
1383
- "{{baseUrl}}"
1384
- ],
1385
- "path": [
1386
- "o",
1387
- "{{organisation_id}}",
1388
- "systems"
1389
- ]
1390
- },
1391
- "description": "**Register a new external system**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Body:**\n```json\n{\n \"name\": \"Shopify\",\n \"description\": \"Shopify e-commerce platform\",\n \"baseUrl\": \"https://api.shopify.com\"\n}\n```\n\n**Purpose:** Define an external system to use in integrations.\n\n**Related Endpoints:**\n- `POST /systems/{id}/actions` - Define system actions\n- `POST /systems/{id}/triggers` - Define system triggers"
1392
- }
1393
- },
1394
- {
1395
- "name": "Update System",
1396
- "request": {
1397
- "method": "PUT",
1398
- "header": [
1399
- {
1400
- "key": "Content-Type",
1401
- "value": "application/json"
1402
- }
1403
- ],
1404
- "body": {
1405
- "mode": "raw",
1406
- "raw": "{\n \"name\": \"Updated System\"\n}"
1407
- },
1408
- "url": {
1409
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}",
1410
- "host": [
1411
- "{{baseUrl}}"
1412
- ],
1413
- "path": [
1414
- "o",
1415
- "{{organisation_id}}",
1416
- "systems",
1417
- "{{system_id}}"
1418
- ]
1419
- },
1420
- "description": "**Update external system configuration**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n\n**Purpose:** Modify system metadata, base URL, or configuration.\n\n**Related Endpoints:**\n- `GET /systems/{id}` - View current system"
1421
- }
1422
- },
1423
- {
1424
- "name": "Link System Actions",
1425
- "request": {
1426
- "method": "POST",
1427
- "header": [
1428
- {
1429
- "key": "Content-Type",
1430
- "value": "application/json"
1431
- }
1432
- ],
1433
- "body": {
1434
- "mode": "raw",
1435
- "raw": "{\n \"actionIds\": []\n}"
1436
- },
1437
- "url": {
1438
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/projects/{{project_id}}/actions-link",
1439
- "host": [
1440
- "{{baseUrl}}"
1441
- ],
1442
- "path": [
1443
- "o",
1444
- "{{organisation_id}}",
1445
- "systems",
1446
- "{{system_id}}",
1447
- "projects",
1448
- "{{project_id}}",
1449
- "actions-link"
1450
- ]
1451
- },
1452
- "description": "**Link system actions to a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n- `project_id`\n\n**Body:**\n```json\n{\n \"actionIds\": [\"action_1\", \"action_2\"]\n}\n```\n\n**Purpose:** Make specific system actions available in a project.\n\n**Related Endpoints:**\n- `GET /systems/{id}/actions` - List available actions"
1453
- }
1454
- },
1455
- {
1456
- "name": "Link System Triggers",
1457
- "request": {
1458
- "method": "POST",
1459
- "header": [
1460
- {
1461
- "key": "Content-Type",
1462
- "value": "application/json"
1463
- }
1464
- ],
1465
- "body": {
1466
- "mode": "raw",
1467
- "raw": "{\n \"triggerIds\": []\n}"
1468
- },
1469
- "url": {
1470
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/projects/{{project_id}}/triggers-link",
1471
- "host": [
1472
- "{{baseUrl}}"
1473
- ],
1474
- "path": [
1475
- "o",
1476
- "{{organisation_id}}",
1477
- "systems",
1478
- "{{system_id}}",
1479
- "projects",
1480
- "{{project_id}}",
1481
- "triggers-link"
1482
- ]
1483
- },
1484
- "description": "**Link system triggers to a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n- `project_id`\n\n**Body:**\n```json\n{\n \"triggerIds\": [\"trigger_1\", \"trigger_2\"]\n}\n```\n\n**Purpose:** Make specific system triggers available in a project.\n\n**Related Endpoints:**\n- `GET /systems/{id}/triggers` - List available triggers"
1485
- }
1486
- },
1487
- {
1488
- "name": "List System Actions",
1489
- "request": {
1490
- "method": "GET",
1491
- "header": [],
1492
- "url": {
1493
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/actions",
1494
- "host": [
1495
- "{{baseUrl}}"
1496
- ],
1497
- "path": [
1498
- "o",
1499
- "{{organisation_id}}",
1500
- "systems",
1501
- "{{system_id}}",
1502
- "actions"
1503
- ]
1504
- },
1505
- "description": "**List all actions for a system**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n\n**Query Parameters:**\n- `project_id` (optional) - Filter by project\n\n**Purpose:** View available actions (API operations) for this system.\n\n**Related Endpoints:**\n- `POST /systems/{id}/actions` - Create new action\n- `GET /systems/{id}/actions/{action_id}` - Get action details"
1506
- }
1507
- },
1508
- {
1509
- "name": "Create System Actions",
1510
- "request": {
1511
- "method": "POST",
1512
- "header": [
1513
- {
1514
- "key": "Content-Type",
1515
- "value": "application/json"
1516
- }
1517
- ],
1518
- "body": {
1519
- "mode": "raw",
1520
- "raw": "{\n \"name\": \"My Action\"\n}"
1521
- },
1522
- "url": {
1523
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/actions",
1524
- "host": [
1525
- "{{baseUrl}}"
1526
- ],
1527
- "path": [
1528
- "o",
1529
- "{{organisation_id}}",
1530
- "systems",
1531
- "{{system_id}}",
1532
- "actions"
1533
- ]
1534
- },
1535
- "description": "**Define new actions for a system**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n\n**Body:**\n```json\n{\n \"name\": \"Create Order\",\n \"description\": \"Create a new order in the system\",\n \"method\": \"POST\",\n \"path\": \"/orders\",\n \"projectId\": \"proj_123\"\n}\n```\n\n**Purpose:** Define API operations available for this system.\n\n**Related Endpoints:**\n- `GET /systems/{id}/actions` - List actions"
1536
- }
1537
- },
1538
- {
1539
- "name": "Get System Action",
1540
- "request": {
1541
- "method": "GET",
1542
- "header": [],
1543
- "url": {
1544
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/actions/{{action_id}}",
1545
- "host": [
1546
- "{{baseUrl}}"
1547
- ],
1548
- "path": [
1549
- "o",
1550
- "{{organisation_id}}",
1551
- "systems",
1552
- "{{system_id}}",
1553
- "actions",
1554
- "{{action_id}}"
1555
- ]
1556
- },
1557
- "description": "**Get details of a specific system action**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n- `action_id`\n\n**Purpose:** View action configuration, parameters, and response schema.\n\n**Related Endpoints:**\n- `PUT /systems/{id}/actions/{action_id}` - Update action"
1558
- }
1559
- },
1560
- {
1561
- "name": "Update System Action",
1562
- "request": {
1563
- "method": "PUT",
1564
- "header": [
1565
- {
1566
- "key": "Content-Type",
1567
- "value": "application/json"
1568
- }
1569
- ],
1570
- "body": {
1571
- "mode": "raw",
1572
- "raw": "{\n \"name\": \"Updated Action\"\n}"
1573
- },
1574
- "url": {
1575
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/actions/{{action_id}}",
1576
- "host": [
1577
- "{{baseUrl}}"
1578
- ],
1579
- "path": [
1580
- "o",
1581
- "{{organisation_id}}",
1582
- "systems",
1583
- "{{system_id}}",
1584
- "actions",
1585
- "{{action_id}}"
1586
- ]
1587
- },
1588
- "description": "**Update a system action configuration**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n- `action_id`\n\n**Purpose:** Modify action parameters, schema, or metadata.\n\n**Related Endpoints:**\n- `GET /systems/{id}/actions/{action_id}` - View current action"
1589
- }
1590
- },
1591
- {
1592
- "name": "Delete System Action",
1593
- "request": {
1594
- "method": "DELETE",
1595
- "header": [],
1596
- "url": {
1597
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/actions/{{action_id}}",
1598
- "host": [
1599
- "{{baseUrl}}"
1600
- ],
1601
- "path": [
1602
- "o",
1603
- "{{organisation_id}}",
1604
- "systems",
1605
- "{{system_id}}",
1606
- "actions",
1607
- "{{action_id}}"
1608
- ]
1609
- },
1610
- "description": "**Delete a system action**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n- `action_id`\n\n**Warning:** This removes the action from all projects using it.\n\n**Related Endpoints:**\n- `GET /systems/{id}/actions` - List remaining actions"
1611
- }
1612
- },
1613
- {
1614
- "name": "List System Triggers",
1615
- "request": {
1616
- "method": "GET",
1617
- "header": [],
1618
- "url": {
1619
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/triggers",
1620
- "host": [
1621
- "{{baseUrl}}"
1622
- ],
1623
- "path": [
1624
- "o",
1625
- "{{organisation_id}}",
1626
- "systems",
1627
- "{{system_id}}",
1628
- "triggers"
1629
- ]
1630
- },
1631
- "description": "**List all triggers for a system**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n\n**Query Parameters:**\n- `project_id` (optional) - Filter by project\n\n**Purpose:** View available triggers (webhooks, events) for this system.\n\n**Related Endpoints:**\n- `POST /systems/{id}/triggers` - Create new trigger"
1632
- }
1633
- },
1634
- {
1635
- "name": "Create System Triggers",
1636
- "request": {
1637
- "method": "POST",
1638
- "header": [
1639
- {
1640
- "key": "Content-Type",
1641
- "value": "application/json"
1642
- }
1643
- ],
1644
- "body": {
1645
- "mode": "raw",
1646
- "raw": "{\n \"name\": \"My Trigger\"\n}"
1647
- },
1648
- "url": {
1649
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/triggers",
1650
- "host": [
1651
- "{{baseUrl}}"
1652
- ],
1653
- "path": [
1654
- "o",
1655
- "{{organisation_id}}",
1656
- "systems",
1657
- "{{system_id}}",
1658
- "triggers"
1659
- ]
1660
- },
1661
- "description": "**Define new triggers for a system**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n\n**Body:**\n```json\n{\n \"name\": \"Order Created\",\n \"description\": \"Triggered when a new order is created\",\n \"eventType\": \"order.created\",\n \"projectId\": \"proj_123\"\n}\n```\n\n**Purpose:** Define webhooks/events available for this system.\n\n**Related Endpoints:**\n- `GET /systems/{id}/triggers` - List triggers"
1662
- }
1663
- },
1664
- {
1665
- "name": "Delete Auth Scheme Config",
1666
- "request": {
1667
- "method": "DELETE",
1668
- "header": [],
1669
- "url": {
1670
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/auth-scheme-configs/{{auth_scheme_config_id}}",
1671
- "host": [
1672
- "{{baseUrl}}"
1673
- ],
1674
- "path": [
1675
- "o",
1676
- "{{organisation_id}}",
1677
- "systems",
1678
- "{{system_id}}",
1679
- "auth-scheme-configs",
1680
- "{{auth_scheme_config_id}}"
1681
- ]
1682
- },
1683
- "description": "**Remove an authentication scheme from a system**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n- `auth_scheme_config_id`\n\n**Warning:** This may break connections using this auth scheme.\n\n**Related Endpoints:**\n- `PUT /systems/{id}/auth-scheme-configs/{id}` - Update auth scheme"
1684
- }
1685
- },
1686
- {
1687
- "name": "Upsert Auth Scheme Config",
1688
- "request": {
1689
- "method": "PUT",
1690
- "header": [
1691
- {
1692
- "key": "Content-Type",
1693
- "value": "application/json"
1694
- }
1695
- ],
1696
- "body": {
1697
- "mode": "raw",
1698
- "raw": "{\n \"config\": {}\n}"
1699
- },
1700
- "url": {
1701
- "raw": "{{baseUrl}}/o/{{organisation_id}}/systems/{{system_id}}/auth-scheme-configs/{{auth_scheme_config_id}}",
1702
- "host": [
1703
- "{{baseUrl}}"
1704
- ],
1705
- "path": [
1706
- "o",
1707
- "{{organisation_id}}",
1708
- "systems",
1709
- "{{system_id}}",
1710
- "auth-scheme-configs",
1711
- "{{auth_scheme_config_id}}"
1712
- ]
1713
- },
1714
- "description": "**Add or update authentication scheme for a system**\n\n**Required Parameters:**\n- `organisation_id`\n- `system_id`\n- `auth_scheme_config_id`\n\n**Body:**\n```json\n{\n \"id\": \"oauth2_scheme\",\n \"type\": \"oauth2\",\n \"config\": {\n \"authorizationUrl\": \"https://api.example.com/oauth/authorize\",\n \"tokenUrl\": \"https://api.example.com/oauth/token\",\n \"scopes\": [\"read\", \"write\"]\n }\n}\n```\n\n**Purpose:** Define authentication methods (OAuth2, API Key, etc.) for the system.\n\n**Note:** Upsert = Create if new, Update if exists.\n\n**Related Endpoints:**\n- `DELETE /systems/{id}/auth-scheme-configs/{id}` - Remove auth scheme"
1715
- }
1716
- },
1717
- {
1718
- "name": "Create Connection Template",
1719
- "request": {
1720
- "method": "POST",
1721
- "header": [
1722
- {
1723
- "key": "Content-Type",
1724
- "value": "application/json"
1725
- }
1726
- ],
1727
- "body": {
1728
- "mode": "raw",
1729
- "raw": "{\n \"name\": \"My Template\"\n}"
1730
- },
1731
- "url": {
1732
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/connection-templates",
1733
- "host": [
1734
- "{{baseUrl}}"
1735
- ],
1736
- "path": [
1737
- "o",
1738
- "{{organisation_id}}",
1739
- "projects",
1740
- "{{project_id}}",
1741
- "connection-templates"
1742
- ]
1743
- },
1744
- "description": "**Define a new connection template for a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Body:**\n```json\n{\n \"name\": \"Customer Database\",\n \"type\": \"database\",\n \"description\": \"Customer's PostgreSQL database\",\n \"required\": true,\n \"credentialFields\": [\n {\n \"name\": \"host\",\n \"type\": \"string\",\n \"required\": true\n },\n {\n \"name\": \"password\",\n \"type\": \"string\",\n \"required\": true,\n \"sensitive\": true\n }\n ]\n}\n```\n\n**Purpose:** Define what connections are needed for this project.\n\n**Response:** Template object with generated `id`\n\n**Related Endpoints:**\n- `GET /connection-templates` - List all templates\n- `POST /connections` - Create connections matching this template"
1745
- }
1746
- },
1747
- {
1748
- "name": "List Project Connection Templates",
1749
- "request": {
1750
- "method": "GET",
1751
- "header": [],
1752
- "url": {
1753
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/connection-templates",
1754
- "host": [
1755
- "{{baseUrl}}"
1756
- ],
1757
- "path": [
1758
- "o",
1759
- "{{organisation_id}}",
1760
- "projects",
1761
- "{{project_id}}",
1762
- "connection-templates"
1763
- ]
1764
- },
1765
- "description": "**Get all connection templates defined for a project (duplicate endpoint)**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** Same as `GET /projects/{id}/connection-templates`\n\n**Note:** This is the same endpoint as \"List Connection Templates\" - appears to be a duplicate in the collection.\n\n**Related Endpoints:**\n- `GET /connection-templates/{id}` - Get specific template"
1766
- }
1767
- },
1768
- {
1769
- "name": "Delete Connection Template",
1770
- "request": {
1771
- "method": "DELETE",
1772
- "header": [],
1773
- "url": {
1774
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/connection-templates/{{template_id}}",
1775
- "host": [
1776
- "{{baseUrl}}"
1777
- ],
1778
- "path": [
1779
- "o",
1780
- "{{organisation_id}}",
1781
- "projects",
1782
- "{{project_id}}",
1783
- "connection-templates",
1784
- "{{template_id}}"
1785
- ]
1786
- },
1787
- "description": "**Remove a connection template from a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `connection_template_id`\n\n**Warning:** This may:\n- Break activations using this template\n- Require redeploying the project\n- Remove connection requirements from project\n\n**Before Deleting:**\n1. Check activations using this template\n2. Update or delete those activations\n3. Ensure project code doesn't reference this template\n\n**Related Endpoints:**\n- `GET /activations` - Check affected activations"
1788
- }
1789
- },
1790
- {
1791
- "name": "Update Connection Template",
1792
- "request": {
1793
- "method": "PUT",
1794
- "header": [
1795
- {
1796
- "key": "Content-Type",
1797
- "value": "application/json"
1798
- }
1799
- ],
1800
- "body": {
1801
- "mode": "raw",
1802
- "raw": "{\n \"name\": \"Updated Template\"\n}"
1803
- },
1804
- "url": {
1805
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/connection-templates/{{template_id}}",
1806
- "host": [
1807
- "{{baseUrl}}"
1808
- ],
1809
- "path": [
1810
- "o",
1811
- "{{organisation_id}}",
1812
- "projects",
1813
- "{{project_id}}",
1814
- "connection-templates",
1815
- "{{template_id}}"
1816
- ]
1817
- },
1818
- "description": "**Update a connection template's configuration**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `connection_template_id`\n\n**Body:**\n```json\n{\n \"name\": \"Updated Name\",\n \"description\": \"Updated description\",\n \"credentialFields\": [...]\n}\n```\n\n**Important:** Changing template requirements may affect existing activations.\n\n**Related Endpoints:**\n- `GET /connection-templates/{id}` - View current template\n- `GET /activations` - Check activations using this template"
1819
- }
1820
- }
1821
- ]
1822
- },
1823
- {
1824
- "name": "automations",
1825
- "description": "Manage automations and their runs",
1826
- "item": [
1827
- {
1828
- "name": "List Automations",
1829
- "request": {
1830
- "method": "GET",
1831
- "header": [],
1832
- "url": {
1833
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations",
1834
- "host": [
1835
- "{{baseUrl}}"
1836
- ],
1837
- "path": [
1838
- "o",
1839
- "{{organisation_id}}",
1840
- "automations"
1841
- ]
1842
- },
1843
- "description": "**List all automations for the organization**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** View AI-powered automations and workflows.\n\n**Automations** are AI-driven workflows that can process data, make decisions, or trigger actions.\n\n**Related Endpoints:**\n- `POST /automations` - Create new automation\n- `GET /automations/{id}` - Get automation details"
1844
- }
1845
- },
1846
- {
1847
- "name": "Create Automation",
1848
- "request": {
1849
- "method": "POST",
1850
- "header": [
1851
- {
1852
- "key": "Content-Type",
1853
- "value": "application/json"
1854
- }
1855
- ],
1856
- "body": {
1857
- "mode": "raw",
1858
- "raw": "{\n \"name\": \"My Automation\"\n}"
1859
- },
1860
- "url": {
1861
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations",
1862
- "host": [
1863
- "{{baseUrl}}"
1864
- ],
1865
- "path": [
1866
- "o",
1867
- "{{organisation_id}}",
1868
- "automations"
1869
- ]
1870
- },
1871
- "description": "**Create a new AI automation**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Body:**\n```json\n{\n \"name\": \"Invoice Processing\",\n \"description\": \"Extract data from invoices using AI\",\n \"promptTemplate\": \"Extract the following fields: {fields}\"\n}\n```\n\n**Purpose:** Define AI-powered automation workflows.\n\n**Related Endpoints:**\n- `POST /automations/{id}/run` - Execute automation"
1872
- }
1873
- },
1874
- {
1875
- "name": "Get Automation",
1876
- "request": {
1877
- "method": "GET",
1878
- "header": [],
1879
- "url": {
1880
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}",
1881
- "host": [
1882
- "{{baseUrl}}"
1883
- ],
1884
- "path": [
1885
- "o",
1886
- "{{organisation_id}}",
1887
- "automations",
1888
- "{{automation_id}}"
1889
- ]
1890
- },
1891
- "description": "**Get details of a specific automation**\n\n**Required Parameters:**\n- `organisation_id`\n- `automation_id`\n\n**Purpose:** View automation configuration, prompt template, and metadata.\n\n**Related Endpoints:**\n- `PUT /automations/{id}` - Update automation\n- `POST /automations/{id}/run` - Run automation"
1892
- }
1893
- },
1894
- {
1895
- "name": "Update Automation",
1896
- "request": {
1897
- "method": "PUT",
1898
- "header": [
1899
- {
1900
- "key": "Content-Type",
1901
- "value": "application/json"
1902
- }
1903
- ],
1904
- "body": {
1905
- "mode": "raw",
1906
- "raw": "{\n \"name\": \"Updated Automation\"\n}"
1907
- },
1908
- "url": {
1909
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}",
1910
- "host": [
1911
- "{{baseUrl}}"
1912
- ],
1913
- "path": [
1914
- "o",
1915
- "{{organisation_id}}",
1916
- "automations",
1917
- "{{automation_id}}"
1918
- ]
1919
- },
1920
- "description": "**Update automation configuration**\n\n**Required Parameters:**\n- `organisation_id`\n- `automation_id`\n\n**Purpose:** Modify automation name, prompt template, or settings.\n\n**Related Endpoints:**\n- `GET /automations/{id}` - View current automation"
1921
- }
1922
- },
1923
- {
1924
- "name": "Run Automation",
1925
- "request": {
1926
- "method": "POST",
1927
- "header": [
1928
- {
1929
- "key": "Content-Type",
1930
- "value": "application/json"
1931
- }
1932
- ],
1933
- "body": {
1934
- "mode": "raw",
1935
- "raw": "{\n \"payload\": {}\n}"
1936
- },
1937
- "url": {
1938
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}/run",
1939
- "host": [
1940
- "{{baseUrl}}"
1941
- ],
1942
- "path": [
1943
- "o",
1944
- "{{organisation_id}}",
1945
- "automations",
1946
- "{{automation_id}}",
1947
- "run"
1948
- ]
1949
- },
1950
- "description": "**Execute an automation with input data**\n\n**Required Parameters:**\n- `organisation_id`\n- `automation_id`\n\n**Body:**\n```json\n{\n \"input\": {\n \"document\": \"base64_encoded_pdf\",\n \"fields\": [\"invoiceNumber\", \"totalAmount\", \"date\"]\n }\n}\n```\n\n**Purpose:** Process data through AI automation and get results.\n\n**Response:** Automation output based on prompt template.\n\n**Related Endpoints:**\n- `GET /automations/{id}/runs` - View automation history"
1951
- }
1952
- },
1953
- {
1954
- "name": "List Automation Runs",
1955
- "request": {
1956
- "method": "GET",
1957
- "header": [],
1958
- "url": {
1959
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}/run",
1960
- "host": [
1961
- "{{baseUrl}}"
1962
- ],
1963
- "path": [
1964
- "o",
1965
- "{{organisation_id}}",
1966
- "automations",
1967
- "{{automation_id}}",
1968
- "run"
1969
- ]
1970
- },
1971
- "description": "**View execution history for an automation**\n\n**Required Parameters:**\n- `organisation_id`\n- `automation_id`\n\n**Purpose:** See past automation runs, results, and errors.\n\n**Related Endpoints:**\n- `GET /automations/{id}/runs/{run_id}` - Get specific run details"
1972
- }
1973
- },
1974
- {
1975
- "name": "Get Automation Run",
1976
- "request": {
1977
- "method": "GET",
1978
- "header": [],
1979
- "url": {
1980
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}/runs/{{run_id}}",
1981
- "host": [
1982
- "{{baseUrl}}"
1983
- ],
1984
- "path": [
1985
- "o",
1986
- "{{organisation_id}}",
1987
- "automations",
1988
- "{{automation_id}}",
1989
- "runs",
1990
- "{{run_id}}"
1991
- ]
1992
- },
1993
- "description": "**Get details of a specific automation run**\n\n**Required Parameters:**\n- `organisation_id`\n- `automation_id`\n- `run_id`\n\n**Purpose:** View input, output, timing, and errors for a specific execution.\n\n**Related Endpoints:**\n- `POST /automations/{id}/run` - Execute automation"
1994
- }
1995
- },
1996
- {
1997
- "name": "List Recordings",
1998
- "request": {
1999
- "method": "GET",
2000
- "header": [],
2001
- "url": {
2002
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}/recordings",
2003
- "host": [
2004
- "{{baseUrl}}"
2005
- ],
2006
- "path": [
2007
- "o",
2008
- "{{organisation_id}}",
2009
- "automations",
2010
- "{{automation_id}}",
2011
- "recordings"
2012
- ]
2013
- },
2014
- "description": "**List all recordings for debugging/audit**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** View recorded workflow executions for debugging.\n\n**Related Endpoints:**\n- `POST /recordings` - Create new recording\n- `GET /recordings/{id}` - Get recording details"
2015
- }
2016
- },
2017
- {
2018
- "name": "Create Recording",
2019
- "request": {
2020
- "method": "POST",
2021
- "header": [
2022
- {
2023
- "key": "Content-Type",
2024
- "value": "application/json"
2025
- }
2026
- ],
2027
- "body": {
2028
- "mode": "raw",
2029
- "raw": "{\n \"name\": \"My Recording\"\n}"
2030
- },
2031
- "url": {
2032
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}/recordings",
2033
- "host": [
2034
- "{{baseUrl}}"
2035
- ],
2036
- "path": [
2037
- "o",
2038
- "{{organisation_id}}",
2039
- "automations",
2040
- "{{automation_id}}",
2041
- "recordings"
2042
- ]
2043
- },
2044
- "description": "**Start recording a workflow execution**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** Capture workflow execution for debugging or compliance.\n\n**Related Endpoints:**\n- `GET /recordings/{id}` - View recording"
2045
- }
2046
- },
2047
- {
2048
- "name": "Get Recording",
2049
- "request": {
2050
- "method": "GET",
2051
- "header": [],
2052
- "url": {
2053
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}/recordings/{{recording_id}}",
2054
- "host": [
2055
- "{{baseUrl}}"
2056
- ],
2057
- "path": [
2058
- "o",
2059
- "{{organisation_id}}",
2060
- "automations",
2061
- "{{automation_id}}",
2062
- "recordings",
2063
- "{{recording_id}}"
2064
- ]
2065
- },
2066
- "description": "**Get a specific recording**\n\n**Required Parameters:**\n- `organisation_id`\n- `recording_id`\n\n**Purpose:** View recorded execution details.\n\n**Related Endpoints:**\n- `POST /recordings/{id}/transcriptions` - Create transcription"
2067
- }
2068
- },
2069
- {
2070
- "name": "Create Transcription",
2071
- "request": {
2072
- "method": "POST",
2073
- "header": [
2074
- {
2075
- "key": "Content-Type",
2076
- "value": "application/json"
2077
- }
2078
- ],
2079
- "body": {
2080
- "mode": "raw",
2081
- "raw": "{\n \"transcription\": \"text\"\n}"
2082
- },
2083
- "url": {
2084
- "raw": "{{baseUrl}}/o/{{organisation_id}}/automations/{{automation_id}}/recordings/{{recording_id}}",
2085
- "host": [
2086
- "{{baseUrl}}"
2087
- ],
2088
- "path": [
2089
- "o",
2090
- "{{organisation_id}}",
2091
- "automations",
2092
- "{{automation_id}}",
2093
- "recordings",
2094
- "{{recording_id}}"
2095
- ]
2096
- },
2097
- "description": "**Generate transcription from a recording**\n\n**Required Parameters:**\n- `organisation_id`\n- `recording_id`\n\n**Purpose:** Convert recording to text format for analysis.\n\n**Related Endpoints:**\n- `GET /recordings/{id}` - View recording"
2098
- }
2099
- }
2100
- ]
2101
- },
2102
- {
2103
- "name": "schedulers",
2104
- "description": "Manage schedulers",
2105
- "item": [
2106
- {
2107
- "name": "List Schedulers",
2108
- "request": {
2109
- "method": "GET",
2110
- "header": [],
2111
- "url": {
2112
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/schedulers",
2113
- "host": [
2114
- "{{baseUrl}}"
2115
- ],
2116
- "path": [
2117
- "o",
2118
- "{{organisation_id}}",
2119
- "environments",
2120
- "{{environment_id}}",
2121
- "schedulers"
2122
- ]
2123
- },
2124
- "description": "**List all scheduled tasks for a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** View active schedules and their configurations.\n\n**Related Endpoints:**\n- `GET /schedulers/{id}` - Get scheduler details\n- `POST /schedulers/{id}/trigger` - Manually trigger"
2125
- }
2126
- },
2127
- {
2128
- "name": "Get Scheduler",
2129
- "request": {
2130
- "method": "GET",
2131
- "header": [],
2132
- "url": {
2133
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/schedulers/{{scheduler_id}}",
2134
- "host": [
2135
- "{{baseUrl}}"
2136
- ],
2137
- "path": [
2138
- "o",
2139
- "{{organisation_id}}",
2140
- "environments",
2141
- "{{environment_id}}",
2142
- "schedulers",
2143
- "{{scheduler_id}}"
2144
- ]
2145
- },
2146
- "description": "**Get details of a specific scheduler**\n\n**Required Parameters:**\n- `organisation_id`\n- `scheduler_id`\n\n**Purpose:** View scheduler configuration, cron expression, and next run time.\n\n**Related Endpoints:**\n- `POST /schedulers/{id}/trigger` - Trigger manually"
2147
- }
2148
- },
2149
- {
2150
- "name": "Trigger Scheduler",
2151
- "request": {
2152
- "method": "POST",
2153
- "header": [],
2154
- "url": {
2155
- "raw": "{{baseUrl}}/o/{{organisation_id}}/environments/{{environment_id}}/schedulers/{{scheduler_id}}",
2156
- "host": [
2157
- "{{baseUrl}}"
2158
- ],
2159
- "path": [
2160
- "o",
2161
- "{{organisation_id}}",
2162
- "environments",
2163
- "{{environment_id}}",
2164
- "schedulers",
2165
- "{{scheduler_id}}"
2166
- ]
2167
- },
2168
- "description": "**Manually trigger a scheduled task**\n\n**Required Parameters:**\n- `organisation_id`\n- `scheduler_id`\n\n**Purpose:** Run a scheduled task immediately without waiting for next scheduled time.\n\n**Related Endpoints:**\n- `GET /schedulers/{id}` - View scheduler details"
2169
- }
2170
- }
2171
- ]
2172
- },
2173
- {
2174
- "name": "issues",
2175
- "description": "Manage issues",
2176
- "item": [
2177
- {
2178
- "name": "List Issues",
2179
- "request": {
2180
- "method": "GET",
2181
- "header": [],
2182
- "url": {
2183
- "raw": "{{baseUrl}}/o/{{organisation_id}}/issues",
2184
- "host": [
2185
- "{{baseUrl}}"
2186
- ],
2187
- "path": [
2188
- "o",
2189
- "{{organisation_id}}",
2190
- "issues"
2191
- ]
2192
- },
2193
- "description": "**List all issues/errors for the organization**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** View errors, warnings, and issues from workflow executions.\n\n**Related Endpoints:**\n- `POST /issues` - Create new issue\n- `PUT /issues/{id}` - Update issue status"
2194
- }
2195
- },
2196
- {
2197
- "name": "Create Issue",
2198
- "request": {
2199
- "method": "POST",
2200
- "header": [
2201
- {
2202
- "key": "Content-Type",
2203
- "value": "application/json"
2204
- }
2205
- ],
2206
- "body": {
2207
- "mode": "raw",
2208
- "raw": "{\n \"title\": \"My Issue\"\n}"
2209
- },
2210
- "url": {
2211
- "raw": "{{baseUrl}}/o/{{organisation_id}}/issues",
2212
- "host": [
2213
- "{{baseUrl}}"
2214
- ],
2215
- "path": [
2216
- "o",
2217
- "{{organisation_id}}",
2218
- "issues"
2219
- ]
2220
- },
2221
- "description": "**Create a new issue report**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Body:**\n```json\n{\n \"title\": \"Payment gateway timeout\",\n \"description\": \"Timeout when processing payment\",\n \"severity\": \"high\",\n \"projectId\": \"proj_123\"\n}\n```\n\n**Purpose:** Report errors or issues for tracking.\n\n**Related Endpoints:**\n- `GET /issues` - List all issues"
2222
- }
2223
- },
2224
- {
2225
- "name": "Update Issue",
2226
- "request": {
2227
- "method": "PATCH",
2228
- "header": [
2229
- {
2230
- "key": "Content-Type",
2231
- "value": "application/json"
2232
- }
2233
- ],
2234
- "body": {
2235
- "mode": "raw",
2236
- "raw": "{\n \"status\": \"resolved\"\n}"
2237
- },
2238
- "url": {
2239
- "raw": "{{baseUrl}}/o/{{organisation_id}}/issues/{{issue_id}}",
2240
- "host": [
2241
- "{{baseUrl}}"
2242
- ],
2243
- "path": [
2244
- "o",
2245
- "{{organisation_id}}",
2246
- "issues",
2247
- "{{issue_id}}"
2248
- ]
2249
- },
2250
- "description": "**Update issue status or details**\n\n**Required Parameters:**\n- `organisation_id`\n- `issue_id`\n\n**Body:**\n```json\n{\n \"status\": \"resolved\",\n \"resolution\": \"Increased timeout to 30s\"\n}\n```\n\n**Purpose:** Update issue status, assign, or add resolution.\n\n**Related Endpoints:**\n- `GET /issues` - List all issues"
2251
- }
2252
- }
2253
- ]
2254
- },
2255
- {
2256
- "name": "notifications",
2257
- "description": "Manage notifications",
2258
- "item": [
2259
- {
2260
- "name": "List Notification Channels",
2261
- "request": {
2262
- "method": "GET",
2263
- "header": [],
2264
- "url": {
2265
- "raw": "{{baseUrl}}/o/{{organisation_id}}/notification_channels",
2266
- "host": [
2267
- "{{baseUrl}}"
2268
- ],
2269
- "path": [
2270
- "o",
2271
- "{{organisation_id}}",
2272
- "notification_channels"
2273
- ]
2274
- },
2275
- "description": "**List all notification channels**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** View configured notification channels (Slack, email, etc.)\n\n**Related Endpoints:**\n- `POST /notification-channels` - Create new channel"
2276
- }
2277
- },
2278
- {
2279
- "name": "Create Notification Channel",
2280
- "request": {
2281
- "method": "POST",
2282
- "header": [
2283
- {
2284
- "key": "Content-Type",
2285
- "value": "application/json"
2286
- }
2287
- ],
2288
- "body": {
2289
- "mode": "raw",
2290
- "raw": "{\n \"name\": \"My Channel\"\n}"
2291
- },
2292
- "url": {
2293
- "raw": "{{baseUrl}}/o/{{organisation_id}}/notification_channels",
2294
- "host": [
2295
- "{{baseUrl}}"
2296
- ],
2297
- "path": [
2298
- "o",
2299
- "{{organisation_id}}",
2300
- "notification_channels"
2301
- ]
2302
- },
2303
- "description": "**Create a new notification channel**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Body:**\n```json\n{\n \"type\": \"slack\",\n \"name\": \"Engineering Alerts\",\n \"config\": {\n \"webhookUrl\": \"https://hooks.slack.com/...\"\n }\n}\n```\n\n**Purpose:** Set up Slack, email, or other notification destinations.\n\n**Related Endpoints:**\n- `GET /notification-channels` - List channels"
2304
- }
2305
- },
2306
- {
2307
- "name": "Delete Notification Channel",
2308
- "request": {
2309
- "method": "DELETE",
2310
- "header": [],
2311
- "url": {
2312
- "raw": "{{baseUrl}}/o/{{organisation_id}}/notification_channels/{{channel_id}}",
2313
- "host": [
2314
- "{{baseUrl}}"
2315
- ],
2316
- "path": [
2317
- "o",
2318
- "{{organisation_id}}",
2319
- "notification_channels",
2320
- "{{channel_id}}"
2321
- ]
2322
- },
2323
- "description": "**Remove a notification channel**\n\n**Required Parameters:**\n- `organisation_id`\n- `channel_id`\n\n**Warning:** Projects using this channel will stop receiving notifications.\n\n**Related Endpoints:**\n- `GET /projects/{id}/notifications` - Check affected projects"
2324
- }
2325
- },
2326
- {
2327
- "name": "List Project Notifications",
2328
- "request": {
2329
- "method": "GET",
2330
- "header": [],
2331
- "url": {
2332
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/notifications",
2333
- "host": [
2334
- "{{baseUrl}}"
2335
- ],
2336
- "path": [
2337
- "o",
2338
- "{{organisation_id}}",
2339
- "projects",
2340
- "{{project_id}}",
2341
- "notifications"
2342
- ]
2343
- },
2344
- "description": "**List notification rules for a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** View notification rules (when to alert, which channel)\n\n**Related Endpoints:**\n- `POST /projects/{id}/notifications` - Create notification rule"
2345
- }
2346
- },
2347
- {
2348
- "name": "Create Project Notification",
2349
- "request": {
2350
- "method": "POST",
2351
- "header": [
2352
- {
2353
- "key": "Content-Type",
2354
- "value": "application/json"
2355
- }
2356
- ],
2357
- "body": {
2358
- "mode": "raw",
2359
- "raw": "{\n \"channelId\": \"{{channel_id}}\"\n}"
2360
- },
2361
- "url": {
2362
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/notifications",
2363
- "host": [
2364
- "{{baseUrl}}"
2365
- ],
2366
- "path": [
2367
- "o",
2368
- "{{organisation_id}}",
2369
- "projects",
2370
- "{{project_id}}",
2371
- "notifications"
2372
- ]
2373
- },
2374
- "description": "**Create a notification rule for a project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Body:**\n```json\n{\n \"channelId\": \"channel_123\",\n \"events\": [\"error\", \"warning\"],\n \"filter\": {\n \"severity\": \"high\"\n }\n}\n```\n\n**Purpose:** Define when and where to send notifications.\n\n**Related Endpoints:**\n- `GET /notification-channels` - Get channel IDs"
2375
- }
2376
- },
2377
- {
2378
- "name": "Delete Project Notification",
2379
- "request": {
2380
- "method": "DELETE",
2381
- "header": [],
2382
- "url": {
2383
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/{{project_id}}/notifications/{{notification_id}}",
2384
- "host": [
2385
- "{{baseUrl}}"
2386
- ],
2387
- "path": [
2388
- "o",
2389
- "{{organisation_id}}",
2390
- "projects",
2391
- "{{project_id}}",
2392
- "notifications",
2393
- "{{notification_id}}"
2394
- ]
2395
- },
2396
- "description": "**Remove a notification rule**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n- `notification_id`\n\n**Purpose:** Stop sending notifications for this rule.\n\n**Related Endpoints:**\n- `GET /projects/{id}/notifications` - List remaining rules"
2397
- }
2398
- }
2399
- ]
2400
- },
2401
- {
2402
- "name": "metrics",
2403
- "description": "View metrics and summaries",
2404
- "item": [
2405
- {
2406
- "name": "Get Organisation Metrics Summary",
2407
- "request": {
2408
- "method": "GET",
2409
- "header": [],
2410
- "url": {
2411
- "raw": "{{baseUrl}}/o/{{organisation_id}}/metricssummary",
2412
- "host": [
2413
- "{{baseUrl}}"
2414
- ],
2415
- "path": [
2416
- "o",
2417
- "{{organisation_id}}",
2418
- "metricssummary"
2419
- ]
2420
- },
2421
- "description": "**Get aggregated metrics for the organization**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** View usage statistics, execution counts, error rates, etc.\n\n**Response:** Aggregated metrics across all projects.\n\n**Related Endpoints:**\n- `GET /projects/{id}/metrics` - Project-specific metrics"
2422
- }
2423
- },
2424
- {
2425
- "name": "Get Project Metrics Summary",
2426
- "request": {
2427
- "method": "GET",
2428
- "header": [],
2429
- "url": {
2430
- "raw": "{{baseUrl}}/o/{{organisation_id}}/projects/metricssummary",
2431
- "host": [
2432
- "{{baseUrl}}"
2433
- ],
2434
- "path": [
2435
- "o",
2436
- "{{organisation_id}}",
2437
- "projects",
2438
- "metricssummary"
2439
- ]
2440
- },
2441
- "description": "**Get metrics for a specific project**\n\n**Required Parameters:**\n- `organisation_id`\n- `project_id`\n\n**Purpose:** View project-specific usage and performance metrics.\n\n**Response:** Execution counts, error rates, response times, etc.\n\n**Related Endpoints:**\n- `GET /organisations/{id}/metrics` - Organization-wide metrics"
2442
- }
2443
- }
2444
- ]
2445
- },
2446
- {
2447
- "name": "kv_store",
2448
- "description": "Manage key-value stores",
2449
- "item": [
2450
- {
2451
- "name": "List Stores",
2452
- "request": {
2453
- "method": "GET",
2454
- "header": [],
2455
- "url": {
2456
- "raw": "{{baseUrl}}/o/{{organisation_id}}/kv-stores",
2457
- "host": [
2458
- "{{baseUrl}}"
2459
- ],
2460
- "path": [
2461
- "o",
2462
- "{{organisation_id}}",
2463
- "kv-stores"
2464
- ]
2465
- },
2466
- "description": "**List all key-value stores**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Purpose:** View available KV stores for state management.\n\n**Related Endpoints:**\n- `POST /stores` - Create new store"
2467
- }
2468
- },
2469
- {
2470
- "name": "Create Store",
2471
- "request": {
2472
- "method": "POST",
2473
- "header": [
2474
- {
2475
- "key": "Content-Type",
2476
- "value": "application/json"
2477
- }
2478
- ],
2479
- "body": {
2480
- "mode": "raw",
2481
- "raw": "{\n \"name\": \"My Store\"\n}"
2482
- },
2483
- "url": {
2484
- "raw": "{{baseUrl}}/o/{{organisation_id}}/kv-stores",
2485
- "host": [
2486
- "{{baseUrl}}"
2487
- ],
2488
- "path": [
2489
- "o",
2490
- "{{organisation_id}}",
2491
- "kv-stores"
2492
- ]
2493
- },
2494
- "description": "**Create a new key-value store**\n\n**Required Parameters:**\n- `organisation_id`\n\n**Body:**\n```json\n{\n \"name\": \"session-cache\",\n \"description\": \"User session data\"\n}\n```\n\n**Purpose:** Create isolated KV namespace for data storage.\n\n**Related Endpoints:**\n- `GET /stores/{id}/kv` - List keys in store"
2495
- }
2496
- },
2497
- {
2498
- "name": "Get KV",
2499
- "request": {
2500
- "method": "GET",
2501
- "header": [],
2502
- "url": {
2503
- "raw": "{{baseUrl}}/store/{{store_id}}/kv/{{key}}",
2504
- "host": [
2505
- "{{baseUrl}}"
2506
- ],
2507
- "path": [
2508
- "store",
2509
- "{{store_id}}",
2510
- "kv",
2511
- "{{key}}"
2512
- ]
2513
- },
2514
- "description": "**Get a value from key-value store**\n\n**Required Parameters:**\n- `organisation_id`\n- `store_id`\n- `key`\n\n**Purpose:** Retrieve stored value by key.\n\n**Response:** Value stored at key (any JSON type)\n\n**Related Endpoints:**\n- `PUT /stores/{id}/kv/{key}` - Set value"
2515
- }
2516
- },
2517
- {
2518
- "name": "Set KV",
2519
- "request": {
2520
- "method": "PUT",
2521
- "header": [
2522
- {
2523
- "key": "Content-Type",
2524
- "value": "application/json"
2525
- }
2526
- ],
2527
- "body": {
2528
- "mode": "raw",
2529
- "raw": "\"value\""
2530
- },
2531
- "url": {
2532
- "raw": "{{baseUrl}}/store/{{store_id}}/kv/{{key}}",
2533
- "host": [
2534
- "{{baseUrl}}"
2535
- ],
2536
- "path": [
2537
- "store",
2538
- "{{store_id}}",
2539
- "kv",
2540
- "{{key}}"
2541
- ]
2542
- },
2543
- "description": "**Set a value in key-value store**\n\n**Required Parameters:**\n- `organisation_id`\n- `store_id`\n- `key`\n\n**Body:**\n```json\n{\n \"value\": \"any JSON value\",\n \"ttl\": 3600\n}\n```\n\n**Purpose:** Store value at key with optional TTL.\n\n**Related Endpoints:**\n- `GET /stores/{id}/kv/{key}` - Get value"
2544
- }
2545
- },
2546
- {
2547
- "name": "Delete KV",
2548
- "request": {
2549
- "method": "DELETE",
2550
- "header": [],
2551
- "url": {
2552
- "raw": "{{baseUrl}}/store/{{store_id}}/kv/{{key}}",
2553
- "host": [
2554
- "{{baseUrl}}"
2555
- ],
2556
- "path": [
2557
- "store",
2558
- "{{store_id}}",
2559
- "kv",
2560
- "{{key}}"
2561
- ]
2562
- },
2563
- "description": "**Delete a key from store**\n\n**Required Parameters:**\n- `organisation_id`\n- `store_id`\n- `key`\n\n**Purpose:** Remove key and value from store.\n\n**Related Endpoints:**\n- `GET /stores/{id}/kv` - List remaining keys"
2564
- }
2565
- },
2566
- {
2567
- "name": "Batch Get KV",
2568
- "request": {
2569
- "method": "POST",
2570
- "header": [
2571
- {
2572
- "key": "Content-Type",
2573
- "value": "application/json"
2574
- }
2575
- ],
2576
- "body": {
2577
- "mode": "raw",
2578
- "raw": "{\n \"keys\": []\n}"
2579
- },
2580
- "url": {
2581
- "raw": "{{baseUrl}}/o/{{organisation_id}}/kv-stores/{{store_id}}/kv:batchGet",
2582
- "host": [
2583
- "{{baseUrl}}"
2584
- ],
2585
- "path": [
2586
- "o",
2587
- "{{organisation_id}}",
2588
- "kv-stores",
2589
- "{{store_id}}",
2590
- "kv:batchGet"
2591
- ]
2592
- },
2593
- "description": "**Get multiple values at once**\n\n**Required Parameters:**\n- `organisation_id`\n- `store_id`\n\n**Body:**\n```json\n{\n \"keys\": [\"key1\", \"key2\", \"key3\"]\n}\n```\n\n**Purpose:** Retrieve multiple values in single request.\n\n**Response:** Object mapping keys to values.\n\n**Related Endpoints:**\n- `POST /stores/{id}/kv/batch-set` - Set multiple values"
2594
- }
2595
- },
2596
- {
2597
- "name": "Batch Set KV",
2598
- "request": {
2599
- "method": "PUT",
2600
- "header": [
2601
- {
2602
- "key": "Content-Type",
2603
- "value": "application/json"
2604
- }
2605
- ],
2606
- "body": {
2607
- "mode": "raw",
2608
- "raw": "{\n \"items\": {}\n}"
2609
- },
2610
- "url": {
2611
- "raw": "{{baseUrl}}/o/{{organisation_id}}/kv-stores/{{store_id}}/kv:batchSet",
2612
- "host": [
2613
- "{{baseUrl}}"
2614
- ],
2615
- "path": [
2616
- "o",
2617
- "{{organisation_id}}",
2618
- "kv-stores",
2619
- "{{store_id}}",
2620
- "kv:batchSet"
2621
- ]
2622
- },
2623
- "description": "**Set multiple values at once**\n\n**Required Parameters:**\n- `organisation_id`\n- `store_id`\n\n**Body:**\n```json\n{\n \"items\": [\n { \"key\": \"key1\", \"value\": \"value1\", \"ttl\": 3600 },\n { \"key\": \"key2\", \"value\": \"value2\" }\n ]\n}\n```\n\n**Purpose:** Store multiple key-value pairs in single request.\n\n**Related Endpoints:**\n- `POST /stores/{id}/kv/batch-get` - Get multiple values"
2624
- }
2625
- },
2626
- {
2627
- "name": "Batch Delete KV",
2628
- "request": {
2629
- "method": "DELETE",
2630
- "header": [
2631
- {
2632
- "key": "Content-Type",
2633
- "value": "application/json"
2634
- }
2635
- ],
2636
- "body": {
2637
- "mode": "raw",
2638
- "raw": "{\n \"keys\": []\n}"
2639
- },
2640
- "url": {
2641
- "raw": "{{baseUrl}}/o/{{organisation_id}}/kv-stores/{{store_id}}/kv:batchDelete",
2642
- "host": [
2643
- "{{baseUrl}}"
2644
- ],
2645
- "path": [
2646
- "o",
2647
- "{{organisation_id}}",
2648
- "kv-stores",
2649
- "{{store_id}}",
2650
- "kv:batchDelete"
2651
- ]
2652
- },
2653
- "description": "**Delete multiple keys at once**\n\n**Required Parameters:**\n- `organisation_id`\n- `store_id`\n\n**Body:**\n```json\n{\n \"keys\": [\"key1\", \"key2\", \"key3\"]\n}\n```\n\n**Purpose:** Remove multiple keys in single request.\n\n**Related Endpoints:**\n- `GET /stores/{id}/kv` - List remaining keys"
2654
- }
2655
- },
2656
- {
2657
- "name": "List KV",
2658
- "request": {
2659
- "method": "POST",
2660
- "header": [
2661
- {
2662
- "key": "Content-Type",
2663
- "value": "application/json"
2664
- }
2665
- ],
2666
- "body": {
2667
- "mode": "raw",
2668
- "raw": "{\n \"prefix\": \"\"\n}"
2669
- },
2670
- "url": {
2671
- "raw": "{{baseUrl}}/o/{{organisation_id}}/kv-stores/{{store_id}}/kv:list",
2672
- "host": [
2673
- "{{baseUrl}}"
2674
- ],
2675
- "path": [
2676
- "o",
2677
- "{{organisation_id}}",
2678
- "kv-stores",
2679
- "{{store_id}}",
2680
- "kv:list"
2681
- ]
2682
- },
2683
- "description": "**List all keys in a store**\n\n**Required Parameters:**\n- `organisation_id`\n- `store_id`\n\n**Query Parameters:**\n- `prefix` - Filter by key prefix\n- `limit` - Max keys to return\n- `cursor` - Pagination cursor\n\n**Purpose:** Browse keys in store with optional filtering.\n\n**Response:** Array of keys (or key-value pairs)\n\n**Related Endpoints:**\n- `GET /stores/{id}/kv/count` - Count keys"
2684
- }
2685
- },
2686
- {
2687
- "name": "Count KV",
2688
- "request": {
2689
- "method": "POST",
2690
- "header": [
2691
- {
2692
- "key": "Content-Type",
2693
- "value": "application/json"
2694
- }
2695
- ],
2696
- "body": {
2697
- "mode": "raw",
2698
- "raw": "{\n \"prefix\": \"\"\n}"
2699
- },
2700
- "url": {
2701
- "raw": "{{baseUrl}}/o/{{organisation_id}}/kv-stores/{{store_id}}/kv:count",
2702
- "host": [
2703
- "{{baseUrl}}"
2704
- ],
2705
- "path": [
2706
- "o",
2707
- "{{organisation_id}}",
2708
- "kv-stores",
2709
- "{{store_id}}",
2710
- "kv:count"
2711
- ]
2712
- },
2713
- "description": "**Count keys in store**\n\n**Required Parameters:**\n- `organisation_id`\n- `store_id`\n\n**Query Parameters:**\n- `prefix` - Filter by key prefix\n\n**Purpose:** Get total number of keys (optionally with prefix filter)\n\n**Response:**\n```json\n{\n \"count\": 1234\n}\n```\n\n**Related Endpoints:**\n- `GET /stores/{id}/kv` - List keys"
2714
- }
2715
- }
2716
- ]
2717
- }
2718
- ],
2719
- "auth": {
2720
- "type": "apikey",
2721
- "apikey": [
2722
- {
2723
- "key": "value",
2724
- "value": "JWT {{jwt_token}}",
2725
- "type": "string"
2726
- },
2727
- {
2728
- "key": "key",
2729
- "value": "Authorization",
2730
- "type": "string"
2731
- }
2732
- ]
2733
- },
2734
- "event": [
2735
- {
2736
- "listen": "prerequest",
2737
- "script": {
2738
- "type": "text/javascript",
2739
- "exec": [
2740
- ""
2741
- ]
2742
- }
2743
- },
2744
- {
2745
- "listen": "test",
2746
- "script": {
2747
- "type": "text/javascript",
2748
- "exec": [
2749
- ""
2750
- ]
2751
- }
2752
- }
2753
- ],
2754
- "variable": [
2755
- {
2756
- "key": "baseUrl",
2757
- "value": "https://platform.versori.com/api/v2",
2758
- "type": "string"
2759
- },
2760
- {
2761
- "key": "organisation_id",
2762
- "value": "",
2763
- "type": "string"
2764
- },
2765
- {
2766
- "key": "project_id",
2767
- "value": "",
2768
- "type": "string"
2769
- },
2770
- {
2771
- "key": "environment_id",
2772
- "value": "",
2773
- "type": "string"
2774
- },
2775
- {
2776
- "key": "user_id",
2777
- "value": "",
2778
- "type": "string"
2779
- },
2780
- {
2781
- "key": "activation_id",
2782
- "value": "",
2783
- "type": "string"
2784
- },
2785
- {
2786
- "key": "connection_id",
2787
- "value": "",
2788
- "type": "string"
2789
- },
2790
- {
2791
- "key": "system_id",
2792
- "value": "",
2793
- "type": "string"
2794
- },
2795
- {
2796
- "key": "jwt_token",
2797
- "value": "",
2798
- "type": "string"
2799
- },
2800
- {
2801
- "key": "version_id",
2802
- "value": "",
2803
- "type": "string"
2804
- },
2805
- {
2806
- "key": "trigger_name",
2807
- "value": "",
2808
- "type": "string"
2809
- },
2810
- {
2811
- "key": "trace_id",
2812
- "value": "",
2813
- "type": "string"
2814
- },
2815
- {
2816
- "key": "flow_name",
2817
- "value": "",
2818
- "type": "string"
2819
- },
2820
- {
2821
- "key": "env_system_id",
2822
- "value": "",
2823
- "type": "string"
2824
- },
2825
- {
2826
- "key": "credential_id",
2827
- "value": "",
2828
- "type": "string"
2829
- },
2830
- {
2831
- "key": "external_user_id",
2832
- "value": "",
2833
- "type": "string"
2834
- },
2835
- {
2836
- "key": "variable_name",
2837
- "value": "",
2838
- "type": "string"
2839
- },
2840
- {
2841
- "key": "action_id",
2842
- "value": "",
2843
- "type": "string"
2844
- },
2845
- {
2846
- "key": "auth_scheme_config_id",
2847
- "value": "",
2848
- "type": "string"
2849
- },
2850
- {
2851
- "key": "template_id",
2852
- "value": "",
2853
- "type": "string"
2854
- },
2855
- {
2856
- "key": "automation_id",
2857
- "value": "",
2858
- "type": "string"
2859
- },
2860
- {
2861
- "key": "run_id",
2862
- "value": "",
2863
- "type": "string"
2864
- },
2865
- {
2866
- "key": "recording_id",
2867
- "value": "",
2868
- "type": "string"
2869
- },
2870
- {
2871
- "key": "scheduler_id",
2872
- "value": "",
2873
- "type": "string"
2874
- },
2875
- {
2876
- "key": "issue_id",
2877
- "value": "",
2878
- "type": "string"
2879
- },
2880
- {
2881
- "key": "channel_id",
2882
- "value": "",
2883
- "type": "string"
2884
- },
2885
- {
2886
- "key": "notification_id",
2887
- "value": "",
2888
- "type": "string"
2889
- },
2890
- {
2891
- "key": "store_id",
2892
- "value": "",
2893
- "type": "string"
2894
- },
2895
- {
2896
- "key": "key",
2897
- "value": "",
2898
- "type": "string"
2899
- },
2900
- {
2901
- "key": "start_time",
2902
- "value": "",
2903
- "type": "string",
2904
- "description": "Start time for logs (ISO 8601 format, e.g., 2025-01-19T00:00:00Z)"
2905
- },
2906
- {
2907
- "key": "end_time",
2908
- "value": "",
2909
- "type": "string",
2910
- "description": "End time for logs (ISO 8601 format, e.g., 2025-01-19T23:59:59Z)"
2911
- },
2912
- {
2913
- "key": "search_text",
2914
- "value": "",
2915
- "type": "string",
2916
- "description": "Search text for filtering logs"
2917
- },
2918
- {
2919
- "key": "template_id",
2920
- "value": "",
2921
- "type": "string",
2922
- "description": "Connection template ID"
2923
- }
2924
- ]
2925
- }