Skip to content
SHC Docs

HTTP route reference

Generated file — do not edit by hand. Regenerate from the repo root with CGO_ENABLED=0 go run scripts/gen-routes-md.go.

One row per (method, path) each module’s router registers — walked from the same chi trees the daemon flattens onto its listeners, so a route appears here iff a router registers it. Paths under /internal/ are cluster-peer RPC served only on the mTLS internal listener (default :4003); the shared public mux (TCP + UDS) drops them, except /internal/ws/forward, which mounts behind a transport gate that 404s any non-UDS caller — the public TCP listener serves no /internal/ surface at all. Method WS marks WebSocket upgrades (registered against chi as GET; the upgrade happens inside the handler).

The Permission column is the scope a route’s RequirePermissions gate enforces, probed straight off each router’s live middleware chain — so it cannot drift from the wiring. marks a route left open to any authenticated caller (the local CLI over the UDS resolves as the synthetic admin). Multiple scopes carry OR semantics: any one grants access.

Request semantics per endpoint live in the hand-maintained per-module pages in this directory; response models in the generated response model reference; error codes in the error code reference.

Total: 346 routes across 46 modules.

Source: modules/app/ · Notes: app.md
Count: 28

MethodPathPermission
GET/api/health
GET/api/method/shc.app.detail
GET/api/method/shc.integration.list
GET/api/method/shc.plug.list
GET/api/method/shc.preset.search
GET/api/method/shc.socket.list
POST/api/method/shc.stack.install
POST/api/method/shc.stack.lease_clear
POST/api/method/shc.stack.lease_renew
GET/api/method/shc.stack.lease_show
POST/api/method/shc.stack.protect
GET/api/method/shc.stack.protect_show
POST/api/method/shc.stack.scale
GET/api/method/shc.stack.services
GET/api/method/shc.stack.status
POST/api/method/shc.stack.uninstall
POST/api/method/shc.stack.unprotect
POST/api/method/shc.stack.update
POST/api/method/shc.system.complete
POST/api/method/shc.system.keycloak_reset_admin_password
POST/api/method/shc.system.plan
GET/api/resource/App
GET/api/resource/App/{name}
GET/api/resource/Stack
DELETE/api/resource/Stack/{name}
GET/api/resource/Stack/{name}
GET/api/status
POST/api/telemetry

Source: modules/audit/ · Notes: audit.md
Count: 3

MethodPathPermission
GET/api/method/shc.audit.verifyplatform:manage
GET/api/resource/Auditaudit:read
GET/api/resource/Audit/{audit_id}audit:read

Source: modules/auth/
Count: 6

MethodPathPermission
GET/api/auth/ca
GET/api/auth/forward-auth
GET/api/auth/oidc/discovery
GET/api/auth/oidc/realm
GET/api/auth/oidc/realm-for-host
POST/api/auth/service-clientplatform:manage

Source: modules/backup/ · Notes: backup.md
Count: 38

MethodPathPermission
POST/api/method/shc.backup.create
POST/api/method/shc.backup.create_async
POST/api/method/shc.backup.detect_snapshotplatform:manage
GET/api/method/shc.backup.export/{backup_id}
POST/api/method/shc.backup.group
GET/api/method/shc.backup.group_manifest/{consistency_id}
POST/api/method/shc.backup.import
POST/api/method/shc.backup.mountplatform:manage
GET/api/method/shc.backup.mountsplatform:manage
POST/api/method/shc.backup.recover
POST/api/method/shc.backup.recover_async
POST/api/method/shc.backup.restore
POST/api/method/shc.backup.restore_async
POST/api/method/shc.backup.restore_from_file
POST/api/method/shc.backup.restore_from_file_async
POST/api/method/shc.backup.restore_group/{consistency_id}
POST/api/method/shc.backup.schedule.get
GET/api/method/shc.backup.schedule.list
POST/api/method/shc.backup.schedule.list
POST/api/method/shc.backup.schedule.set
POST/api/method/shc.backup.schedule.unset
POST/api/method/shc.backup.sync
POST/api/method/shc.backup.umountplatform:manage
POST/api/method/shc.backup.ungroup/{group_id}
POST/api/method/shc.backup.verify/{backup_id}
GET/api/method/shc.operation.state/{operation_id}
GET/api/method/shc.operation.stream/{operation_id}
POST/api/method/shc.pod.mountplatform:manage
POST/api/method/shc.stack.rollback
POST/api/method/shc.stack.rollback.list
POST/api/method/shc.volume.mountplatform:manage
GET/api/method/shc.volume.mountsplatform:manage
POST/api/method/shc.volume.umountplatform:manage
GET/api/resource/Backup
DELETE/api/resource/Backup/{backup_id}
GET/api/resource/Backup/{backup_id}
GET/api/resource/Backup/{backup_id}/manifest
GET/internal/backup/export/{backup_id}

Source: modules/backup/mount/
Count: 19

MethodPathPermission
POST/api/method/shc.mount.create
GET/api/method/shc.mount.list
POST/api/method/shc.mount.ping/{session_id}
GET/api/method/shc.mount.subscribe/{session_id}
DELETE/api/method/shc.mount.{session_id}
GET/api/method/shc.mount.{session_id}/changes
POST/api/method/shc.mount.{session_id}/chmod
POST/api/method/shc.mount.{session_id}/commit
POST/api/method/shc.mount.{session_id}/create
POST/api/method/shc.mount.{session_id}/discard
POST/api/method/shc.mount.{session_id}/mkdir
GET/api/method/shc.mount.{session_id}/read
GET/api/method/shc.mount.{session_id}/readdir
POST/api/method/shc.mount.{session_id}/rename
DELETE/api/method/shc.mount.{session_id}/rmdir
GET/api/method/shc.mount.{session_id}/stat
POST/api/method/shc.mount.{session_id}/symlink
DELETE/api/method/shc.mount.{session_id}/unlink
PUT/api/method/shc.mount.{session_id}/write

Source: modules/ca/
Count: 6

MethodPathPermission
POST/api/method/shc.ca.import
POST/api/method/shc.ca.provision
POST/api/method/shc.ca.reprovision
GET/api/method/shc.ca.root_cert
GET/api/method/shc.ca.show
GET/api/method/shc.cert.list

Source: modules/capabilities/
Count: 1

MethodPathPermission
GET/api/capabilities

Source: modules/clone/ · Notes: clone.md
Count: 3

MethodPathPermission
POST/api/method/shc.stack.clone
POST/api/method/shc.stack.move
POST/api/method/shc.stack.move_single

Source: modules/cluster/ · Notes: cluster.md
Count: 29

MethodPathPermission
GET/api/method/shc.cluster.certs.list
POST/api/method/shc.cluster.certs.rotateplatform:manage
POST/api/method/shc.cluster.certs.rotate_nowplatform:manage
POST/api/method/shc.cluster.drainplatform:manage
GET/api/method/shc.cluster.fabric.status
POST/api/method/shc.cluster.force_leaderplatform:manage
POST/api/method/shc.cluster.forgetplatform:manage
POST/api/method/shc.cluster.leaveplatform:manage
POST/api/method/shc.cluster.lighthouse.addplatform:manage
GET/api/method/shc.cluster.lighthouse.ls
DELETE/api/method/shc.cluster.lighthouse.rmplatform:manage
GET/api/method/shc.cluster.logs
GET/api/method/shc.cluster.mesh.diagnose
POST/api/method/shc.cluster.mesh.disableplatform:manage
POST/api/method/shc.cluster.mesh.enableplatform:manage
GET/api/method/shc.cluster.mesh.status
GET/api/method/shc.cluster.nodes
GET/api/method/shc.cluster.ping
POST/api/method/shc.cluster.repairplatform:manage
DELETE/api/method/shc.cluster.rmplatform:manage
GET/api/method/shc.cluster.status
POST/api/method/shc.cluster.tokenplatform:manage
GET/api/method/shc.node.ls
GET/api/method/shc.node.status
POST/api/method/shc.node.updateplatform:manage
GET/internal/certs/info
POST/internal/certs/renew
POST/internal/certs/rotate
POST/internal/enroll

Source: modules/config/ · Notes: config.md
Count: 4

MethodPathPermission
POST/api/method/shc.config.get
POST/api/method/shc.config.list
POST/api/method/shc.config.setplatform:manage
POST/api/method/shc.config.unsetplatform:manage

Source: modules/connections/
Count: 6

MethodPathPermission
POST/api/method/shc.provider.connect
POST/api/method/shc.provider.grant
GET/api/method/shc.provider.grants
GET/api/method/shc.provider.list
POST/api/method/shc.provider.revoke_grant
POST/api/method/shc.provider.rm

Source: modules/cron/
Count: 1

MethodPathPermission
GET/api/method/shc.cron.list

Source: modules/dns/
Count: 6

MethodPathPermission
POST/api/dns/reapplatform:manage
DELETE/api/dns/recordplatform:manage
GET/api/dns/record
POST/api/dns/recordplatform:manage
GET/api/dns/records
GET/api/dns/validate

Source: modules/docker/
Count: 13

MethodPathPermission
POST/internal/containers/{container_id}/fs/create
POST/internal/containers/{container_id}/fs/mkdir
DELETE/internal/containers/{container_id}/fs/path
GET/internal/containers/{container_id}/fs/read
GET/internal/containers/{container_id}/fs/readdir
POST/internal/containers/{container_id}/fs/rename
POST/internal/containers/{container_id}/fs/setattr
GET/internal/containers/{container_id}/fs/stat
POST/internal/containers/{container_id}/fs/symlink
POST/internal/containers/{container_id}/fs/truncate
POST/internal/containers/{container_id}/fs/write
GET/internal/containers/{container_id}/inspect
POST/internal/containers/{container_id}/restart

Source: modules/doctor/
Count: 2

MethodPathPermission
GET/api/doctor/diagnoses
POST/api/doctor/run

Source: modules/events/ · Notes: events.md
Count: 3

MethodPathPermission
GET/api/method/shc.events.errors.streamevents:read
GET/api/method/shc.events.streamevents:read
POST/internal/events

Source: modules/export/ · Notes: export.md
Count: 3

MethodPathPermission
POST/api/method/shc.export.export
POST/api/method/shc.export.import
POST/api/method/shc.export.list

Source: modules/forward/
Count: 2

MethodPathPermission
GET/forward-auth
HEAD/forward-auth

Source: modules/health/ · Notes: health.md
Count: 3

MethodPathPermission
GET/api/method/shc.status.get
POST/api/method/shc.status.get
GET/internal/health

Source: modules/internal_rpc/
Count: 1

MethodPathPermission
POST/internal/rpc/{function_name}

Source: modules/internal_stacks/
Count: 5

MethodPathPermission
POST/internal/stacks/{deployment_id}/deploy
POST/internal/stacks/{deployment_id}/exec
POST/internal/stacks/{deployment_id}/logs
POST/internal/stacks/{deployment_id}/ps
POST/internal/stacks/{deployment_id}/stop

Source: modules/job/ · Notes: job.md
Count: 7

MethodPathPermission
POST/api/method/shc.job.cancel
GET/api/method/shc.job.get
GET/api/method/shc.job.list
POST/api/method/shc.job.run
GET/api/resource/Job/{job_name}
GET/api/resource/JobRun
GET/api/resource/JobRun/{name}

Source: modules/leader/
Count: 2

MethodPathPermission
GET/api/method/shc.leader.health
GET/api/method/shc.leader.status

Source: modules/license/
Count: 7

MethodPathPermission
GET/.well-known/shc-license-challenge
POST/api/method/shc.license.activate
POST/api/method/shc.license.activate_online
POST/api/method/shc.license.delink
POST/api/method/shc.license.refresh
GET/api/method/shc.license.status
POST/api/method/shc.license.trial

Source: modules/logs/ · Notes: logs.md
Count: 6

MethodPathPermission
GET/api/method/shc.logs.getstack:read
GET/api/method/shc.stack.logs.streamstack:read
GET/internal/containers/{container_id}/logs
WS/internal/containers/{container_id}/logs/ws
WS/internal/stacks/{deployment_id}/logs/ws
WS/internal/ws/logs

Source: modules/mcp/
Count: 4

MethodPathPermission
DELETE/api/mcp
GET/api/mcp
POST/api/mcp
GET/api/method/shc.mcp.gate

Source: modules/metrics/
Count: 2

MethodPathPermission
GET/internal/_metrics_introspect
GET/internal/_node_stats

Source: modules/nebula/
Count: 10

MethodPathPermission
POST/api/method/shc.nebula.rotate_nowplatform:manage
GET/api/method/shc.nebula.status
POST/internal/mesh/diagnose
POST/internal/mesh/install
GET/internal/mesh/status
POST/internal/mesh/uninstall
POST/internal/nebula/reload
POST/internal/nebula/rotate
GET/internal/nebula/status
POST/internal/nebula/update-lighthouses

Source: modules/network/
Count: 5

MethodPathPermission
POST/api/method/shc.network.ensure_tenant
GET/api/method/shc.network.nic
GET/api/method/shc.network.swarm_status
GET/api/resource/HostMapping/{deployment_id}
GET/api/resource/PortMapping/{deployment_id}

Source: modules/node/ · Notes: node.md
Count: 7

MethodPathPermission
GET/api/method/shc.node.deployments
POST/api/method/shc.node.health
GET/api/method/shc.node.swarm_tokensplatform:manage
GET/api/resource/Node
GET/api/resource/Node/{name}
POST/internal/node/leave
POST/internal/unenroll

Source: modules/notification/
Count: 1

MethodPathPermission
POST/api/method/shc.notification.test

Source: modules/portforward/
Count: 1

MethodPathPermission
WS/internal/ws/forward

Source: modules/quota/ · Notes: quota.md
Count: 6

MethodPathPermission
GET/api/method/shc.quota.limits
POST/api/method/shc.quota.scan_disk
GET/api/method/shc.quota.status
GET/api/method/shc.quota.usage
GET/api/resource/Usage
GET/api/resource/Usage/{usage_id}

Source: modules/repo/ · Notes: repo.md
Count: 8

MethodPathPermission
POST/api/method/shc.repo.synctenant:manage
POST/api/method/shc.repo.sync_alltenant:manage
GET/api/resource/Repo
POST/api/resource/Repotenant:manage
DELETE/api/resource/Repo/{name}tenant:manage
GET/api/resource/Repo/{name}
PATCH/api/resource/Repo/{name}tenant:manage
GET/api/resource/Repo/{name}/rejected

Source: modules/retention/
Count: 5

MethodPathPermission
POST/api/method/shc.backup.retention.apply
GET/api/method/shc.backup.retention.get
POST/api/method/shc.backup.retention.preview
POST/api/method/shc.backup.retention.reset
POST/api/method/shc.backup.retention.set

Source: modules/schedule/ · Notes: schedule.md
Count: 8

MethodPathPermission
POST/api/method/shc.schedule.create
POST/api/method/shc.schedule.disable
POST/api/method/shc.schedule.enable
GET/api/method/shc.schedule.info
GET/api/method/shc.schedule.list
POST/api/method/shc.schedule.list
POST/api/method/shc.schedule.remove
POST/api/method/shc.schedule.sync

Source: modules/search/ · Notes: search.md
Count: 1

MethodPathPermission
GET/api/method/shc.search

Source: modules/shell/
Count: 4

MethodPathPermission
WS/api/method/shc.container.exec
WS/internal/containers/{container_id}/exec
POST/internal/containers/{container_id}/exec-one-shot
WS/internal/ws/exec

Source: modules/stack/ · Notes: stack.md
Count: 9

MethodPathPermission
POST/api/method/shc.container.restart
GET/api/method/shc.stack.config
GET/api/method/shc.stack.dry_run
POST/api/method/shc.stack.exec
GET/api/method/shc.stack.inspect
GET/api/method/shc.stack.logs
POST/api/method/shc.stack.restart
POST/api/method/shc.stack.start
POST/api/method/shc.stack.stop

Source: modules/storage/ · Notes: storage.md
Count: 34

MethodPathPermission
POST/api/method/shc.storage.addplatform:manage
POST/api/method/shc.storage.cephfs.disableplatform:manage
POST/api/method/shc.storage.cephfs.enableplatform:manage
GET/api/method/shc.storage.cephfs.health
POST/api/method/shc.storage.cephfs.health
POST/api/method/shc.storage.cephfs.joinplatform:manage
POST/api/method/shc.storage.cephfs.leaveplatform:manage
GET/api/method/shc.storage.cephfs.status
POST/api/method/shc.storage.cephfs.status
POST/api/method/shc.storage.get
POST/api/method/shc.storage.linkplatform:manage
GET/api/method/shc.storage.logs.stream
GET/api/method/shc.storage.ls
POST/api/method/shc.storage.ls
POST/api/method/shc.storage.nfs.disableplatform:manage
POST/api/method/shc.storage.nfs.enableplatform:manage
POST/api/method/shc.storage.nfs.joinplatform:manage
POST/api/method/shc.storage.nfs.leaveplatform:manage
GET/api/method/shc.storage.nfs.status
POST/api/method/shc.storage.nfs.status
POST/api/method/shc.storage.rmplatform:manage
POST/api/method/shc.storage.unlinkplatform:manage
GET/api/method/shc.storage.volume.ls
POST/api/method/shc.storage.volume.ls
POST/api/method/shc.storage.volume.rebindplatform:manage
POST/api/method/shc.storage.volume.rmplatform:manage
POST/internal/storage/cephfs/disable
POST/internal/storage/cephfs/enable-client
POST/internal/storage/nfs/disable
POST/internal/storage/nfs/enable-client
POST/internal/storage/nfs/enable-server
GET/internal/storage/nfs/status
POST/internal/storage/volume/mount
POST/internal/storage/volume/unmount

Count: 1

MethodPathPermission
GET/api/method/shc.support.bundle

Source: modules/sysroutes/
Count: 2

MethodPathPermission
WS/api/method/shc.hud.stream
POST/internal/fs/ensure-dirs

Source: modules/task/ · Notes: task.md
Count: 4

MethodPathPermission
POST/api/method/shc.task.cancelplatform:manage
GET/api/resource/Task
GET/api/resource/Task/{id}platform:manage
GET/api/resource/Worker

Source: modules/tenant/ · Notes: tenant.md
Count: 4

MethodPathPermission
GET/api/resource/Tenant
POST/api/resource/Tenantplatform:manage
DELETE/api/resource/Tenant/{name}platform:manage
GET/api/resource/Tenant/{name}

Source: modules/user/
Count: 8

MethodPathPermission
GET/api/user/apps
POST/api/user/create
POST/api/user/delete
POST/api/user/grant
GET/api/user/list
GET/api/user/managed-apps
POST/api/user/reset-password
POST/api/user/revoke

Source: modules/vault/ · Notes: vault.md
Count: 18

MethodPathPermission
GET/api/method/shc.vault.exists
POST/api/method/shc.vault.export
POST/api/method/shc.vault.import
POST/api/method/shc.vault.migrate
POST/api/method/shc.vault.rotate
GET/api/method/shc.vault.status
POST/api/method/shc.vault.unlock
GET/api/resource/Secret
POST/api/resource/Secret
DELETE/api/resource/Secret/*
GET/api/resource/Secret/*
PUT/api/resource/Secret/*
DELETE/api/resource/Secret/{key:path}
GET/api/resource/Secret/{key:path}
PUT/api/resource/Secret/{key:path}
POST/internal/vault/rekey
POST/internal/vault/request-unlock
POST/internal/vault/unlock