go-process/specs/api/RFC.md
Snider bcbd9ac87d docs(api): enumerate all 15 RegisterRoutes routes in spec
CodeRabbit finding: RegisterRoutes docstring only listed 4 daemon
routes, omitting 10 process-management routes and 1 pipeline route.
Updated to enumerate all routes verbatim from the implementation.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-07 09:08:31 +01:00

29 lines
1.9 KiB
Markdown

# api
**Import:** `dappco.re/go/core/process/pkg/api`
**Files:** 2
## Types
### `ProcessProvider`
`struct`
Service provider that wraps the go-process daemon registry and bundled UI entrypoint.
Exported fields:
- None.
## Functions
### Package Functions
- `func NewProvider(registry *process.Registry, service *process.Service, hub *ws.Hub) *ProcessProvider`: Returns a `ProcessProvider` for the supplied registry, optional process service, and WebSocket hub. When `registry` is `nil`, it uses `process.DefaultRegistry()`. When `service` is non-`nil`, provider-runner features are enabled.
- `func PIDAlive(pid int) bool`: Returns `false` for non-positive PIDs and otherwise reports whether `os.FindProcess(pid)` followed by signal `0` succeeds.
### `ProcessProvider` Methods
- `func (p *ProcessProvider) Name() string`: Returns `"process"`.
- `func (p *ProcessProvider) BasePath() string`: Returns `"/api/process"`.
- `func (p *ProcessProvider) Element() provider.ElementSpec`: Returns an element spec with tag `core-process-panel` and source `/assets/core-process.js`.
- `func (p *ProcessProvider) Channels() []string`: Returns `process.daemon.started`, `process.daemon.stopped`, `process.daemon.health`, `process.started`, `process.output`, `process.exited`, and `process.killed`.
- `func (p *ProcessProvider) RegisterRoutes(rg *gin.RouterGroup)`: Registers daemon management routes (`GET /daemons`, `GET /daemons/:code/:daemon`, `POST /daemons/:code/:daemon/stop`, `GET /daemons/:code/:daemon/health`), process management routes (`GET /processes`, `POST /processes`, `POST /processes/run`, `GET /processes/:id`, `GET /processes/:id/output`, `POST /processes/:id/wait`, `POST /processes/:id/input`, `POST /processes/:id/close-stdin`, `POST /processes/:id/kill`, `POST /processes/:id/signal`), and pipeline routes (`POST /pipelines/run`).
- `func (p *ProcessProvider) Describe() []api.RouteDescription`: Returns static route descriptions for the registered daemon routes.