Todos los endpoints de la API de eQuantic Space, generados desde la propia API.
La API que usan la aplicación web, la CLI eqs y los runners. Esta página se genera a partir del documento OpenAPI de la propia API, así que lista exactamente los endpoints que sirve.
El token puede ser un token de acceso personal o el secreto de un service principal (consulta Acceso (RBAC)). Cada petición se comprueba contra los roles de la identidad que hay detrás del token.
GET/v1/accounts/azure-devopsConnection state (organization + connections) for the connect UI (P1c).
Respuestas
200
PUT/v1/accounts/azure-devopsConnect (or re-auth) an Azure DevOps organization with a PAT.
Cuerpo de la peticiónConnectAzureAccountDto
Nombre
Tipo
Descripción
organizationobligatorio
string
Organization name only — `equantic` in `https://dev.azure.com/equantic`.
patobligatorio
string
Azure DevOps personal access token (Code read scope at minimum).
Respuestas
200
GET/v1/accounts/azure-devops/repositories
Respuestas
200
BitbucketAccount
GET/v1/accounts/bitbucketConnection state (login + connections) for the connect UI.
Respuestas
200
PUT/v1/accounts/bitbucketConnect (or re-auth) a Bitbucket account with a username + secret pair.
Cuerpo de la peticiónConnectBitbucketAccountDto
Nombre
Tipo
Descripción
usernameobligatorio
string
HTTP Basic username (ADR-025 B1): the Bitbucket USERNAME when pairing
with an app password, or the Atlassian account E-MAIL when pairing with
the newer API tokens. Stored as the connection's login and replayed on
every Basic call.
secretobligatorio
string
App password or Atlassian API token (repository read at minimum).
workspaceobligatorio
string
The Bitbucket WORKSPACE slug to list repositories under —
`equantic` in `bitbucket.org/equantic`. REQUIRED since CHANGE-2770 (the
user-wide listing endpoints return HTTP 410); stored on the account's
`host`. A workspace id is a slug: letters/numbers plus `-`/`_`.
PUT/v1/repositories/{repositoryId}/branch-protectionsUpserts THE rule for `branchPattern` (the body's key). PUT is declarative full state — omitted fields fall back to the defaults, they never keep the previous value.
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Cuerpo de la peticiónPutBranchProtectionDto
Nombre
Tipo
Descripción
branchPatternobligatorio
string
Exact branch name (`main`) or a simple segment-scoped `*` glob (`release/*`).
GET/_apis/artifactcache/artifacts/{id}Streams a committed entry — the target of every download URL we hand out, v1 and v2 alike. Answers `Range` with a 206 because that is how the Azure URLs GitHub issues behave, and buildkit's `type=gha` reads cache blobs through a ReaderAt that asks for `bytes=<offset>-`.
PUT/v1/ci-storage/policySaves the policy. The next sweep, at most an hour away, applies it.
Cuerpo de la peticiónCiStoragePolicyDto
Nombre
Tipo
Descripción
cacheIdleDays
number
A cache entry nobody restored in more than this many days goes. 0 = never.
cacheRepoLimitGb
number
A repository's cache limit, in GB. 0 = no limit.
artifactRetentionDays
number
Artifact retention in days: GitHub allows 1 to 400.
logRetentionDays
number
Run log retention in days. 0 = never remove.
storageLimitGb
number
The most cache and artifacts may hold together, in GB. Null = automatic
(a fifth of the volume), 0 = no total limit.
diskFloorPercent
number
The share of the volume kept free, in percent. 0 = off.
Respuestas
200
POST/v1/ci-storage/previewWhat a candidate policy would come to on this disk, without saving it: the limit it sets, the disk's floor, and whether CI is over. The screen shows it while the operator types, from the same arithmetic the sweep uses, instead of a copy of that arithmetic in the browser. An empty field is the default, as it would be once saved.
Cuerpo de la peticiónCiStoragePolicyDto
Nombre
Tipo
Descripción
cacheIdleDays
number
A cache entry nobody restored in more than this many days goes. 0 = never.
cacheRepoLimitGb
number
A repository's cache limit, in GB. 0 = no limit.
artifactRetentionDays
number
Artifact retention in days: GitHub allows 1 to 400.
logRetentionDays
number
Run log retention in days. 0 = never remove.
storageLimitGb
number
The most cache and artifacts may hold together, in GB. Null = automatic
(a fifth of the volume), 0 = no total limit.
diskFloorPercent
number
The share of the volume kept free, in percent. 0 = off.
Respuestas
200
POST/v1/ci-storage/sweepStarts a sweep now, for an operator who just lowered a limit, and answers as soon as it is recorded: the pass runs on, and the screen follows it in `sweeps`. `started` is false when this replica was already sweeping.
Respuestas
202
CodeBrowser
GET/v1/repositories/{repositoryId}/code/branchesBranch names + the default branch (the ref picker).
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Respuestas
200
GET/v1/repositories/{repositoryId}/code/detect-stackInferred build stack (buildpack, port, relevant files, suggested env) from the repo's real files — backs the deploy wizard's "detect stack".
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
ref
query
string
Respuestas
200
GET/v1/repositories/{repositoryId}/code/fileRaw content of a single file.
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
pathobligatorio
query
string
ref
query
string
Respuestas
200
GET/v1/repositories/{repositoryId}/code/filepathsEvery file path at a ref (recursive) for the file finder.
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
ref
query
string
Respuestas
200
GET/v1/repositories/{repositoryId}/code/rawRaw file bytes — backs the README image proxy so private-repo images load with the owner's token. Served with `nosniff` + a locked-down CSP so a non-image path can never execute as active content in our origin.
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
pathobligatorio
query
string
ref
query
string
Respuestas
200
GET/v1/repositories/{repositoryId}/code/treeDirectory listing at `path` (root when omitted).
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
ref
query
string
path
query
object
Respuestas
200
CodeLinks
DELETE/v1/commit-links/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GET/v1/items/{id}/branches
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/items/{id}/branchesdevelop (ADR-039): also needs `scm.write`, which the command asks.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCreateItemBranchDto
Nombre
Tipo
Descripción
repositoryIdobligatorio
string
A repository connected to the workspace.
name
string
The branch's name; by default the item's identifier and title.
base
string
The branch or ref it starts from; by default the repository's default branch.
Respuestas
201
GET/v1/items/{id}/code-links
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/items/{id}/commit-links
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónLinkCommitDto
Nombre
Tipo
Descripción
repositoryIdobligatorio
string
commitShaobligatorio
string
message
string
author
string
url
string
Respuestas
201
POST/v1/items/{id}/pull-request-links
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónLinkPullRequestDto
Nombre
Tipo
Descripción
repositoryIdobligatorio
string
numberobligatorio
number
title
string
state
string
author
string
url
string
headSha
string
Respuestas
201
DELETE/v1/pull-request-links/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
Comments
GET/v1/blocks/{id}/comments
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/blocks/{id}/comments
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCreateCommentDto
Nombre
Tipo
Descripción
bodyobligatorio
string
mentions
string[]
Mentioned user ids.
parentCommentId
string
Reply to this comment (must be on the same target); omit for top-level.
Respuestas
201
PATCH/v1/comments/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateCommentDto
Nombre
Tipo
Descripción
body
string
mentions
string[]
Respuestas
200
DELETE/v1/comments/{id}As editing: its author, or whoever may update the item.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/comments/{id}/reactions
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónReactionDto
Nombre
Tipo
Descripción
emojiobligatorio
string
The emoji to add (e.g. "👍", "🎉").
Respuestas
204
DELETE/v1/comments/{id}/reactions/{emoji}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
emojiobligatorio
path
string
Respuestas
204
PUT/v1/comments/{id}/resolution
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónResolveCommentDto
Nombre
Tipo
Descripción
resolvedobligatorio
boolean
true resolves the comment, false reopens it.
Respuestas
200
GET/v1/docs/{id}/comments
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/docs/{id}/comments
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCreateCommentDto
Nombre
Tipo
Descripción
bodyobligatorio
string
mentions
string[]
Mentioned user ids.
parentCommentId
string
Reply to this comment (must be on the same target); omit for top-level.
Respuestas
201
GET/v1/items/{id}/comments
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/items/{id}/comments
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCreateCommentDto
Nombre
Tipo
Descripción
bodyobligatorio
string
mentions
string[]
Mentioned user ids.
parentCommentId
string
Reply to this comment (must be on the same target); omit for top-level.
Respuestas
201
Containers
GET/v1/container-types
Respuestas
200
POST/v1/container-types
Cuerpo de la peticiónCreateContainerTypeDto
Nombre
Tipo
Descripción
nameobligatorio
string
icon
string
color
string
allowedChildTypeIds
string[]
ContainerType ids this type may directly nest (empty = leaf).
allowedItemTypeIds
string[]
ItemType ids this type may directly hold (F2; reserved).
Respuestas
201
PATCH/v1/containers/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateContainerDto
Nombre
Tipo
Descripción
name
string
config
object
Respuestas
200
DELETE/v1/containers/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/containers/{id}/duplicate
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
201
POST/v1/containers/{id}/move
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónMoveContainerDto
Nombre
Tipo
Descripción
parentContainerId
string
New parent; omit / null to move to the top level (under the Space).
afterContainerId
string
Place directly after this sibling; omit / null for the first position.
spaceId
string
Move to another Space of the same workspace; omit to stay where it is.
The whole subtree follows, and the items' Space-scoped links (sprint, key
result, tags) are dropped — they belong to the Space being left.
Respuestas
201
GET/v1/spaces/{spaceId}/containers
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Respuestas
200
POST/v1/spaces/{spaceId}/containers
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Cuerpo de la peticiónCreateContainerDto
Nombre
Tipo
Descripción
nameobligatorio
string
containerTypeIdobligatorio
string
parentContainerId
string
Omit / null for a top-level container directly under the Space.
config
object
Respuestas
201
Dependencies
DELETE/v1/dependencies/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GET/v1/items/{id}/dependencies
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/items/{id}/dependencies
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónAddItemDependencyDto
Nombre
Tipo
Descripción
targetItemIdobligatorio
string
The other item in the relation.
typeobligatorio
"blocks" | "blocked_by"
`blocks` → this item blocks the target; `blocked_by` → the target blocks it.
Respuestas
201
DeployCluster
DELETE/v1/deploy/clusterDeprovisions the active workspace's vcluster — reclaims the whole cluster. Running workloads are removed and the services marked stopped; the records survive and a redeploy re-provisions. Irreversible until the next deploy.
Respuestas
204
DeploymentLogs
GET/v1/deployments/{deploymentId}/logsLive build/deploy logs for a Deployment (Server-Sent Events).
Parámetros
Nombre
Ubicación
Tipo
Descripción
deploymentIdobligatorio
path
string
Respuestas
200
GET/v1/deployments/{deploymentId}/logs/historyThe persisted log of a finished deploy (after the live SSE channel is gone).
Nest under this block (list item, table cell); omit for top-level.
afterBlockId
string
Place after this sibling block; omit / null for the first position.
Respuestas
201
GET/v1/docs/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
PATCH/v1/docs/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateDocDto
Nombre
Tipo
Descripción
title
string
icon
string
null clears the icon.
isArchived
boolean
Respuestas
200
DELETE/v1/docs/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/docs/{id}/move
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónMoveDocDto
Nombre
Tipo
Descripción
parentDocId
string
New parent doc; omit / null for the top level under the Space.
afterDocId
string
Place after this sibling; omit / null for the first position.
Respuestas
201
GET/v1/spaces/{spaceId}/docs
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Respuestas
200
POST/v1/spaces/{spaceId}/docs
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Cuerpo de la peticiónCreateDocDto
Nombre
Tipo
Descripción
titleobligatorio
string
parentDocId
string
Omit / null for a top-level doc under the Space.
icon
string
Respuestas
201
DocUploads
POST/v1/docs/{docId}/uploads`POST /v1/docs/:docId/uploads` — raw-body upload (the global body parser skips `/v1/docs` uploads via RAW_STREAM_PREFIXES, so `req` is the unparsed stream). Filename from `x-filename`, content-type from `content-type`.
Parámetros
Nombre
Ubicación
Tipo
Descripción
docIdobligatorio
path
string
Respuestas
201
GET/v1/uploads/{splat}`GET /v1/uploads/*splat` — serves an upload by its full key (which contains slashes). 404 when the key is unknown. Content-type is derived from the key's extension; the body is streamed back inline.
Respuestas
200
DocVersions
GET/v1/docs/{id}/versions
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/docs/{id}/versions
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCaptureDocVersionDto
Respuestas
201
GET/v1/docs/{id}/versions/{versionId}/content
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
versionIdobligatorio
path
string
Respuestas
200
Fleet
POST/v1/fleet/join-grantReserves a slot + mints a single-use join grant for a new VPS.
Cuerpo de la peticiónRequestJoinGrantDto
Nombre
Tipo
Descripción
roleobligatorio
"server" | "agent"
The k3s role the new node will take.
Respuestas
201
GET/v1/fleet/nodesThe fleet's nodes + the control-plane quorum summary (one round-trip).
Respuestas
200
GET/v1/fleet/nodes/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
DELETE/v1/fleet/nodes/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/fleet/nodes/{id}/cordon
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/fleet/nodes/{id}/drain
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/fleet/nodes/provisionAuto-provisions a VPS that self-joins (ADR-017, Phase C slice 2): creates the cloud server from a saved provider credential with cloud-init that runs the fleet join one-liner on first boot. Returns metadata only — never the grant.
Cuerpo de la peticiónProvisionNodeDto
Nombre
Tipo
Descripción
providerConfigIdobligatorio
string (uuid)
The registered FleetProvider credential to create the VPS with.
Optional server name; defaults to `eqs-<shortId>` when omitted.
Respuestas
201
POST/v1/fleet/nodes/registerRedeems a join grant — the caller is the unauthenticated new node, the grant is its credential. Returns what the join script needs to wire into the cluster (stubbed 503 this slice).
Cuerpo de la peticiónRegisterNodeDto
Nombre
Tipo
Descripción
tokenobligatorio
string
The single-use join grant the node was handed at provisioning time.
wgPublicKeyobligatorio
string
The node's WireGuard public key (the private key never leaves the box).
publicIp
string
The node's public IP / wg endpoint, when it has one.
k3sNodeName
string
The k3s node name the box will register under, when known up front.
Respuestas
201
GET/v1/fleet/peersThe WireGuard mesh registry — a joined node's host-side sync agent pulls this (authenticated with its long-lived node token) and reconciles its own `wg0`. `@Public()` because the caller is a node, not a session user; the node token is the credential.
Parámetros
Nombre
Ubicación
Tipo
Descripción
authorizationobligatorio
header
string
Respuestas
200
FleetProviders
GET/v1/fleet/providersLists registered credentials (metadata only — no tokens).
Respuestas
200
POST/v1/fleet/providersRegisters a credential (verifies the token live, then encrypts it).
Cuerpo de la peticiónCreateFleetProviderDto
Nombre
Tipo
Descripción
nameobligatorio
string
The operator's label, e.g. "Hetzner prod".
providerobligatorio
"hetzner" | "digitalocean"
Which cloud this credential talks to.
tokenobligatorio
string
The provider API token (verified live, then encrypted at rest).
defaultRegion
string
Default location/region slug for created VPSs (provider-specific).
defaultServerType
string
Default server type/size slug for created VPSs (provider-specific).
Respuestas
201
DELETE/v1/fleet/providers/{id}Removes a credential (soft delete).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GithubAccount
GET/v1/accounts/github
Respuestas
200
PUT/v1/accounts/github
Cuerpo de la peticiónConnectGithubAccountDto
Nombre
Tipo
Descripción
tokenobligatorio
string
Personal access token (classic or fine-grained).
Respuestas
200
DELETE/v1/accounts/githubDisconnect every GitHub connection in the workspace.
Respuestas
204
PUT/v1/accounts/github/appConnect a BYO GitHub App by its credentials (the workspace's own App).
Cuerpo de la peticiónConnectGithubAppDto
Nombre
Tipo
Descripción
installationIdobligatorio
string
appIdobligatorio
string
clientIdobligatorio
string
clientSecret
string
privateKeyobligatorio
string
webhookSecret
string
Respuestas
200
GET/v1/accounts/github/app/configGitHub App configuration for the connect-flow UI (managed availability).
Respuestas
200
GET/v1/accounts/github/app/installation-lookup"Already installed?" — look the managed App's installation up on an org/user, so an existing installation connects without a new install round-trip (the Install button stays for other orgs).
Parámetros
Nombre
Ubicación
Tipo
Descripción
owner
query
object
Respuestas
200
POST/v1/accounts/github/app/managedFinalize a managed install (the platform App) from its installation id.
Cuerpo de la peticiónConnectGithubManagedAppDto
Nombre
Tipo
Descripción
installationIdobligatorio
string
Respuestas
201
DELETE/v1/accounts/github/connections/{id}Disconnect one connection (App installation) by its id.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GET/v1/accounts/github/repositories
Respuestas
200
GithubIssues
GET/v1/github/repos/{owner}/{repo}/issues
Parámetros
Nombre
Ubicación
Tipo
Descripción
ownerobligatorio
path
string
repoobligatorio
path
string
state
query
"open" | "closed" | "all"
open (the default), closed or all.
assignee
query
string
A login, `@me`, `none` (unassigned) or `*` (assigned to anyone).
author
query
string
A login or `@me`.
mention
query
string
A login or `@me`: the issues that mention them.
app
query
string
A GitHub App's slug: the issues it opened.
labels
query
string
Label names, separated by commas: the issue carries all of them.
milestone
query
string
A milestone's number or title, `none` or `*`.
type
query
string
An issue type's name, `none` or `*`.
search
query
string
Words to search for, in GitHub's search syntax.
limit
query
number
30 by default.
Respuestas
200
POST/v1/github/repos/{owner}/{repo}/issues
Parámetros
Nombre
Ubicación
Tipo
Descripción
ownerobligatorio
path
string
repoobligatorio
path
string
Cuerpo de la peticiónCreateGithubIssueDto
Nombre
Tipo
Descripción
titleobligatorio
string
body
string
assignees
string[]
Logins, or `@me`.
labels
string[]
milestone
string
A milestone's number or title.
type
string
An issue type's name.
parent
number
The number of the issue this one is a sub-issue of.
PATCH/v1/github/repos/{owner}/{repo}/issues/{number}/comments/lastgh issue comment --edit-last: the member's last comment, which GitHub may show as the App's (see GithubMemberComments).
Parámetros
Nombre
Ubicación
Tipo
Descripción
ownerobligatorio
path
string
repoobligatorio
path
string
numberobligatorio
path
number
Cuerpo de la peticiónEditLastGithubCommentDto
Nombre
Tipo
Descripción
bodyobligatorio
string
createIfNone
boolean
Comment instead, when the member has none to edit.
Respuestas
200
DELETE/v1/github/repos/{owner}/{repo}/issues/{number}/comments/lastgh issue comment --delete-last: answers the comment it deleted.
The destination, as `owner/name`, of the same owner.
Respuestas
200
GET/v1/github/repos/{owner}/{repo}/my-issuesgh issue status: the member's open issues, assigned, mentioning them and opened by them.
Parámetros
Nombre
Ubicación
Tipo
Descripción
ownerobligatorio
path
string
repoobligatorio
path
string
Respuestas
200
GitlabAccount
GET/v1/accounts/gitlabConnection state (login + host + connections) for the connect UI.
Respuestas
200
PUT/v1/accounts/gitlabConnect (or re-auth) a GitLab account with a PAT (+ optional host).
Cuerpo de la peticiónConnectGitlabAccountDto
Nombre
Tipo
Descripción
patobligatorio
string
GitLab personal access token (`read_api`/`read_repository` at minimum).
host
string
Self-hosted GitLab base URL (ADR-025 G1), e.g.
`https://gitlab.example.com`. Omit/empty for gitlab.com. Normalized and
fully validated (https-only, no credentials/path) by the handler —
`normalizeGitlabHost` — so the error message can be precise.
Respuestas
200
GET/v1/accounts/gitlab/repositories
Respuestas
200
Goals
GET/v1/goals/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
PATCH/v1/goals/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateGoalDto
Nombre
Tipo
Descripción
name
string
description
string
null clears the description.
status
"ON_TRACK" | "AT_RISK" | "OFF_TRACK" | "ACHIEVED"
startDate
string
endDate
string
Respuestas
200
DELETE/v1/goals/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/goals/{id}/key-results
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCreateKeyResultDto
Nombre
Tipo
Descripción
nameobligatorio
string
targetValueobligatorio
number
startValue
number
currentValue
number
unit
string
weight
number
Respuestas
201
PUT/v1/items/{id}/key-result
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSetItemKeyResultDto
Nombre
Tipo
Descripción
keyResultId
string
The key result the item contributes to; omit / null to unlink.
Respuestas
200
PATCH/v1/key-results/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateKeyResultDto
Nombre
Tipo
Descripción
name
string
currentValue
number
startValue
number
targetValue
number
unit
string
null clears the unit.
weight
number
Respuestas
200
DELETE/v1/key-results/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GET/v1/spaces/{spaceId}/goals
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Respuestas
200
POST/v1/spaces/{spaceId}/goals
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Cuerpo de la peticiónCreateGoalDto
Nombre
Tipo
Descripción
nameobligatorio
string
description
string
startDate
string
endDate
string
Respuestas
201
ItemLifecycle
POST/v1/items/{id}/close
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCloseItemDto
Nombre
Tipo
Descripción
reason
"COMPLETED" | "NOT_PLANNED" | "DUPLICATE"
Why it is closed: completed (the default), not planned or a duplicate.
duplicateOf
string
With DUPLICATE: the item it duplicates, by identifier or id.
comment
string
Left on the item before it closes, and not at all when it is closed already.
Respuestas
200
POST/v1/items/{id}/lock
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónLockItemDto
Nombre
Tipo
Descripción
reason
"OFF_TOPIC" | "RESOLVED" | "SPAM" | "TOO_HEATED"
Respuestas
200
DELETE/v1/items/{id}/lock
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/items/{id}/pin
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
DELETE/v1/items/{id}/pin
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
GET/v1/items/{id}/relationsIts parent, its sub-items, and what blocks it and what it blocks.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/items/{id}/reopen
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónReopenItemDto
Nombre
Tipo
Descripción
comment
string
Left on the item before it reopens, and not at all when it is open already.
Respuestas
200
POST/v1/items/{id}/transferMoves the item, with its sub-items, to another list, in any space.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónTransferItemDto
Nombre
Tipo
Descripción
containerIdobligatorio
string
The list it moves to, in its space or in another.
Respuestas
200
GET/v1/items/by-identifier/{identifier}
Parámetros
Nombre
Ubicación
Tipo
Descripción
identifierobligatorio
path
string
Respuestas
200
GET/v1/me/itemsWhat is the member's: assigned to them, mentioning them, opened by them, in the spaces where they may read items.
Respuestas
200
GET/v1/spaces/{spaceId}/itemsPinned items first, then the most recently updated, a page at a time.
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
state
query
"open" | "closed" | "all"
open (not in a done stage, the default), closed, or all.
assignee
query
string
`me`, a user's id or their email.
tag
query
string
A tag's label, in either case. Several, separated by commas, must all be on the item.
type
query
string
An item type's slug or name, in either case.
list
query
string
A list's id or name, in either case.
mention
query
string
`me`, a user's id or their email: a comment on the item mentions them.
q
query
string
Words the title holds, in either case.
limit
query
number
cursor
query
string
The `next` of the previous page.
Respuestas
200
Items
GET/v1/containers/{containerId}/items
Parámetros
Nombre
Ubicación
Tipo
Descripción
containerIdobligatorio
path
string
Respuestas
200
POST/v1/containers/{containerId}/items
Parámetros
Nombre
Ubicación
Tipo
Descripción
containerIdobligatorio
path
string
Cuerpo de la peticiónCreateItemDto
Nombre
Tipo
Descripción
titleobligatorio
string
itemTypeIdobligatorio
string
description
string
Plain-text description — used when no rich blocks are sent.
descriptionBlocks
object[]
Rich description as editor blocks (`SerializedBlock[]`); the plain-text
`description` is derived from it server-side.
estimate
number
Effort estimate (>= 0) + its unit — planning / sprint capacity.
estimateUnit
"DAYS" | "HOURS" | "POINTS"
parentItemId
string
Parent item (Epic▸Story▸Task); omit / null for a top-level item.
workflowStageId
string
Board column to drop the new card into; omit / null for an unplaced item.
priority
string
startDate
string
Planned start. With `dueDate` it makes the item a span on the timeline.
dueDate
string
customFields
object
Custom-field values keyed by FieldDefinition id (validated server-side).
Respuestas
201
GET/v1/item-types
Respuestas
200
POST/v1/item-types
Cuerpo de la peticiónCreateItemTypeDto
Nombre
Tipo
Descripción
nameobligatorio
string
pluralNameobligatorio
string
identifierPrefixobligatorio
string
Uppercase prefix for human ids, e.g. "TASK" → TASK-1.
Another item type of the workspace; the identifier stays (ADR-039).
description
string
null clears the description.
descriptionBlocks
object[]
Rich description blocks; null clears. Plain text is derived server-side.
estimate
number
null clears the estimate.
estimateUnit
"DAYS" | "HOURS" | "POINTS"
null clears the estimate unit.
priority
string
null clears the priority.
startDate
string
null clears the planned start (back to a milestone).
dueDate
string
null clears the due date.
Respuestas
200
DELETE/v1/items/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GET/v1/items/{id}/activity
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
PUT/v1/items/{id}/assignees
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSetItemAssigneesDto
Nombre
Tipo
Descripción
userIdsobligatorio
string[]
The complete desired assignee set (replaces the current assignees).
Respuestas
200
POST/v1/items/{id}/duplicateCopy an item and its sub-items right after the original, in the same container and column. Assignees, tags, sprint, comments and links stay behind: a duplicate is a fresh start on the same work.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónDuplicateItemDto
Nombre
Tipo
Descripción
title
string
The copy's title; defaults to the original's with " (cópia)".
Respuestas
201
PUT/v1/items/{id}/fields
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSetFieldValuesDto
Nombre
Tipo
Descripción
valuesobligatorio
object
{ [fieldDefinitionId]: value | null } — null clears that field.
Respuestas
200
POST/v1/items/{id}/move
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónMoveItemDto
Nombre
Tipo
Descripción
containerId
string
Move into another container (board/list); omit to stay put.
parentItemId
string
Re-parent in the item tree; omit / null for top-level.
afterItemId
string
Place directly after this sibling; omit / null for the first position.
Respuestas
201
Maven
GET/maven/{splat}
Respuestas
200
POST/maven/{splat}
Respuestas
200
PUT/maven/{splat}
Respuestas
200
PATCH/maven/{splat}
Respuestas
200
DELETE/maven/{splat}
Respuestas
200
Me
GET/v1/me
Respuestas
200
Npm
GET/npm/{splat}
Respuestas
200
POST/npm/{splat}
Respuestas
200
PUT/npm/{splat}
Respuestas
200
PATCH/npm/{splat}
Respuestas
200
DELETE/npm/{splat}
Respuestas
200
NuGet
GET/nuget/{splat}
Respuestas
200
POST/nuget/{splat}
Respuestas
200
PUT/nuget/{splat}
Respuestas
200
PATCH/nuget/{splat}
Respuestas
200
DELETE/nuget/{splat}
Respuestas
200
Pipelines
POST/v1/pipelines/previewWell under the global ceiling: this is unauthenticated AND the most expensive thing an anonymous caller can ask for — parse, expression evaluation, matrix expansion and needs-graph planning, all synchronous on the event loop. A handful of previews per minute covers the landing-page demo; a flood of adversarial YAML would otherwise stall the whole api.
Cuerpo de la peticiónPreviewPipelineDto
Nombre
Tipo
Descripción
yamlobligatorio
string
Raw workflow YAML to parse, validate and plan.
Respuestas
201
Previews
DELETE/v1/previews/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/previews/{id}/rebuild
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GET/v1/repositories/{repositoryId}/open-prs
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Respuestas
200
GET/v1/repositories/{repositoryId}/previews
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Respuestas
200
POST/v1/repositories/{repositoryId}/previews
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Cuerpo de la peticiónCreatePreviewManuallyDto
Nombre
Tipo
Descripción
prNumberobligatorio
number
The open pull-request number to stand a preview up for.
POST/v1/pull-requests/{id}/reviewsSubmit (or re-submit) the caller's verdict — update-or-create per reviewer.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSubmitReviewDto
Nombre
Tipo
Descripción
stateobligatorio
"approved" | "changes"
body
string
Optional summary accompanying the verdict.
Respuestas
201
GET/v1/pull-requests/{id}/threadsAll threads with comments; each carries `outdated` computed against the PR's current head (outdated threads are flagged, never hidden).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/pull-requests/{id}/threadsOpen a thread (line-anchored when `path` is present — validated against the current persisted diff — else a PR-level conversation); `body` is the first comment.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCreateReviewThreadDto
Nombre
Tipo
Descripción
path
string
Diff file path to anchor to; omit for a PR-level conversation thread.
side
"old" | "new"
Which side of the diff the line lives on (default `new`).
line
number
1-based line number on `side`, as carried by the persisted diff's hunks.
blocking
boolean
Reviewer veto: while unresolved, the PR cannot merge (F3).
bodyobligatorio
string
The thread's opening comment.
Respuestas
201
POST/v1/threads/{id}/comments
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónAddThreadCommentDto
Nombre
Tipo
Descripción
bodyobligatorio
string
Respuestas
201
POST/v1/threads/{id}/resolveResolve. A BLOCKING thread only by its creator (the veto holder); non-blocking by anyone with review permission.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
201
POST/v1/threads/{id}/unresolveReopen — anyone with review permission.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
201
PullRequests
GET/v1/pull-requests/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
GET/v1/pull-requests/{id}/checksThe PR's native CI checks for its CURRENT head (F5a, ADR-024 D7) — fed by eQuantic CI on `prMode = equantic` repos; empty when none reported.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/pull-requests/{id}/closeClose without merging (F3a) — the author, or anyone holding `pull_request.merge` (checked in-handler; the route rides read). Reopen is F7 — a close is final until then.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
201
GET/v1/pull-requests/{id}/diffThe persisted diff of the PR's current head (F1b) — `pending: true` until materialized, so the UI polls instead of handling a 404.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/pull-requests/{id}/enqueueEnqueue on the merge queue (F4a, ADR-024 D6): gated by `canMerge` with `requireUpToDate` treated as satisfied (rebase-testing against the current target IS the queue's job); any other unmet reason → 400 listing them. Entries are tested in order per (repository, targetBranch) and landed by the queue processor; the strategy is fixed at enqueue.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónEnqueuePullRequestDto
Nombre
Tipo
Descripción
strategy
"merge" | "squash" | "rebase"
Respuestas
201
DELETE/v1/pull-requests/{id}/enqueueRemove the PR's `waiting` entry from the merge queue (F4a) — the author, or anyone holding `pull_request.merge` (checked in-handler; the route rides read). A `testing` entry cannot be dequeued — its rebase-test is already running.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/pull-requests/{id}/mergeMerge (F3a): re-evaluates canMerge server-side, materializes the merge in an ephemeral workdir with OUR mechanism and pushes to the provider — never the provider's merge API (ADR-024 D3/D6). Blocked → 400 listing every unmet reason. The role gate is intentionally broad (`pull_request.merge` is granted to contributors); BRANCH PROTECTION does the real gating, per merge.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónMergePullRequestDto
Nombre
Tipo
Descripción
strategy
"merge" | "squash" | "rebase"
Respuestas
201
GET/v1/pull-requests/{id}/merge-statusThe `canMerge` verdict + inputs (F3a, ADR-024 D5) — read-only; the merge endpoint re-evaluates server-side and never trusts this view.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
GET/v1/repositories/{repositoryId}/merge-queueThe merge queue of a (repository, target branch) (F4a): live entries in queue order (1-based `position`; the testing head is 1) followed by the last 20 settled entries (`position` null) as history. `target` defaults to the repository's default branch.
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
target
query
string
Respuestas
200
PUT/v1/repositories/{repositoryId}/pr-mode
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Cuerpo de la peticiónSetPrModeDto
Nombre
Tipo
Descripción
modeobligatorio
"provider" | "equantic"
Respuestas
204
GET/v1/repositories/{repositoryId}/pull-requests
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
state
query
string
Respuestas
200
POST/v1/repositories/{repositoryId}/pull-requests
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Cuerpo de la peticiónCreatePullRequestDto
Nombre
Tipo
Descripción
titleobligatorio
string
body
string
sourceBranchobligatorio
string
Branch whose changes the PR proposes (its head sha is resolved from the forge).
targetBranchobligatorio
string
Branch the PR merges into (its head sha becomes the diff base).
Respuestas
201
Pypi
GET/pypitwine uploads POST to the bare `/pypi/` — a dedicated route because the `*splat` wildcard below doesn't match an empty remainder.
Respuestas
200
POST/pypitwine uploads POST to the bare `/pypi/` — a dedicated route because the `*splat` wildcard below doesn't match an empty remainder.
Respuestas
200
PUT/pypitwine uploads POST to the bare `/pypi/` — a dedicated route because the `*splat` wildcard below doesn't match an empty remainder.
Respuestas
200
PATCH/pypitwine uploads POST to the bare `/pypi/` — a dedicated route because the `*splat` wildcard below doesn't match an empty remainder.
Respuestas
200
DELETE/pypitwine uploads POST to the bare `/pypi/` — a dedicated route because the `*splat` wildcard below doesn't match an empty remainder.
Respuestas
200
GET/pypi/{splat}
Respuestas
200
POST/pypi/{splat}
Respuestas
200
PUT/pypi/{splat}
Respuestas
200
PATCH/pypi/{splat}
Respuestas
200
DELETE/pypi/{splat}
Respuestas
200
Registry
GET/v2`GET /v2/` — the OCI version probe (`docker login` hits this first). A dedicated route because the `*splat` wildcard below only matches a non-empty remainder, so `/v2` and `/v2/` would otherwise 404 and fail the handshake.
Respuestas
200
POST/v2`GET /v2/` — the OCI version probe (`docker login` hits this first). A dedicated route because the `*splat` wildcard below only matches a non-empty remainder, so `/v2` and `/v2/` would otherwise 404 and fail the handshake.
Respuestas
200
PUT/v2`GET /v2/` — the OCI version probe (`docker login` hits this first). A dedicated route because the `*splat` wildcard below only matches a non-empty remainder, so `/v2` and `/v2/` would otherwise 404 and fail the handshake.
Respuestas
200
PATCH/v2`GET /v2/` — the OCI version probe (`docker login` hits this first). A dedicated route because the `*splat` wildcard below only matches a non-empty remainder, so `/v2` and `/v2/` would otherwise 404 and fail the handshake.
Respuestas
200
DELETE/v2`GET /v2/` — the OCI version probe (`docker login` hits this first). A dedicated route because the `*splat` wildcard below only matches a non-empty remainder, so `/v2` and `/v2/` would otherwise 404 and fail the handshake.
Respuestas
200
GET/v2/{splat}
Respuestas
200
POST/v2/{splat}
Respuestas
200
PUT/v2/{splat}
Respuestas
200
PATCH/v2/{splat}
Respuestas
200
DELETE/v2/{splat}
Respuestas
200
RegistryToken
GET/v1/registry/tokens
Respuestas
200
POST/v1/registry/tokensCreates a token and returns the raw value ONCE (store it now).
Cuerpo de la peticiónCreateRegistryTokenDto
Nombre
Tipo
Descripción
nameobligatorio
string
expiresInDays
number
Optional expiry in days (omit = never expires).
Respuestas
201
DELETE/v1/registry/tokens/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
Repositories
GET/v1/repositories
Respuestas
200
POST/v1/repositories
Cuerpo de la peticiónConnectRepositoryDto
Nombre
Tipo
Descripción
fullNameobligatorio
string
GitHub/Bitbucket `owner/name` (e.g. `equantic/space-demo`), Azure DevOps
`org/project/repo` (e.g. `equantic/platform/api`) or GitLab
`group/subgroup/.../project` (deep subgroups) — 2–10 segments; the
`RepoFullName` VO revalidates (ADR-025 P1a/G1/B1). Segments may contain
spaces INSIDE (Azure project names, e.g. `equantic/My Project/api`) but
never at the edges — mirrors the VO's segment rule.
SCM provider — defaults to `github` for back-compat (ADR-025 P1b).
Respuestas
201
GET/v1/repositories/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
DELETE/v1/repositories/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
PATCH/v1/repositories/{id}/eqs-cli
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSetRepositoryEqsCliDto
Nombre
Tipo
Descripción
enabledobligatorio
boolean
Respuestas
204
PATCH/v1/repositories/{id}/pipelinesMaster switch for this repo's CI (pauses every pipeline in it).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSetRepositoryPipelinesDto
Nombre
Tipo
Descripción
enabledobligatorio
boolean
Respuestas
204
GET/v1/repositories/{id}/preview-config
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
PUT/v1/repositories/{id}/preview-config
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSetRepositoryPreviewConfigDto
Nombre
Tipo
Descripción
autoCreateobligatorio
boolean
"Auto-preview em PRs" — create a preview env automatically on PRs.
spaceIdobligatorio
string (uuid)
Target Space the preview environments deploy under.
baseEnvironmentId
string (uuid)
Optional base environment to clone env vars from.
Respuestas
200
PATCH/v1/repositories/pipelinesPauses or resumes many repositories' CI at once, all of them or none: one id the workspace does not have refuses the request with a 404 naming it.
Cuerpo de la peticiónSetRepositoriesPipelinesDto
Nombre
Tipo
Descripción
repositoryIdsobligatorio
string (uuid)[]
The repositories to pause or resume, all of them or none.
GET/v1/runs/{runId}/deploymentsEverywhere this run's own images are (or were) deployed.
Parámetros
Nombre
Ubicación
Tipo
Descripción
runIdobligatorio
path
string
Respuestas
200
RunnerHosts
GET/v1/runner-hostsEvery registered machine, including the ones that are not working.
Respuestas
200
POST/v1/runner-hostsRegisters a machine, or updates one already registered under that name. Leave `privateKey` out — that is the intended path: the platform mints an ed25519 pair, keeps the private half encrypted, and returns the public one for the operator to install. Supplying a key is for someone who already has a dedicated CI key.
Cuerpo de la peticiónRegisterRunnerHostDto
Nombre
Tipo
Descripción
nameobligatorio
string
Unique, and the handle the job log names — `Running on 'mac-mini-1'`.
osobligatorio
"linux" | "windows" | "macos"
addressobligatorio
string
Hostname or IP the platform opens ssh to.
userobligatorio
string
The account CI runs as. Unprivileged, please: a job is untrusted code.
port
number
arch
"amd64" | "arm64"
labels
string[]
Extra `runs-on` labels beyond the implicit OS ones (e.g. `xcode-16`).
maxConcurrency
number
Jobs this machine takes at once.
privateKey
string
An existing OpenSSH private key, when the operator insists on supplying
one. Encrypted before it reaches the repository and never returned.
Respuestas
201
DELETE/v1/runner-hosts/{id}Forgets the machine. Its authorized_keys is not touched.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/runner-hosts/{id}/checkOpens an ssh session and asks the machine what it is.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
PUT/v1/runner-hosts/{id}/idle-stopSwitches a machine this platform runs on or off (ADR-036). Only a machine whose power it owns: everything else belongs to whoever runs it.
`draining` before a reboot, `offline` to retire, `online` to take work.
Respuestas
200
Runners
GET/v1/runners/capacity-policyThe CI capacity policy and what it currently buys. Super-admin: this decides how much of the machine the runner may take, which is an install-level decision rather than a workspace one.
Respuestas
200
PUT/v1/runners/capacity-policySaves the policy. Takes effect on the next budget refresh (≤30 s).
Cuerpo de la peticiónCiPolicyDto
Nombre
Tipo
Descripción
targetCpuPerJob
number
Cores a job is sized around; sets how MANY jobs a node offers.
minJobCpu
number
Floor below which a slot is not worth offering.
minJobMemoryGi
number
platformReserveRatio
number
Share of each node kept for the platform itself.
minAdmissibleMemoryGi
number
Below this share, a node offers no slots and jobs wait. 0 = off.
maxConcurrentJobs
number
Hard cap on concurrent jobs. 0 = no cap.
pinnedJobCpu
string
Fixed per-job CPU; applies on its own, without the memory pin.
pinnedJobMemory
string
Fixed per-job memory, with its unit; applies on its own.
growJobMemory
boolean
Whether a running job's memory may be raised in place as it approaches
its ceiling (ADR-035). Null clears it back to the default, which is on.
maxJobMemoryGi
number
Never grow one job past this. 0 = only the node's free room bounds it.
queuedCeilingMinutes
number
How long a run may sit queued before the watchdog gives up on it, in
minutes. 0 = never. A week is the ceiling on the ceiling: past that the
commit it was triggered for is ancient, and a run nobody has missed in a
week is not one a longer wait would have saved.
runningCeilingMinutes
number
How long a run may be in progress. 0 = no ceiling.
jobCeilingMinutes
number
How long ONE job may run when its own executor stopped counting, for a
job that declares no `timeout-minutes` of its own. 0 = no ceiling.
minJobDiskGi
number
The disk a job slot is counted at, workspace and Docker together
(ADR-038). GitHub documents 14 GB for its runner; under 1 a job cannot
hold a checkout.
pinnedJobDisk
string
Fixed per-job disk, with its unit; applies on its own.
Respuestas
200
POST/v1/runners/capacity-policy/previewWhat a candidate policy WOULD yield on today's cluster, without saving it. The editor needs this because the knobs are not independently meaningful: a 25% reserve and a 4-core target together might mean "no jobs at all", and finding that out by saving and waiting for a run to queue is a cruel way to learn it. Same derivation as the live budget, same node facts, different knobs.
Cuerpo de la peticiónCiPolicyDto
Nombre
Tipo
Descripción
targetCpuPerJob
number
Cores a job is sized around; sets how MANY jobs a node offers.
minJobCpu
number
Floor below which a slot is not worth offering.
minJobMemoryGi
number
platformReserveRatio
number
Share of each node kept for the platform itself.
minAdmissibleMemoryGi
number
Below this share, a node offers no slots and jobs wait. 0 = off.
maxConcurrentJobs
number
Hard cap on concurrent jobs. 0 = no cap.
pinnedJobCpu
string
Fixed per-job CPU; applies on its own, without the memory pin.
pinnedJobMemory
string
Fixed per-job memory, with its unit; applies on its own.
growJobMemory
boolean
Whether a running job's memory may be raised in place as it approaches
its ceiling (ADR-035). Null clears it back to the default, which is on.
maxJobMemoryGi
number
Never grow one job past this. 0 = only the node's free room bounds it.
queuedCeilingMinutes
number
How long a run may sit queued before the watchdog gives up on it, in
minutes. 0 = never. A week is the ceiling on the ceiling: past that the
commit it was triggered for is ancient, and a run nobody has missed in a
week is not one a longer wait would have saved.
runningCeilingMinutes
number
How long a run may be in progress. 0 = no ceiling.
jobCeilingMinutes
number
How long ONE job may run when its own executor stopped counting, for a
job that declares no `timeout-minutes` of its own. 0 = no ceiling.
minJobDiskGi
number
The disk a job slot is counted at, workspace and Docker together
(ADR-038). GitHub documents 14 GB for its runner; under 1 a job cannot
hold a checkout.
pinnedJobDisk
string
Fixed per-job disk, with its unit; applies on its own.
GET/v1/runsA page of the workspace's runs (ci-run-list), newest first unless `order` is `oldest`, narrowed to one repository, to the status a run shows and to one run number. Numbers count per repository, so `runNumber` alone lists each repository's run with that number, which is how the CLI tells a number one repository has from one several share.
GET/v1/runs/{id}/jobs/{jobRunId}/logs/streamLive job logs over SSE: replays the whole persisted backlog after `afterSeq`, every page of it (the first read also enforces ownership → 404), then tails new lines as the runner produces them, completing when the job finishes. A finished run replays once and completes immediately. Subscribed before the replay so no line is lost in the gap; deduped by the monotonic `seq`.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
jobRunIdobligatorio
path
string
last-event-idobligatorio
header
string
afterSeq
query
number
Respuestas
200
POST/v1/runs/{id}/jobs/{jobRunId}/review
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
jobRunIdobligatorio
path
string
Cuerpo de la peticiónReviewDeploymentDto
Nombre
Tipo
Descripción
decisionobligatorio
"approve" | "reject"
Respuestas
200
POST/v1/runs/{id}/rerun
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónRerunRunDto
Nombre
Tipo
Descripción
modeobligatorio
"all" | "failed"
Respuestas
200
POST/v1/runs/dispatch
Cuerpo de la peticiónDispatchWorkflowDto
Nombre
Tipo
Descripción
repositoryIdobligatorio
string (uuid)
workflowPathobligatorio
string
Path of the workflow file inside the repo.
ref
string
Branch, tag or sha to run on; defaults to the repository default branch.
The custom domain to attach, e.g. `app.mycompany.com`.
Respuestas
201
DELETE/v1/services/{serviceId}/domains/{domainId}
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
domainIdobligatorio
path
string
Respuestas
204
POST/v1/services/{serviceId}/domains/{domainId}/verifyRe-checks the DNS-TXT challenge; `{ verified }` reflects the new state.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
domainIdobligatorio
path
string
Respuestas
201
PUT/v1/services/{serviceId}/domains/{domainId}/wwwTurns the `www.` alias of one domain on or off — idempotent, so it is also how the mode is changed. On a domain, not on the service: a service can hold several custom domains and each decides for itself.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
domainIdobligatorio
path
string
Cuerpo de la peticiónSetWwwAliasDto
Nombre
Tipo
Descripción
enabledobligatorio
boolean
mode
"serve" | "redirect"
Respuestas
200
PUT/v1/services/{serviceId}/domains/addressChooses the name of the service's address under the platform's domain (ADR-040), `<name>.<deploy domain>`. The generated address keeps answering and redirects to it. Answers the service's domains. Declared before the `:domainId` routes: Express matches in order, and `address` would otherwise be read as a domain's id.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
Cuerpo de la peticiónChooseAddressDto
Nombre
Tipo
Descripción
nameobligatorio
string
The name of the service's address under the platform's domain, as in
`cura-accounts` for `cura-accounts.apps.equantic.space`. Its rules
(ADR-040) are checked by the service, which answers with the one it breaks.
Respuestas
200
DELETE/v1/services/{serviceId}/domains/addressClears the chosen name: the generated address is the service's again.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
Respuestas
204
ServiceEnvVars
GET/v1/services/{serviceId}/env
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
Respuestas
200
PUT/v1/services/{serviceId}/env
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
Cuerpo de la peticiónSetEnvVarDto
Nombre
Tipo
Descripción
keyobligatorio
string
valueobligatorio
string
secret
boolean
Encrypt at rest + space via a k8s Secret (default false).
Respuestas
204
DELETE/v1/services/{serviceId}/env/{key}
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
keyobligatorio
path
string
Respuestas
204
POST/v1/services/{serviceId}/env/applyRe-renders the manifest + env Secret with the current variables. Async.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
Respuestas
202
GET/v1/services/{serviceId}/env/pendingWhether variables are waiting for a rollout. Server-side state on purpose: the reader can leave the tab, reload, or come back tomorrow and the pending apply is still there — and it clears itself when ANY rollout picks the variables up, not only one started from this screen.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
Respuestas
200
ServiceExec
POST/v1/services/{id}/exec
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónExecServiceDto
Nombre
Tipo
Descripción
commandobligatorio
string[]
The command as argv. Never parsed or split by the platform — element 0 is the program, the rest are its arguments. For shell semantics, ask for a shell explicitly.
instance
string
A specific instance (pod) to run in. Defaults to the freshest Running one. An instance that is not this service's is refused, never redirected.
timeoutMs
number
Killed after this many milliseconds (default 60000, max 300000). A timeout answers with exit code 124.
stdin
string
Written to the command's stdin and closed. This is how a script or a SQL file is piped in — it is NOT written to any log, unlike the command itself.
Respuestas
201
ServiceMetrics
GET/v1/services/{serviceId}/metricsLive CPU/mem usage for the service's pods (read-only; safe to poll).
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
Respuestas
200
GET/v1/services/{serviceId}/metrics/historyCPU/mem time series for the service (read-only). `hours` 1–168, default 24.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
hours
query
string
Respuestas
200
ServiceMq
GET/v1/services/{serviceId}/mq/queuesWhat is on the broker. Streams on NATS; refused on AMQP, which cannot.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
Respuestas
200
POST/v1/services/{serviceId}/mq/queues/{target}/consumeTake messages off. They do not come back.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
targetobligatorio
path
string
Cuerpo de la peticiónBrokerOperationDto
Nombre
Tipo
Descripción
payload
string
The message body, for publish. Sent as bytes and never written to the audit log.
limit
number
Messages to read before truncating (default 100, max 10000).
timeoutMs
number
Operation timeout in milliseconds (default 15000, max 120000).
Respuestas
200
POST/v1/services/{serviceId}/mq/queues/{target}/peekLook without taking — as far as the broker allows; the result says.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
targetobligatorio
path
string
Cuerpo de la peticiónBrokerOperationDto
Nombre
Tipo
Descripción
payload
string
The message body, for publish. Sent as bytes and never written to the audit log.
limit
number
Messages to read before truncating (default 100, max 10000).
timeoutMs
number
Operation timeout in milliseconds (default 15000, max 120000).
Respuestas
200
POST/v1/services/{serviceId}/mq/queues/{target}/publishPut one on.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
targetobligatorio
path
string
Cuerpo de la peticiónBrokerOperationDto
Nombre
Tipo
Descripción
payload
string
The message body, for publish. Sent as bytes and never written to the audit log.
limit
number
Messages to read before truncating (default 100, max 10000).
timeoutMs
number
Operation timeout in milliseconds (default 15000, max 120000).
Respuestas
200
POST/v1/services/{serviceId}/mq/queues/{target}/purgeDiscard everything on it. `data.ddl`, not `data.write`. Not a schema change, so on the word alone it does not belong there. But `data.ddl` exists in this ADR because "editing a row and dropping a table are not the same risk", and emptying a production queue is the second kind.
Parámetros
Nombre
Ubicación
Tipo
Descripción
serviceIdobligatorio
path
string
targetobligatorio
path
string
Cuerpo de la peticiónBrokerOperationDto
Nombre
Tipo
Descripción
payload
string
The message body, for publish. Sent as bytes and never written to the audit log.
limit
number
Messages to read before truncating (default 100, max 10000).
timeoutMs
number
Operation timeout in milliseconds (default 15000, max 120000).
Respuestas
200
ServiceRuntimeLogs
GET/v1/services/{id}/instancesThe service's pods — the instance picker for the console + runtime logs.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
GET/v1/services/{id}/logs/runtimeLive runtime logs (`?instance=all` or a pod name) as Server-Sent Events.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
instance
query
object
Respuestas
200
Services
GET/v1/services/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
PATCH/v1/services/{id}Updates the service's runtime config, then re-rolls it.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateServiceDto
Nombre
Tipo
Descripción
name
string
image
string
New image ref (image-source services only).
branch
string
dockerfilePath
string
port
number
internal
boolean
publicAllowedCidrs
string[]
CIDRs allowed to reach the public TCP port; empty = any source (ADR-013 F2).
Validated here rather than trusted: a typo'd CIDR would be rejected by the
cluster mid-rollout, and the safest place to catch it is before any of this
reaches the engine.
minInstances
number
0 = scale-to-zero.
maxInstances
number
cpuRequest
string
memRequest
string
cpuLimit
string
memLimit
string
healthPath
string
Readiness path; blank clears it, back to the plain TCP probe.
args
string[]
Container args (replaces the image's CMD). An empty array clears them.
Respuestas
200
DELETE/v1/services/{id}Deletes the service + all its vcluster resources (irreversible).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GET/v1/services/{id}/connectionConnection details for a marketplace service (host/port/credentials), for the Connect dialog. Gated on `env.read` rather than `service.read`: the response carries the service's real password, so it is exactly as sensitive as revealing an env secret.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
GET/v1/services/{id}/deploymentsThe service's deploy history (newest first).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
GET/v1/services/{id}/provenanceWhere what this service is running came from: the version, the run that pushed it and the repository behind it (ADR-033).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/services/{id}/redeployRe-rolls the service (rebuilds repo sources). Accepted; runs async.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
202
POST/v1/services/{id}/restartRestarts the service's pods in place (no rebuild). Accepted; runs async.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
202
POST/v1/services/{id}/rollbackRolls back to a prior deployment's image (redeploy, no rebuild).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónRollbackServiceDto
Nombre
Tipo
Descripción
deploymentIdobligatorio
string
The prior deployment to roll back to (its image is redeployed).
Respuestas
202
POST/v1/services/{id}/startStarts a stopped service (scale back to its floor).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/services/{id}/stopStops the service (scale to 0, KEDA paused).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
SpaceEnvVars
GET/v1/spaces/{spaceId}/env
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Respuestas
200
PUT/v1/spaces/{spaceId}/env
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Cuerpo de la peticiónSetEnvVarDto
Nombre
Tipo
Descripción
keyobligatorio
string
valueobligatorio
string
secret
boolean
Encrypt at rest + space via a k8s Secret (default false).
Respuestas
204
DELETE/v1/spaces/{spaceId}/env/{key}
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
keyobligatorio
path
string
Respuestas
204
Spaces
GET/v1/spaces
Respuestas
200
POST/v1/spaces
Cuerpo de la peticiónCreateSpaceDto
Nombre
Tipo
Descripción
nameobligatorio
string
description
string
color
string
Respuestas
201
GET/v1/spaces/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
PATCH/v1/spaces/{id}Renames the space (display name only; the slug stays stable).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateSpaceDto
Nombre
Tipo
Descripción
nameobligatorio
string
Respuestas
200
DELETE/v1/spaces/{id}Deletes the space + all its services' vcluster resources (irreversible).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/spaces/{id}/moveMoves the space in the workspace's list, the order every member sees: first when `afterSpaceId` is null, otherwise right after that space.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónMoveSpaceDto
Nombre
Tipo
Descripción
afterSpaceId
string
Place the space directly after this one; omit or null to put it first.
Both must belong to the active workspace.
Respuestas
200
SpaceServices
GET/v1/spaces/{id}/services
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
200
POST/v1/spaces/{id}/services
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónCreateServiceDto
Nombre
Tipo
Descripción
nameobligatorio
string
sourceobligatorio
"image" | "repo" | "dockerfile" | "compose"
environmentId
string (uuid)
Target environment; defaults to the space's default (production).
Per-instance resource overrides. Omitted/blank leaves the service on the
engine default, which is what most services want — the wizard only sends
these when the operator opens Avançado and types a value.
memRequest
string
cpuLimit
string
memLimit
string
healthPath
string
Readiness path. Set → the probe becomes an HTTP GET against it; omitted →
the port just has to accept a TCP connection, which is all a portless or
non-HTTP workload can promise.
args
string[]
Container args (replaces the image's CMD). A catalog service inherits the
entry's args; passing them here overrides that for this one service.
internal
boolean
Internal (no public domain) — ClusterIP only. Databases are internal.
Persistent volume size in GiB (required when stateful).
dataPath
string
Container path the volume mounts at (required when stateful).
catalogServiceId
string (uuid)
Create from a catalog entry (one-click) — resolves image/port/stateful/etc.
version
string
Catalog image version (defaults to the catalog's newest).
fieldValues
object
Catalog field values (key → value) → env vars + the PVC size.
Respuestas
201
Sprints
PUT/v1/items/{id}/sprint
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSetItemSprintDto
Nombre
Tipo
Descripción
sprintId
string
The target sprint; omit / null to remove the item from its sprint.
Respuestas
200
GET/v1/spaces/{spaceId}/sprints
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Respuestas
200
POST/v1/spaces/{spaceId}/sprints
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Cuerpo de la peticiónCreateSprintDto
Nombre
Tipo
Descripción
nameobligatorio
string
goal
string
startDate
string
endDate
string
capacity
number
Respuestas
201
PATCH/v1/sprints/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateSprintDto
Nombre
Tipo
Descripción
name
string
goal
string
null clears the goal.
startDate
string
endDate
string
capacity
number
Respuestas
200
DELETE/v1/sprints/{id}
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
POST/v1/sprints/{id}/transition
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónTransitionSprintDto
Nombre
Tipo
Descripción
actionobligatorio
"start" | "complete"
'start' (PLANNED → ACTIVE) or 'complete' (→ COMPLETED).
Respuestas
201
System
POST/v1/admin/system/licenseReplaces the platform licence with a new serial — the badge's action (ADR-018 amendment). Verified before it is stored, so a wrong serial cannot cost a working licence. Accepts a SERIAL only: a public key supplied here would let anyone verify a licence they signed themselves.
Cuerpo de la peticiónApplyLicenseDto
Nombre
Tipo
Descripción
licenseKeyobligatorio
string
Respuestas
201
GET/v1/admin/system/update
Respuestas
200
POST/v1/admin/system/update/applyTriggers an update to the given tag (or the latest). Idempotent while running.
Cuerpo de la peticiónApplyUpdateDto
Nombre
Tipo
Descripción
version
string
Target release tag (e.g. "v2026.06.19-142530"). Omit to update to the latest
GitHub release. Constrained to a safe tag shape — it is interpolated into a
release download URL and a Job manifest.
Respuestas
201
GET/v1/admin/system/update/status
Respuestas
200
GET/v1/admin/system/update/streamLive progress of the running update (Server-Sent Events).
Respuestas
200
GET/v1/admin/system/version
Respuestas
200
Tags
PUT/v1/items/{id}/tags
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónSetItemTagsDto
Nombre
Tipo
Descripción
tagIdsobligatorio
string[]
The complete desired tag set (replaces the current tags).
Respuestas
200
GET/v1/spaces/{spaceId}/tags
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Respuestas
200
POST/v1/spaces/{spaceId}/tags
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Cuerpo de la peticiónCreateTagDto
Nombre
Tipo
Descripción
labelobligatorio
string
colorobligatorio
string
Respuestas
201
Templates
GET/v1/space-templates
Respuestas
200
POST/v1/spaces/{spaceId}/apply-templateMaterializes the template's whole structure into the Space.
Parámetros
Nombre
Ubicación
Tipo
Descripción
spaceIdobligatorio
path
string
Cuerpo de la peticiónApplyTemplateDto
Nombre
Tipo
Descripción
templateKeyobligatorio
string
The template key from the catalog (e.g. "scrum", "kanban", "bug-tracker").
Respuestas
204
Webhooks
POST/v1/webhooks/{provider}
Parámetros
Nombre
Ubicación
Tipo
Descripción
providerobligatorio
path
string
Respuestas
202
Wiki
GET/v1/repositories/{repositoryId}/wikiWiki availability + pages (markdown), read from the `.wiki` git repo.
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Respuestas
200
Workflows
GET/v1/repositories/{repositoryId}/workflows
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Respuestas
200
PATCH/v1/repositories/{repositoryId}/workflows/{workflowFileId}/enabledEnables/disables ONE pipeline. Applies to the next event; runs already in flight finish (see SetWorkflowEnabledHandler).
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
workflowFileIdobligatorio
path
string
Cuerpo de la peticiónSetWorkflowEnabledDto
Nombre
Tipo
Descripción
enabledobligatorio
boolean
Respuestas
204
GET/v1/repositories/{repositoryId}/workflows/action-metadataAction metadata (inputs) for the step assistant — any `owner/repo@ref`.
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
usesobligatorio
query
string
Respuestas
200
GET/v1/repositories/{repositoryId}/workflows/contentRaw YAML of a workflow file (fetched from the provider on demand).
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
pathobligatorio
query
string
Respuestas
200
PUT/v1/repositories/{repositoryId}/workflows/contentCommits edited YAML back to a workflow file (needs Contents: write).
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Cuerpo de la peticiónSaveWorkflowContentDto
Nombre
Tipo
Descripción
pathobligatorio
string
Workflow path, e.g. `.github/workflows/ci.yml`.
contentobligatorio
string
message
string
Commit message (defaults to "Update <path> via eQuantic Space").
branch
string
Target branch (defaults to the repo's default branch).
Respuestas
200
POST/v1/repositories/{repositoryId}/workflows/syncRe-reads `.github/workflows` from the provider and refreshes the interpreted rows. Manual counterpart to the automatic sync on connect/push — lets users pick up workflows added after the repo was connected. Provider errors are surfaced (not swallowed) so an empty refresh is explainable.
Parámetros
Nombre
Ubicación
Tipo
Descripción
repositoryIdobligatorio
path
string
Respuestas
200
Workspace
GET/v1/workspacesThe user's workspaces, with the active one flagged.
Respuestas
200
POST/v1/workspacesCreate a workspace (under the user's tenant) and make it active.
Cuerpo de la peticiónCreateWorkspaceDto
Nombre
Tipo
Descripción
nameobligatorio
string
slug
string
Desired slug; derived from the name when omitted.
type
string
Onboarding hints persisted in `workspace.metadata`.
size
string
features
string[]
invites
string
Comma/space/newline-separated emails to invite (pending invitations).
inviteRole
string
Respuestas
201
PATCH/v1/workspaces/{id}Update a workspace's name and/or enabled features (owner/admin).
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Cuerpo de la peticiónUpdateWorkspaceDto
Nombre
Tipo
Descripción
name
string
features
string[]
Respuestas
200
POST/v1/workspaces/{id}/activateSwitch the active workspace for the current session.
Parámetros
Nombre
Ubicación
Tipo
Descripción
idobligatorio
path
string
Respuestas
204
GET/v1/workspaces/check-slugSlug-availability check for the wizard.