On this page

Overview

We expose a series of RESTFul APIs that allows management and extensibility of every aspect of the system, driven via an API first design.

Authentication

Please refer to security architecture for further guidance.

APIs that required authentication, can use an appropriately scoped token in the following ways:

BearerAuth

  • Type: HTTP Bearer Token authentication (JWT)

x-access-token

  • Type: API key
  • API key parameter name: x-access-token
  • Location: HTTP header

Routes

Actions

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

Insights

Route Endpoint
Retrieve insights for a team GET /api/v2/team/{team}/insights

Integrations

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

Parameters

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

Profile

Route Endpoint
Get your Profile GET /api/v2/profile
Patch your Profile PATCH /api/v2/profile

Schedules

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

System

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

Task Runs

Route Endpoint
Retrieve a TaskRuns log from a specific WorkflowRun. GET /api/v2/taskrun/{taskRunId}/log

Tasks

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

Team Management

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

Team Tasks

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

Token Management

Route Endpoint
Create Token POST /api/v2/token
Delete Token DELETE /api/v2/token/{id}
Search for Tokens GET /api/v2/token/query

Users

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

Webhooks And Events

Route Endpoint
**** POST /api/v2/event
**** POST /api/v2/callback
**** GET /api/v2/callback
Trigger WorkflowRun via Webhook. POST /api/v2/webhook

Workflow Runs

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

Workflow Templates

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

Workflows

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

Models

Open API Specification

The APIs are documented using the OpenAPI specification 3.0.1 and the raw specification file can can be found on GitHub.

Versioning

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.

SDKs

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.

Limits

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

© 2024 Boomerang. All rights reserved.
Docs and examples licensed under Apache 2.0