User

GET /api/v1/user/{system_uuid}/{system_user_id}

Read a single user by composite key. Normative internal narrative per ADR 0026; external contract: OpenAPI (operationId: getUserBySystemUserId).

OpenAPI operationId (reference): getUserBySystemUserId

Request path and behavior

Same middleware stack as other protected routes (ADR 0005). Route template /api/v1/user/{system_uuid}/{system_user_id}; path parameters validated, then UserService.get_or_404 → repository read. No idempotency — read-only.

Success: 200 OK with user body. ETag / caching semantics (if enabled) are described in the unified spec.

Errors

Envelope per ADR 0003.

HTTP Code / key When
404 USER_404 / USER_NOT_FOUND No row for (system_uuid, system_user_id)get_user_not_found at warning in UserService.get_or_404.
422 Validation Invalid path parameter shapes — logged as validation errors at warning.
401 / 429 Middleware (ADR 0005).
500 Uncaught: request_failed with stack.

Logging

request_done … path=… on every completed request (info). request_id in context per ADR 0023. UserService emits get_user_not_found at warning before 404. No idempotency replay logs on GET.

Metrics

http_requests_total / duration with path_template=/api/v1/user/{system_uuid}/{system_user_id}, method=GET, status label. See Unified spec — Metrics.

Single-file deep spec

Unified internal spec — this operation.

← User resource hub

Page history

Date Change Author
Added Page history section (repository baseline). Ivan Boyarkin