fix: Accept string instance_id in telemetry endpoint
The orchestrator sends instance_id as a string (e.g., "letsbe-orchestrator") but the endpoint was expecting a UUID path parameter. This caused 422 validation errors when orchestrators tried to send telemetry. - Changed path parameter from UUID to str - Lookup instance by Instance.instance_id (string) instead of Instance.id (UUID) - Store telemetry with instance.id (UUID) for correct FK relationship - Updated TelemetryPayload schema to use str instead of UUID 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,6 @@ unknown fields, preventing accidental PII leaks.
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
@@ -87,7 +86,7 @@ class TelemetryPayload(BaseModel):
|
||||
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
instance_id: UUID = Field(..., description="Instance UUID (must match path)")
|
||||
instance_id: str = Field(..., description="Instance ID string (must match path)")
|
||||
window_start: datetime = Field(..., description="Start of telemetry window")
|
||||
window_end: datetime = Field(..., description="End of telemetry window")
|
||||
uptime_seconds: int = Field(ge=0, description="Orchestrator uptime in seconds")
|
||||
|
||||
Reference in New Issue
Block a user