Skip to content

Commit eddd53a

Browse files
feat(api): add v2 endpoints for MCP servers, skills, custom tools, folders, and credentials (#6150)
* feat(api): add v2 endpoints for MCP servers, skills, custom tools, folders, and credentials * fix(api): correct credential role, skill permission bar, MCP url identity, and custom-tool conflict mapping * fix(api): align credential mutation gating, provider-outage status, and unique-violation conflicts * fix(api): close unique-violation, revival, orphan-write, and env-rename gaps * fix(api): treat every provider-outage code as unavailable on create and update * fix(credentials): use the shared outage predicate on the session update path
1 parent 5fea5f7 commit eddd53a

55 files changed

Lines changed: 10340 additions & 834 deletions

File tree

Some content is hidden

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

apps/docs/content/docs/de/api-reference/meta.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
"(generated)/tables",
1616
"(generated)/files",
1717
"(generated)/knowledge-bases",
18+
"(generated)/mcp-servers",
19+
"(generated)/skills",
20+
"(generated)/custom-tools",
21+
"(generated)/folders",
22+
"(generated)/credentials",
1823
"---Execution and Usage---",
1924
"(generated)/execution",
2025
"(generated)/human-in-the-loop",

apps/docs/content/docs/en/api-reference/meta.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
"(generated)/tables",
1616
"(generated)/files",
1717
"(generated)/knowledge-bases",
18+
"(generated)/mcp-servers",
19+
"(generated)/skills",
20+
"(generated)/custom-tools",
21+
"(generated)/folders",
22+
"(generated)/credentials",
1823
"---Execution and Usage---",
1924
"(generated)/execution",
2025
"(generated)/human-in-the-loop",

apps/docs/content/docs/es/api-reference/meta.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
"(generated)/tables",
1616
"(generated)/files",
1717
"(generated)/knowledge-bases",
18+
"(generated)/mcp-servers",
19+
"(generated)/skills",
20+
"(generated)/custom-tools",
21+
"(generated)/folders",
22+
"(generated)/credentials",
1823
"---Execution and Usage---",
1924
"(generated)/execution",
2025
"(generated)/human-in-the-loop",

apps/docs/content/docs/fr/api-reference/meta.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
"(generated)/tables",
1616
"(generated)/files",
1717
"(generated)/knowledge-bases",
18+
"(generated)/mcp-servers",
19+
"(generated)/skills",
20+
"(generated)/custom-tools",
21+
"(generated)/folders",
22+
"(generated)/credentials",
1823
"---Execution and Usage---",
1924
"(generated)/execution",
2025
"(generated)/human-in-the-loop",

apps/docs/content/docs/ja/api-reference/meta.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
"(generated)/tables",
1616
"(generated)/files",
1717
"(generated)/knowledge-bases",
18+
"(generated)/mcp-servers",
19+
"(generated)/skills",
20+
"(generated)/custom-tools",
21+
"(generated)/folders",
22+
"(generated)/credentials",
1823
"---Execution and Usage---",
1924
"(generated)/execution",
2025
"(generated)/human-in-the-loop",

apps/docs/content/docs/zh/api-reference/meta.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
"(generated)/tables",
1616
"(generated)/files",
1717
"(generated)/knowledge-bases",
18+
"(generated)/mcp-servers",
19+
"(generated)/skills",
20+
"(generated)/custom-tools",
21+
"(generated)/folders",
22+
"(generated)/credentials",
1823
"---Execution and Usage---",
1924
"(generated)/execution",
2025
"(generated)/human-in-the-loop",

apps/docs/lib/openapi.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const SPEC_FILES = [
99
'openapi-v2-tables.json',
1010
'openapi-v2-knowledge.json',
1111
'openapi-v2-files-audit.json',
12+
'openapi-v2-resources.json',
1213
] as const
1314

1415
export const openapi = createOpenAPI({

apps/docs/openapi-v2-resources.json

Lines changed: 2737 additions & 0 deletions
Large diffs are not rendered by default.

apps/sim/app/api/credentials/[id]/route.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ import { getValidationErrorMessage, parseRequest } from '@/lib/api/server'
55
import { getSession } from '@/lib/auth'
66
import { withRouteHandler } from '@/lib/core/utils/with-route-handler'
77
import { type CredentialActorContext, getCredentialActorContext } from '@/lib/credentials/access'
8-
import { performDeleteCredential, performUpdateCredential } from '@/lib/credentials/orchestration'
8+
import {
9+
isProviderOutageCode,
10+
performDeleteCredential,
11+
performUpdateCredential,
12+
} from '@/lib/credentials/orchestration'
913

1014
const logger = createLogger('CredentialByIdAPI')
1115

@@ -101,7 +105,9 @@ export const PUT = withRouteHandler(
101105
? 409
102106
: // A provider outage during reconnect is infra, not a bad
103107
// request — mirror the create route and runtime token route.
104-
result.providerErrorCode === 'provider_unavailable'
108+
// Every provider family names its own outage code, so this
109+
// asks the shared predicate rather than matching one literal.
110+
isProviderOutageCode(result.providerErrorCode)
105111
? 502
106112
: result.errorCode === 'validation'
107113
? 400

0 commit comments

Comments
 (0)