@vm0/cli 9.238.5 → 9.238.6
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.
- package/{agent-KS3ULPSZ.js → agent-RI5TB3MT.js} +5 -5
- package/{banking-2B3GDOIE.js → banking-ZZTY42QD.js} +3 -3
- package/{chat-HP7XYF7H.js → chat-VBEB2LIU.js} +4 -4
- package/{chunk-VUER2HGS.js → chunk-2YG67KBB.js} +2 -2
- package/{chunk-TEJZT6KB.js → chunk-3PWT6JIH.js} +4 -4
- package/{chunk-T3XOMNS6.js → chunk-CEKLUICQ.js} +3 -3
- package/{chunk-H4Y7JDZB.js → chunk-DUOJIVWA.js} +3 -3
- package/{chunk-VC7E6IA7.js → chunk-GE2LI4MS.js} +3 -3
- package/chunk-GE2LI4MS.js.map +1 -0
- package/{chunk-EJBHYDGP.js → chunk-MM5ESLJI.js} +4 -4
- package/{chunk-GIACTMOF.js → chunk-MSZRROJT.js} +220 -142
- package/chunk-MSZRROJT.js.map +1 -0
- package/{chunk-YQ5ZYQN3.js → chunk-VWG7JMMA.js} +2 -2
- package/{chunk-OCOHCUE3.js → chunk-W7KBXNOK.js} +135 -200
- package/chunk-W7KBXNOK.js.map +1 -0
- package/{chunk-UHVWYX44.js → chunk-ZOTQGSKT.js} +2 -2
- package/{computer-use-6GZVM5S6.js → computer-use-2GWQELMK.js} +3 -3
- package/{connector-SFMD6HBQ.js → connector-HVF5LTLS.js} +4 -4
- package/{credit-B465R4TF.js → credit-DR3ZW2FG.js} +4 -4
- package/{developer-support-6GM2UW5P.js → developer-support-LUUIXIXG.js} +3 -3
- package/{doctor-Z3HFRIKJ.js → doctor-XNJOG3LG.js} +70 -248
- package/doctor-XNJOG3LG.js.map +1 -0
- package/{generate-37CJMAVG.js → generate-EEWDZMO7.js} +4 -4
- package/{github-6CSR7332.js → github-WSCP6BCL.js} +3 -3
- package/{goal-XURMW5OS.js → goal-TBQ73X4G.js} +3 -3
- package/{host-EVFNV5BX.js → host-FF62XPMH.js} +3 -3
- package/index.js +13 -13
- package/{logs-DR7ZTWBK.js → logs-PKOHZJ5X.js} +6 -6
- package/{maps-IAVJJMRT.js → maps-LC4V32L6.js} +3 -3
- package/{memory-X765S3ZI.js → memory-IQO5L4DF.js} +3 -3
- package/{model-ZYVNUG47.js → model-NJ3PEGDV.js} +4 -4
- package/{model-provider-SZIIRXS3.js → model-provider-MPBVWSUT.js} +4 -4
- package/{org-GBDLJZSE.js → org-FFCTROTZ.js} +3 -3
- package/package.json +1 -1
- package/{phone-KA4NZFQC.js → phone-35G4MSU4.js} +3 -3
- package/{preference-TEMJHA73.js → preference-7LX3CJUT.js} +3 -3
- package/{relationship-OXV2SPNL.js → relationship-PKU2B5BP.js} +3 -3
- package/{resource-2WREU3GR.js → resource-ENHLW46D.js} +3 -3
- package/{search-V5V5IHY7.js → search-ZKKMK4PS.js} +6 -6
- package/{secret-LIAHG47P.js → secret-7K6ED3SD.js} +3 -3
- package/{slack-BUOXO2HU.js → slack-VTGS2LE7.js} +3 -3
- package/{teams-G7TYHRJB.js → teams-SOYUSM2G.js} +3 -3
- package/{telegram-DEHNZSEN.js → telegram-F2GYSKWJ.js} +3 -3
- package/{variable-RMYF6NVZ.js → variable-6NWZSJVI.js} +3 -3
- package/{video-XEYMVSIU.js → video-VHL2UFS7.js} +2 -2
- package/{web-4REDKON3.js → web-6A35VLL5.js} +3 -3
- package/{whoami-66W7DPQX.js → whoami-6SU2NDI3.js} +5 -5
- package/{workflow-PBJVC6HV.js → workflow-W23JY7HR.js} +3 -3
- package/zero.js +34 -34
- package/chunk-GIACTMOF.js.map +0 -1
- package/chunk-OCOHCUE3.js.map +0 -1
- package/chunk-VC7E6IA7.js.map +0 -1
- package/doctor-Z3HFRIKJ.js.map +0 -1
- /package/{agent-KS3ULPSZ.js.map → agent-RI5TB3MT.js.map} +0 -0
- /package/{banking-2B3GDOIE.js.map → banking-ZZTY42QD.js.map} +0 -0
- /package/{chat-HP7XYF7H.js.map → chat-VBEB2LIU.js.map} +0 -0
- /package/{chunk-VUER2HGS.js.map → chunk-2YG67KBB.js.map} +0 -0
- /package/{chunk-TEJZT6KB.js.map → chunk-3PWT6JIH.js.map} +0 -0
- /package/{chunk-T3XOMNS6.js.map → chunk-CEKLUICQ.js.map} +0 -0
- /package/{chunk-H4Y7JDZB.js.map → chunk-DUOJIVWA.js.map} +0 -0
- /package/{chunk-EJBHYDGP.js.map → chunk-MM5ESLJI.js.map} +0 -0
- /package/{chunk-YQ5ZYQN3.js.map → chunk-VWG7JMMA.js.map} +0 -0
- /package/{chunk-UHVWYX44.js.map → chunk-ZOTQGSKT.js.map} +0 -0
- /package/{computer-use-6GZVM5S6.js.map → computer-use-2GWQELMK.js.map} +0 -0
- /package/{connector-SFMD6HBQ.js.map → connector-HVF5LTLS.js.map} +0 -0
- /package/{credit-B465R4TF.js.map → credit-DR3ZW2FG.js.map} +0 -0
- /package/{developer-support-6GM2UW5P.js.map → developer-support-LUUIXIXG.js.map} +0 -0
- /package/{generate-37CJMAVG.js.map → generate-EEWDZMO7.js.map} +0 -0
- /package/{github-6CSR7332.js.map → github-WSCP6BCL.js.map} +0 -0
- /package/{goal-XURMW5OS.js.map → goal-TBQ73X4G.js.map} +0 -0
- /package/{host-EVFNV5BX.js.map → host-FF62XPMH.js.map} +0 -0
- /package/{logs-DR7ZTWBK.js.map → logs-PKOHZJ5X.js.map} +0 -0
- /package/{maps-IAVJJMRT.js.map → maps-LC4V32L6.js.map} +0 -0
- /package/{memory-X765S3ZI.js.map → memory-IQO5L4DF.js.map} +0 -0
- /package/{model-ZYVNUG47.js.map → model-NJ3PEGDV.js.map} +0 -0
- /package/{model-provider-SZIIRXS3.js.map → model-provider-MPBVWSUT.js.map} +0 -0
- /package/{org-GBDLJZSE.js.map → org-FFCTROTZ.js.map} +0 -0
- /package/{phone-KA4NZFQC.js.map → phone-35G4MSU4.js.map} +0 -0
- /package/{preference-TEMJHA73.js.map → preference-7LX3CJUT.js.map} +0 -0
- /package/{relationship-OXV2SPNL.js.map → relationship-PKU2B5BP.js.map} +0 -0
- /package/{resource-2WREU3GR.js.map → resource-ENHLW46D.js.map} +0 -0
- /package/{search-V5V5IHY7.js.map → search-ZKKMK4PS.js.map} +0 -0
- /package/{secret-LIAHG47P.js.map → secret-7K6ED3SD.js.map} +0 -0
- /package/{slack-BUOXO2HU.js.map → slack-VTGS2LE7.js.map} +0 -0
- /package/{teams-G7TYHRJB.js.map → teams-SOYUSM2G.js.map} +0 -0
- /package/{telegram-DEHNZSEN.js.map → telegram-F2GYSKWJ.js.map} +0 -0
- /package/{variable-RMYF6NVZ.js.map → variable-6NWZSJVI.js.map} +0 -0
- /package/{video-XEYMVSIU.js.map → video-VHL2UFS7.js.map} +0 -0
- /package/{web-4REDKON3.js.map → web-6A35VLL5.js.map} +0 -0
- /package/{whoami-66W7DPQX.js.map → whoami-6SU2NDI3.js.map} +0 -0
- /package/{workflow-PBJVC6HV.js.map → workflow-W23JY7HR.js.map} +0 -0
|
@@ -3,21 +3,22 @@ import { createRequire as __createRequire } from "node:module";
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
findFirewallMetadataPermission
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2YG67KBB.js";
|
|
7
7
|
import {
|
|
8
8
|
getPlatformOrigin,
|
|
9
9
|
toPlatformUrl
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VWG7JMMA.js";
|
|
11
11
|
import {
|
|
12
12
|
CONNECTOR_TYPES,
|
|
13
13
|
getConnectorEnvBindingEntries,
|
|
14
14
|
getDiagnosticConnectorTypeForRuntimeEnvName,
|
|
15
15
|
matchFirewallBaseUrl,
|
|
16
16
|
matchFirewallRequestDecision
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-DUOJIVWA.js";
|
|
18
18
|
import {
|
|
19
19
|
UNKNOWN_PERMISSION_GRANT,
|
|
20
20
|
createComputerUseAuthorizationRequest,
|
|
21
|
+
diagnoseZeroConnectorPermissionDeny,
|
|
21
22
|
getZeroAgentUserConnectors,
|
|
22
23
|
getZeroBillingStatus,
|
|
23
24
|
getZeroConnector,
|
|
@@ -28,14 +29,14 @@ import {
|
|
|
28
29
|
hasUnsafeFirewallPath,
|
|
29
30
|
resolveFirewallBaseUrlTemplate,
|
|
30
31
|
searchZeroConnectors
|
|
31
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-MSZRROJT.js";
|
|
32
33
|
import "./chunk-LTDQISD7.js";
|
|
33
34
|
import {
|
|
34
35
|
ApiRequestError,
|
|
35
36
|
getApiUrl,
|
|
36
37
|
source_default,
|
|
37
38
|
withErrorHandler
|
|
38
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-GE2LI4MS.js";
|
|
39
40
|
import {
|
|
40
41
|
decodeZeroTokenPayload
|
|
41
42
|
} from "./chunk-LRHXR7JT.js";
|
|
@@ -2344,7 +2345,6 @@ var FIREWALL_PERMISSION_METADATA_CONNECTOR_TYPES = Object.freeze([
|
|
|
2344
2345
|
]);
|
|
2345
2346
|
var firewallPermissionMetadataSummariesJson = '{\n "adzuna": {\n "type": "adzuna",\n "label": "Adzuna",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "agentmail": {\n "type": "agentmail",\n "label": "AgentMail",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "agora": {\n "type": "agora",\n "label": "Agora",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "ahrefs": {\n "type": "ahrefs",\n "label": "Ahrefs",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "airtable": {\n "type": "airtable",\n "label": "Airtable",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "alchemy": {\n "type": "alchemy",\n "label": "Alchemy",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "altium-365": {\n "type": "altium-365",\n "label": "Altium 365",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "amadeus": {\n "type": "amadeus",\n "label": "Amadeus",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "amplitude": {\n "type": "amplitude",\n "label": "Amplitude",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "anthropic-managed-agents": {\n "type": "anthropic-managed-agents",\n "label": "Anthropic Managed Agents",\n "hasPermissions": true,\n "permissionCount": 8,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "apify": {\n "type": "apify",\n "label": "Apify",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "apollo": {\n "type": "apollo",\n "label": "Apollo",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "asana": {\n "type": "asana",\n "label": "Asana",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "ashby": {\n "type": "ashby",\n "label": "Ashby",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "atlascloud": {\n "type": "atlascloud",\n "label": "Atlas Cloud",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "atlassian": {\n "type": "atlassian",\n "label": "Atlassian (Jira/Confluence)",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "attio": {\n "type": "attio",\n "label": "Attio",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "aviationstack": {\n "type": "aviationstack",\n "label": "AviationStack",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "aws": {\n "type": "aws",\n "label": "AWS",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "axiom": {\n "type": "axiom",\n "label": "Axiom",\n "hasPermissions": true,\n "permissionCount": 49,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "base44": {\n "type": "base44",\n "label": "Base44",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "bentoml": {\n "type": "bentoml",\n "label": "BentoML",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "bfl": {\n "type": "bfl",\n "label": "Black Forest Labs",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "bill": {\n "type": "bill",\n "label": "BILL",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "bitrefill": {\n "type": "bitrefill",\n "label": "Bitrefill",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "bitrix": {\n "type": "bitrix",\n "label": "Bitrix24",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "bland": {\n "type": "bland",\n "label": "Bland",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "box": {\n "type": "box",\n "label": "Box",\n "hasPermissions": true,\n "permissionCount": 7,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "brave-search": {\n "type": "brave-search",\n "label": "Brave Search",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "brevo": {\n "type": "brevo",\n "label": "Brevo",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "brex": {\n "type": "brex",\n "label": "Brex",\n "hasPermissions": true,\n "permissionCount": 2,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "bright-data": {\n "type": "bright-data",\n "label": "Bright Data",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "browser-use": {\n "type": "browser-use",\n "label": "Browser Use",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "browserbase": {\n "type": "browserbase",\n "label": "Browserbase",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "browserless": {\n "type": "browserless",\n "label": "Browserless",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "browserstack": {\n "type": "browserstack",\n "label": "BrowserStack",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "bubblemaps": {\n "type": "bubblemaps",\n "label": "Bubblemaps",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "buffer": {\n "type": "buffer",\n "label": "Buffer",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "builtwith": {\n "type": "builtwith",\n "label": "BuiltWith",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "cal-com": {\n "type": "cal-com",\n "label": "Cal.com",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "calendly": {\n "type": "calendly",\n "label": "Calendly",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "canva": {\n "type": "canva",\n "label": "Canva",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "chatwoot": {\n "type": "chatwoot",\n "label": "Chatwoot",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "checkr": {\n "type": "checkr",\n "label": "Checkr",\n "hasPermissions": true,\n "permissionCount": 2,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "clado": {\n "type": "clado",\n "label": "Clado",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "clearbit": {\n "type": "clearbit",\n "label": "Clearbit",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "clerk": {\n "type": "clerk",\n "label": "Clerk",\n "hasPermissions": true,\n "permissionCount": 67,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "clickup": {\n "type": "clickup",\n "label": "ClickUp",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "close": {\n "type": "close",\n "label": "Close",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "cloudflare": {\n "type": "cloudflare",\n "label": "Cloudflare",\n "hasPermissions": true,\n "permissionCount": 219,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "coda": {\n "type": "coda",\n "label": "Coda",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "coingecko": {\n "type": "coingecko",\n "label": "CoinGecko",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "copper": {\n "type": "copper",\n "label": "Copper",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "coresignal": {\n "type": "coresignal",\n "label": "Coresignal",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "cronlytic": {\n "type": "cronlytic",\n "label": "Cronlytic",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "crustdata": {\n "type": "crustdata",\n "label": "Crustdata",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "cursor": {\n "type": "cursor",\n "label": "Cursor",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "customer-io": {\n "type": "customer-io",\n "label": "Customer.io",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "datadog": {\n "type": "datadog",\n "label": "Datadog",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "daytona": {\n "type": "daytona",\n "label": "Daytona",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "db9": {\n "type": "db9",\n "label": "db9",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "deel": {\n "type": "deel",\n "label": "Deel",\n "hasPermissions": true,\n "permissionCount": 55,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "deepseek": {\n "type": "deepseek",\n "label": "DeepSeek",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "defillama": {\n "type": "defillama",\n "label": "DefiLlama",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "devto": {\n "type": "devto",\n "label": "Dev.to",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "diffbot": {\n "type": "diffbot",\n "label": "Diffbot",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "dify": {\n "type": "dify",\n "label": "Dify",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "discord": {\n "type": "discord",\n "label": "Discord",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "discord-webhook": {\n "type": "discord-webhook",\n "label": "Discord Webhook",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "docusign": {\n "type": "docusign",\n "label": "DocuSign",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "doppler": {\n "type": "doppler",\n "label": "Doppler",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "doubao": {\n "type": "doubao",\n "label": "Doubao",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "drive9": {\n "type": "drive9",\n "label": "drive9",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "dropbox": {\n "type": "dropbox",\n "label": "Dropbox",\n "hasPermissions": true,\n "permissionCount": 29,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "dropbox-sign": {\n "type": "dropbox-sign",\n "label": "Dropbox Sign",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "duffel": {\n "type": "duffel",\n "label": "Duffel",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "e2b": {\n "type": "e2b",\n "label": "E2B",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "elevenlabs": {\n "type": "elevenlabs",\n "label": "ElevenLabs",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "etherscan": {\n "type": "etherscan",\n "label": "Etherscan",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "etsy": {\n "type": "etsy",\n "label": "Etsy",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "exa": {\n "type": "exa",\n "label": "Exa",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "expensify": {\n "type": "expensify",\n "label": "Expensify",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "explorium": {\n "type": "explorium",\n "label": "Explorium",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "faire": {\n "type": "faire",\n "label": "Faire",\n "hasPermissions": true,\n "permissionCount": 2,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "fal": {\n "type": "fal",\n "label": "fal.ai",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "figma": {\n "type": "figma",\n "label": "Figma",\n "hasPermissions": true,\n "permissionCount": 19,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "firecrawl": {\n "type": "firecrawl",\n "label": "Firecrawl",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "fireflies": {\n "type": "fireflies",\n "label": "Fireflies",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "flightaware": {\n "type": "flightaware",\n "label": "FlightAware",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "freshdesk": {\n "type": "freshdesk",\n "label": "Freshdesk",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "gamma": {\n "type": "gamma",\n "label": "Gamma",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "garmin-connect": {\n "type": "garmin-connect",\n "label": "Garmin Connect",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "gemini": {\n "type": "gemini",\n "label": "Gemini",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "github": {\n "type": "github",\n "label": "GitHub",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "gitlab": {\n "type": "gitlab",\n "label": "GitLab",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "gmail": {\n "type": "gmail",\n "label": "Gmail",\n "hasPermissions": true,\n "permissionCount": 18,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "gong": {\n "type": "gong",\n "label": "Gong",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "google-ads": {\n "type": "google-ads",\n "label": "Google Ads",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "google-analytics": {\n "type": "google-analytics",\n "label": "Google Analytics",\n "hasPermissions": true,\n "permissionCount": 26,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "google-calendar": {\n "type": "google-calendar",\n "label": "Google Calendar",\n "hasPermissions": true,\n "permissionCount": 17,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "google-cloud": {\n "type": "google-cloud",\n "label": "Google Cloud",\n "hasPermissions": true,\n "permissionCount": 1189,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "google-contacts": {\n "type": "google-contacts",\n "label": "Google Contacts",\n "hasPermissions": true,\n "permissionCount": 12,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "google-docs": {\n "type": "google-docs",\n "label": "Google Docs",\n "hasPermissions": true,\n "permissionCount": 3,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": true\n },\n "google-drive": {\n "type": "google-drive",\n "label": "Google Drive",\n "hasPermissions": true,\n "permissionCount": 19,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "google-forms": {\n "type": "google-forms",\n "label": "Google Forms",\n "hasPermissions": true,\n "permissionCount": 9,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "google-maps": {\n "type": "google-maps",\n "label": "Google Maps",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "google-meet": {\n "type": "google-meet",\n "label": "Google Meet",\n "hasPermissions": true,\n "permissionCount": 13,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "google-search-console": {\n "type": "google-search-console",\n "label": "Google Search Console",\n "hasPermissions": true,\n "permissionCount": 9,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "google-sheets": {\n "type": "google-sheets",\n "label": "Google Sheets",\n "hasPermissions": true,\n "permissionCount": 11,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "granola": {\n "type": "granola",\n "label": "Granola",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "greenhouse": {\n "type": "greenhouse",\n "label": "Greenhouse",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "groq": {\n "type": "groq",\n "label": "Groq",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "gumroad": {\n "type": "gumroad",\n "label": "Gumroad",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "helicone": {\n "type": "helicone",\n "label": "Helicone",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "heygen": {\n "type": "heygen",\n "label": "HeyGen",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "hitem3d": {\n "type": "hitem3d",\n "label": "Hitem3D",\n "hasPermissions": true,\n "permissionCount": 1,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "honcho": {\n "type": "honcho",\n "label": "Honcho",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "htmlcsstoimage": {\n "type": "htmlcsstoimage",\n "label": "HTML/CSS to Image",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "hubspot": {\n "type": "hubspot",\n "label": "HubSpot",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "hugging-face": {\n "type": "hugging-face",\n "label": "Hugging Face",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "hume": {\n "type": "hume",\n "label": "Hume",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "hunter": {\n "type": "hunter",\n "label": "Hunter",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "imgur": {\n "type": "imgur",\n "label": "Imgur",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "infisical": {\n "type": "infisical",\n "label": "Infisical",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "insforge": {\n "type": "insforge",\n "label": "InsForge",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "instagram": {\n "type": "instagram",\n "label": "Instagram",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "instantly": {\n "type": "instantly",\n "label": "Instantly",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "intercom": {\n "type": "intercom",\n "label": "Intercom",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "intervals-icu": {\n "type": "intervals-icu",\n "label": "Intervals.icu",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "ironclad": {\n "type": "ironclad",\n "label": "Ironclad",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "jam": {\n "type": "jam",\n "label": "Jam",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "jira": {\n "type": "jira",\n "label": "Jira",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "jotform": {\n "type": "jotform",\n "label": "Jotform",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "klaviyo": {\n "type": "klaviyo",\n "label": "Klaviyo",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "kommo": {\n "type": "kommo",\n "label": "Kommo",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "langfuse": {\n "type": "langfuse",\n "label": "Langfuse",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "langsmith": {\n "type": "langsmith",\n "label": "LangSmith",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "lark": {\n "type": "lark",\n "label": "Lark",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "line": {\n "type": "line",\n "label": "LINE",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "linear": {\n "type": "linear",\n "label": "Linear",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "loops": {\n "type": "loops",\n "label": "Loops",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "luma": {\n "type": "luma",\n "label": "Luma",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "luma-ai": {\n "type": "luma-ai",\n "label": "Luma AI",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "mailchimp": {\n "type": "mailchimp",\n "label": "Mailchimp",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "mailsac": {\n "type": "mailsac",\n "label": "Mailsac",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "make": {\n "type": "make",\n "label": "Make",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "manus": {\n "type": "manus",\n "label": "Manus",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "mapbox": {\n "type": "mapbox",\n "label": "Mapbox",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "maskdb": {\n "type": "maskdb",\n "label": "maskdb",\n "hasPermissions": true,\n "permissionCount": 8,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": true\n },\n "massive": {\n "type": "massive",\n "label": "Massive (Polygon.io)",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "mathpix": {\n "type": "mathpix",\n "label": "Mathpix",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "mem0": {\n "type": "mem0",\n "label": "Mem0",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "mercury": {\n "type": "mercury",\n "label": "Mercury",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "meshy": {\n "type": "meshy",\n "label": "Meshy",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "meta-ads": {\n "type": "meta-ads",\n "label": "Meta Ads",\n "hasPermissions": true,\n "permissionCount": 1,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "metabase": {\n "type": "metabase",\n "label": "Metabase",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "microsoft-365": {\n "type": "microsoft-365",\n "label": "Microsoft 365",\n "hasPermissions": true,\n "permissionCount": 9,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "minimax": {\n "type": "minimax",\n "label": "MiniMax",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "miro": {\n "type": "miro",\n "label": "Miro",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "mixpanel": {\n "type": "mixpanel",\n "label": "Mixpanel",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "modal": {\n "type": "modal",\n "label": "Modal",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "monday": {\n "type": "monday",\n "label": "Monday.com",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "moss": {\n "type": "moss",\n "label": "Moss",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "msg9": {\n "type": "msg9",\n "label": "msg9",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "n8n": {\n "type": "n8n",\n "label": "n8n",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "neon": {\n "type": "neon",\n "label": "Neon",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "netdata": {\n "type": "netdata",\n "label": "Netdata",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "netsuite": {\n "type": "netsuite",\n "label": "NetSuite",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "nintendo-store": {\n "type": "nintendo-store",\n "label": "Nintendo Store",\n "hasPermissions": true,\n "permissionCount": 6,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": true\n },\n "nintendo-switch-parental-controls": {\n "type": "nintendo-switch-parental-controls",\n "label": "Nintendo Switch Parental Controls",\n "hasPermissions": true,\n "permissionCount": 15,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "notion": {\n "type": "notion",\n "label": "Notion",\n "hasPermissions": true,\n "permissionCount": 6,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "novita": {\n "type": "novita",\n "label": "Novita AI",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "nyne": {\n "type": "nyne",\n "label": "Nyne",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "onyx": {\n "type": "onyx",\n "label": "Onyx",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "openai": {\n "type": "openai",\n "label": "OpenAI",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "openrouter": {\n "type": "openrouter",\n "label": "OpenRouter",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "openweather": {\n "type": "openweather",\n "label": "OpenWeather",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "outlook-calendar": {\n "type": "outlook-calendar",\n "label": "Outlook Calendar",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "outlook-mail": {\n "type": "outlook-mail",\n "label": "Outlook Mail",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pandadoc": {\n "type": "pandadoc",\n "label": "PandaDoc",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "parallel": {\n "type": "parallel",\n "label": "Parallel",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "paypal": {\n "type": "paypal",\n "label": "PayPal",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pdf4me": {\n "type": "pdf4me",\n "label": "PDF4me",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pdfco": {\n "type": "pdfco",\n "label": "PDF.co",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pdforge": {\n "type": "pdforge",\n "label": "PDForge",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "people-data-labs": {\n "type": "people-data-labs",\n "label": "People Data Labs",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "perplexity": {\n "type": "perplexity",\n "label": "Perplexity",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pexels": {\n "type": "pexels",\n "label": "Pexels",\n "hasPermissions": true,\n "permissionCount": 4,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": true\n },\n "pika": {\n "type": "pika",\n "label": "Pika",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pinecone": {\n "type": "pinecone",\n "label": "Pinecone",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pipedream": {\n "type": "pipedream",\n "label": "Pipedream",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pipedrive": {\n "type": "pipedrive",\n "label": "Pipedrive",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "plain": {\n "type": "plain",\n "label": "Plain",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "plausible": {\n "type": "plausible",\n "label": "Plausible",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "playstation": {\n "type": "playstation",\n "label": "PlayStation",\n "hasPermissions": true,\n "permissionCount": 8,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": true\n },\n "podchaser": {\n "type": "podchaser",\n "label": "Podchaser",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "porkbun": {\n "type": "porkbun",\n "label": "Porkbun",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "posthog": {\n "type": "posthog",\n "label": "PostHog",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "printful": {\n "type": "printful",\n "label": "Printful",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "prisma-postgres": {\n "type": "prisma-postgres",\n "label": "Prisma Postgres",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "productlane": {\n "type": "productlane",\n "label": "Productlane",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "profound": {\n "type": "profound",\n "label": "Profound",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "pushinator": {\n "type": "pushinator",\n "label": "Pushinator",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "qdrant": {\n "type": "qdrant",\n "label": "Qdrant",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "qiita": {\n "type": "qiita",\n "label": "Qiita",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "quickbooks": {\n "type": "quickbooks",\n "label": "QuickBooks",\n "hasPermissions": true,\n "permissionCount": 11,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "railway": {\n "type": "railway",\n "label": "Railway",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "railway-project": {\n "type": "railway-project",\n "label": "Railway Project",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "ramp": {\n "type": "ramp",\n "label": "Ramp",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "reap": {\n "type": "reap",\n "label": "Reap",\n "hasPermissions": true,\n "permissionCount": 2,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "recraft": {\n "type": "recraft",\n "label": "Recraft",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "reddit": {\n "type": "reddit",\n "label": "Reddit",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "reducto": {\n "type": "reducto",\n "label": "Reducto",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "render": {\n "type": "render",\n "label": "Render",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "rentcast": {\n "type": "rentcast",\n "label": "RentCast",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "replicate": {\n "type": "replicate",\n "label": "Replicate",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "reportei": {\n "type": "reportei",\n "label": "Reportei",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "resend": {\n "type": "resend",\n "label": "Resend",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "revenuecat": {\n "type": "revenuecat",\n "label": "RevenueCat",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "runway": {\n "type": "runway",\n "label": "Runway",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "salesforce": {\n "type": "salesforce",\n "label": "Salesforce",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "scrapeninja": {\n "type": "scrapeninja",\n "label": "ScrapeNinja",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "segment": {\n "type": "segment",\n "label": "Segment",\n "hasPermissions": true,\n "permissionCount": 2,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "semrush": {\n "type": "semrush",\n "label": "Semrush",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "sendgrid": {\n "type": "sendgrid",\n "label": "SendGrid",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "sentry": {\n "type": "sentry",\n "label": "Sentry",\n "hasPermissions": true,\n "permissionCount": 22,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "serpapi": {\n "type": "serpapi",\n "label": "SerpApi",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "servicenow": {\n "type": "servicenow",\n "label": "ServiceNow",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "shopify": {\n "type": "shopify",\n "label": "Shopify",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "shortio": {\n "type": "shortio",\n "label": "Short.io",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "similarweb": {\n "type": "similarweb",\n "label": "SimilarWeb",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "slack": {\n "type": "slack",\n "label": "Slack",\n "hasPermissions": true,\n "permissionCount": 84,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "slack-webhook": {\n "type": "slack-webhook",\n "label": "Slack Webhook",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "slock": {\n "type": "slock",\n "label": "Slock",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "snowflake": {\n "type": "snowflake",\n "label": "Snowflake",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "sociavault": {\n "type": "sociavault",\n "label": "SociaVault",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "sponge": {\n "type": "sponge",\n "label": "Sponge",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "spotify": {\n "type": "spotify",\n "label": "Spotify",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "sproutgigs": {\n "type": "sproutgigs",\n "label": "SproutGigs",\n "hasPermissions": true,\n "permissionCount": 8,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "square": {\n "type": "square",\n "label": "Square",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "stability-ai": {\n "type": "stability-ai",\n "label": "Stability AI",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "steam": {\n "type": "steam",\n "label": "Steam",\n "hasPermissions": true,\n "permissionCount": 13,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": true\n },\n "strapi": {\n "type": "strapi",\n "label": "Strapi",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "strava": {\n "type": "strava",\n "label": "Strava",\n "hasPermissions": true,\n "permissionCount": 13,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "streak": {\n "type": "streak",\n "label": "Streak",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "stripe": {\n "type": "stripe",\n "label": "Stripe",\n "hasPermissions": true,\n "permissionCount": 231,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "supabase": {\n "type": "supabase",\n "label": "Supabase",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "supadata": {\n "type": "supadata",\n "label": "Supadata",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "supermemory": {\n "type": "supermemory",\n "label": "Supermemory",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "tavily": {\n "type": "tavily",\n "label": "Tavily",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "test-oauth": {\n "type": "test-oauth",\n "label": "Test OAuth (internal)",\n "hasPermissions": true,\n "permissionCount": 1,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "testrail": {\n "type": "testrail",\n "label": "TestRail",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "ticketmaster": {\n "type": "ticketmaster",\n "label": "Ticketmaster",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "tiktok-ads": {\n "type": "tiktok-ads",\n "label": "TikTok Ads",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "tldv": {\n "type": "tldv",\n "label": "tl;dv",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "todoist": {\n "type": "todoist",\n "label": "Todoist",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "together": {\n "type": "together",\n "label": "Together AI",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "tripo": {\n "type": "tripo",\n "label": "Tripo",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "twenty": {\n "type": "twenty",\n "label": "Twenty",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "twilio": {\n "type": "twilio",\n "label": "Twilio",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "typeform": {\n "type": "typeform",\n "label": "Typeform",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "v0": {\n "type": "v0",\n "label": "v0",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "vercel": {\n "type": "vercel",\n "label": "Vercel",\n "hasPermissions": true,\n "permissionCount": 68,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": false\n },\n "wandb": {\n "type": "wandb",\n "label": "Weights & Biases",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "webflow": {\n "type": "webflow",\n "label": "Webflow",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "weread": {\n "type": "weread",\n "label": "WeRead",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "whale-alert": {\n "type": "whale-alert",\n "label": "Whale Alert",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "wix": {\n "type": "wix",\n "label": "Wix",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "workday": {\n "type": "workday",\n "label": "Workday",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "workos": {\n "type": "workos",\n "label": "WorkOS",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "wrike": {\n "type": "wrike",\n "label": "Wrike",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "x": {\n "type": "x",\n "label": "X",\n "hasPermissions": true,\n "permissionCount": 21,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "xero": {\n "type": "xero",\n "label": "Xero",\n "hasPermissions": true,\n "permissionCount": 35,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "youtube": {\n "type": "youtube",\n "label": "YouTube",\n "hasPermissions": true,\n "permissionCount": 68,\n "hasCategories": true,\n "hasDefaultPolicyOverrides": true\n },\n "zapier": {\n "type": "zapier",\n "label": "Zapier",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "zapsign": {\n "type": "zapsign",\n "label": "ZapSign",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "zendesk": {\n "type": "zendesk",\n "label": "Zendesk",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "zep": {\n "type": "zep",\n "label": "Zep",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "zeptomail": {\n "type": "zeptomail",\n "label": "ZeptoMail",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n },\n "zoom": {\n "type": "zoom",\n "label": "Zoom",\n "hasPermissions": false,\n "permissionCount": 0,\n "hasCategories": false,\n "hasDefaultPolicyOverrides": false\n }\n}';
|
|
2346
2347
|
var firewallPermissionMetadataSummariesValue = JSON.parse(firewallPermissionMetadataSummariesJson);
|
|
2347
|
-
var FIREWALL_PERMISSION_METADATA_SUMMARIES = firewallPermissionMetadataSummariesValue;
|
|
2348
2348
|
|
|
2349
2349
|
// ../../packages/connectors/src/firewall-metadata/server-execution.generated.ts
|
|
2350
2350
|
init_esm_shims();
|
|
@@ -3601,21 +3601,6 @@ How connectors work:
|
|
|
3601
3601
|
// src/commands/zero/doctor/permission-deny.ts
|
|
3602
3602
|
init_esm_shims();
|
|
3603
3603
|
|
|
3604
|
-
// ../../packages/connectors/src/firewall-metadata/index.ts
|
|
3605
|
-
init_esm_shims();
|
|
3606
|
-
function isFirewallMetadataConnectorType(type) {
|
|
3607
|
-
return Object.prototype.hasOwnProperty.call(
|
|
3608
|
-
FIREWALL_PERMISSION_METADATA_SUMMARIES,
|
|
3609
|
-
type
|
|
3610
|
-
);
|
|
3611
|
-
}
|
|
3612
|
-
function getFirewallPermissionSummary(type) {
|
|
3613
|
-
if (!isFirewallMetadataConnectorType(type)) {
|
|
3614
|
-
return null;
|
|
3615
|
-
}
|
|
3616
|
-
return FIREWALL_PERMISSION_METADATA_SUMMARIES[type];
|
|
3617
|
-
}
|
|
3618
|
-
|
|
3619
3604
|
// src/commands/zero/doctor/computer-use-guidance.ts
|
|
3620
3605
|
init_esm_shims();
|
|
3621
3606
|
var COMPUTER_USE_CONNECTOR_REF = "computer-use";
|
|
@@ -3639,11 +3624,6 @@ function printComputerUsePermissionGuidance() {
|
|
|
3639
3624
|
}
|
|
3640
3625
|
|
|
3641
3626
|
// src/commands/zero/doctor/permission-deny.ts
|
|
3642
|
-
function unknownPermissionChangeCommand2(connectorRef) {
|
|
3643
|
-
return `zero doctor permission-change ${connectorRef} --permission ${UNKNOWN_PERMISSION_GRANT} --enable --duration 1h`;
|
|
3644
|
-
}
|
|
3645
|
-
var BASE_URL_VAR_PATTERN = /\$\{\{\s*vars\.([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/g;
|
|
3646
|
-
var WHOLE_BASE_URL_VAR_PATTERN = /^\$\{\{\s*vars\.([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}$/;
|
|
3647
3627
|
var VALID_DENIED_METHODS = /* @__PURE__ */ new Set([
|
|
3648
3628
|
"GET",
|
|
3649
3629
|
"POST",
|
|
@@ -3653,6 +3633,9 @@ var VALID_DENIED_METHODS = /* @__PURE__ */ new Set([
|
|
|
3653
3633
|
"HEAD",
|
|
3654
3634
|
"OPTIONS"
|
|
3655
3635
|
]);
|
|
3636
|
+
function unknownPermissionChangeCommand2(connectorRef) {
|
|
3637
|
+
return `zero doctor permission-change ${connectorRef} --permission ${UNKNOWN_PERMISSION_GRANT} --enable --duration 1h`;
|
|
3638
|
+
}
|
|
3656
3639
|
function pathOnlyError() {
|
|
3657
3640
|
return new Error(
|
|
3658
3641
|
"permission-deny now requires --url because method/path alone can match the wrong API base."
|
|
@@ -3698,7 +3681,7 @@ function rawAuthorityHasUnsafeSyntax(url) {
|
|
|
3698
3681
|
return char.charCodeAt(0) > 127;
|
|
3699
3682
|
});
|
|
3700
3683
|
}
|
|
3701
|
-
function
|
|
3684
|
+
function validateDeniedUrl(url) {
|
|
3702
3685
|
if (!url.includes("://") || /\s/.test(url) || rawAuthorityHasUnsafeSyntax(url)) {
|
|
3703
3686
|
throw invalidUrlError();
|
|
3704
3687
|
}
|
|
@@ -3710,67 +3693,10 @@ function parseDeniedUrl(url) {
|
|
|
3710
3693
|
if (parsed.username !== "" || parsed.password !== "") {
|
|
3711
3694
|
throw invalidUrlError();
|
|
3712
3695
|
}
|
|
3713
|
-
return parsed;
|
|
3714
3696
|
} catch {
|
|
3715
3697
|
throw invalidUrlError();
|
|
3716
3698
|
}
|
|
3717
3699
|
}
|
|
3718
|
-
function baseUrlTemplateVarNames(base) {
|
|
3719
|
-
return [...base.matchAll(BASE_URL_VAR_PATTERN)].map((match) => {
|
|
3720
|
-
return match[1];
|
|
3721
|
-
});
|
|
3722
|
-
}
|
|
3723
|
-
function wholeBaseUrlTemplateVarName(base) {
|
|
3724
|
-
return WHOLE_BASE_URL_VAR_PATTERN.exec(base)?.[1] ?? null;
|
|
3725
|
-
}
|
|
3726
|
-
function resolveBaseUrlTemplateFromEnv(base) {
|
|
3727
|
-
const names = baseUrlTemplateVarNames(base);
|
|
3728
|
-
if (names.length === 0) return base;
|
|
3729
|
-
let missing = false;
|
|
3730
|
-
const resolved = base.replace(
|
|
3731
|
-
BASE_URL_VAR_PATTERN,
|
|
3732
|
-
(_match, name) => {
|
|
3733
|
-
const value = process.env[name];
|
|
3734
|
-
if (!value) {
|
|
3735
|
-
missing = true;
|
|
3736
|
-
return "";
|
|
3737
|
-
}
|
|
3738
|
-
return value;
|
|
3739
|
-
}
|
|
3740
|
-
);
|
|
3741
|
-
return missing ? null : resolved;
|
|
3742
|
-
}
|
|
3743
|
-
function baseUrlTemplateToPattern(base) {
|
|
3744
|
-
if (baseUrlTemplateVarNames(base).length === 0) return null;
|
|
3745
|
-
const pattern = base.replace(BASE_URL_VAR_PATTERN, (_match, name) => {
|
|
3746
|
-
return `{${name}}`;
|
|
3747
|
-
});
|
|
3748
|
-
return pattern.includes("://") ? pattern : null;
|
|
3749
|
-
}
|
|
3750
|
-
function connectorRefHostToken(connectorRef) {
|
|
3751
|
-
return connectorRef.toLowerCase().replaceAll(/[^a-z0-9]/g, "");
|
|
3752
|
-
}
|
|
3753
|
-
function hostLabelToken(label) {
|
|
3754
|
-
return label.toLowerCase().replaceAll(/[^a-z0-9]/g, "");
|
|
3755
|
-
}
|
|
3756
|
-
function hostLabelMatchesConnectorRef(label, connectorRef) {
|
|
3757
|
-
const normalizedConnectorRef = connectorRef.toLowerCase();
|
|
3758
|
-
const token = connectorRefHostToken(connectorRef);
|
|
3759
|
-
const normalizedLabel = label.toLowerCase();
|
|
3760
|
-
if (normalizedConnectorRef === token) {
|
|
3761
|
-
return normalizedLabel === token;
|
|
3762
|
-
}
|
|
3763
|
-
return hostLabelToken(normalizedLabel) === token;
|
|
3764
|
-
}
|
|
3765
|
-
function hostnameMatchesConnectorRef(url, connectorRef) {
|
|
3766
|
-
const token = connectorRefHostToken(connectorRef);
|
|
3767
|
-
if (token.length < 3) return false;
|
|
3768
|
-
const labels = (url.hostname || "").toLowerCase().replace(/\.$/, "").split(".").filter((part) => {
|
|
3769
|
-
return part !== "";
|
|
3770
|
-
});
|
|
3771
|
-
if (labels.length < 2) return false;
|
|
3772
|
-
return hostLabelMatchesConnectorRef(labels[labels.length - 2], connectorRef);
|
|
3773
|
-
}
|
|
3774
3700
|
function stripUrlQueryAndFragment2(url) {
|
|
3775
3701
|
const queryIndex = url.indexOf("?");
|
|
3776
3702
|
const fragmentIndex = url.indexOf("#");
|
|
@@ -3779,9 +3705,6 @@ function stripUrlQueryAndFragment2(url) {
|
|
|
3779
3705
|
if (fragmentIndex !== -1) end = Math.min(end, fragmentIndex);
|
|
3780
3706
|
return url.slice(0, end);
|
|
3781
3707
|
}
|
|
3782
|
-
function stripTrailingSlash(value) {
|
|
3783
|
-
return value.endsWith("/") ? value.slice(0, -1) : value;
|
|
3784
|
-
}
|
|
3785
3708
|
function rawPathFromDeniedUrl(url) {
|
|
3786
3709
|
const urlWithoutQuery = stripUrlQueryAndFragment2(url);
|
|
3787
3710
|
const schemeEnd = urlWithoutQuery.indexOf("://");
|
|
@@ -3789,131 +3712,6 @@ function rawPathFromDeniedUrl(url) {
|
|
|
3789
3712
|
const pathStart = urlWithoutQuery.indexOf("/", authorityStart);
|
|
3790
3713
|
return pathStart === -1 ? "/" : urlWithoutQuery.slice(pathStart);
|
|
3791
3714
|
}
|
|
3792
|
-
function matchApiBaseUrl(url, apiBase) {
|
|
3793
|
-
const directMatch = matchFirewallBaseUrl(url, apiBase);
|
|
3794
|
-
if (directMatch) {
|
|
3795
|
-
return {
|
|
3796
|
-
apiBase,
|
|
3797
|
-
decisionBase: apiBase,
|
|
3798
|
-
displayBase: directMatch.displayBase,
|
|
3799
|
-
relativePath: directMatch.relativePath,
|
|
3800
|
-
score: directMatch.score
|
|
3801
|
-
};
|
|
3802
|
-
}
|
|
3803
|
-
const resolvedBase = resolveBaseUrlTemplateFromEnv(apiBase);
|
|
3804
|
-
if (resolvedBase !== null && resolvedBase !== apiBase) {
|
|
3805
|
-
const resolvedMatch = matchFirewallBaseUrl(url, resolvedBase);
|
|
3806
|
-
if (resolvedMatch) {
|
|
3807
|
-
return {
|
|
3808
|
-
apiBase,
|
|
3809
|
-
decisionBase: resolvedBase,
|
|
3810
|
-
displayBase: resolvedMatch.displayBase,
|
|
3811
|
-
relativePath: resolvedMatch.relativePath,
|
|
3812
|
-
score: resolvedMatch.score
|
|
3813
|
-
};
|
|
3814
|
-
}
|
|
3815
|
-
return null;
|
|
3816
|
-
}
|
|
3817
|
-
const patternBase = baseUrlTemplateToPattern(apiBase);
|
|
3818
|
-
if (patternBase === null) return null;
|
|
3819
|
-
const patternMatch = matchFirewallBaseUrl(url, patternBase);
|
|
3820
|
-
if (!patternMatch) return null;
|
|
3821
|
-
return {
|
|
3822
|
-
apiBase,
|
|
3823
|
-
decisionBase: patternBase,
|
|
3824
|
-
displayBase: apiBase,
|
|
3825
|
-
relativePath: patternMatch.relativePath,
|
|
3826
|
-
score: patternMatch.score
|
|
3827
|
-
};
|
|
3828
|
-
}
|
|
3829
|
-
function findBestBaseMatch(url, deniedUrl, connectorRef, apis) {
|
|
3830
|
-
let bestMatch = null;
|
|
3831
|
-
for (const api2 of apis) {
|
|
3832
|
-
const match = matchApiBaseUrl(url, api2.base);
|
|
3833
|
-
if (match && (!bestMatch || match.score > bestMatch.score)) {
|
|
3834
|
-
bestMatch = match;
|
|
3835
|
-
}
|
|
3836
|
-
}
|
|
3837
|
-
if (bestMatch !== null) return bestMatch;
|
|
3838
|
-
const unresolvedWholeBaseApis = apis.filter((api2) => {
|
|
3839
|
-
const name = wholeBaseUrlTemplateVarName(api2.base);
|
|
3840
|
-
return name !== null && !process.env[name];
|
|
3841
|
-
});
|
|
3842
|
-
if (unresolvedWholeBaseApis.length !== 1) return null;
|
|
3843
|
-
if (!hostnameMatchesConnectorRef(deniedUrl, connectorRef)) return null;
|
|
3844
|
-
const api = unresolvedWholeBaseApis[0];
|
|
3845
|
-
return {
|
|
3846
|
-
apiBase: api.base,
|
|
3847
|
-
decisionBase: deniedUrl.origin,
|
|
3848
|
-
displayBase: api.base,
|
|
3849
|
-
relativePath: rawPathFromDeniedUrl(url),
|
|
3850
|
-
score: 0
|
|
3851
|
-
};
|
|
3852
|
-
}
|
|
3853
|
-
function routesForMatchedBase(apis, apiBase) {
|
|
3854
|
-
const normalizedApiBase = stripTrailingSlash(apiBase);
|
|
3855
|
-
const routes = [];
|
|
3856
|
-
for (const api of apis) {
|
|
3857
|
-
if (stripTrailingSlash(api.base) === normalizedApiBase) {
|
|
3858
|
-
routes.push(...api.routes);
|
|
3859
|
-
}
|
|
3860
|
-
}
|
|
3861
|
-
return routes;
|
|
3862
|
-
}
|
|
3863
|
-
function routesToDecisionPermissions2(routes) {
|
|
3864
|
-
const rulesByPermission = /* @__PURE__ */ new Map();
|
|
3865
|
-
for (const route of routes) {
|
|
3866
|
-
const rules = rulesByPermission.get(route.permissionName);
|
|
3867
|
-
if (rules) {
|
|
3868
|
-
rules.push(route.rule);
|
|
3869
|
-
} else {
|
|
3870
|
-
rulesByPermission.set(route.permissionName, [route.rule]);
|
|
3871
|
-
}
|
|
3872
|
-
}
|
|
3873
|
-
return [...rulesByPermission.entries()].map(([name, rules]) => {
|
|
3874
|
-
return { name, rules };
|
|
3875
|
-
});
|
|
3876
|
-
}
|
|
3877
|
-
function buildDecisionFirewall(connectorRef, base, permissions) {
|
|
3878
|
-
return [
|
|
3879
|
-
{
|
|
3880
|
-
name: connectorRef,
|
|
3881
|
-
apis: [
|
|
3882
|
-
{
|
|
3883
|
-
base,
|
|
3884
|
-
auth: {},
|
|
3885
|
-
permissions
|
|
3886
|
-
}
|
|
3887
|
-
]
|
|
3888
|
-
}
|
|
3889
|
-
];
|
|
3890
|
-
}
|
|
3891
|
-
function buildAllDeniedNetworkPolicies(connectorRef, permissions) {
|
|
3892
|
-
return {
|
|
3893
|
-
[connectorRef]: {
|
|
3894
|
-
allow: [],
|
|
3895
|
-
deny: permissions.map((permission) => {
|
|
3896
|
-
return permission.name;
|
|
3897
|
-
}),
|
|
3898
|
-
ask: [],
|
|
3899
|
-
unknownPolicy: "deny"
|
|
3900
|
-
}
|
|
3901
|
-
};
|
|
3902
|
-
}
|
|
3903
|
-
function findDeniedDecisionPermissions(connectorRef, method, url, match, apis) {
|
|
3904
|
-
const routes = routesForMatchedBase(apis, match.apiBase);
|
|
3905
|
-
const permissions = routesToDecisionPermissions2(routes);
|
|
3906
|
-
const decision = matchFirewallRequestDecision(
|
|
3907
|
-
buildDecisionFirewall(connectorRef, match.decisionBase, permissions),
|
|
3908
|
-
method,
|
|
3909
|
-
url,
|
|
3910
|
-
buildAllDeniedNetworkPolicies(connectorRef, permissions)
|
|
3911
|
-
);
|
|
3912
|
-
if (decision.kind !== "block" || decision.reason !== "permission_denied") {
|
|
3913
|
-
return [];
|
|
3914
|
-
}
|
|
3915
|
-
return [...decision.permissions];
|
|
3916
|
-
}
|
|
3917
3715
|
function printPermissionChangeGuidance(connectorRef, permissions) {
|
|
3918
3716
|
const sortedPermissions = [...permissions].sort();
|
|
3919
3717
|
if (sortedPermissions.length === 1) {
|
|
@@ -3933,6 +3731,61 @@ function printPermissionChangeGuidance(connectorRef, permissions) {
|
|
|
3933
3731
|
);
|
|
3934
3732
|
}
|
|
3935
3733
|
}
|
|
3734
|
+
function printFilteredRequest(label, method, relativePath, base) {
|
|
3735
|
+
console.log(
|
|
3736
|
+
`The ${label} permission filtered ${method} ${relativePath} relative to base URL ${base}.`
|
|
3737
|
+
);
|
|
3738
|
+
}
|
|
3739
|
+
function unsafeInputError(reason) {
|
|
3740
|
+
switch (reason) {
|
|
3741
|
+
case "invalid-method":
|
|
3742
|
+
return invalidMethodError();
|
|
3743
|
+
case "invalid-url":
|
|
3744
|
+
return invalidUrlError();
|
|
3745
|
+
case "unsafe-path":
|
|
3746
|
+
return unsafePathError();
|
|
3747
|
+
}
|
|
3748
|
+
}
|
|
3749
|
+
function handleDiagnosticResult(connectorRef, method, result) {
|
|
3750
|
+
switch (result.outcome) {
|
|
3751
|
+
case "matched":
|
|
3752
|
+
printFilteredRequest(
|
|
3753
|
+
result.label,
|
|
3754
|
+
method,
|
|
3755
|
+
result.relativePath,
|
|
3756
|
+
result.base
|
|
3757
|
+
);
|
|
3758
|
+
printPermissionChangeGuidance(connectorRef, result.permissions);
|
|
3759
|
+
return;
|
|
3760
|
+
case "unknown-endpoint":
|
|
3761
|
+
printFilteredRequest(
|
|
3762
|
+
result.label,
|
|
3763
|
+
method,
|
|
3764
|
+
result.relativePath,
|
|
3765
|
+
result.base
|
|
3766
|
+
);
|
|
3767
|
+
console.log("No named permission was found covering this request.");
|
|
3768
|
+
console.log("This request is governed by the unknown endpoint policy.");
|
|
3769
|
+
console.log(
|
|
3770
|
+
`To allow unknown endpoints, run: ${unknownPermissionChangeCommand2(connectorRef)}`
|
|
3771
|
+
);
|
|
3772
|
+
return;
|
|
3773
|
+
case "unknown-connector":
|
|
3774
|
+
throw new Error(`Unknown connector type: ${connectorRef}`);
|
|
3775
|
+
case "no-matching-base":
|
|
3776
|
+
throw new Error(
|
|
3777
|
+
`No registered ${result.label} base URL matches the provided URL.`
|
|
3778
|
+
);
|
|
3779
|
+
case "unresolved-dynamic-base":
|
|
3780
|
+
throw new Error(
|
|
3781
|
+
`No authoritative ${result.label} base URL is available for this diagnostic. Verify the ${connectorRef} connector configuration for the affected context and retry.`
|
|
3782
|
+
);
|
|
3783
|
+
case "unsafe-input":
|
|
3784
|
+
throw unsafeInputError(result.reason);
|
|
3785
|
+
}
|
|
3786
|
+
const exhaustiveResult = result;
|
|
3787
|
+
return exhaustiveResult;
|
|
3788
|
+
}
|
|
3936
3789
|
var permissionDenyCommand = new Command().name("permission-deny").description(
|
|
3937
3790
|
"Diagnose a permission denial and find the permission that covers it"
|
|
3938
3791
|
).argument("<connector-ref>", "The connector type (e.g. github)").addOption(
|
|
@@ -3970,7 +3823,7 @@ Notes:
|
|
|
3970
3823
|
throw pathOnlyError();
|
|
3971
3824
|
}
|
|
3972
3825
|
const method = parseDeniedMethod(opts.method);
|
|
3973
|
-
|
|
3826
|
+
validateDeniedUrl(opts.url);
|
|
3974
3827
|
const deniedPath = rawPathFromDeniedUrl(opts.url);
|
|
3975
3828
|
if (hasUnsafeFirewallPath(deniedPath)) {
|
|
3976
3829
|
throw unsafePathError();
|
|
@@ -3982,43 +3835,12 @@ Notes:
|
|
|
3982
3835
|
printComputerUsePermissionGuidance();
|
|
3983
3836
|
return;
|
|
3984
3837
|
}
|
|
3985
|
-
const
|
|
3986
|
-
if (!metadata) {
|
|
3987
|
-
throw new Error(`Unknown connector type: ${connectorRef}`);
|
|
3988
|
-
}
|
|
3989
|
-
const label = getFirewallPermissionSummary(connectorRef)?.label ?? connectorRef;
|
|
3990
|
-
const match = findBestBaseMatch(
|
|
3991
|
-
opts.url,
|
|
3992
|
-
deniedUrl,
|
|
3993
|
-
connectorRef,
|
|
3994
|
-
metadata.apis
|
|
3995
|
-
);
|
|
3996
|
-
if (!match) {
|
|
3997
|
-
throw new Error(
|
|
3998
|
-
`No registered ${label} base URL matches the provided URL.`
|
|
3999
|
-
);
|
|
4000
|
-
}
|
|
4001
|
-
const permissions = findDeniedDecisionPermissions(
|
|
3838
|
+
const result = await diagnoseZeroConnectorPermissionDeny(
|
|
4002
3839
|
connectorRef,
|
|
4003
3840
|
method,
|
|
4004
|
-
opts.url
|
|
4005
|
-
match,
|
|
4006
|
-
metadata.apis
|
|
4007
|
-
);
|
|
4008
|
-
console.log(
|
|
4009
|
-
`The ${label} permission filtered ${method} ${match.relativePath} relative to base URL ${match.displayBase}.`
|
|
3841
|
+
stripUrlQueryAndFragment2(opts.url)
|
|
4010
3842
|
);
|
|
4011
|
-
|
|
4012
|
-
console.log("No named permission was found covering this request.");
|
|
4013
|
-
console.log(
|
|
4014
|
-
"This request is governed by the unknown endpoint policy."
|
|
4015
|
-
);
|
|
4016
|
-
console.log(
|
|
4017
|
-
`To allow unknown endpoints, run: ${unknownPermissionChangeCommand2(connectorRef)}`
|
|
4018
|
-
);
|
|
4019
|
-
return;
|
|
4020
|
-
}
|
|
4021
|
-
printPermissionChangeGuidance(connectorRef, permissions);
|
|
3843
|
+
handleDiagnosticResult(connectorRef, method, result);
|
|
4022
3844
|
}
|
|
4023
3845
|
)
|
|
4024
3846
|
);
|
|
@@ -4302,4 +4124,4 @@ Notes:
|
|
|
4302
4124
|
export {
|
|
4303
4125
|
zeroDoctorCommand
|
|
4304
4126
|
};
|
|
4305
|
-
//# sourceMappingURL=doctor-
|
|
4127
|
+
//# sourceMappingURL=doctor-XNJOG3LG.js.map
|