mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 18:31:52 +00:00
147 lines
1.9 KiB
Markdown
147 lines
1.9 KiB
Markdown
# Container RPC Server Specification
|
|
|
|
The container runtime exposes a JSON-RPC server over a Unix socket at `/media/startos/rpc/service.sock`.
|
|
|
|
## Methods
|
|
|
|
### init
|
|
|
|
Initialize the runtime and system.
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
id: string,
|
|
kind: "install" | "update" | "restore" | null,
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`null`
|
|
|
|
### exit
|
|
|
|
Shutdown runtime and optionally run exit hooks for a target version.
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
id: string,
|
|
target: string | null, // ExtendedVersion or VersionRange
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`null`
|
|
|
|
### start
|
|
|
|
Run main method if not already running.
|
|
|
|
#### params
|
|
|
|
None
|
|
|
|
#### response
|
|
|
|
`null`
|
|
|
|
### stop
|
|
|
|
Stop main method by sending SIGTERM to child processes, and SIGKILL after timeout.
|
|
|
|
#### params
|
|
|
|
None
|
|
|
|
#### response
|
|
|
|
`null`
|
|
|
|
### execute
|
|
|
|
Run a specific package procedure.
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
id: string, // event ID
|
|
procedure: string, // JSON path (e.g., "/backup/create", "/actions/{name}/run")
|
|
input: any,
|
|
timeout: number | null,
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`any`
|
|
|
|
### sandbox
|
|
|
|
Run a specific package procedure in sandbox mode. Same interface as `execute`.
|
|
|
|
UNIMPLEMENTED: this feature is planned but does not exist
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
id: string,
|
|
procedure: string,
|
|
input: any,
|
|
timeout: number | null,
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`any`
|
|
|
|
### callback
|
|
|
|
Handle a callback from an effect.
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
id: number,
|
|
args: any[],
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`null` (no response sent)
|
|
|
|
### eval
|
|
|
|
Evaluate a script in the runtime context. Used for debugging.
|
|
|
|
#### params
|
|
|
|
```ts
|
|
{
|
|
script: string,
|
|
}
|
|
```
|
|
|
|
#### response
|
|
|
|
`any`
|
|
|
|
## Procedures
|
|
|
|
The `execute` and `sandbox` methods route to procedures based on the `procedure` path:
|
|
|
|
| Procedure | Description |
|
|
| -------------------------- | ---------------------------- |
|
|
| `/backup/create` | Create a backup |
|
|
| `/actions/{name}/getInput` | Get input spec for an action |
|
|
| `/actions/{name}/run` | Run an action with input |
|