Interfaces & APIs
System9 is reached the way a database and an object store are reached, not the way a single-vendor SaaS API is reached. A cell runs a set of standard-protocol listeners, a SQL wire, an object API, identity protocols, an agent-tool server, and it runs outbound clients that federate what a customer already owns. The load-bearing property is that the same governance travels with every one of them: a connection resolves to a directory entity, so row- and column-level policy is enforced inside query execution, and every request carries a workspace scope, a classification, and an audit record.
This page indexes each interface. Each has its own reference page with ports, authentication posture, client compatibility, and a status you can quote.
The interface map
| Interface | Direction | What it is for | Status |
|---|---|---|---|
| PostgreSQL wire protocol | Inbound (server) | The main door for existing SQL and BI tools: ODBC/JDBC, psql, Power BI, Tableau | Live |
| Arrow Flight SQL | Inbound (server) | High-throughput columnar pulls | Live: served pyarrow.flight gateway, multi-cell fan-out; stock-client round-trip proven (no named BI tool certified) |
| Open table formats | Both | Delta Sharing and Iceberg for open, engine-neutral table access | Partial: see the page for the available surfaces |
| REST & OpenAPI | Inbound (server) | The administrative and application HTTP surface behind one gateway | Live, with named gaps |
| Public API reference | Inbound (server) | The served, deny-by-default OpenAPI document + interactive reference (/api/public/v1/docs) | Live: served; each operation carries its own status |
| Programmatic authentication | Inbound (server) | Obtain and present a credential for the public API: scoped API keys and OAuth 2.1 | Live: API keys + OAuth 2.1; per-grant status in the guide |
| API conventions | Inbound (server) | The shared base path, error envelope, rate limiting, and pagination, with a worked first call | Live: served surface |
| Jobs API | Inbound (server) | Run and observe jobs over HTTP: run, list, status, journal, live event stream, cancel | Partial: run/observe live; cron definitions live for all five job types including agent and team; unscheduled reusable definitions owed |
| Ontology & SDKs | Both | Generated OpenAPI/Python/TypeScript clients, the agent-tool (MCP) surface, and semantic-model emitters | Partial: see the page for the available surfaces |
The s9 CLI | Client | The command-line interface to an Edge Agent. A separate s9-admin tool drives a cell or node | Live |
Also served, covered on their capability pages
These are real inbound interfaces a customer's tooling can use. They are documented where the capability lives rather than repeated here.
| Interface | Direction | What it is for | Where |
|---|---|---|---|
| RESP2 / RESP3 | Inbound (server) | Standard Redis clients against the structure engine, over a raw socket | Structures |
| GQL / openCypher, Gremlin | Inbound (server) | Property-graph traversal, including the zero-copy virtual graph over the lakehouse | The virtual graph |
| GraphQL | Inbound (server) | A merged domain schema with subscriptions and query cost analysis | The node gateway |
| KQL and PromQL | Inbound (server) | Two query dialects beyond SQL over governed streams | Streaming |
| OpenMetadata REST | Inbound (server) | Existing metadata tooling reading the catalog | The catalog |
| OpenLineage | Both | Lineage in from existing emitters, and captured lineage published out to DataHub, Marquez, Atlan, Collibra or Purview. Outbound is off until enabled by a signed capability | The catalog |
| Model Context Protocol | Inbound (server) | The agent-tool surface. Session and bearer ship; OAuth 2.1 is present and off by default | Tool families |
| Agent-to-agent cards + JWKS | Both | Discovery, task delegation and signed push notifications between agent systems | Tools & MCP |
| S3 (SigV4), WebHDFS, SFTP | Inbound (server) | Object and file access behind one namespace guard | Object storage |
| MQTT 5.0, AMQP | Bridge | External broker interop with a documented QoS mapping | Messaging |
| OTLP, Prometheus | Export and receive | Telemetry out to, and in from, existing observability stacks | Monitoring & logging |
| Terraform, CloudFormation, Bicep, ARM | Generator | Rendering an estate as infrastructure as code, with no cloud credentials involved | Interoperability |
Identity protocols (SCIM, SAML, OIDC, WebAuthn, CAC/PIV, LDAP) are covered under Security · Identity; file and object access (S3-compatible, SFTP) under the Data Platform. The full both-directions integration story lives on the Interoperability page.
Reading a status
- Live: the listener starts, has a measured surface, and no open defect contradicts its core function. Describe the mechanism; never certify it.
- Partial (named slice): a substantial part is built and reachable, but the headline is broader than the reachable slice. Only the named slice may be claimed.
- Planned: the interface is shaped or advertised but does not carry data end to end today. Do not demo it as working.
Every interface is either inbound (a tool the customer owns connects to System9, "can I point Power BI at it?") or outbound (System9 connects to the customer's system, "can it read my Snowflake?"). Some are both. Conflating the two is the most common integration over-claim, so each page states its direction first.