> ## Documentation Index
> Fetch the complete documentation index at: https://infercrane.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Adopt and diagnose

> Connect an existing workload, inspect request evidence, and send deterministic signed alerts.

InferCrane can add control-plane evidence around an existing OpenAI-compatible workload without
replacing it. Adoption is incremental and does not silently transfer lifecycle ownership.

## Adopt an existing workload

<CodeGroup>
  ```bash Observe only theme={"theme":{"light":"github-light-default","dark":"vesper"}}
  infercrane adopt endpoint coder-production \
    --url https://vllm.internal.example/v1 \
    --model coder \
    --upstream-model Qwen/Qwen3-8B \
    --ownership observe-only
  ```

  ```bash Traffic managed theme={"theme":{"light":"github-light-default","dark":"vesper"}}
  infercrane adopt endpoint coder-production \
    --url https://vllm.internal.example/v1 \
    --model coder \
    --upstream-model Qwen/Qwen3-8B \
    --ownership traffic-managed
  ```
</CodeGroup>

`observe-only` records health and evidence but never publishes a route. `traffic-managed` may route
through the existing target after its qualified runtime health check succeeds. Neither mode creates,
scales, updates, or deletes the imported workload. `lifecycle-managed` is available only through an
InferCrane Deployment binding.

The URL, source, logical model and physical upstream model form an immutable adoption identity. A
safe retry returns the same adoption; changing immutable identity fails with a conflict.

Promote ownership explicitly after reviewing health evidence:

```bash theme={"theme":{"light":"github-light-default","dark":"vesper"}}
infercrane adopt promote coder-production --ownership traffic-managed
```

## Inspect one request

```bash theme={"theme":{"light":"github-light-default","dark":"vesper"}}
infercrane request inspect req_fa098a6488ec2bedcf025844adda5f45
```

The result identifies routing identity, timings, tokens, retries, fallback reason, status and error
class. `content_recorded` is always `false`: prompts, outputs and authorization values are not part
of request evidence.

## Deterministic Doctor

```bash theme={"theme":{"light":"github-light-default","dark":"vesper"}}
infercrane doctor coder-production --window 1h
```

Doctor persists reproducible `Evidence → Rule → Finding` results. Current rules cover unavailable
endpoint routes, statistically bounded elevated error rate, and queue-dominant latency. A healthy
result explicitly reports that no deterministic issue is active; it does not guess a cause.

## Signed alerts

```bash theme={"theme":{"light":"github-light-default","dark":"vesper"}}
infercrane secret create alert-signing --from-env INFERCRANE_ALERT_SIGNING_SECRET
infercrane alert configure coder-production \
  --webhook https://alerts.example.com/infercrane \
  --secret-reference sec_123 \
  --minimum-severity warning
infercrane alert evaluate coder-production
```

Deliveries include `InferCrane-Delivery`, `InferCrane-Timestamp`, and
`InferCrane-Signature: v1=<HMAC-SHA256>`. The signed input is
`<timestamp>.<exact request body>`. Delivery is idempotent per policy/finding, retries are bounded,
and public-network validation rejects private, loopback, link-local and unspecified destinations by
default. Resolved signing secrets are never persisted or returned.

<Warning>
  Adoption does not import provider credentials or guarantee ownership of the workload. Keep the
  existing workload available until traffic-managed health and request evidence have been verified.
</Warning>
