vectorshift:
Connecting
connect
credentials= does an instant form-based create and returns a ConnectionRequest that is already ACTIVE. Otherwise (form, OAuth, or hybrid) it opens a hosted connect page and returns a request carrying a connect_url; drive it to completion with .wait().
Parameters
IntegrationType | str
required
The integration type. Accepts an
IntegrationType, a display name ("Slack"), or a route name ("slack"). Unknown values raise UnknownIntegrationType.Optional[dict]
default:"None"
Form credentials for a credential-capable type. When present, required fields are validated client-side and the integration is created instantly. Omit to enter them / consent in the hosted page.
Optional[str]
default:"None"
A custom name for this integration instance.
bool
default:"True"
Open
connect_url in the default browser. Set False on headless hosts and hand the user req.connect_url yourself.Optional[str]
default:"None"
Space-separated OAuth scopes to request (OAuth types only).
Return a long-lived shareable connect link without waiting. Combine with
link_expires_in.Optional[int]
default:"None"
Shareable-link TTL in seconds.
bool
default:"False"
Require the person completing the connection to be a member of your org.
Optional[str]
default:"None"
Reconnect an existing integration in place instead of creating a new one. Prefer
reauth.ConnectionRequest.
reauth
object_id. Opens the hosted page; .wait() resolves when done.
Managing
fetch
id or name — at least one is required, else ValueError.
list
type (route name, e.g. "slack").
get_status
"done", "loading", or "unhealthy" (see IntegrationStatus).
sync / resync
kb.resync_integration(id) wrapper.
refresh
self.
delete
to_dict
object_id + object_type) a Pipeline node / Agent tool stores. The fluent builder and tool classes accept the Integration object directly — pipeline.add(name="…").integration_slack(integration=integ, …) — so you rarely call to_dict() yourself; reach for it only when building a node config by hand.
Sessions & catalogue
from_session
ConnectionRequest from a persisted session_id — reconcile a delegated / share=True attempt after the original process exited.
revoke_session
types
required_fields
Integration
Attributes on a fetched instance:
str
The unique id. Use
to_dict() / this value to reference the integration elsewhere.Optional[str]
Display / account name.
Optional[str]
Route name, e.g.
"slack".Optional[str]
Health status — see
IntegrationStatus.Optional[str]
Creation timestamp.
Optional[list[str]]
OAuth scopes granted.
Optional[list[str]]
Actions this connection permits.
Optional[bool]
Convenience flag for a degraded connection.
ConnectionRequest
One in-flight connection attempt. OAuth requests start at INITIATED with a connect_url; form requests are born ACTIVE with the Integration already attached, so wait() returns instantly.
Attributes
str
The connect-session id (aliased as
.id). Persist it to reconcile later via from_session.IntegrationType
The type being connected.
ConnectionStatus
Current session status.
Optional[str]
The URL the user opens to consent / enter credentials.
wait
ACTIVE and return the live Integration. Raises ConnectionFailed / ConnectionExpired on a terminal bad status, and ConnectionTimeout if timeout elapses first (the attempt stays live server-side — re-open connect_url or re-poll).
get_status
req.status.
get_result
Integration if the session is already ACTIVE; raises ConnectionFailed if not yet active. Use after a get_status() confirms ACTIVE, when you don’t want to block in wait().
Enums
IntegrationType
A StrEnum whose value is the display name. Members carry:
str (property)
URL-safe id the backend uses (e.g.
IntegrationType.SLACK.route_name == "slack").bool (property)
True for types that connect via credentials only (no OAuth).AuthMode (property)
AuthMode.FORM when is_form_only, else AuthMode.OAUTH.classmethod
Resolve a route name back to a member; unknown routes raise
UnknownIntegrationType.IntegrationType("slack") works).
AuthMode
OAUTH · FORM.
ConnectionStatus
The lifecycle of a ConnectionRequest: INITIATED · PENDING · ACTIVE · FAILED · EXPIRED.
IntegrationStatus
The health of a configured integration: LOADING · DONE · UNHEALTHY.
Type catalogue
76 supported types.route_name is what you pass to connect(...) / the CLI. Auth is OAuth (browser consent), Form (credentials only — see fields below), or OAuth + form (hybrid: connect via the hosted page or by passing credentials=).
Credential fields
Types you can connect by passingcredentials=. Required fields are validated client-side (MissingCredentials); optional fields tune the connection.
Errors
All inherit fromIntegrationError (itself a VectorshiftError).
exception
A lookup returned no result.
exception
A type / route name is not in the catalogue. Carries
.value.exception
A form connect is missing required fields. Carries
.type and .missing_fields. Raised client-side before any network call.exception
The provider denied access or the backend errored. Carries
.reason.exception
The connect-session TTL elapsed before completion.
exception
wait() exceeded its timeout. Not a failure — the attempt is still live; re-open .connect_url or re-poll. Carries .connect_url, .last_status, .timeout. Also a TimeoutError.What’s next
CLI reference
The
vectorshift command line.Integration tools
Per-service agent tool actions.
Integration nodes
Per-service pipeline node actions.
