Start a durable execution from an application
Changed onStarts an execution of a durable function using an application credential, and returns its handle.
This is the durable counterpart of POST /functions/{functionId}/invoke, and it is the endpoint an application calls. Like that one, it is not project-scoped: an anon key, a service key and an auth user token each carry their own project. The project-scoped collection under /projects/{id}/durable-functions/... remains the owner's management surface.
With a service key: any durable function in the project.
With an auth user token: a durable function whose visibility is authenticated or public.
With an anon key: requires the functions.invoke permission, and the function must have visibility: public.
A private durable function answers every credential but a service key exactly as a missing one, with 404.
Starting is all this endpoint does. Reading a result or stopping an execution requires the project owner's token, because an anon key is shared by everyone who loads the page and an execution is addressed by id alone.
Send X-Volcano-Execution-Name to make the start idempotent: repeating a start with the same name returns the existing execution instead of beginning a second one.
Each execution counts once against the project's durable execution allowance, however many times the start is retried under the same execution name, and the number in flight at once is capped by the plan. The operations the execution performs are counted against the durable operations allowance when it finishes.
Request
- Base URL: https://api.volcano.dev
- URL: https://api.volcano.dev/durable-functions/{functionId}/executions
- Auth: one of:
- HTTP bearer
- HTTP bearer
- HTTP bearer
Path parameters
Durable function ID, or its name within the project
Headers
Idempotency key for this execution. Generated when omitted. A repeat under a name that already names a running execution returns that execution and is not charged again.
Letters, digits, -, _ and ., up to 255 characters. Anything else is rejected with 400.
Request body
Response
Execution accepted and started
Changes
- ○
endpoint added
- ○