- Shipped
- September 23, 2026 at 4:05 AM UTC
- Author
- Kamo
- Commit
- b2fef64
/api/hosted-computers/agent/** -> ComputeService. A Hosted Computer's network policy denies the cluster entirely — no database, no service, not even cluster DNS — so the only way for a tenant's virtual machine to tell Kamo anything is out to the internet and back through api.<domain> like any other client. Everything else about a computer is pushed in to it; this is the single inbound path. THE NARROWNESS IS THE POINT. Its siblings under /api/hosted-computers/ are the internal management API: assigning a computer, resizing one, deleting one, reading another tenant's capacity. This gateway's SecurityConfig is entirely commented out, so a forwarded path is public and the upstream service owns the auth — a wildcard here would publish a VM-creation API to the internet. That is the same mistake /api/bulktext/inbound/** exists to avoid, and the reason the agent surface was made a child of /agent rather than a sibling of the management routes. forward rather than forwardWebhook: unlike a carrier webhook there is no third-party signature over the raw bytes, and the credential is an ordinary Authorization: Bearer header — a per-computer secret rotated on every wake, which ComputeService checks against that one computer. The endpoint is write-only telemetry whose response carries nothing about the organization, so a credential lifted from a tenant's own desktop buys the ability to post that desktop's storage figure and nothing else.
