We expose a series of RESTFul APIs that allows management and extensibility of every aspect of the system, driven via an API first design.
Please refer to security architecture for further guidance.
APIs that required authentication, can use an appropriately scoped token in the following ways:
Route | Endpoint |
---|---|
Provide an update for an Action | PUT /api/v2/team/{team}/action |
Retrieve a specific Action by Id | GET /api/v2/team/{team}/action/{actionId} |
Search for Actions | GET /api/v2/team/{team}/action/query |
Get Actions Summary | GET /api/v2/team/{team}/action/summary |
Route | Endpoint |
---|---|
Retrieve insights for a team | GET /api/v2/team/{team}/insights |
Route | Endpoint |
---|---|
Retrieve the integrations and their status within a Team | GET /api/v2/integration |
Retrieve the installation ID and store against a team | GET /api/v2/integration/github/installation |
Links the GitHub Installation ID with a Team | POST /api/v2/integration/github/link |
Unlinks the GitHub Installation ID from a Team | POST /api/v2/integration/github/unlink |
Install URL Redirect | GET /api/v2/integration/slack/install |
Receive Slack Oauth2 request | GET /api/v2/integration/slack/auth |
Receive Slack Slash Commands | POST /api/v2/integration/slack/commands |
Receive Slack Events | POST /api/v2/integration/slack/events |
Receive Slack Interactivity | POST /api/v2/integration/slack/interactivity |
Route | Endpoint |
---|---|
Create new global Param | POST /api/v2/parameters |
Delete specific global Param | DELETE /api/v2/parameters/{name} |
Get all global Params | GET /api/v2/parameters |
**** | PUT /api/v2/parameters |
Route | Endpoint |
---|---|
Get your Profile | GET /api/v2/profile |
Patch your Profile | PATCH /api/v2/profile |
Route | Endpoint |
---|---|
Create a Schedule. | POST /api/v2/team/{team}/schedule |
Delete a Schedule. | DELETE /api/v2/team/{team}/schedule/{scheduleId} |
Retrieve a Schedule. | GET /api/v2/team/{team}/schedule/{scheduleId} |
Retrieve Calendars for Schedules by Dates. | GET /api/v2/team/{team}/schedule/calendars |
Search for Schedules | GET /api/v2/team/{team}/schedule/query |
Apply a Schedule. | PUT /api/v2/team/{team}/schedule |
Validate a Schedules CRON. | GET /api/v2/team/{team}/schedule/validate-cron |
Route | Endpoint |
---|---|
Create new global Param | POST /api/v2/global-params |
Delete specific global Param | DELETE /api/v2/global-params/{key} |
Get all global Params | GET /api/v2/global-params |
Retrieve Boomerang Flow Settings | GET /api/v2/settings |
Retrieve feature flags. | GET /api/v2/features |
Retrieve this instances context, features, and navigation. | GET /api/v2/context |
Retrieve navigation. | GET /api/v2/navigation |
Register and activate an installation of Flow | PUT /api/v2/activate |
**** | PUT /api/v2/global-params |
Update Boomerang Flow Settings | PUT /api/v2/settings |
Route | Endpoint |
---|---|
Retrieve a TaskRuns log from a specific WorkflowRun. | GET /api/v2/taskrun/{taskRunId}/log |
Route | Endpoint |
---|---|
Update, replace, or create new using Tekton Task YAML | PUT /api/v2/task/{name} |
Create a new Task using Tekton Task YAML | POST /api/v2/task |
Retrieve a specific task as Tekton Task YAML. If no version specified, the latest version is returned. | GET /api/v2/task/{name} |
Retrieve the changlog | GET /api/v2/task/{name}/changelog |
Search for Task. If teams are provided it will query the teams. If no teams are provided it will query Global Task Templates | GET /api/v2/task/query |
**** | POST /api/v2/task/validate |
Route | Endpoint |
---|---|
Create new team | POST /api/v2/team |
**** | DELETE /api/v2/team/{team}/approvers |
**** | DELETE /api/v2/team/{team}/parameters/{name} |
Delete a team | DELETE /api/v2/team/{team} |
**** | GET /api/v2/team/quotas/default |
**** | GET /api/v2/team/roles |
Get team | GET /api/v2/team/{team} |
Search for Teams | GET /api/v2/team/query |
**** | DELETE /api/v2/team/{team}/leave |
**** | DELETE /api/v2/team/{team}/members |
**** | DELETE /api/v2/team/{team}/quotas |
Patch or update a team | PATCH /api/v2/team/{team} |
Validate team name and check uniqueness. | POST /api/v2/team/validate-name |
Route | Endpoint |
---|---|
Update, replace, or create new using Tekton Task YAML | PUT /api/v2/team/{team}/task/{name} |
Create a new Task Template using Tekton Task YAML | POST /api/v2/team/{team}/task |
Delete a Team Task | DELETE /api/v2/team/{team}/task/{name} |
Retrieve a specific task as Tekton Task YAML. If no version specified, the latest version is returned. | GET /api/v2/team/{team}/task/{name} |
Retrieve the changlog | GET /api/v2/team/{team}/task/{name}/changelog |
Search for Tasks. If teams are provided it will query the teams. If no teams are provided it will query Global Task Templates | GET /api/v2/team/{team}/task/query |
**** | POST /api/v2/team/{team}/task/validate |
Route | Endpoint |
---|---|
Create Token | POST /api/v2/token |
Delete Token | DELETE /api/v2/token/{id} |
Search for Tokens | GET /api/v2/token/query |
Route | Endpoint |
---|---|
Update a Boomerang Flow Users details | PATCH /api/v2/user/{userId} |
Delete a Boomerang Flow user | DELETE /api/v2/user/{userId} |
Get a Users details | GET /api/v2/user/{userId} |
Search for Users | GET /api/v2/user/query |
Route | Endpoint |
---|---|
**** | POST /api/v2/event |
**** | POST /api/v2/callback |
**** | GET /api/v2/callback |
Trigger WorkflowRun via Webhook. | POST /api/v2/webhook |
Route | Endpoint |
---|---|
Cancel a WorkflowRun | DELETE /api/v2/team/{team}/workflowrun/{workflowRunId}/cancel |
Retrieve a summary of WorkflowRuns by Status. | GET /api/v2/team/{team}/workflowrun/count |
End a WorkflowRun | PUT /api/v2/team/{team}/workflowrun/{workflowRunId}/finalize |
Retrieve a specific WorkflowRun. | GET /api/v2/team/{team}/workflowrun/{workflowRunId} |
Search for WorkflowRuns | GET /api/v2/team/{team}/workflowrun/query |
Retry WorkflowRun execution. | PUT /api/v2/team/{team}/workflowrun/{workflowRunId}/retry |
Start WorkflowRun execution. The WorkflowRun has to already have been queued. | PUT /api/v2/team/{team}/workflowrun/{workflowRunId}/start |
Route | Endpoint |
---|---|
Update, replace, or create new, Workflow Template | PUT /api/v2/workflowtemplate |
Create a new Workflow Template | POST /api/v2/workflowtemplate |
Delete a Workflow Template | DELETE /api/v2/workflowtemplate/{name} |
Retrieve a Workflow Template | GET /api/v2/workflowtemplate/{name} |
Search for Workflow Templates | GET /api/v2/workflowtemplate/query |
Route | Endpoint |
---|---|
Update, replace, or create new, Workflow for Canvas | PUT /api/v2/team/{team}/workflow/{workflow}/compose |
Update, replace, or create new, Workflow | PUT /api/v2/team/{team}/workflow |
Convert workflow to compose model for UI Designer and detailed Activity screens. | GET /api/v2/team/{team}/workflow/{workflow}/compose |
Create a new workflow | POST /api/v2/team/{team}/workflow |
Delete a workflow | DELETE /api/v2/team/{team}/workflow/{workflow} |
Duplicates the workflow. | POST /api/v2/team/{team}/workflow/{workflow}/duplicate |
Export the Workflow as JSON. | GET /api/v2/team/{team}/workflow/{workflow}/export |
Retrieve the parameters. | GET /api/v2/team/{team}/workflow/{workflow}/available-parameters |
Retrieve the changlog | GET /api/v2/team/{team}/workflow/{workflow}/changelog |
Retrieve a Workflow | GET /api/v2/team/{team}/workflow/{workflow} |
Search for Workflows | GET /api/v2/team/{team}/workflow/query |
Submit a Workflow to be run. Will queue the WorkflowRun ready for execution. | POST /api/v2/team/{team}/workflow/{workflow}/submit |
The APIs are documented using the OpenAPI specification 3.0.1 and the raw specification file can can be found on GitHub.
To make it easier to evolve and extend we version the API, such as /apis/v1
. This is done at the API level rather than a particular context to ensure we have a consistent view and behavior for the life of a version.
We currently generate a Java client based on the OpenAPI specification, one such open source project to facilitate this is the open API-generator project. (https://github.com/OpenAPITools/openapi-generator).
In the future we will also support NodeJS and Go.
Our API endpoints have limits on the number of requests that can be made with the following defaults that can be edited in the Ingress definition.
Type | Description | Default |
---|---|---|
Connections | Number of concurrent connections allowed from a single IP address | 3 |
Requests Per Minute (rpm) | Number of requests accepted from a given IP each minute | 100 |
Reference: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rate-limiting