Skip to main content

Status

As of 2026-10-16: 67 capabilities are shipped, 3 are decided and 5 are planned. Shipped means it runs on main and is held by a named test in the repository; an item marked unreleased is on main but not yet in a tagged release. Decided means specified, with no runtime. Planned means not built. connectors-docs generates this page and website/data/status.json from one list and fails when a test it names is gone. A release page carries the source archives and Linux and macOS binaries of connectors and connectors-catalog-provider; the changelog records each change a user sees, release by release.

Service boundary​

CapabilityStatusWhat it means
Describe and invoke● shippedA connector's standalone service answers a typed descriptor and invokes its operations over HTTP; admission and freshness are checked before dispatch.
One-hop federation● shippedThe connectors_host::federation library puts one gateway in front of several standalone services, prefixes their operations and reports a downstream failure without retrying it.
Audited v1alpha2 invoke● shippedA host whose service configuration names a state directory serves POST /v1alpha2/invoke: every admitted invocation is anchored in the execution audit before dispatch (since 0.35.0).
The attempt a write produced● shippedAn admitted write records its attempt before its one dispatch and answers it as mutation; a lost answer is outcome_unknown and is never sent again (since 0.35.0).
Rust client for v1alpha2● shippedconnectors_client::Client::invoke_v1alpha2 returns the attempt the host recorded and reports an older host as unsupported instead of falling back.
Governed service admission◐ decidedPrincipal, tenant, grant and delegated approval on the service wire are specified; the runtime implements only the first v1alpha2 invoke binding.

Local runtime​

CapabilityStatusWhat it means
Setup and metadata store● shippedsetup init creates a private configuration and an Entity Runtime metadata store over Eventlog SQLite, with durable open checkpoints (since 0.33.0).
Supervised instances● shippedA local owner starts the process that serves each configured instance, refuses a changed executable or configuration before provider work, and stops exact incarnations.
Stopping an owner after an upgrade● shippedsetup owner-stop asks the state directory's running owner, of any build, to drain and exit within 30 seconds, answers no_owner when none runs, and never signals a process.
Configuration upgrades● shippedAfter a configuration change each saved connection has one working path: revalidate, a new connection under the same instance id after an evidence lifetime change, or a new instance id after a changed provider authority or profile.
Approval clock refusals● shippedapprovals clock-check names why the quorum formed no answer (below quorum, split or too imprecise) with its next action, and each source's result: unreachable, unverified or verified at any radius; only the combined answer is capped.
Saved connections● shippedconnections connect validates a credential and keeps it in Secret Service custody; revalidate, reconnect and revoke manage it, and an unanswered revalidation is outcome_unknown.
Unattended reads● shippedA connection connected or revalidated once keeps serving reads across any number of evidence lifetimes: a read on lapsed evidence recollects it once from custody, with no re-entry, before it is served.
Connector instances● shippedA connectors-local/5 configuration enables connectors by name and names their instances; an instance that pins nothing is derived from the catalog provider installed beside the CLI.
Listing connectors● shippedconnectors list prints every connector the CLI ships a declaration for, with its auth profiles and configured instances, without a configuration file and without starting a process.
Selecting an instance● shipped--connector and --instance select one instance; the deprecated --adapter reaches the same instance and says it is deprecated once.
Renamed commands● shippedinstances replaces the adapters group and connections reconnect replaces connections repair; each old name runs as its new one and says it is deprecated once.
Stale connections● shippedA connection whose stored credential the provider refused is Stale until connections reconnect publishes a new credential under the same reference.
One connection per instance● shippedconnections connect is refused while the instance holds a published Live or Stale connection, naming the reconnect, revalidation or revocation that helps.
Configuration migration● shippedsetup migrate moves each legacy catalog entry to an instance of its connector, keeping its instance id, revision, executable selection and custody items, and names why any other entry is kept.
Mounted-secret custody● shippedAn owner configuration can explicitly select read-only mounted-secret custody (mounted_secret, Linux): connect, list and a credentialed invoke run under an empty environment in a container, reading a Kubernetes-style Secret volume and writing nothing; rotation needs a revalidation.
Approved writes● shippedapprovals policy-set, prepare and issue bind a write's whole input to a protected proof before the host dispatches it once.
Approval-signing keys● shippedApproval-signing keys are initialized, rotated, recovered, revoked and retired through the CLI; status reads never touch custody.
Approval clock check● shippedapprovals clock-check answers from a quorum of two to eight configured Roughtime sources, naming each source's result, without starting the owner or reading metadata.
Consumer launch● shippedconnections launch hands one connection's protected document to a pinned consumer and refuses a launch its configuration does not admit (since 0.31.0).
Operations by family● shippedoperations list --family names the operations of one contract family, such as datasource.feed/v1alpha1, with their contract and profile.
JSON values in JSON answers● shippedWith --output json, invoke results and operation schemas are JSON values, not JSON text (breaking since 0.32.0).

Catalog provider​

CapabilityStatusWhat it means
Bundles from pinned sources● shippedconnectors-build catalog compiles a pinned OpenAPI document into a digest-verified bundle; every committed bundle matches a fresh run byte for byte.
Guarded writes as data● shippedA selection's guard reads before the one request and refuses unless every check holds; after it, a failed check leaves the outcome uncertain, never refused.
GitLab● shippedProjects, issues, files, the repository tree, branches, tags, releases, commits, commit diffs, compares, code search, deployments, environments, pipelines, jobs, traces, merge requests and their diffs and discussions as reads; issue, merge-request (auto-merge and reopen included), note, discussion, tag and release writes under approval.
GitLab CI, branch, commit and project writes● shippedpipeline.retry, pipeline.cancel, pipeline.create, commit.create, file.update, branch.create, branch.delete and project.create under approval, each guarded on the caller's commit (project.create on the namespace path and id) and proven by GitLab's answer or a read after it; environments.list as a read; verified against fixtures, not a live GitLab.
GitLab merge-request feed● shippedGitLab binds datasource.feed/v1alpha1 as profile gitlab-merge-requests/1, checked against recorded GitLab answers (since 0.32.0).
Feed time query in an unknown zone● shippedA declared feed's time query can be read by the provider in a zone it is not told, between utc_offsets least and greatest minutes east of UTC, and a resume then starts early enough to skip no item in any such zone. The Jira issue feed that declares it, profile jira-issues/1, is in the shipped Jira selection, so a Jira instance has feed.containers and feed.items; verified in every profile zone from UTC-12:00 to UTC+14:00 against fixtures from the upstream description, not a live Jira (unreleased).
Confluence page feed● shippedA Confluence REST v1 binding of datasource.feed/v1alpha1, profile confluence-pages/1: spaces as containers, their pages as items, resumed by a CQL lastmodified query and continued by the cursor of the next link. It is in the shipped confluence-v1 selection, so a confluence-v1 instance has feed.containers and feed.items, and only a connection bound to REST v1 reads it. Verified in every profile zone from UTC-12:00 to UTC+14:00 against fixtures written from the v1 reference, not a live Confluence; the CQL lastmodified precision and order are not established (unreleased).
Jira Cloud● shippedIssue search by JQL, one issue by key, comments, changelogs, an issue's available transitions, a project's creatable issue types and one issue type's create fields, the visible projects and one project by id or key, user search, an attachment's content, running one transition by id under a guard that reads the issue before and after it, and creating, commenting on, editing, linking and deleting issues under approval, each guarded by a read before it (edit and delete on the caller's updated stamp, refused as conflict), over HTTP basic authentication (one issue, issue types and user search since 0.39.0; the visible projects and one project unreleased); the writes are verified against fixtures, not a live site.
Binary responses● shippedA selection can read an answer as bytes: media type, length, SHA-256 and the bytes in base64, at most 2 MiB and refused as capacity above it, with at most three redirects, each only to an origin the selection names and the connection admits in its hosts; verified against fixtures only.
Jira attachment content● shippedattachment.content reads one attachment as a binary body, directly with redirect=false or through Jira's 303 to an admitted media host; that host, api.media.atlassian.com, is inferred and not verified against a live site.
Confluence Cloud● shippedChanged pages, a space's pages, one page with its body and a page's comments; exercised against local fixtures only.
Confluence Cloud REST v1● shippedCQL search, changed pages by CQL, spaces, one space, a space's content, one page with its body and a page's comments under the provider id confluence-v1, from a source document this repository writes from Atlassian's v1 reference; exercised against local fixtures only.
HubSpot CRM● shippedOne object type's records, paged, and one record by id; exercised against local fixtures only.
Zendesk Support● shippedTickets, users and organizations changed since a start time, one of each by id, and a ticket's comments, with OAuth client credentials or an API token; a ticket update, a private note and a draft reply behind an approval, refused as a conflict when the ticket changed since it was read.
Google Drive, Slides, Calendar and Gmail● shippedReads and guarded writes from Discovery documents projected to OpenAPI, with a refresh token from browser consent; exercised against local fixtures only.
Runpod pods● shippedpod.create, pods.list and pod.terminate with the API key in custody; a create without a definite answer is unknown and never sent again, and one refused for lack of capacity is refused as capacity; verified against a local fixture only (since 0.36.0).
Swagger 2.0 sources● shippedA Swagger 2.0 document is ingested through an exact, recorded projection to OpenAPI 3.1.0; a construct without an exact row is refused by name (since 0.37.0).
Slack conversations● shippedconversations.list, conversations.history and conversations.replies with a bot token (since 0.38.0), users.list, one user by id (users.info) or e-mail address (users.lookupByEmail), team.info, emoji.list and auth.test, and on a second connection with a user token search.messages and the three conversation reads and users.list, which reach every conversation that user can read, the channels the bot is not in included; verified against a local fixture only.
Slack messages● shippedchat.postMessage posts a message, a thread reply included, conversations.open opens a direct message to post to, and chat.update and chat.delete edit and delete a message the bot posted, each under approval after the token's auth.test read; an edit or delete Slack refuses by name (cant_update_message, cant_delete_message, message_not_found) is refused, and a dispatch without a definite answer, or any other 200 with ok false, is unknown; none is sent again; verified against a local fixture only.
Slack files● shippedfiles.list, files.info and file.download, which reads a file's url_private on files.slack.com as a binary body with the bot token, only where the connection admits that host with the credential, and files.delete under approval after the token's auth.test read and a files.info read of the file, with file_not_found and file_deleted refused as not_found and cant_delete_file as forbidden; verified against a local fixture only.
Slack read refusals● shippedA Slack read answered 200 with ok false is refused, never returned as an empty read: Slack's error is the reason, and missing_scope, not_in_channel and user_not_visible are forbidden, invalid_auth and its kin unauthorized, an unknown channel, thread, file or user not_found, an e-mail address no user has (users_not_found) not_found, ratelimited rate_limited with its Retry-After, a bad cursor or argument invalid_input, and any other name internal, on every JSON read of both Slack sets; verified against a local fixture only.
Opsgenie alerts and incidents● shippedalerts.list and incidents.list over a creation window the caller advances, alert.get, incident.get and incident.alert_ids, read only, with the key sent as GenieKey ; verified against a local fixture only.
Catalog index service◐ decidedListing and locating precompiled bundles with provenance is specified; directly configured adapters need no index.

Native adapters​

CapabilityStatusWhat it means
Kubernetes reads and discovery● shippedresources.list, endpoints.discover and optionally hosts.discover, scoped to configured namespaces and kinds, with a saved bearer token.
Kubernetes single objects, namespaces and rollout history● shippedresources.get reads one object by name, namespaces.list the configured namespaces the cluster has, deployments.history the ReplicaSets a Deployment controls; replicasets and events are configurable kinds; verified against API-shaped fixtures.
Kubernetes statefulsets, nodes and custom resources● shippedstatefulsets is a configurable kind; nodes.list pages the full Node objects when node_reads is configured; custom_resources.list pages one configured namespaced custom resource collection by group, version and plural; verified against API-shaped fixtures.
Kubernetes exec credential plugin● shippedA kubeconfig user that authenticates through an exec plugin, such as aws eks get-token, is reached when the local configuration pins the plugin by absolute path and sha256: it runs on Linux from the descriptor it was hashed through and on macOS from its checked path, with the kubeconfig arguments, an empty environment plus an allow-list, a deadline and an output bound, and its token is held in memory until expiry; verified with fixture plugins against a recorded API session, not a live EKS cluster.
Kubernetes pod logs● shippedpods.logs reads a bounded tail of one container's log in a configured namespace, at most 1,000 lines and 128 KiB, when pod_logs is configured; verified against API-shaped fixtures.
Kubernetes kubeconfig contexts● shippedcontexts.list lists the contexts of the one kubeconfig a local configuration names, never its credentials or servers, with no cluster request.
Kubernetes pod exec● shippedpods.exec runs one command as an argument vector in a named container, through the local CLI under approval, when pod_exec is configured; exit status and bounded output come back, and a lost stream is unknown and never resent; verified against recorded streams, not a live cluster.
Helm release reads● shippedHistory, status, values and manifest of a named release, values and manifests disclosed only as redacted projections.
PostgreSQL reads● shippedschema.list, query.read, database.list, table.list, table.describe and index.list in a read-only transaction with fixed statement and lock timeouts; a deadline or a dropped invocation cancels the query.
MySQL reads● shippedThe same six reads on a connection whose engine is mysql, in a read-only session bound to the configured database, over TLS unless plaintext is allowed.
SQL read profiles● shippedprofile.read runs a read the operator declares in the native file by name, on either engine: declared parameters only, bound; typed columns with numbers masked by default; one call identifier; keyset pages that never take a short page for the end and refuse, rather than skip, a non-unique ordering value at a page boundary; cursors checked for shape, type and context; verified against scripted wire fixtures, not a live database.
Tavily web search● shippedwebsearch.search, websearch.fetch and websearch.crawl through the shared websearch family; the key is checked without spending a search.
Loki LogQL reads● shippedlogs.query_range, logs.query_metric and logs.labels through a saved bearer connection (since 0.38.0).
Loki line and trace profiles● shippedlogs.profile_lines (one typed, masked record per line of a configured line profile) and logs.call_trace (one call's lines from every source, by its identifier) through a saved bearer connection.
A call by its number, every leg typed● shippedA configured SQL read profile over the call table and a configured Loki line profile over the CDR lines, joined by a workflow on the call identifier each declares, answer every leg of a transferred call with its type, numbers masked, across a page boundary of the SQL read.
Grafana data sources● shippeddatasources.list through a saved service-account connection, and Loki reads through Grafana's data-source proxy (since 0.39.0).
Grafana IRM alert groups and incidents● shippedirm.alert_groups.list, irm.alert_group.get, irm.incidents.list and irm.incident.get over a since window, with incident-to-alert-group links (inferred), through a saved IRM service-account connection; read only.
Prometheus PromQL reads● shippedseries.query, series.query_range and rules.list through a saved bearer connection, directly or through Grafana's data-source proxy.
Kubernetes permission checks○ plannedPer-operation SelfSubjectAccessReview checks and the remaining Kubernetes and Helm workflows.
Loki tenants and other authentication○ plannedAn X-Scope-OrgID tenant header and profiles other than a bearer token; today a Loki without authentication cannot be connected.
Prometheus tenants, timeouts and other authentication○ plannedAn X-Scope-OrgID tenant header, an adapter-set query timeout, a Capacity error for too many samples apart from other execution errors, and profiles other than a bearer token.
Specification-only adapters◐ decidedAlertmanager has a design or typed model and no runtime; Grafana dashboards, datasource discovery and the mediated route are specified and not built.
MCP○ plannedMCP invocation, projection, auth lifecycle, mutation replay and composition contracts are specified; there is no MCP runtime.

Distribution​

CapabilityStatusWhat it means
Release binaries● shippedA release page carries an archive per Linux and macOS target (x86_64 and aarch64) holding connectors, connectors-catalog-provider and the Grafana, Prometheus, Loki and Kubernetes programs, with SHA256SUMS; the other adapters are built from the checkout, and there is no Windows binary.
Package distribution○ plannedNo package manager, container registry or Windows binary carries a release.