fluentcidocs
Website GitHub

Reference

GraphQL and events

Query local Studio state and subscribe to execution updates on the loopback API.

Endpoints

fluentci server --port 6076

GraphQL and GraphiQL are at http://localhost:6076/graphql. Live WebSocket events use ws://localhost:6076/ws. Studio mode serves the frontend as well; desktop mode uses a separate OS-assigned loopback port.

This API controls local projects and execution. It is distinct from the public registry's XRPC API and is not a hosted authentication boundary. Keep it scoped to trusted local use.

Query projects

query Projects {
  projects(limit: 20) {
    id
    name
    path
  }
  countProjects
}
curl -sS http://localhost:6076/graphql \
  -H 'Content-Type: application/json' \
  --data '{"query":"{ projects(limit: 20) { id name path } }"}'

Common queries include actions(projectId: ...), getRuns(projectId: ...), getRun(id: ...), jobs, job(id: ...), logs(jobId: ...), and full-text search(query: ...). Project/run pagination supports the arguments exposed by the schema. Use GraphiQL's introspection for exact input and result types.

Run a project

mutation RunProject($projectId: ID!) {
  runPipeline(projectId: $projectId, wait: false) {
    id
    status
    jobs {
      id
      name
      status
    }
  }
}

wait: false schedules execution and returns the pending run. Query history or consume events for completion. wait: true waits for execution. Additional mutations manage projects, save actions, re-run jobs, and cancel runs. Cancellation status should not be treated as proof that every external side effect was undone.

Identity and suggestions

query LocalIdentity {
  currentAccount {
    account
    did
    handle
    pds
  }
  tangledRepositories {
    uri
    name
    cloneUrl
    author
    knot
  }
}

Identity comes from the remembered account file. Repository suggestions come from the local cache for that account DID. No password or reusable session token is returned. Other suggestion queries include actionSuggestions, projectDirectories, and projectNameAvailable.

Live events

The WebSocket sends JSON envelopes with channel and data. Channels include project, run, job, and log updates:

{
  "channel": "job",
  "data": { "id": "example", "name": "check", "status": "RUNNING" }
}

The example is an envelope sketch, not a complete job schema. Events supplement durable GraphQL state. Re-query after reconnecting instead of assuming the socket replays every missed event. The broadcast implementation can skip lagged updates. The compatibility field exportActions retains the argument spelling plateform.

Made with ♥ in Antananarivo, Madagascar.
Search documentation