Compare commits
4 changed files with 5 additions and 5 deletions
|
|
@ -7,7 +7,7 @@ Configured via `services.hyperhive.network.*`.
|
|||
|
||||
> Isolation is the only mode — there is no shared-netns fallback. The
|
||||
> former `services.hyperhive.network.isolateContainers` and
|
||||
> `services.hyperhive.network.upstreamDns` options no longer exist; a
|
||||
> `services.hyperhive.network.upstreamDns` options were removed; a
|
||||
> config that still sets one fails eval with a removal message.
|
||||
|
||||
## Network map
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ nspawn containers can't create user-namespaces, so the module sets `nix.settings
|
|||
|
||||
A malicious `default.nix` or build script in a PR can therefore:
|
||||
|
||||
- **Make arbitrary network requests** to any address reachable from the container. The container runs in its own netns behind the hive bridge, so it reaches the forge only through the gateway (`http://<forge.domain>`, public/read endpoints — no admin credentials) and **can't** reach host-loopback services: the unauthenticated core dashboard at `127.0.0.1:7000` and the raw forge port are off-limits (a firewall rule drops bridge→127.0.0.0/8 traffic).
|
||||
- **Make arbitrary network requests** to any address reachable from the container. The container runs in its own netns behind the hive bridge, so it reaches the forge only through the gateway (`http://<forge.domain>`, public/read endpoints — no admin credentials) and **can't** reach host-loopback services: the unauthenticated core dashboard at `127.0.0.1:7000` and the raw forge port are off-limits (bridge→127.0.0.0/8 is dropped).
|
||||
- **Write to the container filesystem**, including corrupting the runner's state dir or `.runner` credentials.
|
||||
|
||||
The core admin token (`forge-core-token`) **isn't** bind-mounted into the container. it's held and used only by hive-c0re on the host (`forge/ci_runner.rs`), which mints per-runner registration tokens; only that registration token reaches the container's env-file. A build process can still reach forge over the network, but can't use the admin token to issue privileged API calls.
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ audit.
|
|||
### `edit_schedule(id, body?, description?, interval_seconds?, next_fire_at_unix?, targets_add?, targets_remove?)`
|
||||
|
||||
Partial-update a schedule. Pass only the fields to change; absent
|
||||
fields stay untouched. `targets_add` / `targets_remove` mutate the
|
||||
fields are left alone. `targets_add` / `targets_remove` mutate the
|
||||
recipient list in the same transaction — re-adding a previously
|
||||
cancelled target drops its tombstone and starts fresh.
|
||||
`interval_seconds` accepts positive values only via this tool (omit
|
||||
|
|
@ -43,7 +43,7 @@ rows (terminal state).
|
|||
|
||||
Cancel a schedule. Omit `targets` / pass empty to cancel the whole
|
||||
schedule; pass a list to cancel just those recipients (the schedule
|
||||
autocancels once every target is gone).
|
||||
autocancels when every target is removed).
|
||||
|
||||
### `fire_schedule_now(id)`
|
||||
|
||||
|
|
|
|||
|
|
@ -247,7 +247,7 @@ needs to `chown` a bind mount), once at startup:
|
|||
`services.hyperhive.c0re.operatorPronouns`, default `she/her`).
|
||||
When `services.hyperhive.agent.docs.enable` is set, `HIVE_DOCS_DIR` is present
|
||||
in the environment and `render()` appends a one-sentence pointer
|
||||
telling the agent where the docs live.
|
||||
telling the agent the docs are mounted at that path.
|
||||
Passed via `--system-prompt-file`.
|
||||
|
||||
**Marker grammar.** `<!-- role:X -->` opens a block; any
|
||||
|
|
|
|||
Loading…
Reference in a new issue