# Telemetry Ingestion Endpoint

Phase 72.5.1.4 adds `@v2/telemetry-ingestion`, the server-side entry point for
client telemetry batches.

## Endpoint

- Route: `POST /v2/telemetry/ingest`
- JSON content type: `application/json`
- Protobuf content types: `application/x-protobuf`, `application/protobuf`, and
  `application/octet-stream`
- Accepted response: HTTP `202` with `batchId`, `acceptedEventCount`,
  `queueName`, `queueDepth`, and `wireSchemaVersion`

The endpoint is framework-neutral. `createTelemetryIngestionEndpoint` returns a
handler that can be mounted by a Fastify, Hono, gateway, or edge adapter without
changing the validation and queue-write contract.

## Validation

`handleTelemetryIngestionRequest` decodes JSON or protobuf `TelemetryEventBatch`
payloads, validates wire schema `1.0.0`, enforces the Phase 72 standard topic
required fields, and rejects forbidden payload keys: `account_id`, `email`,
`ip_address`, `platform_user_id`, and `raw_log_line`.

Batches with unsupported schema versions, empty event lists, too many events,
invalid UUIDs, malformed protobuf, unknown content types, or missing standard
topic fields are rejected before queue writes.

## Queue Contract

Accepted batches are written through the `TelemetryQueue` adapter. The local
`MemoryTelemetryQueue` is used only for tests and development. Production
deployments must provide an adapter that writes to `v2-telemetry-firehose`,
which is consumed by the Phase 72.5.1.5 telemetry data pipeline.

Targeted verification:

```bash
pnpm --filter @v2/telemetry-ingestion run typecheck
pnpm --filter @v2/telemetry-ingestion run test
python V2/ue/Tools/check-v2-telemetry-ingestion-endpoint.py
```
