The @executor-js/integrations-registry package provides the infrastructure for discovering and fetching the remote catalog of available integrations. It serves as the bridge between the Executor runtime and the global ecosystem of pre-configured tools and API definitions.
The registry is responsible for maintaining a standardized list of integrations that can be imported into an Executor instance. It handles network communication with the remote catalog, enforces privacy controls via environment variables, and ensures that outbound requests follow strict security protocols.
DO_NOT_TRACK and EXECUTOR_DISABLE_INTEGRATIONS_FETCH flags.HostedHttpClient to prevent SSRF (Server-Side Request Forgery) during catalog retrieval packages/core/sdk/src/hosted-http-client.ts137-140@executor-js/ir packages/kernel/ir/package.json2-3The catalog is stored and transmitted in an Intermediate Representation (IR) format. This format is a serialized, platform-agnostic description of an integration's capabilities, authentication requirements, and tool definitions.
The following diagram illustrates how the IR catalog flows from the remote registry into the local Executor environment.
Registry Data Flow
Sources: packages/core/sdk/src/hosted-http-client.ts137-140 packages/kernel/ir/package.json2-3
When fetching the registry or interacting with external integration endpoints, the system uses a "Hosted" HTTP client. This client wraps the standard fetch API with additional security layers to prevent access to internal infrastructure.
http: and https: protocols are permitted packages/core/sdk/src/hosted-http-client.ts151-156169.254.169.254) packages/core/sdk/src/hosted-http-client.ts103-111allowLocalNetwork packages/core/sdk/src/hosted-http-client.ts165-170authorization and cookie when following cross-origin redirects packages/core/sdk/src/hosted-http-client.ts201-207The client performs DNS lookups before the first network call to ensure a hostname doesn't resolve to a blacklisted internal address packages/core/sdk/src/hosted-http-client.ts173-181
Outbound Request Validation Logic
Sources: packages/core/sdk/src/hosted-http-client.ts137-199 packages/core/sdk/src/hosted-http-client.test.ts73-97
The registry behavior can be modified using environment variables to support air-gapped environments or privacy-conscious deployments.
| Variable | Effect |
|---|---|
EXECUTOR_DISABLE_INTEGRATIONS_FETCH | Completely disables the outbound call to the remote registry. The UI will only show locally defined or manually added integrations. |
DO_NOT_TRACK | When set, the registry fetcher omits telemetry-related headers and uses a generic User-Agent. |
ALLOW_LOCAL_NETWORK | Overrides the SSRF protection to allow integrations to point to localhost or internal IPs apps/cloud/executor.config.ts45-48 |
The registry provides the metadata that various plugins use to initialize. For example, the Cloud Host configuration utilizes these plugins to handle the registered integrations in a multi-tenant environment apps/cloud/executor.config.ts51-72
Not all plugins are compatible with the remote registry fetcher. For instance, the Cloud Host excludes plugins that require local filesystem access or native OS capabilities:
openApiHttpPlugin, googleHttpPlugin, mcpHttpPlugin (HTTP only) apps/cloud/executor.config.ts59-65stdio MCP, keychain, file-secrets, and 1password apps/cloud/executor.config.ts26-28Sources: apps/cloud/executor.config.ts26-28 apps/cloud/executor.config.ts51-72