Cordium documentation · Latest
Accessing Octelium Services
Every Workspace is connected to the Cluster with its own Octelium Session, which lets the tools running inside it reach the Octelium Services that its owner is authorized to access, by name and without any credential (read more here). This example walks through a development Workspace for the payments team that uses an internal HTTP API, a PostgreSQL database, a Kubernetes cluster, an SSH server and an MCP server, none of whose credentials are present in the Workspace.
The Services
The following Octelium Services are created by a Cluster administrator. Each one stores its upstream credential as an Octelium Secret (read more about each mode here):
The members of the payments Group are then allowed to access them via a Policy, which also applies to their Workspaces since every Workspace run is a Session of its owner (read more about Policies here).
Using the Services
Inside any of the team's Workspaces, the Services are used with their standard clients:
Since psql expects a database user and Octelium injects the real one, any user name works on the client side. Applications use the same addresses, for example via DATABASE_URL=postgres://pg-staging.payments:5432/payments and LEDGER_API_URL=http://ledger-api.payments.
Using the Services in Tasks
Lifecycle tasks that access Octelium Services must be POST_START tasks, since the Workspace connects to the Cluster at the beginning of the POST_START phase, and they should wait until the connection is established (read more here). Here is a Template that refreshes a local copy of reference data from the staging database every time the Workspace starts:
Connecting AI Agents to MCP Servers
MCP servers can be exposed as Octelium MCP Services too, which gives AI agents running in Workspaces access to tools such as issue trackers, observability backends or internal knowledge bases, again without any token in the Workspace (read more about MCP Services here). Here is an MCP Service for a remote MCP server that requires a bearer token:
And here is how Claude Code is configured to use it from inside a Workspace:
Auditing
Every request made through these Services, including the HTTP paths, SQL queries, Kubernetes API calls, SSH sessions and MCP tool calls, is logged by Octelium with the identity of the User and of the Workspace that made it (read more here). To restrict what the Workspaces can do further, for example by allowing a Template's Workspaces only read-only queries, read this guide.