Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterAgentServiceServer(s grpc.ServiceRegistrar, srv AgentServiceServer)
- type AgentServiceClient
- type AgentServiceServer
- type AgentService_AwaitAssignmentClient
- type AgentService_AwaitAssignmentServer
- type AgentService_StreamLogsClient
- type AgentService_StreamLogsServer
- type AssignmentAck
- func (*AssignmentAck) Descriptor() ([]byte, []int)deprecated
- func (x *AssignmentAck) GetAssignmentId() string
- func (x *AssignmentAck) GetStarted() bool
- func (*AssignmentAck) ProtoMessage()
- func (x *AssignmentAck) ProtoReflect() protoreflect.Message
- func (x *AssignmentAck) Reset()
- func (x *AssignmentAck) String() string
- type ExchangeTokenRequest
- type ExchangeTokenResponse
- func (*ExchangeTokenResponse) Descriptor() ([]byte, []int)deprecated
- func (x *ExchangeTokenResponse) GetAgentToken() string
- func (*ExchangeTokenResponse) ProtoMessage()
- func (x *ExchangeTokenResponse) ProtoReflect() protoreflect.Message
- func (x *ExchangeTokenResponse) Reset()
- func (x *ExchangeTokenResponse) String() string
- type FetchXComBatchItem
- func (*FetchXComBatchItem) Descriptor() ([]byte, []int)deprecated
- func (x *FetchXComBatchItem) GetContentType() string
- func (x *FetchXComBatchItem) GetCreatedAt() *timestamppb.Timestamp
- func (x *FetchXComBatchItem) GetDeferred() bool
- func (x *FetchXComBatchItem) GetFound() bool
- func (x *FetchXComBatchItem) GetKey() string
- func (x *FetchXComBatchItem) GetSizeBytes() int32
- func (x *FetchXComBatchItem) GetUpstreamTaskId() string
- func (x *FetchXComBatchItem) GetValue() []byte
- func (*FetchXComBatchItem) ProtoMessage()
- func (x *FetchXComBatchItem) ProtoReflect() protoreflect.Message
- func (x *FetchXComBatchItem) Reset()
- func (x *FetchXComBatchItem) String() string
- type FetchXComBatchRequest
- func (*FetchXComBatchRequest) Descriptor() ([]byte, []int)deprecated
- func (x *FetchXComBatchRequest) GetItems() []*FetchXComRequest
- func (*FetchXComBatchRequest) ProtoMessage()
- func (x *FetchXComBatchRequest) ProtoReflect() protoreflect.Message
- func (x *FetchXComBatchRequest) Reset()
- func (x *FetchXComBatchRequest) String() string
- type FetchXComBatchResponse
- func (*FetchXComBatchResponse) Descriptor() ([]byte, []int)deprecated
- func (x *FetchXComBatchResponse) GetItems() []*FetchXComBatchItem
- func (*FetchXComBatchResponse) ProtoMessage()
- func (x *FetchXComBatchResponse) ProtoReflect() protoreflect.Message
- func (x *FetchXComBatchResponse) Reset()
- func (x *FetchXComBatchResponse) String() string
- type FetchXComRequest
- func (*FetchXComRequest) Descriptor() ([]byte, []int)deprecated
- func (x *FetchXComRequest) GetKey() string
- func (x *FetchXComRequest) GetUpstreamTaskId() string
- func (*FetchXComRequest) ProtoMessage()
- func (x *FetchXComRequest) ProtoReflect() protoreflect.Message
- func (x *FetchXComRequest) Reset()
- func (x *FetchXComRequest) String() string
- type FetchXComResponse
- func (*FetchXComResponse) Descriptor() ([]byte, []int)deprecated
- func (x *FetchXComResponse) GetContentType() string
- func (x *FetchXComResponse) GetCreatedAt() *timestamppb.Timestamp
- func (x *FetchXComResponse) GetSizeBytes() int32
- func (x *FetchXComResponse) GetValue() []byte
- func (*FetchXComResponse) ProtoMessage()
- func (x *FetchXComResponse) ProtoReflect() protoreflect.Message
- func (x *FetchXComResponse) Reset()
- func (x *FetchXComResponse) String() string
- type GetConnectionsRequest
- type GetConnectionsResponse
- func (*GetConnectionsResponse) Descriptor() ([]byte, []int)deprecated
- func (x *GetConnectionsResponse) GetConnectionUris() map[string]string
- func (*GetConnectionsResponse) ProtoMessage()
- func (x *GetConnectionsResponse) ProtoReflect() protoreflect.Message
- func (x *GetConnectionsResponse) Reset()
- func (x *GetConnectionsResponse) String() string
- type GetTaskSpecRequest
- type GetVariablesRequest
- type GetVariablesResponse
- func (*GetVariablesResponse) Descriptor() ([]byte, []int)deprecated
- func (x *GetVariablesResponse) GetVariables() map[string]string
- func (*GetVariablesResponse) ProtoMessage()
- func (x *GetVariablesResponse) ProtoReflect() protoreflect.Message
- func (x *GetVariablesResponse) Reset()
- func (x *GetVariablesResponse) String() string
- type HeartbeatRequest
- func (*HeartbeatRequest) Descriptor() ([]byte, []int)deprecated
- func (x *HeartbeatRequest) GetCustomMetrics() map[string]float64
- func (x *HeartbeatRequest) GetSentAt() *timestamppb.Timestamp
- func (*HeartbeatRequest) ProtoMessage()
- func (x *HeartbeatRequest) ProtoReflect() protoreflect.Message
- func (x *HeartbeatRequest) Reset()
- func (x *HeartbeatRequest) String() string
- type HeartbeatResponse
- func (*HeartbeatResponse) Descriptor() ([]byte, []int)deprecated
- func (x *HeartbeatResponse) GetRenewedToken() string
- func (x *HeartbeatResponse) GetServerTime() *timestamppb.Timestamp
- func (x *HeartbeatResponse) GetShouldTerminate() bool
- func (*HeartbeatResponse) ProtoMessage()
- func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message
- func (x *HeartbeatResponse) Reset()
- func (x *HeartbeatResponse) String() string
- type LogAck
- type LogLevel
- type LogLine
- func (*LogLine) Descriptor() ([]byte, []int)deprecated
- func (x *LogLine) GetLevel() LogLevel
- func (x *LogLine) GetLineNumber() int64
- func (x *LogLine) GetMessage() string
- func (x *LogLine) GetStream() string
- func (x *LogLine) GetTime() *timestamppb.Timestamp
- func (*LogLine) ProtoMessage()
- func (x *LogLine) ProtoReflect() protoreflect.Message
- func (x *LogLine) Reset()
- func (x *LogLine) String() string
- type PushXComRequest
- func (*PushXComRequest) Descriptor() ([]byte, []int)deprecated
- func (x *PushXComRequest) GetContentType() string
- func (x *PushXComRequest) GetKey() string
- func (x *PushXComRequest) GetValue() []byte
- func (*PushXComRequest) ProtoMessage()
- func (x *PushXComRequest) ProtoReflect() protoreflect.Message
- func (x *PushXComRequest) Reset()
- func (x *PushXComRequest) String() string
- type PushXComResponse
- func (*PushXComResponse) Descriptor() ([]byte, []int)deprecated
- func (x *PushXComResponse) GetAccepted() bool
- func (x *PushXComResponse) GetRejectionReason() string
- func (x *PushXComResponse) GetTtlSeconds() int32
- func (*PushXComResponse) ProtoMessage()
- func (x *PushXComResponse) ProtoReflect() protoreflect.Message
- func (x *PushXComResponse) Reset()
- func (x *PushXComResponse) String() string
- type RegisterRequest
- func (*RegisterRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RegisterRequest) GetAgentVersion() string
- func (x *RegisterRequest) GetEnvironment() map[string]string
- func (x *RegisterRequest) GetHostname() string
- func (*RegisterRequest) ProtoMessage()
- func (x *RegisterRequest) ProtoReflect() protoreflect.Message
- func (x *RegisterRequest) Reset()
- func (x *RegisterRequest) String() string
- type RegisterResponse
- func (*RegisterResponse) Descriptor() ([]byte, []int)deprecated
- func (x *RegisterResponse) GetServerTime() *timestamppb.Timestamp
- func (x *RegisterResponse) GetSessionId() string
- func (*RegisterResponse) ProtoMessage()
- func (x *RegisterResponse) ProtoReflect() protoreflect.Message
- func (x *RegisterResponse) Reset()
- func (x *RegisterResponse) String() string
- type ReportStateRequest
- func (*ReportStateRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ReportStateRequest) GetErrorMessage() string
- func (x *ReportStateRequest) GetExitCode() int32
- func (x *ReportStateRequest) GetOccurredAt() *timestamppb.Timestamp
- func (x *ReportStateRequest) GetRescheduleAt() *timestamppb.Timestamp
- func (x *ReportStateRequest) GetState() TaskState
- func (*ReportStateRequest) ProtoMessage()
- func (x *ReportStateRequest) ProtoReflect() protoreflect.Message
- func (x *ReportStateRequest) Reset()
- func (x *ReportStateRequest) String() string
- type ReportStateResponse
- func (*ReportStateResponse) Descriptor() ([]byte, []int)deprecated
- func (x *ReportStateResponse) GetAcknowledged() bool
- func (x *ReportStateResponse) GetShouldTerminate() bool
- func (*ReportStateResponse) ProtoMessage()
- func (x *ReportStateResponse) ProtoReflect() protoreflect.Message
- func (x *ReportStateResponse) Reset()
- func (x *ReportStateResponse) String() string
- type SlotFree
- type TaskSpec
- func (*TaskSpec) Descriptor() ([]byte, []int)deprecated
- func (x *TaskSpec) GetAttemptEpoch() int64
- func (x *TaskSpec) GetCallArgsJson() string
- func (x *TaskSpec) GetDagId() string
- func (x *TaskSpec) GetDagVersion() string
- func (x *TaskSpec) GetDataIntervalEnd() string
- func (x *TaskSpec) GetDataIntervalStart() string
- func (x *TaskSpec) GetDeclaredConnections() []string
- func (x *TaskSpec) GetDeclaredVariables() []string
- func (x *TaskSpec) GetDependsOn() []string
- func (x *TaskSpec) GetEntrypoint() string
- func (x *TaskSpec) GetEnvironment() map[string]string
- func (x *TaskSpec) GetExecutionTimeoutSeconds() int32
- func (x *TaskSpec) GetExtra() *structpb.Struct
- func (x *TaskSpec) GetFirstRescheduleAt() string
- func (x *TaskSpec) GetLogicalDate() string
- func (x *TaskSpec) GetMaxTries() int32
- func (x *TaskSpec) GetOnFailureCallback() bool
- func (x *TaskSpec) GetOperator() string
- func (x *TaskSpec) GetOperatorArgsJson() string
- func (x *TaskSpec) GetOperatorClass() string
- func (x *TaskSpec) GetParamsJson() string
- func (x *TaskSpec) GetRunConfJson() string
- func (x *TaskSpec) GetRunId() string
- func (x *TaskSpec) GetRunType() string
- func (x *TaskSpec) GetTaskId() string
- func (x *TaskSpec) GetTenantId() string
- func (x *TaskSpec) GetTryNumber() int32
- func (x *TaskSpec) GetXcomInputMapping() map[string]*XComUpstreams
- func (*TaskSpec) ProtoMessage()
- func (x *TaskSpec) ProtoReflect() protoreflect.Message
- func (x *TaskSpec) Reset()
- func (x *TaskSpec) String() string
- type TaskState
- type UnimplementedAgentServiceServer
- func (UnimplementedAgentServiceServer) AwaitAssignment(grpc.BidiStreamingServer[WorkerMessage, WorkAssignment]) error
- func (UnimplementedAgentServiceServer) ExchangeToken(context.Context, *ExchangeTokenRequest) (*ExchangeTokenResponse, error)
- func (UnimplementedAgentServiceServer) FetchXCom(context.Context, *FetchXComRequest) (*FetchXComResponse, error)
- func (UnimplementedAgentServiceServer) FetchXComBatch(context.Context, *FetchXComBatchRequest) (*FetchXComBatchResponse, error)
- func (UnimplementedAgentServiceServer) GetConnections(context.Context, *GetConnectionsRequest) (*GetConnectionsResponse, error)
- func (UnimplementedAgentServiceServer) GetTaskSpec(context.Context, *GetTaskSpecRequest) (*TaskSpec, error)
- func (UnimplementedAgentServiceServer) GetVariables(context.Context, *GetVariablesRequest) (*GetVariablesResponse, error)
- func (UnimplementedAgentServiceServer) Heartbeat(context.Context, *HeartbeatRequest) (*HeartbeatResponse, error)
- func (UnimplementedAgentServiceServer) PushXCom(context.Context, *PushXComRequest) (*PushXComResponse, error)
- func (UnimplementedAgentServiceServer) Register(context.Context, *RegisterRequest) (*RegisterResponse, error)
- func (UnimplementedAgentServiceServer) ReportState(context.Context, *ReportStateRequest) (*ReportStateResponse, error)
- func (UnimplementedAgentServiceServer) StreamLogs(grpc.BidiStreamingServer[LogLine, LogAck]) error
- type UnsafeAgentServiceServer
- type WorkAssignment
- func (*WorkAssignment) Descriptor() ([]byte, []int)deprecated
- func (x *WorkAssignment) GetAssignmentId() string
- func (x *WorkAssignment) GetAttemptEpoch() int64
- func (x *WorkAssignment) GetAttemptToken() string
- func (x *WorkAssignment) GetDagRunId() string
- func (x *WorkAssignment) GetDagSource() []byte
- func (x *WorkAssignment) GetDagSourceSha256() string
- func (x *WorkAssignment) GetDagVersionId() string
- func (x *WorkAssignment) GetLeaseSeconds() int64
- func (x *WorkAssignment) GetTaskId() string
- func (x *WorkAssignment) GetTryNumber() int32
- func (*WorkAssignment) ProtoMessage()
- func (x *WorkAssignment) ProtoReflect() protoreflect.Message
- func (x *WorkAssignment) Reset()
- func (x *WorkAssignment) String() string
- type WorkerMessage
- func (*WorkerMessage) Descriptor() ([]byte, []int)deprecated
- func (x *WorkerMessage) GetAck() *AssignmentAck
- func (x *WorkerMessage) GetMsg() isWorkerMessage_Msg
- func (x *WorkerMessage) GetRegister() *WorkerRegister
- func (x *WorkerMessage) GetSlotFree() *SlotFree
- func (*WorkerMessage) ProtoMessage()
- func (x *WorkerMessage) ProtoReflect() protoreflect.Message
- func (x *WorkerMessage) Reset()
- func (x *WorkerMessage) String() string
- type WorkerMessage_Ack
- type WorkerMessage_Register
- type WorkerMessage_SlotFree
- type WorkerRegister
- func (*WorkerRegister) Descriptor() ([]byte, []int)deprecated
- func (x *WorkerRegister) GetAttemptHomeSweep() bool
- func (x *WorkerRegister) GetDagVersionId() string
- func (x *WorkerRegister) GetPodName() string
- func (x *WorkerRegister) GetSourceDelivery() bool
- func (*WorkerRegister) ProtoMessage()
- func (x *WorkerRegister) ProtoReflect() protoreflect.Message
- func (x *WorkerRegister) Reset()
- func (x *WorkerRegister) String() string
- type XComUpstreams
Constants ¶
const ( AgentService_ExchangeToken_FullMethodName = "/leoflow.agent.v1.AgentService/ExchangeToken" AgentService_Register_FullMethodName = "/leoflow.agent.v1.AgentService/Register" AgentService_GetTaskSpec_FullMethodName = "/leoflow.agent.v1.AgentService/GetTaskSpec" AgentService_FetchXCom_FullMethodName = "/leoflow.agent.v1.AgentService/FetchXCom" AgentService_FetchXComBatch_FullMethodName = "/leoflow.agent.v1.AgentService/FetchXComBatch" AgentService_PushXCom_FullMethodName = "/leoflow.agent.v1.AgentService/PushXCom" AgentService_StreamLogs_FullMethodName = "/leoflow.agent.v1.AgentService/StreamLogs" AgentService_ReportState_FullMethodName = "/leoflow.agent.v1.AgentService/ReportState" AgentService_Heartbeat_FullMethodName = "/leoflow.agent.v1.AgentService/Heartbeat" AgentService_GetVariables_FullMethodName = "/leoflow.agent.v1.AgentService/GetVariables" AgentService_GetConnections_FullMethodName = "/leoflow.agent.v1.AgentService/GetConnections" AgentService_AwaitAssignment_FullMethodName = "/leoflow.agent.v1.AgentService/AwaitAssignment" )
Variables ¶
var ( LogLevel_name = map[int32]string{ 0: "LOG_LEVEL_UNSPECIFIED", 1: "LOG_LEVEL_DEBUG", 2: "LOG_LEVEL_INFO", 3: "LOG_LEVEL_WARN", 4: "LOG_LEVEL_ERROR", } LogLevel_value = map[string]int32{ "LOG_LEVEL_UNSPECIFIED": 0, "LOG_LEVEL_DEBUG": 1, "LOG_LEVEL_INFO": 2, "LOG_LEVEL_WARN": 3, "LOG_LEVEL_ERROR": 4, } )
Enum value maps for LogLevel.
var ( TaskState_name = map[int32]string{ 0: "TASK_STATE_UNSPECIFIED", 1: "TASK_STATE_RUNNING", 2: "TASK_STATE_SUCCESS", 3: "TASK_STATE_FAILED", 4: "TASK_STATE_SKIPPED", 5: "TASK_STATE_UP_FOR_RESCHEDULE", } TaskState_value = map[string]int32{ "TASK_STATE_UNSPECIFIED": 0, "TASK_STATE_RUNNING": 1, "TASK_STATE_SUCCESS": 2, "TASK_STATE_FAILED": 3, "TASK_STATE_SKIPPED": 4, "TASK_STATE_UP_FOR_RESCHEDULE": 5, } )
Enum value maps for TaskState.
var AgentService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "leoflow.agent.v1.AgentService", HandlerType: (*AgentServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "ExchangeToken", Handler: _AgentService_ExchangeToken_Handler, }, { MethodName: "Register", Handler: _AgentService_Register_Handler, }, { MethodName: "GetTaskSpec", Handler: _AgentService_GetTaskSpec_Handler, }, { MethodName: "FetchXCom", Handler: _AgentService_FetchXCom_Handler, }, { MethodName: "FetchXComBatch", Handler: _AgentService_FetchXComBatch_Handler, }, { MethodName: "PushXCom", Handler: _AgentService_PushXCom_Handler, }, { MethodName: "ReportState", Handler: _AgentService_ReportState_Handler, }, { MethodName: "Heartbeat", Handler: _AgentService_Heartbeat_Handler, }, { MethodName: "GetVariables", Handler: _AgentService_GetVariables_Handler, }, { MethodName: "GetConnections", Handler: _AgentService_GetConnections_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "StreamLogs", Handler: _AgentService_StreamLogs_Handler, ServerStreams: true, ClientStreams: true, }, { StreamName: "AwaitAssignment", Handler: _AgentService_AwaitAssignment_Handler, ServerStreams: true, ClientStreams: true, }, }, Metadata: "agent.proto", }
AgentService_ServiceDesc is the grpc.ServiceDesc for AgentService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var File_agent_proto protoreflect.FileDescriptor
Functions ¶
func RegisterAgentServiceServer ¶
func RegisterAgentServiceServer(s grpc.ServiceRegistrar, srv AgentServiceServer)
Types ¶
type AgentServiceClient ¶
type AgentServiceClient interface {
// Agent exchanges its bootstrap credential for a task-scoped agent JWT
// (ADR 0055 Fix #3). Called once at startup ONLY when the pod was given a
// projected ServiceAccount token instead of a plaintext token: the agent
// presents that projected token in metadata, the Control Plane validates it
// with a Kubernetes TokenReview, resolves the pod to its task instance, and
// returns the task-scoped JWT the agent uses as its bearer thereafter. The
// default (env-var) transport never calls this.
ExchangeToken(ctx context.Context, in *ExchangeTokenRequest, opts ...grpc.CallOption) (*ExchangeTokenResponse, error)
// Agent registers with the Control Plane on container startup.
// The JWT in metadata identifies the task instance.
Register(ctx context.Context, in *RegisterRequest, opts ...grpc.CallOption) (*RegisterResponse, error)
// Agent fetches the task specification.
GetTaskSpec(ctx context.Context, in *GetTaskSpecRequest, opts ...grpc.CallOption) (*TaskSpec, error)
// Agent pulls XCom values declared as inputs.
FetchXCom(ctx context.Context, in *FetchXComRequest, opts ...grpc.CallOption) (*FetchXComResponse, error)
// Agent pulls several XCom values in one call. Each item is authorized and
// scoped exactly like FetchXCom. An older control plane answers Unimplemented
// and the agent falls back to FetchXCom per value.
FetchXComBatch(ctx context.Context, in *FetchXComBatchRequest, opts ...grpc.CallOption) (*FetchXComBatchResponse, error)
// Agent pushes an XCom value (typically the task return value).
PushXCom(ctx context.Context, in *PushXComRequest, opts ...grpc.CallOption) (*PushXComResponse, error)
// Agent streams log lines back to the Control Plane.
// Bidirectional: server sends acks; client streams logs.
StreamLogs(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[LogLine, LogAck], error)
// Agent reports task state transitions (running, success, failed).
ReportState(ctx context.Context, in *ReportStateRequest, opts ...grpc.CallOption) (*ReportStateResponse, error)
// Agent sends periodic heartbeats during long-running tasks.
Heartbeat(ctx context.Context, in *HeartbeatRequest, opts ...grpc.CallOption) (*HeartbeatResponse, error)
// Agent fetches the tenant's Variables to export as AIRFLOW_VAR_* env vars,
// so user code resolves them via Airflow's native env secrets backend.
GetVariables(ctx context.Context, in *GetVariablesRequest, opts ...grpc.CallOption) (*GetVariablesResponse, error)
// Agent fetches the tenant's Connections (as Airflow connection URIs) to
// export as AIRFLOW_CONN_* env vars.
GetConnections(ctx context.Context, in *GetConnectionsRequest, opts ...grpc.CallOption) (*GetConnectionsResponse, error)
// A warm worker awaits per-attempt assignments over a long-lived bidi stream
// (ADR 0058 N1b). Down: the control plane pushes WorkAssignments. Up: the
// worker sends its initial WorkerRegister, per-assignment AssignmentAcks, and
// SlotFree signals. Gated on execution.warm_pools_enabled — the handler
// returns FailedPrecondition when warm pools are off, so the transport is
// inert by default.
AwaitAssignment(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[WorkerMessage, WorkAssignment], error)
}
AgentServiceClient is the client API for AgentService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
───────────────────────────────────────────────────────────────────────── Service ─────────────────────────────────────────────────────────────────────────
func NewAgentServiceClient ¶
func NewAgentServiceClient(cc grpc.ClientConnInterface) AgentServiceClient
type AgentServiceServer ¶
type AgentServiceServer interface {
// Agent exchanges its bootstrap credential for a task-scoped agent JWT
// (ADR 0055 Fix #3). Called once at startup ONLY when the pod was given a
// projected ServiceAccount token instead of a plaintext token: the agent
// presents that projected token in metadata, the Control Plane validates it
// with a Kubernetes TokenReview, resolves the pod to its task instance, and
// returns the task-scoped JWT the agent uses as its bearer thereafter. The
// default (env-var) transport never calls this.
ExchangeToken(context.Context, *ExchangeTokenRequest) (*ExchangeTokenResponse, error)
// Agent registers with the Control Plane on container startup.
// The JWT in metadata identifies the task instance.
Register(context.Context, *RegisterRequest) (*RegisterResponse, error)
// Agent fetches the task specification.
GetTaskSpec(context.Context, *GetTaskSpecRequest) (*TaskSpec, error)
// Agent pulls XCom values declared as inputs.
FetchXCom(context.Context, *FetchXComRequest) (*FetchXComResponse, error)
// Agent pulls several XCom values in one call. Each item is authorized and
// scoped exactly like FetchXCom. An older control plane answers Unimplemented
// and the agent falls back to FetchXCom per value.
FetchXComBatch(context.Context, *FetchXComBatchRequest) (*FetchXComBatchResponse, error)
// Agent pushes an XCom value (typically the task return value).
PushXCom(context.Context, *PushXComRequest) (*PushXComResponse, error)
// Agent streams log lines back to the Control Plane.
// Bidirectional: server sends acks; client streams logs.
StreamLogs(grpc.BidiStreamingServer[LogLine, LogAck]) error
// Agent reports task state transitions (running, success, failed).
ReportState(context.Context, *ReportStateRequest) (*ReportStateResponse, error)
// Agent sends periodic heartbeats during long-running tasks.
Heartbeat(context.Context, *HeartbeatRequest) (*HeartbeatResponse, error)
// Agent fetches the tenant's Variables to export as AIRFLOW_VAR_* env vars,
// so user code resolves them via Airflow's native env secrets backend.
GetVariables(context.Context, *GetVariablesRequest) (*GetVariablesResponse, error)
// Agent fetches the tenant's Connections (as Airflow connection URIs) to
// export as AIRFLOW_CONN_* env vars.
GetConnections(context.Context, *GetConnectionsRequest) (*GetConnectionsResponse, error)
// A warm worker awaits per-attempt assignments over a long-lived bidi stream
// (ADR 0058 N1b). Down: the control plane pushes WorkAssignments. Up: the
// worker sends its initial WorkerRegister, per-assignment AssignmentAcks, and
// SlotFree signals. Gated on execution.warm_pools_enabled — the handler
// returns FailedPrecondition when warm pools are off, so the transport is
// inert by default.
AwaitAssignment(grpc.BidiStreamingServer[WorkerMessage, WorkAssignment]) error
// contains filtered or unexported methods
}
AgentServiceServer is the server API for AgentService service. All implementations must embed UnimplementedAgentServiceServer for forward compatibility.
───────────────────────────────────────────────────────────────────────── Service ─────────────────────────────────────────────────────────────────────────
type AgentService_AwaitAssignmentClient ¶
type AgentService_AwaitAssignmentClient = grpc.BidiStreamingClient[WorkerMessage, WorkAssignment]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type AgentService_AwaitAssignmentServer ¶
type AgentService_AwaitAssignmentServer = grpc.BidiStreamingServer[WorkerMessage, WorkAssignment]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type AgentService_StreamLogsClient ¶
type AgentService_StreamLogsClient = grpc.BidiStreamingClient[LogLine, LogAck]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type AgentService_StreamLogsServer ¶
type AgentService_StreamLogsServer = grpc.BidiStreamingServer[LogLine, LogAck]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type AssignmentAck ¶
type AssignmentAck struct {
AssignmentId string `protobuf:"bytes,1,opt,name=assignment_id,json=assignmentId,proto3" json:"assignment_id,omitempty"`
Started bool `protobuf:"varint,2,opt,name=started,proto3" json:"started,omitempty"`
// contains filtered or unexported fields
}
AssignmentAck answers a WorkAssignment. started=true means the worker began the attempt (the control plane marks it active and cancels the lease). started=false means the worker refuses or cannot start it (the control plane reclaims it).
func (*AssignmentAck) Descriptor
deprecated
func (*AssignmentAck) Descriptor() ([]byte, []int)
Deprecated: Use AssignmentAck.ProtoReflect.Descriptor instead.
func (*AssignmentAck) GetAssignmentId ¶
func (x *AssignmentAck) GetAssignmentId() string
func (*AssignmentAck) GetStarted ¶
func (x *AssignmentAck) GetStarted() bool
func (*AssignmentAck) ProtoMessage ¶
func (*AssignmentAck) ProtoMessage()
func (*AssignmentAck) ProtoReflect ¶
func (x *AssignmentAck) ProtoReflect() protoreflect.Message
func (*AssignmentAck) Reset ¶
func (x *AssignmentAck) Reset()
func (*AssignmentAck) String ¶
func (x *AssignmentAck) String() string
type ExchangeTokenRequest ¶
type ExchangeTokenRequest struct {
// contains filtered or unexported fields
}
ExchangeTokenRequest is empty; the agent presents its projected ServiceAccount token as the bootstrap bearer in the authorization metadata. The Control Plane derives everything it needs (the pod, hence the task instance) from that token via a Kubernetes TokenReview.
func (*ExchangeTokenRequest) Descriptor
deprecated
func (*ExchangeTokenRequest) Descriptor() ([]byte, []int)
Deprecated: Use ExchangeTokenRequest.ProtoReflect.Descriptor instead.
func (*ExchangeTokenRequest) ProtoMessage ¶
func (*ExchangeTokenRequest) ProtoMessage()
func (*ExchangeTokenRequest) ProtoReflect ¶
func (x *ExchangeTokenRequest) ProtoReflect() protoreflect.Message
func (*ExchangeTokenRequest) Reset ¶
func (x *ExchangeTokenRequest) Reset()
func (*ExchangeTokenRequest) String ¶
func (x *ExchangeTokenRequest) String() string
type ExchangeTokenResponse ¶
type ExchangeTokenResponse struct {
// A freshly minted, task-scoped agent JWT — the same identity scoped and
// liveness-checked on the secret path. The agent swaps its bearer to this
// value for every subsequent RPC. Never logged.
AgentToken string `protobuf:"bytes,1,opt,name=agent_token,json=agentToken,proto3" json:"agent_token,omitempty"`
// contains filtered or unexported fields
}
func (*ExchangeTokenResponse) Descriptor
deprecated
func (*ExchangeTokenResponse) Descriptor() ([]byte, []int)
Deprecated: Use ExchangeTokenResponse.ProtoReflect.Descriptor instead.
func (*ExchangeTokenResponse) GetAgentToken ¶
func (x *ExchangeTokenResponse) GetAgentToken() string
func (*ExchangeTokenResponse) ProtoMessage ¶
func (*ExchangeTokenResponse) ProtoMessage()
func (*ExchangeTokenResponse) ProtoReflect ¶
func (x *ExchangeTokenResponse) ProtoReflect() protoreflect.Message
func (*ExchangeTokenResponse) Reset ¶
func (x *ExchangeTokenResponse) Reset()
func (*ExchangeTokenResponse) String ¶
func (x *ExchangeTokenResponse) String() string
type FetchXComBatchItem ¶ added in v0.5.1
type FetchXComBatchItem struct {
UpstreamTaskId string `protobuf:"bytes,1,opt,name=upstream_task_id,json=upstreamTaskId,proto3" json:"upstream_task_id,omitempty"`
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // the resolved key ('return_value' when the request left it empty)
Found bool `protobuf:"varint,3,opt,name=found,proto3" json:"found,omitempty"` // false when the value is absent or expired (FetchXCom's NotFound)
Deferred bool `protobuf:"varint,4,opt,name=deferred,proto3" json:"deferred,omitempty"` // true when the value did not fit the response size budget; fetch it with FetchXCom
Value []byte `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"` // JSON-encoded payload, set only when found and not deferred
ContentType string `protobuf:"bytes,6,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
SizeBytes int32 `protobuf:"varint,7,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
// contains filtered or unexported fields
}
func (*FetchXComBatchItem) Descriptor
deprecated
added in
v0.5.1
func (*FetchXComBatchItem) Descriptor() ([]byte, []int)
Deprecated: Use FetchXComBatchItem.ProtoReflect.Descriptor instead.
func (*FetchXComBatchItem) GetContentType ¶ added in v0.5.1
func (x *FetchXComBatchItem) GetContentType() string
func (*FetchXComBatchItem) GetCreatedAt ¶ added in v0.5.1
func (x *FetchXComBatchItem) GetCreatedAt() *timestamppb.Timestamp
func (*FetchXComBatchItem) GetDeferred ¶ added in v0.5.1
func (x *FetchXComBatchItem) GetDeferred() bool
func (*FetchXComBatchItem) GetFound ¶ added in v0.5.1
func (x *FetchXComBatchItem) GetFound() bool
func (*FetchXComBatchItem) GetKey ¶ added in v0.5.1
func (x *FetchXComBatchItem) GetKey() string
func (*FetchXComBatchItem) GetSizeBytes ¶ added in v0.5.1
func (x *FetchXComBatchItem) GetSizeBytes() int32
func (*FetchXComBatchItem) GetUpstreamTaskId ¶ added in v0.5.1
func (x *FetchXComBatchItem) GetUpstreamTaskId() string
func (*FetchXComBatchItem) GetValue ¶ added in v0.5.1
func (x *FetchXComBatchItem) GetValue() []byte
func (*FetchXComBatchItem) ProtoMessage ¶ added in v0.5.1
func (*FetchXComBatchItem) ProtoMessage()
func (*FetchXComBatchItem) ProtoReflect ¶ added in v0.5.1
func (x *FetchXComBatchItem) ProtoReflect() protoreflect.Message
func (*FetchXComBatchItem) Reset ¶ added in v0.5.1
func (x *FetchXComBatchItem) Reset()
func (*FetchXComBatchItem) String ¶ added in v0.5.1
func (x *FetchXComBatchItem) String() string
type FetchXComBatchRequest ¶ added in v0.5.1
type FetchXComBatchRequest struct {
Items []*FetchXComRequest `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` // at most 256 items
// contains filtered or unexported fields
}
func (*FetchXComBatchRequest) Descriptor
deprecated
added in
v0.5.1
func (*FetchXComBatchRequest) Descriptor() ([]byte, []int)
Deprecated: Use FetchXComBatchRequest.ProtoReflect.Descriptor instead.
func (*FetchXComBatchRequest) GetItems ¶ added in v0.5.1
func (x *FetchXComBatchRequest) GetItems() []*FetchXComRequest
func (*FetchXComBatchRequest) ProtoMessage ¶ added in v0.5.1
func (*FetchXComBatchRequest) ProtoMessage()
func (*FetchXComBatchRequest) ProtoReflect ¶ added in v0.5.1
func (x *FetchXComBatchRequest) ProtoReflect() protoreflect.Message
func (*FetchXComBatchRequest) Reset ¶ added in v0.5.1
func (x *FetchXComBatchRequest) Reset()
func (*FetchXComBatchRequest) String ¶ added in v0.5.1
func (x *FetchXComBatchRequest) String() string
type FetchXComBatchResponse ¶ added in v0.5.1
type FetchXComBatchResponse struct {
Items []*FetchXComBatchItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` // one per request item, in request order
// contains filtered or unexported fields
}
func (*FetchXComBatchResponse) Descriptor
deprecated
added in
v0.5.1
func (*FetchXComBatchResponse) Descriptor() ([]byte, []int)
Deprecated: Use FetchXComBatchResponse.ProtoReflect.Descriptor instead.
func (*FetchXComBatchResponse) GetItems ¶ added in v0.5.1
func (x *FetchXComBatchResponse) GetItems() []*FetchXComBatchItem
func (*FetchXComBatchResponse) ProtoMessage ¶ added in v0.5.1
func (*FetchXComBatchResponse) ProtoMessage()
func (*FetchXComBatchResponse) ProtoReflect ¶ added in v0.5.1
func (x *FetchXComBatchResponse) ProtoReflect() protoreflect.Message
func (*FetchXComBatchResponse) Reset ¶ added in v0.5.1
func (x *FetchXComBatchResponse) Reset()
func (*FetchXComBatchResponse) String ¶ added in v0.5.1
func (x *FetchXComBatchResponse) String() string
type FetchXComRequest ¶
type FetchXComRequest struct {
UpstreamTaskId string `protobuf:"bytes,1,opt,name=upstream_task_id,json=upstreamTaskId,proto3" json:"upstream_task_id,omitempty"`
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` // defaults to 'return_value'
// contains filtered or unexported fields
}
func (*FetchXComRequest) Descriptor
deprecated
func (*FetchXComRequest) Descriptor() ([]byte, []int)
Deprecated: Use FetchXComRequest.ProtoReflect.Descriptor instead.
func (*FetchXComRequest) GetKey ¶
func (x *FetchXComRequest) GetKey() string
func (*FetchXComRequest) GetUpstreamTaskId ¶
func (x *FetchXComRequest) GetUpstreamTaskId() string
func (*FetchXComRequest) ProtoMessage ¶
func (*FetchXComRequest) ProtoMessage()
func (*FetchXComRequest) ProtoReflect ¶
func (x *FetchXComRequest) ProtoReflect() protoreflect.Message
func (*FetchXComRequest) Reset ¶
func (x *FetchXComRequest) Reset()
func (*FetchXComRequest) String ¶
func (x *FetchXComRequest) String() string
type FetchXComResponse ¶
type FetchXComResponse struct {
Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // JSON-encoded payload
ContentType string `protobuf:"bytes,2,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` // 'application/json' by default
SizeBytes int32 `protobuf:"varint,3,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
// contains filtered or unexported fields
}
func (*FetchXComResponse) Descriptor
deprecated
func (*FetchXComResponse) Descriptor() ([]byte, []int)
Deprecated: Use FetchXComResponse.ProtoReflect.Descriptor instead.
func (*FetchXComResponse) GetContentType ¶
func (x *FetchXComResponse) GetContentType() string
func (*FetchXComResponse) GetCreatedAt ¶
func (x *FetchXComResponse) GetCreatedAt() *timestamppb.Timestamp
func (*FetchXComResponse) GetSizeBytes ¶
func (x *FetchXComResponse) GetSizeBytes() int32
func (*FetchXComResponse) GetValue ¶
func (x *FetchXComResponse) GetValue() []byte
func (*FetchXComResponse) ProtoMessage ¶
func (*FetchXComResponse) ProtoMessage()
func (*FetchXComResponse) ProtoReflect ¶
func (x *FetchXComResponse) ProtoReflect() protoreflect.Message
func (*FetchXComResponse) Reset ¶
func (x *FetchXComResponse) Reset()
func (*FetchXComResponse) String ¶
func (x *FetchXComResponse) String() string
type GetConnectionsRequest ¶
type GetConnectionsRequest struct {
// contains filtered or unexported fields
}
func (*GetConnectionsRequest) Descriptor
deprecated
func (*GetConnectionsRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetConnectionsRequest.ProtoReflect.Descriptor instead.
func (*GetConnectionsRequest) ProtoMessage ¶
func (*GetConnectionsRequest) ProtoMessage()
func (*GetConnectionsRequest) ProtoReflect ¶
func (x *GetConnectionsRequest) ProtoReflect() protoreflect.Message
func (*GetConnectionsRequest) Reset ¶
func (x *GetConnectionsRequest) Reset()
func (*GetConnectionsRequest) String ¶
func (x *GetConnectionsRequest) String() string
type GetConnectionsResponse ¶
type GetConnectionsResponse struct {
// conn_id -> Airflow connection URI, exported as AIRFLOW_CONN_<CONN_ID>.
ConnectionUris map[string]string `` /* 177-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*GetConnectionsResponse) Descriptor
deprecated
func (*GetConnectionsResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetConnectionsResponse.ProtoReflect.Descriptor instead.
func (*GetConnectionsResponse) GetConnectionUris ¶
func (x *GetConnectionsResponse) GetConnectionUris() map[string]string
func (*GetConnectionsResponse) ProtoMessage ¶
func (*GetConnectionsResponse) ProtoMessage()
func (*GetConnectionsResponse) ProtoReflect ¶
func (x *GetConnectionsResponse) ProtoReflect() protoreflect.Message
func (*GetConnectionsResponse) Reset ¶
func (x *GetConnectionsResponse) Reset()
func (*GetConnectionsResponse) String ¶
func (x *GetConnectionsResponse) String() string
type GetTaskSpecRequest ¶
type GetTaskSpecRequest struct {
// contains filtered or unexported fields
}
func (*GetTaskSpecRequest) Descriptor
deprecated
func (*GetTaskSpecRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetTaskSpecRequest.ProtoReflect.Descriptor instead.
func (*GetTaskSpecRequest) ProtoMessage ¶
func (*GetTaskSpecRequest) ProtoMessage()
func (*GetTaskSpecRequest) ProtoReflect ¶
func (x *GetTaskSpecRequest) ProtoReflect() protoreflect.Message
func (*GetTaskSpecRequest) Reset ¶
func (x *GetTaskSpecRequest) Reset()
func (*GetTaskSpecRequest) String ¶
func (x *GetTaskSpecRequest) String() string
type GetVariablesRequest ¶
type GetVariablesRequest struct {
// contains filtered or unexported fields
}
GetVariablesRequest is empty; the calling task instance is identified by its agent token in metadata (the tenant is derived from it).
func (*GetVariablesRequest) Descriptor
deprecated
func (*GetVariablesRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetVariablesRequest.ProtoReflect.Descriptor instead.
func (*GetVariablesRequest) ProtoMessage ¶
func (*GetVariablesRequest) ProtoMessage()
func (*GetVariablesRequest) ProtoReflect ¶
func (x *GetVariablesRequest) ProtoReflect() protoreflect.Message
func (*GetVariablesRequest) Reset ¶
func (x *GetVariablesRequest) Reset()
func (*GetVariablesRequest) String ¶
func (x *GetVariablesRequest) String() string
type GetVariablesResponse ¶
type GetVariablesResponse struct {
// key -> value, exported by the agent as AIRFLOW_VAR_<KEY>.
Variables map[string]string `` /* 145-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*GetVariablesResponse) Descriptor
deprecated
func (*GetVariablesResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetVariablesResponse.ProtoReflect.Descriptor instead.
func (*GetVariablesResponse) GetVariables ¶
func (x *GetVariablesResponse) GetVariables() map[string]string
func (*GetVariablesResponse) ProtoMessage ¶
func (*GetVariablesResponse) ProtoMessage()
func (*GetVariablesResponse) ProtoReflect ¶
func (x *GetVariablesResponse) ProtoReflect() protoreflect.Message
func (*GetVariablesResponse) Reset ¶
func (x *GetVariablesResponse) Reset()
func (*GetVariablesResponse) String ¶
func (x *GetVariablesResponse) String() string
type HeartbeatRequest ¶
type HeartbeatRequest struct {
SentAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=sent_at,json=sentAt,proto3" json:"sent_at,omitempty"`
CustomMetrics map[string]float64 `` // optional task-reported metrics
/* 176-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*HeartbeatRequest) Descriptor
deprecated
func (*HeartbeatRequest) Descriptor() ([]byte, []int)
Deprecated: Use HeartbeatRequest.ProtoReflect.Descriptor instead.
func (*HeartbeatRequest) GetCustomMetrics ¶
func (x *HeartbeatRequest) GetCustomMetrics() map[string]float64
func (*HeartbeatRequest) GetSentAt ¶
func (x *HeartbeatRequest) GetSentAt() *timestamppb.Timestamp
func (*HeartbeatRequest) ProtoMessage ¶
func (*HeartbeatRequest) ProtoMessage()
func (*HeartbeatRequest) ProtoReflect ¶
func (x *HeartbeatRequest) ProtoReflect() protoreflect.Message
func (*HeartbeatRequest) Reset ¶
func (x *HeartbeatRequest) Reset()
func (*HeartbeatRequest) String ¶
func (x *HeartbeatRequest) String() string
type HeartbeatResponse ¶
type HeartbeatResponse struct {
ShouldTerminate bool `protobuf:"varint,1,opt,name=should_terminate,json=shouldTerminate,proto3" json:"should_terminate,omitempty"`
ServerTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=server_time,json=serverTime,proto3" json:"server_time,omitempty"`
// A freshly minted, task-scoped agent token the control plane issues when the
// heartbeat proves the attempt is still live (ADR 0055 Fix #4). When non-empty
// the agent atomically swaps its bearer to this value, so a long task keeps a
// working credential while the short per-attempt TTL bounds a stolen/finished
// one. Empty means "keep the current token" (no renewal this beat, or the
// attempt is superseded/past its lifetime ceiling). Never logged.
RenewedToken string `protobuf:"bytes,3,opt,name=renewed_token,json=renewedToken,proto3" json:"renewed_token,omitempty"`
// contains filtered or unexported fields
}
func (*HeartbeatResponse) Descriptor
deprecated
func (*HeartbeatResponse) Descriptor() ([]byte, []int)
Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead.
func (*HeartbeatResponse) GetRenewedToken ¶
func (x *HeartbeatResponse) GetRenewedToken() string
func (*HeartbeatResponse) GetServerTime ¶
func (x *HeartbeatResponse) GetServerTime() *timestamppb.Timestamp
func (*HeartbeatResponse) GetShouldTerminate ¶
func (x *HeartbeatResponse) GetShouldTerminate() bool
func (*HeartbeatResponse) ProtoMessage ¶
func (*HeartbeatResponse) ProtoMessage()
func (*HeartbeatResponse) ProtoReflect ¶
func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message
func (*HeartbeatResponse) Reset ¶
func (x *HeartbeatResponse) Reset()
func (*HeartbeatResponse) String ¶
func (x *HeartbeatResponse) String() string
type LogAck ¶
type LogAck struct {
AcknowledgedThroughLine int64 `` /* 133-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*LogAck) Descriptor
deprecated
func (*LogAck) GetAcknowledgedThroughLine ¶
func (*LogAck) ProtoMessage ¶
func (*LogAck) ProtoMessage()
func (*LogAck) ProtoReflect ¶
func (x *LogAck) ProtoReflect() protoreflect.Message
type LogLevel ¶
type LogLevel int32
func (LogLevel) Descriptor ¶
func (LogLevel) Descriptor() protoreflect.EnumDescriptor
func (LogLevel) EnumDescriptor
deprecated
func (LogLevel) Number ¶
func (x LogLevel) Number() protoreflect.EnumNumber
func (LogLevel) Type ¶
func (LogLevel) Type() protoreflect.EnumType
type LogLine ¶
type LogLine struct {
Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=leoflow.agent.v1.LogLevel" json:"level,omitempty"`
Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
Stream string `protobuf:"bytes,4,opt,name=stream,proto3" json:"stream,omitempty"` // 'stdout' or 'stderr'
LineNumber int64 `protobuf:"varint,5,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"`
// contains filtered or unexported fields
}
func (*LogLine) Descriptor
deprecated
func (*LogLine) GetLineNumber ¶
func (*LogLine) GetMessage ¶
func (*LogLine) GetTime ¶
func (x *LogLine) GetTime() *timestamppb.Timestamp
func (*LogLine) ProtoMessage ¶
func (*LogLine) ProtoMessage()
func (*LogLine) ProtoReflect ¶
func (x *LogLine) ProtoReflect() protoreflect.Message
type PushXComRequest ¶
type PushXComRequest struct {
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // defaults to 'return_value'
Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` // JSON-encoded payload, max 256KB
ContentType string `protobuf:"bytes,3,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"`
// contains filtered or unexported fields
}
func (*PushXComRequest) Descriptor
deprecated
func (*PushXComRequest) Descriptor() ([]byte, []int)
Deprecated: Use PushXComRequest.ProtoReflect.Descriptor instead.
func (*PushXComRequest) GetContentType ¶
func (x *PushXComRequest) GetContentType() string
func (*PushXComRequest) GetKey ¶
func (x *PushXComRequest) GetKey() string
func (*PushXComRequest) GetValue ¶
func (x *PushXComRequest) GetValue() []byte
func (*PushXComRequest) ProtoMessage ¶
func (*PushXComRequest) ProtoMessage()
func (*PushXComRequest) ProtoReflect ¶
func (x *PushXComRequest) ProtoReflect() protoreflect.Message
func (*PushXComRequest) Reset ¶
func (x *PushXComRequest) Reset()
func (*PushXComRequest) String ¶
func (x *PushXComRequest) String() string
type PushXComResponse ¶
type PushXComResponse struct {
Accepted bool `protobuf:"varint,1,opt,name=accepted,proto3" json:"accepted,omitempty"`
RejectionReason string `protobuf:"bytes,2,opt,name=rejection_reason,json=rejectionReason,proto3" json:"rejection_reason,omitempty"` // empty if accepted
TtlSeconds int32 `protobuf:"varint,3,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` // server-set TTL
// contains filtered or unexported fields
}
func (*PushXComResponse) Descriptor
deprecated
func (*PushXComResponse) Descriptor() ([]byte, []int)
Deprecated: Use PushXComResponse.ProtoReflect.Descriptor instead.
func (*PushXComResponse) GetAccepted ¶
func (x *PushXComResponse) GetAccepted() bool
func (*PushXComResponse) GetRejectionReason ¶
func (x *PushXComResponse) GetRejectionReason() string
func (*PushXComResponse) GetTtlSeconds ¶
func (x *PushXComResponse) GetTtlSeconds() int32
func (*PushXComResponse) ProtoMessage ¶
func (*PushXComResponse) ProtoMessage()
func (*PushXComResponse) ProtoReflect ¶
func (x *PushXComResponse) ProtoReflect() protoreflect.Message
func (*PushXComResponse) Reset ¶
func (x *PushXComResponse) Reset()
func (*PushXComResponse) String ¶
func (x *PushXComResponse) String() string
type RegisterRequest ¶
type RegisterRequest struct {
AgentVersion string `protobuf:"bytes,1,opt,name=agent_version,json=agentVersion,proto3" json:"agent_version,omitempty"`
Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
Environment map[string]string `` // selected env vars for diagnostics
/* 149-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*RegisterRequest) Descriptor
deprecated
func (*RegisterRequest) Descriptor() ([]byte, []int)
Deprecated: Use RegisterRequest.ProtoReflect.Descriptor instead.
func (*RegisterRequest) GetAgentVersion ¶
func (x *RegisterRequest) GetAgentVersion() string
func (*RegisterRequest) GetEnvironment ¶
func (x *RegisterRequest) GetEnvironment() map[string]string
func (*RegisterRequest) GetHostname ¶
func (x *RegisterRequest) GetHostname() string
func (*RegisterRequest) ProtoMessage ¶
func (*RegisterRequest) ProtoMessage()
func (*RegisterRequest) ProtoReflect ¶
func (x *RegisterRequest) ProtoReflect() protoreflect.Message
func (*RegisterRequest) Reset ¶
func (x *RegisterRequest) Reset()
func (*RegisterRequest) String ¶
func (x *RegisterRequest) String() string
type RegisterResponse ¶
type RegisterResponse struct {
// Server-assigned correlation token for subsequent calls.
SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
// Server clock for skew detection.
ServerTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=server_time,json=serverTime,proto3" json:"server_time,omitempty"`
// contains filtered or unexported fields
}
func (*RegisterResponse) Descriptor
deprecated
func (*RegisterResponse) Descriptor() ([]byte, []int)
Deprecated: Use RegisterResponse.ProtoReflect.Descriptor instead.
func (*RegisterResponse) GetServerTime ¶
func (x *RegisterResponse) GetServerTime() *timestamppb.Timestamp
func (*RegisterResponse) GetSessionId ¶
func (x *RegisterResponse) GetSessionId() string
func (*RegisterResponse) ProtoMessage ¶
func (*RegisterResponse) ProtoMessage()
func (*RegisterResponse) ProtoReflect ¶
func (x *RegisterResponse) ProtoReflect() protoreflect.Message
func (*RegisterResponse) Reset ¶
func (x *RegisterResponse) Reset()
func (*RegisterResponse) String ¶
func (x *RegisterResponse) String() string
type ReportStateRequest ¶
type ReportStateRequest struct {
State TaskState `protobuf:"varint,1,opt,name=state,proto3,enum=leoflow.agent.v1.TaskState" json:"state,omitempty"`
ExitCode int32 `protobuf:"varint,2,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` // for terminal states
ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` // for failed state
OccurredAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=occurred_at,json=occurredAt,proto3" json:"occurred_at,omitempty"`
// For TASK_STATE_UP_FOR_RESCHEDULE: the earliest time the scheduler may
// re-dispatch this task instance (a reschedule-mode sensor poked not-ready).
RescheduleAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=reschedule_at,json=rescheduleAt,proto3" json:"reschedule_at,omitempty"`
// contains filtered or unexported fields
}
func (*ReportStateRequest) Descriptor
deprecated
func (*ReportStateRequest) Descriptor() ([]byte, []int)
Deprecated: Use ReportStateRequest.ProtoReflect.Descriptor instead.
func (*ReportStateRequest) GetErrorMessage ¶
func (x *ReportStateRequest) GetErrorMessage() string
func (*ReportStateRequest) GetExitCode ¶
func (x *ReportStateRequest) GetExitCode() int32
func (*ReportStateRequest) GetOccurredAt ¶
func (x *ReportStateRequest) GetOccurredAt() *timestamppb.Timestamp
func (*ReportStateRequest) GetRescheduleAt ¶
func (x *ReportStateRequest) GetRescheduleAt() *timestamppb.Timestamp
func (*ReportStateRequest) GetState ¶
func (x *ReportStateRequest) GetState() TaskState
func (*ReportStateRequest) ProtoMessage ¶
func (*ReportStateRequest) ProtoMessage()
func (*ReportStateRequest) ProtoReflect ¶
func (x *ReportStateRequest) ProtoReflect() protoreflect.Message
func (*ReportStateRequest) Reset ¶
func (x *ReportStateRequest) Reset()
func (*ReportStateRequest) String ¶
func (x *ReportStateRequest) String() string
type ReportStateResponse ¶
type ReportStateResponse struct {
Acknowledged bool `protobuf:"varint,1,opt,name=acknowledged,proto3" json:"acknowledged,omitempty"`
// If the Control Plane wants the task to stop (cancellation), it signals here.
ShouldTerminate bool `protobuf:"varint,2,opt,name=should_terminate,json=shouldTerminate,proto3" json:"should_terminate,omitempty"`
// contains filtered or unexported fields
}
func (*ReportStateResponse) Descriptor
deprecated
func (*ReportStateResponse) Descriptor() ([]byte, []int)
Deprecated: Use ReportStateResponse.ProtoReflect.Descriptor instead.
func (*ReportStateResponse) GetAcknowledged ¶
func (x *ReportStateResponse) GetAcknowledged() bool
func (*ReportStateResponse) GetShouldTerminate ¶
func (x *ReportStateResponse) GetShouldTerminate() bool
func (*ReportStateResponse) ProtoMessage ¶
func (*ReportStateResponse) ProtoMessage()
func (*ReportStateResponse) ProtoReflect ¶
func (x *ReportStateResponse) ProtoReflect() protoreflect.Message
func (*ReportStateResponse) Reset ¶
func (x *ReportStateResponse) Reset()
func (*ReportStateResponse) String ¶
func (x *ReportStateResponse) String() string
type SlotFree ¶
type SlotFree struct {
// contains filtered or unexported fields
}
SlotFree signals that the worker freed an execution slot. Reserved for the placement layer (N1b1-place); the transport carries it now and the registry records it.
func (*SlotFree) Descriptor
deprecated
func (*SlotFree) ProtoMessage ¶
func (*SlotFree) ProtoMessage()
func (*SlotFree) ProtoReflect ¶
func (x *SlotFree) ProtoReflect() protoreflect.Message
type TaskSpec ¶
type TaskSpec struct {
TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
DagId string `protobuf:"bytes,2,opt,name=dag_id,json=dagId,proto3" json:"dag_id,omitempty"`
DagVersion string `protobuf:"bytes,3,opt,name=dag_version,json=dagVersion,proto3" json:"dag_version,omitempty"`
RunId string `protobuf:"bytes,4,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
TaskId string `protobuf:"bytes,5,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
TryNumber int32 `protobuf:"varint,6,opt,name=try_number,json=tryNumber,proto3" json:"try_number,omitempty"`
Operator string `protobuf:"bytes,7,opt,name=operator,proto3" json:"operator,omitempty"` // 'python', 'bash', 'airflow_operator'
Entrypoint string `protobuf:"bytes,8,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"`
Environment map[string]string `` /* 149-byte string literal not displayed */
XcomInputMapping map[string]*XComUpstreams `` // param_name -> ordered list of upstream task_ids (1 = single, N = fan-in)
/* 186-byte string literal not displayed */
ExecutionTimeoutSeconds int32 `` /* 134-byte string literal not displayed */
Extra *structpb.Struct `protobuf:"bytes,12,opt,name=extra,proto3" json:"extra,omitempty"` // operator-specific fields
CallArgsJson string `protobuf:"bytes,13,opt,name=call_args_json,json=callArgsJson,proto3" json:"call_args_json,omitempty"` // TaskFlow literal call args, JSON-encoded (#115). Named call_args to leave 'params' free for Airflow's DAG-run params (#148).
OperatorClass string `protobuf:"bytes,14,opt,name=operator_class,json=operatorClass,proto3" json:"operator_class,omitempty"` // For operator='airflow_operator': the dotted provider operator/sensor class the runtime imports and executes (ADR 0040).
OperatorArgsJson string `protobuf:"bytes,15,opt,name=operator_args_json,json=operatorArgsJson,proto3" json:"operator_args_json,omitempty"` // For operator='airflow_operator': the operator's constructor kwargs, JSON-encoded. Delivered to the runtime as LEOFLOW_OPERATOR_ARGS.
LogicalDate string `protobuf:"bytes,16,opt,name=logical_date,json=logicalDate,proto3" json:"logical_date,omitempty"` // The DagRun's logical date, RFC3339. The agent derives the runtime's LEOFLOW_TS (this value) and LEOFLOW_DS (the date) so the standalone operator context has a real ds/ts (ADR 0040). Empty leaves them unset.
DependsOn []string `protobuf:"bytes,17,rep,name=depends_on,json=dependsOn,proto3" json:"depends_on,omitempty"` // The task's upstream task_ids. The agent fetches each one's return_value and delivers them as the LEOFLOW_XCOM_BY_TASK map so a captured operator's ti.xcom_pull(<id>) resolves it (chained operators, ADR 0040).
DataIntervalStart string `protobuf:"bytes,18,opt,name=data_interval_start,json=dataIntervalStart,proto3" json:"data_interval_start,omitempty"` // The DagRun's data interval start, RFC3339. The agent stamps LEOFLOW_DATA_INTERVAL_START so the standalone operator context exposes data_interval_start (ADR 0040). Empty leaves it unset.
DataIntervalEnd string `protobuf:"bytes,19,opt,name=data_interval_end,json=dataIntervalEnd,proto3" json:"data_interval_end,omitempty"` // The DagRun's data interval end, RFC3339. Stamped as LEOFLOW_DATA_INTERVAL_END -> context data_interval_end. Empty leaves it unset.
ParamsJson string `protobuf:"bytes,20,opt,name=params_json,json=paramsJson,proto3" json:"params_json,omitempty"` // The DagRun's params/conf, JSON-encoded (#148). Stamped as LEOFLOW_PARAMS so the standalone operator context exposes context['params'] / {{ params.X }}. Empty leaves params={}.
FirstRescheduleAt string `protobuf:"bytes,21,opt,name=first_reschedule_at,json=firstRescheduleAt,proto3" json:"first_reschedule_at,omitempty"` // For a reschedule-mode sensor re-dispatched after poking not-ready (#380): the time it FIRST entered reschedule, RFC3339. Stamped as LEOFLOW_FIRST_RESCHEDULE_AT so get_first_reschedule_date returns the real value and the sensor honors its cumulative timeout. Empty on the first attempt.
MaxTries int32 `protobuf:"varint,22,opt,name=max_tries,json=maxTries,proto3" json:"max_tries,omitempty"` // The task's total attempt budget (retries + 1). The agent stamps LEOFLOW_MAX_TRIES so the runtime fires on_failure_callback only on the terminal attempt (try_number == max_tries), never on an intermediate retry (#424).
OnFailureCallback bool `protobuf:"varint,23,opt,name=on_failure_callback,json=onFailureCallback,proto3" json:"on_failure_callback,omitempty"` // The task declares an Airflow on_failure_callback (#424). The agent stamps LEOFLOW_ON_FAILURE_CALLBACK=1 so the runtime re-imports dag.py and runs it in-process on the task's final failure. The callable itself is not carried.
DeclaredVariables []string `protobuf:"bytes,24,rep,name=declared_variables,json=declaredVariables,proto3" json:"declared_variables,omitempty"` // The variable names this task declared (dexaflow.yaml). The agent asks a pod-side external secret resolver only for declared names, so declaration stays the scope authority for externally-sourced secrets too (ADR 0060 / ADR 0055).
DeclaredConnections []string `protobuf:"bytes,25,rep,name=declared_connections,json=declaredConnections,proto3" json:"declared_connections,omitempty"` // The connection ids this task declared (dexaflow.yaml). Same role as declared_variables for connections.
AttemptEpoch int64 `protobuf:"varint,26,opt,name=attempt_epoch,json=attemptEpoch,proto3" json:"attempt_epoch,omitempty"` // Which execution of this try the agent is (ADR 0051 amendment), read from its verified token; 0 for a token minted before the epoch existed. Informational for the agent: the control plane fences on the token, never on this field.
RunConfJson string `protobuf:"bytes,27,opt,name=run_conf_json,json=runConfJson,proto3" json:"run_conf_json,omitempty"` // The DagRun's conf alone, JSON-encoded ("{}" for a run without one), not layered with param defaults as params_json is (#1843). Stamped as LEOFLOW_RUN_CONF -> context dag_run.conf. Empty from a control plane that predates the field; the runtime then reports dag_run.conf as not provided.
RunType string `protobuf:"bytes,28,opt,name=run_type,json=runType,proto3" json:"run_type,omitempty"` // The DagRun's type in the Task SDK's DagRunType vocabulary (manual, scheduled, backfill, asset_triggered) (#1843). Stamped as LEOFLOW_RUN_TYPE -> context dag_run.run_type. Empty leaves it unset.
// contains filtered or unexported fields
}
func (*TaskSpec) Descriptor
deprecated
func (*TaskSpec) GetAttemptEpoch ¶ added in v0.5.1
func (*TaskSpec) GetCallArgsJson ¶
func (*TaskSpec) GetDagVersion ¶
func (*TaskSpec) GetDataIntervalEnd ¶
func (*TaskSpec) GetDataIntervalStart ¶
func (*TaskSpec) GetDeclaredConnections ¶
func (*TaskSpec) GetDeclaredVariables ¶
func (*TaskSpec) GetDependsOn ¶
func (*TaskSpec) GetEntrypoint ¶
func (*TaskSpec) GetEnvironment ¶
func (*TaskSpec) GetExecutionTimeoutSeconds ¶
func (*TaskSpec) GetFirstRescheduleAt ¶
func (*TaskSpec) GetLogicalDate ¶
func (*TaskSpec) GetMaxTries ¶
func (*TaskSpec) GetOnFailureCallback ¶
func (*TaskSpec) GetOperator ¶
func (*TaskSpec) GetOperatorArgsJson ¶
func (*TaskSpec) GetOperatorClass ¶
func (*TaskSpec) GetParamsJson ¶
func (*TaskSpec) GetRunConfJson ¶ added in v0.5.5
func (*TaskSpec) GetRunType ¶ added in v0.5.5
func (*TaskSpec) GetTenantId ¶
func (*TaskSpec) GetTryNumber ¶
func (*TaskSpec) GetXcomInputMapping ¶
func (x *TaskSpec) GetXcomInputMapping() map[string]*XComUpstreams
func (*TaskSpec) ProtoMessage ¶
func (*TaskSpec) ProtoMessage()
func (*TaskSpec) ProtoReflect ¶
func (x *TaskSpec) ProtoReflect() protoreflect.Message
type TaskState ¶
type TaskState int32
const ( TaskState_TASK_STATE_UNSPECIFIED TaskState = 0 TaskState_TASK_STATE_RUNNING TaskState = 1 TaskState_TASK_STATE_SUCCESS TaskState = 2 TaskState_TASK_STATE_FAILED TaskState = 3 TaskState_TASK_STATE_SKIPPED TaskState = 4 // A reschedule-mode sensor released its pod; re-dispatch at reschedule_at, // without consuming retry budget (ADR 0040 Phase B, #380). Distinct from // FAILED so the scheduler reschedules rather than failing/retrying the task. TaskState_TASK_STATE_UP_FOR_RESCHEDULE TaskState = 5 )
func (TaskState) Descriptor ¶
func (TaskState) Descriptor() protoreflect.EnumDescriptor
func (TaskState) EnumDescriptor
deprecated
func (TaskState) Number ¶
func (x TaskState) Number() protoreflect.EnumNumber
func (TaskState) Type ¶
func (TaskState) Type() protoreflect.EnumType
type UnimplementedAgentServiceServer ¶
type UnimplementedAgentServiceServer struct{}
UnimplementedAgentServiceServer must be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedAgentServiceServer) AwaitAssignment ¶
func (UnimplementedAgentServiceServer) AwaitAssignment(grpc.BidiStreamingServer[WorkerMessage, WorkAssignment]) error
func (UnimplementedAgentServiceServer) ExchangeToken ¶
func (UnimplementedAgentServiceServer) ExchangeToken(context.Context, *ExchangeTokenRequest) (*ExchangeTokenResponse, error)
func (UnimplementedAgentServiceServer) FetchXCom ¶
func (UnimplementedAgentServiceServer) FetchXCom(context.Context, *FetchXComRequest) (*FetchXComResponse, error)
func (UnimplementedAgentServiceServer) FetchXComBatch ¶ added in v0.5.1
func (UnimplementedAgentServiceServer) FetchXComBatch(context.Context, *FetchXComBatchRequest) (*FetchXComBatchResponse, error)
func (UnimplementedAgentServiceServer) GetConnections ¶
func (UnimplementedAgentServiceServer) GetConnections(context.Context, *GetConnectionsRequest) (*GetConnectionsResponse, error)
func (UnimplementedAgentServiceServer) GetTaskSpec ¶
func (UnimplementedAgentServiceServer) GetTaskSpec(context.Context, *GetTaskSpecRequest) (*TaskSpec, error)
func (UnimplementedAgentServiceServer) GetVariables ¶
func (UnimplementedAgentServiceServer) GetVariables(context.Context, *GetVariablesRequest) (*GetVariablesResponse, error)
func (UnimplementedAgentServiceServer) Heartbeat ¶
func (UnimplementedAgentServiceServer) Heartbeat(context.Context, *HeartbeatRequest) (*HeartbeatResponse, error)
func (UnimplementedAgentServiceServer) PushXCom ¶
func (UnimplementedAgentServiceServer) PushXCom(context.Context, *PushXComRequest) (*PushXComResponse, error)
func (UnimplementedAgentServiceServer) Register ¶
func (UnimplementedAgentServiceServer) Register(context.Context, *RegisterRequest) (*RegisterResponse, error)
func (UnimplementedAgentServiceServer) ReportState ¶
func (UnimplementedAgentServiceServer) ReportState(context.Context, *ReportStateRequest) (*ReportStateResponse, error)
func (UnimplementedAgentServiceServer) StreamLogs ¶
func (UnimplementedAgentServiceServer) StreamLogs(grpc.BidiStreamingServer[LogLine, LogAck]) error
type UnsafeAgentServiceServer ¶
type UnsafeAgentServiceServer interface {
// contains filtered or unexported methods
}
UnsafeAgentServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to AgentServiceServer will result in compilation errors.
type WorkAssignment ¶
type WorkAssignment struct {
AssignmentId string `protobuf:"bytes,1,opt,name=assignment_id,json=assignmentId,proto3" json:"assignment_id,omitempty"` // control-plane-generated correlation id for this hand-off
AttemptToken string `protobuf:"bytes,2,opt,name=attempt_token,json=attemptToken,proto3" json:"attempt_token,omitempty"` // per-attempt agent JWT the worker adopts for this attempt; NEVER logged
DagRunId string `protobuf:"bytes,3,opt,name=dag_run_id,json=dagRunId,proto3" json:"dag_run_id,omitempty"`
TaskId string `protobuf:"bytes,4,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
TryNumber int32 `protobuf:"varint,5,opt,name=try_number,json=tryNumber,proto3" json:"try_number,omitempty"`
DagVersionId string `protobuf:"bytes,6,opt,name=dag_version_id,json=dagVersionId,proto3" json:"dag_version_id,omitempty"` // the pool identity this assignment belongs to
LeaseSeconds int64 `protobuf:"varint,7,opt,name=lease_seconds,json=leaseSeconds,proto3" json:"lease_seconds,omitempty"` // ack deadline: unacked within it => the attempt is reclaimed
AttemptEpoch int64 `protobuf:"varint,8,opt,name=attempt_epoch,json=attemptEpoch,proto3" json:"attempt_epoch,omitempty"` // the execution of try_number this assignment is (ADR 0051 amendment); also carried in attempt_token, which is what the control plane fences on
// dag_source is the version's dag.py when the version runs in source mode
// (ADR 0067 §3, ADR 0095), empty otherwise. The worker writes it as dag.py
// into a per-attempt directory and runs the attempt from there, as a
// dedicated source-mode pod runs from its projected dag.py. Only a worker
// that registered with source_delivery is sent one. At most
// MaxSourceModeBytes (128 KiB), the cap register and dispatch apply.
DagSource []byte `protobuf:"bytes,9,opt,name=dag_source,json=dagSource,proto3" json:"dag_source,omitempty"`
// dag_source_sha256 is the lowercase hex SHA-256 of dag_source, set with
// it. The worker refuses the assignment when the text it received does not
// match.
DagSourceSha256 string `protobuf:"bytes,10,opt,name=dag_source_sha256,json=dagSourceSha256,proto3" json:"dag_source_sha256,omitempty"`
// contains filtered or unexported fields
}
WorkAssignment is one unit of per-attempt work the control plane hands to a warm worker over AwaitAssignment (ADR 0058 N1b). The control plane mints the attempt_token and generates assignment_id; the worker replies with an AssignmentAck referencing assignment_id.
func (*WorkAssignment) Descriptor
deprecated
func (*WorkAssignment) Descriptor() ([]byte, []int)
Deprecated: Use WorkAssignment.ProtoReflect.Descriptor instead.
func (*WorkAssignment) GetAssignmentId ¶
func (x *WorkAssignment) GetAssignmentId() string
func (*WorkAssignment) GetAttemptEpoch ¶ added in v0.5.1
func (x *WorkAssignment) GetAttemptEpoch() int64
func (*WorkAssignment) GetAttemptToken ¶
func (x *WorkAssignment) GetAttemptToken() string
func (*WorkAssignment) GetDagRunId ¶
func (x *WorkAssignment) GetDagRunId() string
func (*WorkAssignment) GetDagSource ¶ added in v0.5.7
func (x *WorkAssignment) GetDagSource() []byte
func (*WorkAssignment) GetDagSourceSha256 ¶ added in v0.5.7
func (x *WorkAssignment) GetDagSourceSha256() string
func (*WorkAssignment) GetDagVersionId ¶
func (x *WorkAssignment) GetDagVersionId() string
func (*WorkAssignment) GetLeaseSeconds ¶
func (x *WorkAssignment) GetLeaseSeconds() int64
func (*WorkAssignment) GetTaskId ¶
func (x *WorkAssignment) GetTaskId() string
func (*WorkAssignment) GetTryNumber ¶
func (x *WorkAssignment) GetTryNumber() int32
func (*WorkAssignment) ProtoMessage ¶
func (*WorkAssignment) ProtoMessage()
func (*WorkAssignment) ProtoReflect ¶
func (x *WorkAssignment) ProtoReflect() protoreflect.Message
func (*WorkAssignment) Reset ¶
func (x *WorkAssignment) Reset()
func (*WorkAssignment) String ¶
func (x *WorkAssignment) String() string
type WorkerMessage ¶
type WorkerMessage struct {
// Types that are valid to be assigned to Msg:
//
// *WorkerMessage_Register
// *WorkerMessage_Ack
// *WorkerMessage_SlotFree
Msg isWorkerMessage_Msg `protobuf_oneof:"msg"`
// contains filtered or unexported fields
}
WorkerMessage is everything a warm worker sends UP the AwaitAssignment stream: its one initial registration, then per-assignment acks and slot-free signals.
func (*WorkerMessage) Descriptor
deprecated
func (*WorkerMessage) Descriptor() ([]byte, []int)
Deprecated: Use WorkerMessage.ProtoReflect.Descriptor instead.
func (*WorkerMessage) GetAck ¶
func (x *WorkerMessage) GetAck() *AssignmentAck
func (*WorkerMessage) GetMsg ¶
func (x *WorkerMessage) GetMsg() isWorkerMessage_Msg
func (*WorkerMessage) GetRegister ¶
func (x *WorkerMessage) GetRegister() *WorkerRegister
func (*WorkerMessage) GetSlotFree ¶
func (x *WorkerMessage) GetSlotFree() *SlotFree
func (*WorkerMessage) ProtoMessage ¶
func (*WorkerMessage) ProtoMessage()
func (*WorkerMessage) ProtoReflect ¶
func (x *WorkerMessage) ProtoReflect() protoreflect.Message
func (*WorkerMessage) Reset ¶
func (x *WorkerMessage) Reset()
func (*WorkerMessage) String ¶
func (x *WorkerMessage) String() string
type WorkerMessage_Ack ¶
type WorkerMessage_Ack struct {
Ack *AssignmentAck `protobuf:"bytes,2,opt,name=ack,proto3,oneof"`
}
type WorkerMessage_Register ¶
type WorkerMessage_Register struct {
Register *WorkerRegister `protobuf:"bytes,1,opt,name=register,proto3,oneof"`
}
type WorkerMessage_SlotFree ¶
type WorkerMessage_SlotFree struct {
SlotFree *SlotFree `protobuf:"bytes,3,opt,name=slot_free,json=slotFree,proto3,oneof"`
}
type WorkerRegister ¶
type WorkerRegister struct {
DagVersionId string `protobuf:"bytes,1,opt,name=dag_version_id,json=dagVersionId,proto3" json:"dag_version_id,omitempty"`
// pod_name is the worker's OWN Kubernetes pod name, delivered to the
// container via the downward API (LEOFLOW_POD_NAME). It is the durable key
// the control plane binds a started attempt to (warm_worker_id on the running
// TI) so a later reaper can match bound attempts against the live warm-pod set
// ListWarmPods returns, even after a leader failover. Unlike an identity, it
// is a locator, not a credential: the worker's authenticated identity still
// comes from its bearer token on the stream context, never from this field.
PodName string `protobuf:"bytes,2,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"`
// attempt_home_sweep confirms that this worker runs with a per-attempt HOME
// and empties /tmp and /dev/shm before and after every attempt (the
// read-only-root isolation mode, LEOFLOW_WARM_ATTEMPT_HOME=1). A worker
// built on an older runtime never sets it. With
// execution.warm_read_only_root_filesystem on, the control plane logs and
// meters a registration that does not confirm the sweep, and refuses it
// when execution.warm_require_attempt_home_sweep is on too, so attempts run
// on dedicated pods instead of on a worker that would leak those paths.
AttemptHomeSweep bool `protobuf:"varint,3,opt,name=attempt_home_sweep,json=attemptHomeSweep,proto3" json:"attempt_home_sweep,omitempty"`
// source_delivery confirms that this worker writes a WorkAssignment's
// dag_source as dag.py and runs the attempt from it (ADR 0095). A worker
// built on an older runtime never sets it, and the control plane never
// places a source-mode attempt on such a worker: the attempt takes a
// dedicated pod instead.
SourceDelivery bool `protobuf:"varint,4,opt,name=source_delivery,json=sourceDelivery,proto3" json:"source_delivery,omitempty"`
// contains filtered or unexported fields
}
WorkerRegister is the mandatory first WorkerMessage. dag_version_id names which pool the worker serves. The worker's IDENTITY (registry key) is taken from its authenticated pod/bootstrap credential on the stream context, NOT from this payload — a worker must not be able to claim an arbitrary identity here.
func (*WorkerRegister) Descriptor
deprecated
func (*WorkerRegister) Descriptor() ([]byte, []int)
Deprecated: Use WorkerRegister.ProtoReflect.Descriptor instead.
func (*WorkerRegister) GetAttemptHomeSweep ¶ added in v0.5.5
func (x *WorkerRegister) GetAttemptHomeSweep() bool
func (*WorkerRegister) GetDagVersionId ¶
func (x *WorkerRegister) GetDagVersionId() string
func (*WorkerRegister) GetPodName ¶
func (x *WorkerRegister) GetPodName() string
func (*WorkerRegister) GetSourceDelivery ¶ added in v0.5.7
func (x *WorkerRegister) GetSourceDelivery() bool
func (*WorkerRegister) ProtoMessage ¶
func (*WorkerRegister) ProtoMessage()
func (*WorkerRegister) ProtoReflect ¶
func (x *WorkerRegister) ProtoReflect() protoreflect.Message
func (*WorkerRegister) Reset ¶
func (x *WorkerRegister) Reset()
func (*WorkerRegister) String ¶
func (x *WorkerRegister) String() string
type XComUpstreams ¶
type XComUpstreams struct {
TaskIds []string `protobuf:"bytes,1,rep,name=task_ids,json=taskIds,proto3" json:"task_ids,omitempty"`
// contains filtered or unexported fields
}
XComUpstreams is the list of upstream task_ids whose return_values feed one parameter. A single upstream is `task_ids: ["extract"]`; fan-in (binding a list of upstreams to a parameter) is `task_ids: ["a", "b", "c"]`. The runtime receives a JSON array when len > 1, and a single value when len == 1 — so a fan-in parameter is delivered as a list, a normal parameter as the value.
func (*XComUpstreams) Descriptor
deprecated
func (*XComUpstreams) Descriptor() ([]byte, []int)
Deprecated: Use XComUpstreams.ProtoReflect.Descriptor instead.
func (*XComUpstreams) GetTaskIds ¶
func (x *XComUpstreams) GetTaskIds() []string
func (*XComUpstreams) ProtoMessage ¶
func (*XComUpstreams) ProtoMessage()
func (*XComUpstreams) ProtoReflect ¶
func (x *XComUpstreams) ProtoReflect() protoreflect.Message
func (*XComUpstreams) Reset ¶
func (x *XComUpstreams) Reset()
func (*XComUpstreams) String ¶
func (x *XComUpstreams) String() string