feat(web): api client for step import/export/inline/defaults
This commit is contained in:
@@ -84,7 +84,7 @@ export default function WorkflowBuilder() {
|
||||
return <div className="p-8 text-text-secondary">Loading…</div>;
|
||||
}
|
||||
|
||||
const libById = (sid: string) => library?.find((l) => l.step_id === sid);
|
||||
const libById = (sid?: string) => (sid ? library?.find((l) => l.step_id === sid) : undefined);
|
||||
|
||||
const sortedSteps = [...wf.steps].sort((a, b) => a.order - b.order);
|
||||
const selectedRef = selected !== null ? sortedSteps[selected] : null;
|
||||
|
||||
+28
-1
@@ -148,10 +148,13 @@ export interface WorkflowStep {
|
||||
declared_outputs: string[];
|
||||
declared_inputs: InputParam[];
|
||||
secret_refs: string[];
|
||||
source?: "user" | "default";
|
||||
slug?: string;
|
||||
}
|
||||
|
||||
export interface WorkflowStepRef {
|
||||
step_id: string;
|
||||
step_id?: string;
|
||||
inline?: WorkflowStep;
|
||||
order: number;
|
||||
on_failure: "stop" | "continue" | "retry";
|
||||
max_retries: number;
|
||||
@@ -419,6 +422,30 @@ export const api = {
|
||||
return request<void>(`/steps/${stepId}`, { method: "DELETE" });
|
||||
},
|
||||
|
||||
exportStepUrl(stepId: string): string {
|
||||
return `/api/steps/${stepId}/export`;
|
||||
},
|
||||
|
||||
importStep(doc: unknown): Promise<WorkflowStep> {
|
||||
return request<WorkflowStep>("/steps/import", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(doc),
|
||||
});
|
||||
},
|
||||
|
||||
parseStep(doc: unknown): Promise<WorkflowStep> {
|
||||
return request<WorkflowStep>("/steps/parse", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(doc),
|
||||
});
|
||||
},
|
||||
|
||||
seedDefaults(): Promise<{ created: number; updated: number }> {
|
||||
return request<{ created: number; updated: number }>("/steps/seed-defaults", {
|
||||
method: "POST",
|
||||
});
|
||||
},
|
||||
|
||||
// Workflows
|
||||
listWorkflows(): Promise<Workflow[]> {
|
||||
return request<Workflow[]>("/workflows");
|
||||
|
||||
Reference in New Issue
Block a user