Skip to Content
DocsHow it WorksWhat Goes Through Cadence.CI

What Goes Through Cadence.CI

Cadence.CI coordinates the machines of a run and keeps its records. The work itself, the data your steps exchange and your secrets stay on your side: on the machine where you launch the pipeline and on the instances in your cloud account.

Your side

Engine you launch

On your laptop or in a CI job.

Work and data between steps, directly

Machines in your cloud account

One per step, started and stopped by Cadence.CI.

Requests machines; reports status, logs, debug events and the program
Report status, logs and debug events
Starts and stops them through your provider's API

Cadence.CI

Coordinates the machines and keeps the run records. Secrets appear only by name and type, never by value.

What Cadence.CI Receives

DataSent whenVisible to
Run status: requested, started, finished, resultEvery reported runOrganization members
Entrypoint and parameter values. A Secret parameter appears only as its name and type, never its valueEvery reported runOrganization members
Logs, with any secret value maskedEvery reported run, in chunks while it runsOrganization members
Debug events, which never contain secret values, at any levelEvery reported run, at the basic level unless set otherwise with --debug-levelOrganization members
Program: the Mélodium pipeline that ran, not your application codeEvery reported runOrganization members
Resources requested: CPU, memory, storage, architecture, container image namesEvery reported runOrganization members
Instances started: provider, type, zone, IP addressesRuns on a connected cloud accountOrganization members
Cloud account credentialsWhen you connect a cloud accountUsed by Cadence.CI to start and stop instances, never shown again

On the open-source plan, runs, their logs and their program are public; debug events stay visible to members only.

Retention follows your plan: 7 days on Access, 120 days on Basic and on the open-source plan, one year on Pro, custom on Enterprise.

Secrets

Credentials are values typed Secret. You give them as locators, never as values:

  • env:MELODIUM_SECRET_<NAME> reads an environment variable whose name starts with MELODIUM_SECRET_;
  • file:<path> reads a file.

The engine that needs a secret resolves it on its own machine. Cadence.CI only ever learns that a secret exists, by its name and type: in the parameters, the program and the debug events. Logs mask any secret value a step might print. The one exception is a value your own program turns back into plain data with reveal; secrets read from environment variables and files can never be revealed that way.

Debug events filtered on secret: the distribution keys revealed to distrib::start, by name only

The secret audit in the debug events, above, records which element used which secret, and nothing more: here, the two keys that secure the connection to each step’s machine.

What Stays on Your Side

  • Data between steps. Files and values streamed from one step to another go directly between the engines. Cadence.CI gives the engine a runner’s address; it does not relay the traffic.
  • Secret values. Resolved where they are used, never sent to Cadence.CI.
  • Your cloud account. Instances, images and network stay in your account. Cadence.CI acts through your provider’s API, with the permissions you grant when you connect the account.

Going Further