deploy(hololake): open bounded public update route

This commit is contained in:
冰朔 2026-08-17 00:57:09 +08:00
commit e8e918392c
7 changed files with 64 additions and 19 deletions

View file

@ -11,20 +11,20 @@ receipt form one exact evidence chain. Invalid evidence locks the whole release
endpoint until an operator fixes the evidence and explicitly restarts the
service.
The service listens only on `127.0.0.1`. Public HTTPS routing, updater trust-key
provisioning, artifact upload, activation, and desktop rollout are independent
deployment gates.
The service listens only on `127.0.0.1`. The public HTTPS path is carried by a
dedicated, port-forwarding-only identity from JD-FD-PRIMARY to BS-GZ-006 and
currently returns the origin's empty fail-closed `204` response. Artifact
upload, activation, and desktop rollout remain independent deployment gates.
The registered public namespace is `/hololake/releases`. The loopback origin
accepts the manifest at both its operator health-check path `/latest.json` and
the public updater path `/hololake/releases/latest.json`; release package URLs
must remain under that same public prefix. The front-door proxy must therefore
preserve the full request URI. Its loopback tunnel port remains deliberately
unassigned until the BS-GZ-006 route owner returns the live, non-conflicting
topology.
preserve the full request URI. The registered BS-GZ-006 loopback tunnel port is
`19440`; it is not a public listener.
Once that port is returned and independently verified, `render-front-door.mjs
--loopback-port PORT` renders the bounded Nginx location. It refuses an omitted
`render-front-door.mjs --loopback-port PORT` renders the bounded Nginx
location. It refuses an omitted
port, preserves the full public request path by leaving `proxy_pass` without a
URI suffix, accepts only GET and HEAD, forwards no request body, and strips
authorization, cookies, and client forwarding headers. Rendering is not

View file

@ -1,13 +1,13 @@
{
"schema": "hololake.release-public-route/v1",
"state": "REGISTERED_PENDING_FRONT_DOOR_DEPLOYMENT",
"state": "DEPLOYED_EMPTY_FAIL_CLOSED",
"publicBaseUrl": "https://guanghulab.com/hololake/releases",
"releaseEndpoint": "https://guanghulab.com/hololake/releases/latest.json",
"publicPathPrefix": "/hololake/releases",
"originNode": "JD-FD-PRIMARY",
"originListener": "127.0.0.1:3940",
"frontDoorNode": "BS-GZ-006",
"frontDoorLoopbackPort": null,
"frontDoorLoopbackPort": 19440,
"proxyRequestUriPolicy": "PRESERVE_FULL_PUBLIC_PATH",
"allowedMethods": ["GET", "HEAD"],
"requestBodyAllowed": false,
@ -15,5 +15,5 @@
"packageCachePolicy": "PUBLIC_IMMUTABLE",
"automaticUpload": false,
"automaticActivation": false,
"deployed": false
"deployed": true
}