Membrane SDK - v0.29.2
    Preparing search index...

    Function createOrUpdateConnection

    • Creates or updates a connection if connectionId is provided. Creates or updates a default connection for the integration if integrationId/integrationKey is provided. Creates a connection for the connector if connectorId is provided (without integrationId).

      Parameters

      • options: {
            client: MembraneApiClient;
            type?: "connector" | "mcp";
            authOptionKey?: string;
            name?: string;
            input?: any;
            connectorParameters?: any;
            integrationKey?: string;
            integrationId?: string;
            connectorId?: string;
            connectorVersion?: string;
            connectionId?: string;
            connectionKey?: string;
            allowMultipleConnections?: boolean;
            connectionRequestId?: string;
            apiUri: string;
            redirectUri?: string;
            customState?: string;
            onPopupClosed?: () => void;
            lateEvents?: LateConnectionEvents;
        }
        • client: MembraneApiClient
        • Optionaltype?: "connector" | "mcp"

          Connection backing. 'mcp' skips connector resolution and runs the discovery-based OAuth flow against input.mcpServerUrl.

        • OptionalauthOptionKey?: string
        • Optionalname?: string
        • Optionalinput?: any
        • OptionalconnectorParameters?: any
        • OptionalintegrationKey?: string
        • OptionalintegrationId?: string
        • OptionalconnectorId?: string
        • OptionalconnectorVersion?: string
        • OptionalconnectionId?: string
        • OptionalconnectionKey?: string
        • OptionalallowMultipleConnections?: boolean
        • OptionalconnectionRequestId?: string
        • apiUri: string
        • OptionalredirectUri?: string
        • OptionalcustomState?: string

          Appended to the OAuth state as <requestId>:<customState>.

        • OptionalonPopupClosed?: () => void
        • OptionallateEvents?: LateConnectionEvents

      Returns Promise<
          | {
              user?: {
                  id: string;
                  name: string;
                  meta?: Record<string, any>;
                  internalId: string;
                  fields?: Record<string, any>;
                  credentials?: any;
                  lastActiveAt?: string;
                  isTest?: boolean;
                  isBillable?: boolean;
                  isActive?: boolean;
                  aiCreditsRolling30DayLimit?: number | null;
                  createdAt?: string;
                  archivedAt?: string;
              };
              integration?: {
                  logoUri: string;
                  connectorId?: string;
                  connectorVersion?: string;
                  oAuthCallbackUri?: string;
                  parameters?: any;
                  archivedAt?: string;
                  hasMissingParameters?: boolean;
                  hasDocumentation?: boolean;
                  hasOperations?: boolean;
                  operationsCount?: number;
                  hasData?: boolean;
                  dataCollectionsCount?: number;
                  hasEvents?: boolean;
                  eventsCount?: number;
                  hasGlobalWebhooks?: boolean;
                  hasUdm?: boolean;
                  isTest?: boolean;
                  externalAppId?: string;
                  appUuid?: string;
                  isDeactivated?: boolean;
                  authType?: | "proxy"
                  | "integration-app-token"
                  | "membrane-token"
                  | "oauth2"
                  | "oauth1"
                  | "client-credentials";
                  optionsConfig?: Record<
                      string,
                      { disabled?: boolean; parameters?: Record<string, any> },
                  >;
                  id: string;
                  uuid?: string;
                  key?: string;
                  description?: string;
                  meta?: Record<string, any>;
                  name: string;
                  state?:
                      | BUILDING
                      | CLIENT_ACTION_REQUIRED
                      | CONFIGURATION_ERROR
                      | SETUP_FAILED
                      | READY
                      | DISCONNECTING;
                  errors?: ErrorDataSchema[];
                  revision?: string;
                  createdAt?: string;
                  updatedAt?: string;
                  isReadOnly?: boolean;
              };
              connectorParameters?: unknown;
              input?: unknown;
              type?: "connector"
              | "mcp";
              name: string;
              key?: string;
              isTest?: boolean;
              connected?: boolean;
              disconnected?: boolean;
              isDefunct?: boolean;
              state?:
                  | BUILDING
                  | CLIENT_ACTION_REQUIRED
                  | CONFIGURATION_ERROR
                  | SETUP_FAILED
                  | READY
                  | DISCONNECTING;
              errors?: ErrorDataSchema[];
              requestError?: ErrorDataSchema;
              error?: ErrorDataSchema;
              integrationId?: string;
              connectorId?: string;
              externalAppId?: string;
              connectorVersion?: string;
              authOptionKey?: string;
              createdAt: string;
              updatedAt: string;
              lastActiveAt?: string;
              nextCredentialsRefreshAt?: string;
              nextRetryTimestamp?: string;
              retryAttempts?: number;
              canTest?: boolean;
              canRefreshCredentials?: boolean;
              archivedAt?: string;
              isDeactivated?: boolean;
              meta?: Record<string, any>;
              buildingAgentSessionId?: string;
              clientAction?: {
                  type: "connect" | "provide-input";
                  description: string;
                  uiUrl?: string;
                  agentInstructions?: string;
                  handoffAgentInstructions?: string;
                  reason?: "provide-input" | "authenticate" | "reauthenticate";
              };
              id: string;
              userId: string;
              tenantId?: string;
          }
          | null,
      >