derive per-agent egress entries from operator-linked accounts
This commit is contained in:
parent
7eb9db47d6
commit
9193f37963
1 changed files with 852 additions and 38 deletions
|
|
@ -349,9 +349,9 @@ host. It never decrypts TLS, so it holds no signing key. It caches nothing.
|
|||
you add the entry, and `hive-c0re` checks each name again and skips one that
|
||||
fails, or that the base list or the canary covers, or that another entry of
|
||||
the same list covers. A name that resolves to a private address stays a 403.
|
||||
The controller also adds entries itself, and only from the operator's save
|
||||
of an agent's API-key environment in the swarm UI: it takes the host from
|
||||
`ANTHROPIC_BASE_URL` and from every variable named `*_BASE_URL` (the
|
||||
The controller also adds entries itself, and only from the operator's own
|
||||
actions in the swarm UI. Saving an agent's API-key environment makes it take
|
||||
the host from `ANTHROPIC_BASE_URL` and from every variable named `*_BASE_URL` (the
|
||||
address an ACP agent that loads the same file reads), and keeps one
|
||||
`derived` entry for that agent per host. Each host passes the same check as
|
||||
an operator's entry, so an IP address, `localhost` and a base-list name get
|
||||
|
|
@ -366,6 +366,19 @@ host. It never decrypts TLS, so it holds no signing key. It caches nothing.
|
|||
`acp.opencode.provider.baseUrl`, get no derived entry, so add one in the
|
||||
swarm UI. A `hive-c0re` that predates the field renders a derived entry
|
||||
like any other.
|
||||
Linking a GitHub token, an external matrix account or an external forge
|
||||
account adds a derived entry for that agent per host it reaches, and
|
||||
deleting the account removes it: `github.com` and `api.github.com` for
|
||||
GitHub, and the host of the matrix account's `homeserver` or the forge
|
||||
account's `url`. Each entry's `source` (`link:github`,
|
||||
`link:matrix:<account>`, `link:forge:<label>`) keeps it apart from the
|
||||
environment's, which a save of the environment leaves alone; an entry
|
||||
without a `source` counts as the environment's. Only the controller writes
|
||||
these leaves, so when it starts it also adds the entries of accounts linked
|
||||
before this existed and drops those whose account no longer exists, and logs
|
||||
the counts (`link egress: entries match the linked accounts`). A store it
|
||||
can't read changes nothing. An `agent.nix` `matrixAccounts` homeserver gets
|
||||
no entry, since the controller never reads it; add one in the swarm UI.
|
||||
The swarm's list adds to the hive's `allowedDomains`: `allowedFile` holds
|
||||
those names plus the swarm-wide entries, so removing an entry never removes a
|
||||
name the hive lists itself. Until the controller has a list (it predates the
|
||||
|
|
|
|||
Loading…
Reference in a new issue