Skip to documentation
OrbitMeshDocs
Browse documentation
Docs/Engineering Specs

ENGINEERING SPECS

Traffic MVP Acceptance Checklist

This checklist validates the current Traffic MVP end to end.
View source

This checklist validates the current Traffic MVP end to end.

1. Control Plane

  • /healthz returns the expected API version and commit.
  • /api/v1/runtime-catalog returns runtime category, capabilities, supported roles, lifecycle, and binding support.
  • /api/v1/runtime-install-profiles returns the install profiles required by active runtime bindings.
  • /api/v1/subscription-target-catalog returns target metadata, parameter schemas, and profile presets.

2. Node And Runtime

  • A traffic entry node is online.
  • A traffic exit node is online.
  • Each node has an Edge Runtime summary with current heartbeat time.
  • Required runtime bindings show install, apply, service, and runtime status.
  • sing-box version and runtime path are reported when the runtime is installed.

3. Endpoint, DNS, And TLS

  • Traffic entry nodes have at least one endpoint.
  • Endpoint status is ready.
  • Domain status is active.
  • DNS status is synced.
  • DNS record name and target are visible in Console.
  • Certificate status is issued.
  • TLS binding status is ready.
  • Certificate expiry is visible.
  • DNS/TLS Console page shows zero blocking errors for the endpoint.

4. Subscription

  • Console can create a subscription against one or more ready traffic entry endpoints.
  • Default subscription target comes from the target catalog.
  • Subscription links are generated from catalog profile presets, not frontend hard-coding.
  • Generated links include profile parameters such as version, template, and node_name_strategy where applicable.
  • Rotation invalidates old subscription URL and protocol credentials.
  • Revoke removes subscription credentials from generated runtime configuration.
  • Deleted revoked subscriptions no longer appear in the active subscription list.

5. Client Traffic

  • A client can import at least one generated subscription link.
  • Traffic reaches a selected Traffic Entry endpoint.
  • Traffic policy can select the intended Traffic Exit node.
  • A known route, such as GitHub traffic, exits through the expected node.
  • Client access still works after runtime reload.

6. Usage And Quota

  • Edge Runtime reports traffic usage samples.
  • Console shows tenant, user, subscription, and node usage.
  • Usage overview clearly labels the 30-day client access rollup.
  • Usage table can filter by scope, concrete target, and direction.
  • Usage rows show attribution status.
  • Usage summary shows user, subscription, and node attribution coverage.
  • Subscription details show current usage and applicable quota policies.
  • A tenant, user, subscription, or node quota policy can be created, edited, disabled, re-enabled, and deleted after disabled.
  • Creating a quota policy from a usage row pre-fills the selected scope.
  • Opening an existing usage scope enforcement focuses the adjustment panel and history.
  • Quota events and enforcement rows show whether the policy only alerts or removes runtime credentials.
  • Quota exceeded state removes affected credentials from runtime configuration.
  • Quota reset or adjustment restores credentials after usage returns below the limit.
  • Raw upload/download samples remain unchanged after reset or adjustment; only billable total changes.

7. Smoke Result

Record each run with:

  • API version and commit.
  • Console commit if available.
  • traffic entry node.
  • traffic exit node.
  • subscription id.
  • endpoint id.
  • runtime binding ids.
  • tested client format.
  • result.
  • known residual issues.

2026-07-07 Production Smoke

Result: partially passed with follow-up items.

Environment:

  • API: orbitmesh-api 0.1.121, commit 30b775a, build time 2026-07-06T11:28:10Z.
  • API deployment: ghcr.io/orbitmesh-official/orbitmesh-api:0.1.121, 1/1 pod running in namespace orbitmesh.
  • Console: https://console.orbitmesh.dev is reachable from Cloudflare Pages. Expected Console commit is ea93aae from main; the static HTML does not expose the commit before client-side login renders.
  • Tenant: 7c7b1763-7236-4e6c-be03-90af08a7aceb (OrbitMesh Test).

Verified:

  • /healthz returns status=ok, version 0.1.121, commit 30b775a.
  • Runtime catalog returns sing-box as stable and binding-supported; easytier, tailscale, and traefik remain planned and binding-disabled.
  • Runtime install profiles return sing-box 1.13.13 and easytier 2.6.4.
  • Capability role catalog exposes Traffic Entry, Traffic Relay, and Traffic Exit as stable sing-box roles.
  • Three production nodes are online:
    • b21d8af4-b38b-469b-9f90-175566cc7334 / hermes-agent-dbfix-1781782871 / traffic.exit.
    • d3be5dad-2d01-4d81-a09c-8d493df25c57 / tencent-hk-ingress-20260621000355 / traffic.entry.
    • 20dc08b7-1ccc-411d-96f5-f4d4b815a8f9 / edge-runtime-1 / traffic.entry.
  • All node Edge Runtimes report v0.1.68 and recent heartbeats.
  • All sing-box runtime bindings report binding_status=enabled, install_state=installed, apply_status=running, service_status=active, runtime version 1.13.13, and runtime path /usr/local/bin/sing-box.
  • Traffic Entry endpoints are ready:
    • 9263a41c-c53e-4ae9-9622-9ab59c52a177, domain d3be5dad-2d01-4d81-a09c-8d493df25c57.traffic-entry.edge.orbitmesh.dev, DNS synced, certificate issued, TLS binding ready, certificate expires 2026-09-21T08:43:38Z.
    • 4c97fa1d-75f8-4ef9-b7e3-5f2edc60c4c1, domain 20dc08b7-1ccc-411d-96f5-f4d4b815a8f9.traffic-entry.edge.orbitmesh.dev, DNS synced, certificate issued, TLS binding ready, certificate expires 2026-09-21T08:44:43Z.
  • Health summary reports 9 latest checks: 9 healthy, 0 degraded, 0 unavailable, 0 unknown.
  • Existing subscriptions include two active multi-endpoint subscriptions:
    • b92be508-5574-4859-9df4-fe7db1d041ca / clash-verge with both Traffic Entry endpoints.
    • 206a6c59-1012-4a10-ba12-c48097fed90e / test with both Traffic Entry endpoints.
  • Public subscription rendering works for om_sub_SPi07uYoBLrWV_bKlD4FBccXsPIIBhfrTdXffaF8HQ8:
    • clash?node_name_strategy=region&template=standard returns Clash YAML with generated Trojan proxy and standard groups.
    • shadowrocket?node_name_strategy=region&template=standard returns a full Shadowrocket configuration profile with [Proxy Group] and [Rule].
    • shadowrocket without template returns Trojan node subscription output and includes Subscription-Userinfo, X-Orbitmesh-Quota-*, and format headers.
  • Protocol catalog exposes Trojan with sing-box support.
  • Target catalog exposes Clash, Shadowrocket, sing-box, Surge, and Trojan URI render targets with JSON Schema-backed parameters.
  • Traffic policy 2e24ad0a-a1ad-4c9e-bd1b-47312f602a21 is active for subscription ec0b922f-cc33-4902-8edd-3e1cd7c2480c; it matches ping0.cc and selects hermes-agent as Traffic Exit.
  • Tencent Entry desired state is DESIRED_STATE_STATUS_APPLIED, version 90, and its compiled traffic policy plan resolves the hermes-agent mesh endpoint 100.74.113.86:18082 with route status healthy and route latency about 38 ms.
  • A temporary sing-box client on hermes-agent successfully connected through the Traffic Entry subscription and fetched https://ping0.cc/ip through the proxy.
  • Traffic metering catalog exposes client_access, exit_egress, relay_transit, mesh_transit, and runtime_local.
  • Traffic usage API returns the 30-day tenant client_access rollup: upload 287282952, download 535170216, total 822453168.
  • Quota policies and enforcements are readable. Existing subscription quota policies are active and public subscription responses expose quota headers.

Not fully verified:

  • A non-exit external client test could not be completed because SSH access to aws-test and tencent-hk failed for yeabow. The hermes-agent client test proves proxy connectivity but is not a clean external-client exit-IP proof because hermes-agent is also the selected Traffic Exit.
  • Quota block and restoration propagation were not destructively re-tested in this run. Existing enforcement history shows one policy exceeded and later restored, but no current-period exceed/reset scenario was executed.
  • DNS/TLS state is healthy, but a domain change was not performed in this run, so automatic reissue/reconcile after endpoint mutation remains untested.
  • Edge Runtime update flow was not executed in this run.

Observed issues:

  • Local DNS resolution for api.orbitmesh.dev failed intermittently during the smoke run. Production API remained reachable through Kubernetes service and ingress IP plus Host: api.orbitmesh.dev.
  • Direct local access to the Kubernetes ClusterIP and ingress node IPs was intermittent from the workstation. Cluster-internal service calls were stable.
  • GET /api/v1/health-checks?page.page_size=3 responded successfully but took about 6.6 seconds in one run. The summary endpoint was usable.
  • Quota enforcement list currently shows June 2026 periods (2026-06-01T00:00:00Z to 2026-07-01T00:00:00Z) while public subscription quota headers expose the current monthly expiry (2026-08-01T00:00:00Z). This should be aligned so Console's effective quota state and public subscription enforcement use the same current-period source of truth.
OrbitMesh DocumentationContent follows the repository's main branch.