Scope and approval
The interim experience replaces Hive’s origin error with a bilingual English and Vietnamese maintenance response. Every path, API call and WebSocket handshake returns HTTP 503 withRetry-After: 300, Cache-Control: no-store and noindex.
There are no external assets, scripts, upstream requests, bindings or jobs.
It does not restore the research application or promise a restoration time.
This describes the Worker source. Existing zone-wide edge features can append
Cloudflare challenge-platform script/iframe code and a speculation-rules
header to the public response. Record these as edge-injected, zone-wide and
CSP-blocked; the Worker’s default-src 'none' stays intact. Do not change shared
zone settings or silently edit an approved module to remove those additions.
The edge also rewrites the Worker’s Referrer-Policy: no-referrer to
same-origin and adds X-Frame-Options: SAMEORIGIN; record the effective headers
separately from source headers. The Worker’s CSP frame-ancestors 'none'
remains intact and is stricter than that framing header.
Source: apps/hive/maintenance/worker.mjs. The upload metadata is beside it.
Tests cover all paths/methods, HEAD, WebSocket rejection, unreflected input and
zero upstream/binding/background work.
Interim completed. The approved Worker, subdomain disablement, hostname route
and proxied discard DNS record are live. The release owner completed step 5 by
removing Hive’s tunnel ingress; the main hostname rule and catch-all remain.
The calls below are retained for reproducibility and rollback review, not replay.
For future changes, the integration owner relays the user’s approval of the exact
Worker source, DNS body, route pattern and tunnel diff, and names the token file
before execution. Normal commits and PR pushes do not grant infrastructure
write authority. Keep Finance’s hostname, DNS, Workers, routes, rules and
credentials outside this operation. Never connect to the former origin host.
Take the shared tunnel configuration write window from its current owner.
Routing and DNS
The original Hive record was an orange-clouded CNAME to the shared tunnel; the approved operation replaced it with proxied AAAA100::. A
proxied DNS record already satisfies the Worker route prerequisite: no DNS
change is necessary to invoke hive.tuturuuu.com/* once that route exists.
The Worker returns its own response and never calls the tunnel origin.
See Cloudflare routing requirements.
After verifying the route, replace only Hive’s CNAME with a proxied AAAA record
to 100:: (the discard prefix). Keep the same record ID, name, TTL and proxy
state. This detaches DNS from the tunnel and prevents origin fallback from
reaching an on-premise service. A missing/failed Worker will produce an edge
error, not the maintenance page. Removing the DNS record or turning proxying off
would prevent normal Worker route invocation. A later native application may use
a Worker Custom Domain; changing routing models is outside this interim patch.
Private preparation
Run from the reviewed checkout. The owner supplies the actual account, zone, tunnel and DNS record IDs from fresh GET results; never infer account identity from a token’s filename. All paths below are private absolute paths. Use a fresh mode-700 evidence directory andumask 077. Do not enable shell tracing.
success: true. Check the exact hostname, no competing/more-specific
Hive routes, DNS ID/type/target/proxy, and tunnel ID/source/version. Require that
the proposed new script name is unused (GET /accounts/{account}/workers/scripts);
an existing script requires a separate version/rollback review, never overwrite it.
Keep the baseline private. Do not print unrelated routes or credentials.
Generate the two full configuration PUT bodies from the GET response:
prepare-tunnel.mjs is a public resource identifier, not a
credential; retaining it provides an explicit identity fence. It is intentionally
unchanged. Version 18 is the original baseline, not the current post-removal
version or a permanent version assumption.
Any drift requires a refreshed diff and renewed approval. The helper checks the
tunnel, source, version, main hostname/port, Hive hostname/port and catch-all.
It removes exactly one Hive rule and retains every surviving rule’s JSON bytes
(including property order), global options and order. API response whitespace is
normalized once for both bodies; no surviving rule value is rewritten.
The only approved ingress change is:
"warp-routing": {"enabled": false} and every other configuration
field. The full PUT body contains config, not the GET envelope or version.
The API has no documented atomic version precondition here. Re-read immediately
before PUT, compare with the approved baseline, serialize through the tunnel
owner, and stop on any change. A GET/version check alone cannot prevent a race.
Approved execution, one operation at a time
The following calls are a reviewable draft, not an instruction to execute before approval. Keep every response file, check both HTTP success and JSONsuccess,
and record deployed version/route IDs. No automatic retries on writes.
An unknown result requires GET reconciliation under the same operation identity.
- Upload the reviewed module to a new script with no routes or triggers. Upload API:
- Add only the exact hostname route. This pattern covers HTTP and HTTPS. Route API:
- Replace Hive DNS only. Preserve any freshly observed comment and tags in the
reviewed body. The investigated record has
comment: null,tags: [].
100::/proxied and verify the maintenance page again.
- In the shared tunnel owner’s write window, GET and compare the entire config and version with the reviewed baseline, then PUT the exact approved body. Tunnel API: