Documentation
¶
Index ¶
- Constants
- Variables
- type Client
- func (_c Client) Assets(ctx context.Context, relativeURL string) (res *http.Response, err error)
- func (_c Client) Dashboard(ctx context.Context, relativeURL string) (res *http.Response, err error)
- func (_c Client) FlowDetail(ctx context.Context, relativeURL string) (res *http.Response, err error)
- func (_c Client) ForHost(host string) Client
- func (_c Client) ListFlows(ctx context.Context, relativeURL string) (res *http.Response, err error)
- func (_c Client) ListWorkflows(ctx context.Context, relativeURL string) (res *http.Response, err error)
- func (_c Client) TaskDetail(ctx context.Context, relativeURL string) (res *http.Response, err error)
- func (_c Client) WithOptions(opts ...pub.Option) Client
- func (_c Client) WorkflowDetail(ctx context.Context, relativeURL string) (res *http.Response, err error)
- type Def
- type Executor
- func (_c Executor) ForHost(host string) Executor
- func (_c Executor) WithFlowOptions(flowOptions *workflow.FlowOptions) Executor
- func (_c Executor) WithInputFlow(flow *workflow.Flow) Executor
- func (_c Executor) WithOptions(opts ...pub.Option) Executor
- func (_c Executor) WithOutputFlow(flow *workflow.Flow) Executor
- func (_c Executor) WithWorkflowRunner(runner WorkflowRunner) Executor
- type Hook
- type MulticastClient
- func (_c MulticastClient) Assets(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
- func (_c MulticastClient) Dashboard(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
- func (_c MulticastClient) FlowDetail(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
- func (_c MulticastClient) ForHost(host string) MulticastClient
- func (_c MulticastClient) ListFlows(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
- func (_c MulticastClient) ListWorkflows(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
- func (_c MulticastClient) TaskDetail(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
- func (_c MulticastClient) WithOptions(opts ...pub.Option) MulticastClient
- func (_c MulticastClient) WorkflowDetail(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
- type MulticastTrigger
- type Subflow
- type WorkflowRunner
Constants ¶
const Hostname = "agentstudio.dev"
Hostname is the default hostname of the microservice.
Variables ¶
var ( // HINT: Insert endpoint definitions here ListFlows = Def{Method: "ANY", Route: "/flows"} // MARKER: ListFlows FlowDetail = Def{Method: "ANY", Route: "/flows/{flowKey}"} // MARKER: FlowDetail StepDetail = Def{Method: "ANY", Route: "/steps/{stepKey}"} // MARKER: StepDetail ListWorkflows = Def{Method: "ANY", Route: "/workflows"} // MARKER: ListWorkflows WorkflowDetail = Def{Method: "ANY", Route: "/workflows/{workflowURL...}"} // MARKER: WorkflowDetail RunWorkflow = Def{Method: "ANY", Route: "/run-workflow"} // MARKER: RunWorkflow ContinueFlow = Def{Method: "ANY", Route: "/continue-flow"} // MARKER: ContinueFlow ResumeFlow = Def{Method: "ANY", Route: "/resume-flow"} // MARKER: ResumeFlow RestartFlow = Def{Method: "ANY", Route: "/restart-flow"} // MARKER: RestartFlow RestartFromStep = Def{Method: "ANY", Route: "/restart-from-step"} // MARKER: RestartFromStep PollFlow = Def{Method: "GET", Route: "/poll-flow"} // MARKER: PollFlow TaskDetail = Def{Method: "ANY", Route: "/task-detail"} // MARKER: TaskDetail Dashboard = Def{Method: "ANY", Route: "/dashboard"} // MARKER: Dashboard Assets = Def{Method: "GET", Route: "//bespa/{path...}"} // MARKER: Assets )
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a lightweight proxy for making unicast calls to the microservice.
func (Client) Assets ¶
Assets serves the bespa CSS and JavaScript assets at /bespa/.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (Client) Dashboard ¶
Dashboard renders an HTML page with operator dashboards for flows and workflows.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (Client) FlowDetail ¶
func (_c Client) FlowDetail(ctx context.Context, relativeURL string) (res *http.Response, err error)
FlowDetail shows the details of a single flow.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (Client) ForHost ¶
ForHost returns a copy of the client with a different hostname to be applied to requests.
func (Client) ListFlows ¶
ListFlows shows the flow matrix.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (Client) ListWorkflows ¶
func (_c Client) ListWorkflows(ctx context.Context, relativeURL string) (res *http.Response, err error)
ListWorkflows renders an HTML page listing the workflows available in the system.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (Client) TaskDetail ¶
func (_c Client) TaskDetail(ctx context.Context, relativeURL string) (res *http.Response, err error)
TaskDetail renders an HTML page with the metadata of a single task in a workflow graph.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (Client) WithOptions ¶
WithOptions returns a copy of the client with options to be applied to requests.
func (Client) WorkflowDetail ¶
func (_c Client) WorkflowDetail(ctx context.Context, relativeURL string) (res *http.Response, err error)
WorkflowDetail renders an HTML page with the structure and definition of a single workflow graph.
If a URL is provided, it is resolved relative to the URL of the endpoint.
type Executor ¶
type Executor struct {
// contains filtered or unexported fields
}
Executor runs tasks and workflows synchronously, blocking until termination. It is primarily intended for integration tests.
func NewExecutor ¶
NewExecutor creates a new executor proxy to the microservice.
func (Executor) ForHost ¶
ForHost returns a copy of the executor with a different hostname to be applied to requests.
func (Executor) WithFlowOptions ¶
func (_c Executor) WithFlowOptions(flowOptions *workflow.FlowOptions) Executor
WithFlowOptions returns a copy of the executor that creates workflows with the given flow options (priority, fairness key and weight). It has no effect on task execution.
func (Executor) WithInputFlow ¶
WithInputFlow returns a copy of the executor with an input flow to use for task execution. The input flow's state is available to the task in addition to the typed input arguments.
func (Executor) WithOptions ¶
WithOptions returns a copy of the executor with options to be applied to requests.
func (Executor) WithOutputFlow ¶
WithOutputFlow returns a copy of the executor with an output flow to populate after task execution. The output flow captures the full flow state including control signals (Goto, Retry, Interrupt, Sleep).
func (Executor) WithWorkflowRunner ¶
func (_c Executor) WithWorkflowRunner(runner WorkflowRunner) Executor
WithWorkflowRunner returns a copy of the executor with a workflow runner for executing workflows. foremanapi.NewClient(svc) satisfies the WorkflowRunner interface.
type Hook ¶
type Hook struct {
// contains filtered or unexported fields
}
Hook assists in the subscription to the events of the microservice.
func NewHook ¶
func NewHook(listener service.Subscriber) Hook
NewHook creates a new hook to the events of the microservice.
type MulticastClient ¶
type MulticastClient struct {
// contains filtered or unexported fields
}
MulticastClient is a lightweight proxy for making multicast calls to the microservice.
func NewMulticastClient ¶
func NewMulticastClient(caller service.Publisher) MulticastClient
NewMulticastClient creates a new multicast client proxy to the microservice.
func (MulticastClient) Assets ¶
Assets serves the bespa CSS and JavaScript assets at /bespa/.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (MulticastClient) Dashboard ¶
func (_c MulticastClient) Dashboard(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
Dashboard renders an HTML page with operator dashboards for flows and workflows.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (MulticastClient) FlowDetail ¶
func (_c MulticastClient) FlowDetail(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
FlowDetail shows the details of a single flow.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (MulticastClient) ForHost ¶
func (_c MulticastClient) ForHost(host string) MulticastClient
ForHost returns a copy of the client with a different hostname to be applied to requests.
func (MulticastClient) ListFlows ¶
func (_c MulticastClient) ListFlows(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
ListFlows shows the flow matrix.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (MulticastClient) ListWorkflows ¶
func (_c MulticastClient) ListWorkflows(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
ListWorkflows renders an HTML page listing the workflows available in the system.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (MulticastClient) TaskDetail ¶
func (_c MulticastClient) TaskDetail(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
TaskDetail renders an HTML page with the metadata of a single task in a workflow graph.
If a URL is provided, it is resolved relative to the URL of the endpoint.
func (MulticastClient) WithOptions ¶
func (_c MulticastClient) WithOptions(opts ...pub.Option) MulticastClient
WithOptions returns a copy of the client with options to be applied to requests.
func (MulticastClient) WorkflowDetail ¶
func (_c MulticastClient) WorkflowDetail(ctx context.Context, relativeURL string) iter.Seq[*pub.Response]
WorkflowDetail renders an HTML page with the structure and definition of a single workflow graph.
If a URL is provided, it is resolved relative to the URL of the endpoint.
type MulticastTrigger ¶
type MulticastTrigger struct {
// contains filtered or unexported fields
}
MulticastTrigger is a lightweight proxy for triggering the events of the microservice.
func NewMulticastTrigger ¶
func NewMulticastTrigger(caller service.Publisher) MulticastTrigger
NewMulticastTrigger creates a new multicast trigger of events of the microservice.
func (MulticastTrigger) ForHost ¶
func (_c MulticastTrigger) ForHost(host string) MulticastTrigger
ForHost returns a copy of the trigger with a different hostname to be applied to requests.
func (MulticastTrigger) WithOptions ¶
func (_c MulticastTrigger) WithOptions(opts ...pub.Option) MulticastTrigger
WithOptions returns a copy of the trigger with options to be applied to requests.
type Subflow ¶ added in v1.40.0
type Subflow struct {
// contains filtered or unexported fields
}
Subflow runs this microservice's tasks and workflows as isolated child flows from INSIDE a task body. Unlike Executor (which carries a service.Publisher and is for tests), Subflow carries the calling task's *workflow.Flow: each method parks the calling step and re-enters it when the child terminates, returning (..., yield bool, err error). Only the explicit inputs cross into the child and only the explicit outputs cross back - the caller's flow state is NOT shared. This is the blessed way for one task to invoke another unit of work with state isolation; do not call Executor or foremanapi from a task body.
func NewSubflow ¶ added in v1.40.0
NewSubflow creates a subflow client bound to the calling task's flow carrier.
type WorkflowRunner ¶
type WorkflowRunner interface {
Run(ctx context.Context, workflowName string, initialState any, opts *workflow.FlowOptions) (outcome *workflow.FlowOutcome, err error)
}
WorkflowRunner executes a workflow by name with initial state, blocking until termination. foremanapi.Client satisfies this interface.