Share a development endpoint safely
The Compose quickstart is a single-developer proof. It uses a known credential and fake workers, so publishing it through a tunnel, port forward, or shared host is unsafe. A teammate can use one stable InferCrane endpoint only after you create a separate customer-owned control-plane environment with TLS, network policy, tenant-scoped credentials, and a real upstream that the team already operates. This runbook creates no cloud or GPU resource. It connects an existing OpenAI-compatible upstream. That upstream still has its own compute and cost boundary. If no approved upstream exists, stop after the local quickstart; a real model response cannot be produced without model compute.1. Record the boundary before starting
Choose and record:
Do not proceed if the TLS identity, network owner, upstream owner, or data boundary is unknown.
2. Start a production-mode control plane
Copy.env.production.example to a private path. Set a unique 32-character-or-longer bootstrap key,
the PostgreSQL URL, public control URL, and mounted TLS certificate paths. Keep the file out of Git.
Render before starting so missing variables fail without creating provider resources:
3. Connect the existing upstream without taking traffic
Configure the administrator CLI locally, then connect the exact existing upstream:observe-only: InferCrane does not mutate, scale, update, delete, or receive
application traffic for the upstream. Substitute --type sglang or --type litellm only when that
is the upstream actually qualified. Keep applications on the original URL while you complete the
direct-versus-managed comparison.
4. Create a least-privilege teammate credential
Create a read-only service principal. The credential is printed once; capture the principal ID in the team’s access record and transfer the credential through the existing secret manager—not chat, email, a shell transcript, or a ticket:init verifies /api/v1/whoami before storing the context. A TLS, authorization, or tenant mismatch
must stop the workflow; do not use --skip-check to bypass it.
5. Qualify the managed request path before switching a client
Promoting adoption changes routing ownership, although it creates no provider resource. Use an operator credential only after the direct-versus-managed buffered, streaming, error, cancellation, and model-identity comparison passes with non-sensitive staging data:X-Request-Id with infercrane request inspect REQUEST_ID --output json. Stop
and keep the application on the original upstream if the comparison, request attribution, TLS, or
network evidence is incomplete. InferCrane still does not own upstream lifecycle in
traffic-managed mode.
6. Remove access and verify
Revoke by the principal ID captured when the credential was issued:401.
If PostgreSQL is unavailable, revocation cannot become visible to a gateway from an updated
snapshot; restore the database or fence/restart affected gateways as described in
Security. Keep the upstream running because this workflow never transferred lifecycle
ownership. Review the principal creation and revocation in the audit log.
Evidence checklist
- TLS certificate and private-network policy owner
- control-plane
/readyzresponse over the trusted CA - upstream URL, runtime, model identity, and ownership mode
- direct-versus-managed protocol results
- principal ID, role, scopes, issuer, and revocation time—never the credential
- stable-endpoint request ID and Request Inspector attribution
- explicit statement that no provider resource was created by this runbook