Remove Start Workflow Run endpoint (duplicates Start Run)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Bryan Helmkamp 2026-03-07 17:47:26 -05:00
parent 6bb95b92b0
commit ac535b925b
8 changed files with 3 additions and 178 deletions

View file

@ -283,18 +283,6 @@ pub async fn list_workflow_runs(
paginated_response(items, &pagination)
}
pub async fn trigger_workflow_run_stub(
_auth: AuthenticatedService,
State(_state): State<Arc<AppState>>,
Path(_name): Path<String>,
) -> Response {
(
StatusCode::CREATED,
Json(serde_json::json!({"id": "demo-workflow-run", "status": "queued", "created_at": "2026-03-06T14:30:00Z"})),
)
.into_response()
}
// ── Verification ──────────────────────────────────────────────────────
pub async fn list_verification_criteria(

View file

@ -193,7 +193,7 @@ fn demo_routes() -> Router<Arc<AppState>> {
.route("/workflows/{name}", get(crate::demo::get_workflow))
.route(
"/workflows/{name}/runs",
get(crate::demo::list_workflow_runs).post(crate::demo::trigger_workflow_run_stub),
get(crate::demo::list_workflow_runs),
)
.route(
"/verification/criteria",
@ -267,7 +267,7 @@ fn real_routes() -> Router<Arc<AppState>> {
.route("/workflows/{name}", get(not_implemented))
.route(
"/workflows/{name}/runs",
get(not_implemented).post(not_implemented),
get(not_implemented),
)
.route("/verification/criteria", get(not_implemented))
.route("/verification/criteria/{id}", get(not_implemented))

View file

@ -653,32 +653,6 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
post:
operationId: startWorkflowRun
tags: [Workflows]
summary: Start Workflow Run
description: Queues a new run of the specified workflow using its stored DOT graph.
parameters:
- $ref: "#/components/parameters/WorkflowName"
requestBody:
required: false
content:
application/json:
schema:
$ref: "#/components/schemas/StartWorkflowRunRequest"
responses:
"201":
description: Run created
content:
application/json:
schema:
$ref: "#/components/schemas/RunStatusResponse"
"404":
description: Workflow not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
# ── Verification ──────────────────────────────────────────────────────
@ -1611,21 +1585,6 @@ components:
- failed
- cancelled
StartWorkflowRunRequest:
description: Optional request body for starting a workflow run with overrides.
type: object
properties:
goal:
type: string
description: Goal description override for this run.
vars:
type: object
additionalProperties:
type: string
description: Variable map overrides for template expansion.
llm:
$ref: "#/components/schemas/LlmConfiguration"
StartRunRequest:
description: Request body for starting a new run from a DOT graph source.
type: object

View file

@ -230,8 +230,7 @@
"pages": [
"GET /workflows",
"GET /workflows/{name}",
"GET /workflows/{name}/runs",
"POST /workflows/{name}/runs"
"GET /workflows/{name}/runs"
]
},
{

View file

@ -127,7 +127,6 @@ models/stage-retro.ts
models/stage-status.ts
models/stage-turn.ts
models/start-run-request.ts
models/start-workflow-run-request.ts
models/steer-request.ts
models/submit-answer-request.ts
models/system-stage-turn.ts

View file

@ -28,10 +28,6 @@ import type { PaginatedRunList } from '../models';
// @ts-ignore
import type { PaginatedWorkflowList } from '../models';
// @ts-ignore
import type { RunStatusResponse } from '../models';
// @ts-ignore
import type { StartWorkflowRunRequest } from '../models';
// @ts-ignore
import type { WorkflowDetail } from '../models';
/**
* WorkflowsApi - axios parameter creator
@ -172,50 +168,6 @@ export const WorkflowsApiAxiosParamCreator = function (configuration?: Configura
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
* Queues a new run of the specified workflow using its stored DOT graph.
* @summary Start Workflow Run
* @param {string} name URL-safe slug identifying a workflow definition.
* @param {StartWorkflowRunRequest} [startWorkflowRunRequest]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
startWorkflowRun: async (name: string, startWorkflowRunRequest?: StartWorkflowRunRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'name' is not null or undefined
assertParamExists('startWorkflowRun', 'name', name)
const localVarPath = `/workflows/{name}/runs`
.replace(`{${"name"}}`, encodeURIComponent(String(name)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication mTLS required
await setApiKeyToObject(localVarHeaderParameter, "X-mTLS-Client-CN", configuration)
// authentication BearerAuth required
// http bearer authentication required
await setBearerAuthToObject(localVarHeaderParameter, configuration)
localVarHeaderParameter['Content-Type'] = 'application/json';
localVarHeaderParameter['Accept'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(startWorkflowRunRequest, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
@ -272,20 +224,6 @@ export const WorkflowsApiFp = function(configuration?: Configuration) {
const localVarOperationServerBasePath = operationServerMap['WorkflowsApi.retrieveWorkflow']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
},
/**
* Queues a new run of the specified workflow using its stored DOT graph.
* @summary Start Workflow Run
* @param {string} name URL-safe slug identifying a workflow definition.
* @param {StartWorkflowRunRequest} [startWorkflowRunRequest]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async startWorkflowRun(name: string, startWorkflowRunRequest?: StartWorkflowRunRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RunStatusResponse>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.startWorkflowRun(name, startWorkflowRunRequest, options);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath = operationServerMap['WorkflowsApi.startWorkflowRun']?.[localVarOperationServerIndex]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
},
}
};
@ -328,17 +266,6 @@ export const WorkflowsApiFactory = function (configuration?: Configuration, base
retrieveWorkflow(name: string, options?: RawAxiosRequestConfig): AxiosPromise<WorkflowDetail> {
return localVarFp.retrieveWorkflow(name, options).then((request) => request(axios, basePath));
},
/**
* Queues a new run of the specified workflow using its stored DOT graph.
* @summary Start Workflow Run
* @param {string} name URL-safe slug identifying a workflow definition.
* @param {StartWorkflowRunRequest} [startWorkflowRunRequest]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
startWorkflowRun(name: string, startWorkflowRunRequest?: StartWorkflowRunRequest, options?: RawAxiosRequestConfig): AxiosPromise<RunStatusResponse> {
return localVarFp.startWorkflowRun(name, startWorkflowRunRequest, options).then((request) => request(axios, basePath));
},
};
};
@ -381,17 +308,5 @@ export class WorkflowsApi extends BaseAPI {
public retrieveWorkflow(name: string, options?: RawAxiosRequestConfig) {
return WorkflowsApiFp(this.configuration).retrieveWorkflow(name, options).then((request) => request(this.axios, this.basePath));
}
/**
* Queues a new run of the specified workflow using its stored DOT graph.
* @summary Start Workflow Run
* @param {string} name URL-safe slug identifying a workflow definition.
* @param {StartWorkflowRunRequest} [startWorkflowRunRequest]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public startWorkflowRun(name: string, startWorkflowRunRequest?: StartWorkflowRunRequest, options?: RawAxiosRequestConfig) {
return WorkflowsApiFp(this.configuration).startWorkflowRun(name, startWorkflowRunRequest, options).then((request) => request(this.axios, this.basePath));
}
}

View file

@ -107,7 +107,6 @@ export * from './stage-retro';
export * from './stage-status';
export * from './stage-turn';
export * from './start-run-request';
export * from './start-workflow-run-request';
export * from './steer-request';
export * from './submit-answer-request';
export * from './system-stage-turn';

View file

@ -1,34 +0,0 @@
/* tslint:disable */
/* eslint-disable */
/**
* Arc Run API
* HTTP API for managing Arc workflow run executions.
*
* The version of the OpenAPI document: 0.1.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { LlmConfiguration } from './llm-configuration';
/**
* Optional request body for starting a workflow run with overrides.
*/
export interface StartWorkflowRunRequest {
/**
* Goal description override for this run.
*/
'goal'?: string;
/**
* Variable map overrides for template expansion.
*/
'vars'?: { [key: string]: string; };
'llm'?: LlmConfiguration;
}