Workflows and apps
The authoring surface behind geni resource, geni workflow, and geni app: scaffold, push files, validate, wire config, publish, test, and read executions.
A workflow is a code workflow, an agent workflow, or an app. All three share one id space (wf_…) and one lifecycle. The routes here are what the CLI calls; a personal key can drive the same loop from CI or a script.
workflows:manage on a personal API key. A CLI session always passes.The loop
- Create a workflow. The response is its detail; pull its scaffold with a bundle URL.
- Edit the files locally.
- Ask for a bundle upload URL,
PUTa gzipped tar of the directory to it, and keep the returnedbundleKey. - Validate the staged bundle. Fix what it reports.
- Update config to wire credentials, consts, and schedules.
- Publish the staged bundle as the live version.
- Test it and poll the execution.
File bytes never cross this JSON API. Push and pull move a code.tar.gz through presigned storage URLs, so binary assets survive intact.
What a bundle holds
The files depend on the type. The contract for each is the authoring skill the CLI loads with geni skills load; the short version is on code workflows, agent workflows, and apps.
Access
Every route resolves the workflow through the member the key acts as. A workflow the member cannot see answers 404; one they can see but not edit answers 404 on writes too, so existence never leaks across a permission boundary. Sharing follows the dashboard: owner, collaborator, workspace grant, and the workflow admin role floor.