Skip to content

Commit 0e8ea5f

Browse files
Merge remote-tracking branch 'origin/improvement/v2-endpoints' into feat/v2-tables-coverage
# Conflicts: # scripts/check-api-validation-contracts.ts
2 parents b25c426 + ca1dad8 commit 0e8ea5f

58 files changed

Lines changed: 4925 additions & 290 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/docs/openapi-v2-files-audit.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,38 @@
7979
},
8080
{
8181
"$ref": "#/components/parameters/Cursor"
82+
},
83+
{
84+
"name": "folderId",
85+
"in": "query",
86+
"required": false,
87+
"description": "Restrict the list to one folder. Omit to list every file in the workspace.",
88+
"schema": { "type": "string", "minLength": 1 }
89+
},
90+
{
91+
"name": "search",
92+
"in": "query",
93+
"required": false,
94+
"description": "Case-insensitive substring match against the file `name`. Matches nothing else — not ids, descriptions, or content. `%` and `_` are matched literally. Must be non-empty; omit the parameter instead of sending a blank one.",
95+
"schema": { "type": "string", "minLength": 1, "maxLength": 200 }
96+
},
97+
{
98+
"name": "sortBy",
99+
"in": "query",
100+
"required": false,
101+
"description": "Field to sort by. The cursor is a keyset over the active sort, so it carries the sort it was minted under. Replaying a cursor after changing `sortBy` or `sortOrder` returns `400`; restart pagination without a cursor instead.",
102+
"schema": {
103+
"type": "string",
104+
"enum": ["name", "size", "uploadedAt", "updatedAt"],
105+
"default": "uploadedAt"
106+
}
107+
},
108+
{
109+
"name": "sortOrder",
110+
"in": "query",
111+
"required": false,
112+
"description": "Sort direction. The cursor is a keyset over the active sort, so it carries the sort it was minted under. Replaying a cursor after changing `sortBy` or `sortOrder` returns `400`; restart pagination without a cursor instead.",
113+
"schema": { "type": "string", "enum": ["asc", "desc"], "default": "asc" }
82114
}
83115
],
84116
"responses": {

apps/docs/openapi-v2-knowledge.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,38 @@
4848
"parameters": [
4949
{
5050
"$ref": "#/components/parameters/WorkspaceIdQuery"
51+
},
52+
{
53+
"name": "folderId",
54+
"in": "query",
55+
"required": false,
56+
"description": "Restrict the list to one folder. Omit to list every knowledge base in the workspace.",
57+
"schema": { "type": "string", "minLength": 1 }
58+
},
59+
{
60+
"name": "search",
61+
"in": "query",
62+
"required": false,
63+
"description": "Case-insensitive substring match against the knowledge base `name`. Matches nothing else — not ids, descriptions, or content. `%` and `_` are matched literally. Must be non-empty; omit the parameter instead of sending a blank one.",
64+
"schema": { "type": "string", "minLength": 1, "maxLength": 200 }
65+
},
66+
{
67+
"name": "sortBy",
68+
"in": "query",
69+
"required": false,
70+
"description": "Field to sort by.",
71+
"schema": {
72+
"type": "string",
73+
"enum": ["name", "createdAt", "updatedAt"],
74+
"default": "createdAt"
75+
}
76+
},
77+
{
78+
"name": "sortOrder",
79+
"in": "query",
80+
"required": false,
81+
"description": "Sort direction.",
82+
"schema": { "type": "string", "enum": ["asc", "desc"], "default": "asc" }
5183
}
5284
],
5385
"responses": {

apps/docs/openapi-v2-resources.json

Lines changed: 134 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,34 @@
6161
"source": "curl \\\n \"https://www.sim.ai/api/v2/mcp-servers?workspaceId=YOUR_WORKSPACE_ID\" \\\n -H \"X-API-Key: YOUR_API_KEY\""
6262
}
6363
],
64-
"parameters": [{ "$ref": "#/components/parameters/WorkspaceIdQuery" }],
64+
"parameters": [
65+
{ "$ref": "#/components/parameters/WorkspaceIdQuery" },
66+
{
67+
"name": "search",
68+
"in": "query",
69+
"required": false,
70+
"description": "Case-insensitive substring match against the MCP server `name`. Matches nothing else — not ids, descriptions, or content. `%` and `_` are matched literally. Must be non-empty; omit the parameter instead of sending a blank one.",
71+
"schema": { "type": "string", "minLength": 1, "maxLength": 200 }
72+
},
73+
{
74+
"name": "sortBy",
75+
"in": "query",
76+
"required": false,
77+
"description": "Field to sort by.",
78+
"schema": {
79+
"type": "string",
80+
"enum": ["name", "createdAt", "updatedAt"],
81+
"default": "createdAt"
82+
}
83+
},
84+
{
85+
"name": "sortOrder",
86+
"in": "query",
87+
"required": false,
88+
"description": "Sort direction.",
89+
"schema": { "type": "string", "enum": ["asc", "desc"], "default": "desc" }
90+
}
91+
],
6592
"responses": {
6693
"200": {
6794
"description": "MCP servers registered in the workspace.",
@@ -405,7 +432,34 @@
405432
"source": "curl \\\n \"https://www.sim.ai/api/v2/skills?workspaceId=YOUR_WORKSPACE_ID\" \\\n -H \"X-API-Key: YOUR_API_KEY\""
406433
}
407434
],
408-
"parameters": [{ "$ref": "#/components/parameters/WorkspaceIdQuery" }],
435+
"parameters": [
436+
{ "$ref": "#/components/parameters/WorkspaceIdQuery" },
437+
{
438+
"name": "search",
439+
"in": "query",
440+
"required": false,
441+
"description": "Case-insensitive substring match against the skill `name`. Matches nothing else — not ids, descriptions, or content. `%` and `_` are matched literally. Must be non-empty; omit the parameter instead of sending a blank one.",
442+
"schema": { "type": "string", "minLength": 1, "maxLength": 200 }
443+
},
444+
{
445+
"name": "sortBy",
446+
"in": "query",
447+
"required": false,
448+
"description": "Field to sort by. Built-in skills have no stored timestamps and sort as if created at the Unix epoch.",
449+
"schema": {
450+
"type": "string",
451+
"enum": ["name", "createdAt", "updatedAt"],
452+
"default": "createdAt"
453+
}
454+
},
455+
{
456+
"name": "sortOrder",
457+
"in": "query",
458+
"required": false,
459+
"description": "Sort direction.",
460+
"schema": { "type": "string", "enum": ["asc", "desc"], "default": "desc" }
461+
}
462+
],
409463
"responses": {
410464
"200": {
411465
"description": "Skills available in the workspace.",
@@ -706,7 +760,34 @@
706760
"source": "curl \\\n \"https://www.sim.ai/api/v2/custom-tools?workspaceId=YOUR_WORKSPACE_ID\" \\\n -H \"X-API-Key: YOUR_API_KEY\""
707761
}
708762
],
709-
"parameters": [{ "$ref": "#/components/parameters/WorkspaceIdQuery" }],
763+
"parameters": [
764+
{ "$ref": "#/components/parameters/WorkspaceIdQuery" },
765+
{
766+
"name": "search",
767+
"in": "query",
768+
"required": false,
769+
"description": "Case-insensitive substring match against the custom tool `title`. Matches nothing else — not ids, descriptions, or content. `%` and `_` are matched literally. Must be non-empty; omit the parameter instead of sending a blank one.",
770+
"schema": { "type": "string", "minLength": 1, "maxLength": 200 }
771+
},
772+
{
773+
"name": "sortBy",
774+
"in": "query",
775+
"required": false,
776+
"description": "Field to sort by.",
777+
"schema": {
778+
"type": "string",
779+
"enum": ["title", "createdAt", "updatedAt"],
780+
"default": "createdAt"
781+
}
782+
},
783+
{
784+
"name": "sortOrder",
785+
"in": "query",
786+
"required": false,
787+
"description": "Sort direction.",
788+
"schema": { "type": "string", "enum": ["asc", "desc"], "default": "desc" }
789+
}
790+
],
710791
"responses": {
711792
"200": {
712793
"description": "Custom tools defined in the workspace.",
@@ -1057,6 +1138,31 @@
10571138
"required": false,
10581139
"description": "`active` (default) lists live folders; `archived` lists Recently Deleted.",
10591140
"schema": { "type": "string", "enum": ["active", "archived"], "default": "active" }
1141+
},
1142+
{
1143+
"name": "search",
1144+
"in": "query",
1145+
"required": false,
1146+
"description": "Case-insensitive substring match against the folder `name`. Matches nothing else — not ids, descriptions, or content. `%` and `_` are matched literally. Must be non-empty; omit the parameter instead of sending a blank one.",
1147+
"schema": { "type": "string", "minLength": 1, "maxLength": 200 }
1148+
},
1149+
{
1150+
"name": "sortBy",
1151+
"in": "query",
1152+
"required": false,
1153+
"description": "Field to sort by. `position` is the tree's own manual arrangement, which is the default order.",
1154+
"schema": {
1155+
"type": "string",
1156+
"enum": ["position", "name", "createdAt", "updatedAt"],
1157+
"default": "position"
1158+
}
1159+
},
1160+
{
1161+
"name": "sortOrder",
1162+
"in": "query",
1163+
"required": false,
1164+
"description": "Sort direction.",
1165+
"schema": { "type": "string", "enum": ["asc", "desc"], "default": "asc" }
10601166
}
10611167
],
10621168
"responses": {
@@ -1407,6 +1513,31 @@
14071513
"required": false,
14081514
"description": "Only return credentials for this integration.",
14091515
"schema": { "type": "string", "minLength": 1, "example": "slack" }
1516+
},
1517+
{
1518+
"name": "search",
1519+
"in": "query",
1520+
"required": false,
1521+
"description": "Case-insensitive substring match against the credential `displayName`. Matches nothing else — not ids, descriptions, or content. `%` and `_` are matched literally. Must be non-empty; omit the parameter instead of sending a blank one.",
1522+
"schema": { "type": "string", "minLength": 1, "maxLength": 200 }
1523+
},
1524+
{
1525+
"name": "sortBy",
1526+
"in": "query",
1527+
"required": false,
1528+
"description": "Field to sort by.",
1529+
"schema": {
1530+
"type": "string",
1531+
"enum": ["displayName", "createdAt", "updatedAt"],
1532+
"default": "createdAt"
1533+
}
1534+
},
1535+
{
1536+
"name": "sortOrder",
1537+
"in": "query",
1538+
"required": false,
1539+
"description": "Sort direction.",
1540+
"schema": { "type": "string", "enum": ["asc", "desc"], "default": "desc" }
14101541
}
14111542
],
14121543
"responses": {

apps/docs/openapi-v2-tables.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,38 @@
4949
"parameters": [
5050
{
5151
"$ref": "#/components/parameters/WorkspaceIdQuery"
52+
},
53+
{
54+
"name": "folderId",
55+
"in": "query",
56+
"required": false,
57+
"description": "Restrict the list to one folder. Omit to list every table in the workspace.",
58+
"schema": { "type": "string", "minLength": 1 }
59+
},
60+
{
61+
"name": "search",
62+
"in": "query",
63+
"required": false,
64+
"description": "Case-insensitive substring match against the table `name`. Matches nothing else — not ids, descriptions, or content. `%` and `_` are matched literally. Must be non-empty; omit the parameter instead of sending a blank one.",
65+
"schema": { "type": "string", "minLength": 1, "maxLength": 200 }
66+
},
67+
{
68+
"name": "sortBy",
69+
"in": "query",
70+
"required": false,
71+
"description": "Field to sort by.",
72+
"schema": {
73+
"type": "string",
74+
"enum": ["name", "createdAt", "updatedAt"],
75+
"default": "createdAt"
76+
}
77+
},
78+
{
79+
"name": "sortOrder",
80+
"in": "query",
81+
"required": false,
82+
"description": "Sort direction.",
83+
"schema": { "type": "string", "enum": ["asc", "desc"], "default": "asc" }
5284
}
5385
],
5486
"responses": {

0 commit comments

Comments
 (0)