Summary
The Kestra REST API exposes several log endpoints that are not currently wrapped by the Go SDK:
GET /api/v1/{tenant}/logs/{executionId} — fetch all log entries for an execution (returns []LogEntry)
GET /api/v1/{tenant}/logs/{executionId}/download — download logs as a file
GET /api/v1/{tenant}/logs/{executionId}/follow — stream logs in real-time (SSE)
GET /api/v1/{tenant}/logs/search — search logs with pagination and filters
The LogEntry and PagedResultsLogEntry models already exist in the SDK, but no LogsAPI service exposes methods for retrieving them.
Motivation
We're building a `kestractl executions get --logs` feature for kestractl that would let users fetch execution log output from the CLI. Currently this requires making raw HTTP calls because the SDK does not wrap the logs endpoints. Having a `LogsAPI` in the SDK would let us implement this cleanly.
Summary
The Kestra REST API exposes several log endpoints that are not currently wrapped by the Go SDK:
GET /api/v1/{tenant}/logs/{executionId}— fetch all log entries for an execution (returns[]LogEntry)GET /api/v1/{tenant}/logs/{executionId}/download— download logs as a fileGET /api/v1/{tenant}/logs/{executionId}/follow— stream logs in real-time (SSE)GET /api/v1/{tenant}/logs/search— search logs with pagination and filtersThe
LogEntryandPagedResultsLogEntrymodels already exist in the SDK, but noLogsAPIservice exposes methods for retrieving them.Motivation
We're building a `kestractl executions get --logs` feature for kestractl that would let users fetch execution log output from the CLI. Currently this requires making raw HTTP calls because the SDK does not wrap the logs endpoints. Having a `LogsAPI` in the SDK would let us implement this cleanly.