API endpoints
See also
Concept: API
Base URL
All URL endpoints in this document are to be prefixed with the Sqedule server's base URL, plus the versioning prefix /v1
. For example if this document speaks of /releases
, then the API endpoint is https://your-sqedule-server.com/v1/releases
.
Authentication
There is currently no authentication because the server does not support that yet. But the server administrator is allowed to put the server behind a reverse proxy with HTTP Basic Authentication.
Common error codes
- 400 Bad Request — A path parameter or the input body has a syntax error.
- 401 Unauthorized — Either an authentication failure, or the authenticated organization member is not authorized to perform this action.
- 404 Not Found — Resource not found.
- 500 Internal Server Error — Generic internal error.
Types
Most types are self-explanatory, but these types deserve further explanation:
- Timestamp — String in the format of "2021-05-07T12:44:59.105536+02:00".
Releases
Create release
POST /applications/:application_id/releases
Path parameters:
application_id
— ID of the application to create a release for.
Input body:
{
/****** Optional fields ******/
// Arbitrary string that identifies the source location of this application,
// for example the Git repo URL. Currently only used for display purposes,
// but planned to have a semantic meaning in the future.
"source_identity": string,
// Arbitrary metadata to include in this release.
"metadata": object,
// Arbitrary comments to include in this release.
"comments": string,
}
Response codes:
- 201 Created — Creation success.
List releases
GET /applications/:application_id/releases
Path parameters:
application_id
— ID of the application to list releases for.
Get a release
GET /applications/:application_id/releases/:id
Path parameters:
application_id
— ID of the application to read a release for.id
— ID of the release to read.
Output body:
{
"id": number,
"state": "pending" | "approved" | "rejected",
"source_identity": string | null,
"metadata": object,
"comments": string | null,
"created_at": timestamp,
"updated_at": timestamp,
"finalized_at": timestamp | null,
"approval_ruleset_bindings": [array of Release Approval Ruleset Bindings]
}