API
Last updated
Last updated
Registries are 3rd party registries where the images of versions are located. Learn more about registries here.
There are two kinds of projects in dyrector.io: versionless and versioned. Versionless projects make up one deployable unit without versioning, while versioned projects come with multiple rolling or incremental versions. More details here.
Versions belong to versioned projects. Versionless projects act similar to a rolling version of a versioned project.
The purpose of versions is to separate different variations of your project. They can be either rolling or incremental. One versionless project can have multiple versions of both types. More details about rolling and incremental versions here.
Images make up a versioned project's version, or a versionless project.
Teams are the shared entity of multiple users. The purpose of teams is to separate users, nodes and projects based on their needs within an organization. Team owners can assign roles. More details about teams here.
Users/Me cover endpoints related to your user profile.
Deployments are the process that gets the installation of your versions or versionless projects done on the node of your choice. More details about deployments here.
Tokens are the access tokens that grant you access to a user profile and the teams the profile is a member of.
Nodes are the deployment targets. Nodes are registered by installing at least one of the agents – crane for Kubernetes, dagent for Docker. These agents connect the platform to your node. One team can have as many nodes as they like.
Node installation takes place with Shell or PowerShell scripts, which can be created or revoked. More details here.
Audit log is a log of team activity generated by the platform.
Health refers to the status of the different services that make up the platform. It can be checked to see if the platform works properly.
Notifications are chat notifications in Slack, Discord, and Teams. They send an automated message about deployments, new versions, new nodes, and new users. More details here.
Templates are preset applications that can be turned into a project right away. They can be deployed with minimal configuration. More details about templates here.
Dashboard summarizes the latest activities of a team.
Storages are S3 compatible memory storages. They can be used for file injection. More details here.
Lists every registries available in the active team. Request must include teamSlug
in URL. Response is an array including the name
, id
, type
, description
, and icon
of the registry.</br></br>Registries are 3rd party registries where the container images are stored.
/api/{teamSlug}/registries
To add a new registry, include teamSlug
in URL, body must include name
, type
, description
, details
, and icon
. Type
, details
, and name
are required. Response is an array including the name
, id
, type
, description
, imageNamePrefix
, inUse
, icon
, and audit log info of the registry.
/api/{teamSlug}/registries
group
, project
Lists the details of a registry. Request must include teamSlug
and RegistryID
in URL. registryId
refers to the registry's ID. Response is an array including the name
, id
, type
, description
, imageNamePrefix
, inUse
, icon
, and audit log info of the registry.
/api/{teamSlug}/registries/{registryId}
Modify the name
, type
, description
, details
, and icon
. RegistryId
refers to the registry's ID. teamSlug
and RegistryID
is required in URL, body must include type
, details
, and name
.
/api/{teamSlug}/registries/{registryId}
group
, project
No body
Create a new project for a team. teamSlug
needs to be included in URL. Newly created team has a type
and a name
as required variables, and optionally a description
and a changelog
.
/api/{teamSlug}/projects
versionless
, versioned
Returns a project's details. teamSlug
and ProjectID
needs to be included in URL. The response should contain an array, consisting of the project's name
, id
, type
, description
, deletability
, versions and version related data, including version name
and id
, changelog
, increasibility.
/api/{teamSlug}/projects/{projectId}
Updates a project. teamSlug
is required in URL, as well as projectId
to identify which project is modified, name
, description
and changelog
can be adjusted with this call.
/api/{teamSlug}/projects/{projectId}
No body
Returns an array containing the every version that belong to a project. teamSlug
and ProjectId
must be included in URL. ProjectId
refers to the project's ID. Details include the version's name
, id
, type
, audit
log details, changelog
, and increasibility.
/api/{teamSlug}/projects/{projectId}/versions
Creates a new version in a project. projectId
refers to the project's ID. teamSlug
and ProjectId
must be included in URL, request's body need to include name
and type
of the version, changelog
is optionable. Response should include the name
, id
, changelog
, increasibility, type
, and audit
log details of the version.
/api/{teamSlug}/projects/{projectId}/versions
incremental
, rolling
Returns the details of a version in the project. teamSlug
and ProjectId
must be included in URL. projectId
refers to the project's ID, versionId
refers to the version's ID. Details include the version's name
, id
, type
, audit
log details, changelog
, increasibility, mutability, deletability, and all image related data, including name
, id
, tag
, order
and configuration data of the images.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}
Updates a version's name
and changelog
. teamSlug
, ProjectId
and VersionId
must be included in URL. projectId
refers to the project's ID, versionId
refers to the version's ID.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}
No body
This call deletes a version. teamSlug
, ProjectId
and VersionId
must be included in URL. projectId
refers to the project's ID, versionId
refers to the version's ID.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}
No body
This call turns a version into the default one, resulting other versions within this project later inherit images, deployments and their configurations from it. teamSlug
, ProjectId
and VersionId
must be included in URL. projectId
refers to the project's ID, versionId
refers to the version's ID.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}/default
No body
Increases the version of a project with a new child version. teamSlug
, ProjectId
and VersionId
must be included in URL. projectId
refers to the project's ID, versionId
refers to the version's ID. name
refers to the name of the new version, and is required in the body.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}/increase
Fetch details of images within a version. ProjectId
refers to the project's ID, versionId
refers to the version's ID. Both, and teamSlug
are required in the URL.</br></br>Details come in an array, including name
, id
, tag
, order
, and config details of the image.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}/images
Add new images to a version. projectId
refers to the project's ID, versionId
refers to the version's ID. These, and teamSlug
are required in the URL. registryId
refers to the registry's ID, images
refers to the name(s) of the images you'd like to add. These are required variables in the body.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}/images
Fetch details of an image within a version. projectId
refers to the project's ID, versionId
refers to the version's ID, imageId
refers to the image's ID. All, and teamSlug
are required in the URL.</br></br>Image details consists name
, id
, tag
, order
, and the config of the image.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}/images/{imageId}
Delete an image. projectId
refers to the project's ID, versionId
refers to the version's ID, imageId
refers to the image's ID. All, and teamSlug
are required in the URL.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}/images/{imageId}
No body
Modify the configuration variables of an image. projectId
refers to the project's ID, versionId
refers to the version's ID, imageId
refers to the image's ID. All, and teamSlug
are required in the URL. Tag
refers to the version of the image, config
is an object of configuration variables.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}/images/{imageId}
No body
Edit image deployment order of a version. projectId
refers to the project's ID, versionId
refers to the version's ID. Both, and teamSlug
are required in the URL. Request body should include the IDs of the images in an array.
/api/{teamSlug}/projects/{projectId}/versions/{versionId}/images/order
No body
List of teams consist of name
, id
, and statistics
, including number of users
, projects
, nodes
, versions
, and deployments
.</br></br>Teams are the shared entity of multiple users. The purpose of teams is to separate users, nodes and projects based on their needs within an organization. Team owners can assign roles. More details about teams here.
/api/teams
Request must include name
, which is going to be the name of the newly made team. Response should include name
, id
, and statistics
, including number of users
, projects
, nodes
, versions
, and deployments
.
/api/teams
Get the details of a team. Request must include teamId
, which is the ID of the team they'd like to get the data of. Data of teams consist of name
, id
, and statistics
, including number of users
, projects
, nodes
, versions
, and deployments
. Response should include user details, as well, including name
, id
, role
, status
, email
, and lastLogin
.
/api/teams/{teamId}
Request must include teamId
, email and firstName
. Admin access required for a successful request.</br></br>Response should include new user's name
, id
, role
, status
, email
, and lastLogin
. Admin access required for a successful request.
/api/teams/{teamId}/users
Promotes or demotes the user. Request must include teamId
, userId
and role
. Admin access required for a successful request.
/api/teams/{teamId}/users/{userId}/role
owner
, admin
, user
No body
This call sends a new invitation link to a user who hasn't accepted invitation to a team.</br></br>Request must include teamId
, userId
. Admin access required for a successful request.
/api/teams/{teamId}/users/{userId}/reinvite
No body
Get the list of deployments. Request needs to include teamSlug
in URL. A deployment should include id
, prefix
, status
, note
, audit
log details, project name
, id
, type
, version name
, type
, id
, and node name
, id
, type
.
/api/{teamSlug}/deployments
Request must include teamSlug
in URL, versionId
, nodeId
, and prefix
, which refers to the ID of a version, a node and the prefix of the deployment, must be included in body. Response should include deployment id
, prefix
, status
, note
, and audit
log details, as well as project type
, id
, name
, version type
, id
, name
, and node type
, id
, name
.
/api/{teamSlug}/deployments
Get details of a certain deployment. Request must include teamSlug
and deploymentId
in URL. Deployment details should include id
, prefix
, environment
, status
, note
, audit
log details, project name
, id
, type
, version name
, type
, id
, and node name
, id
, type
.
/api/{teamSlug}/deployments/{deploymentId}
Request must include deploymentId
and teamSlug
in URL.
/api/{teamSlug}/deployments/{deploymentId}
No body
Request must include teamSlug
, deploymentId
and instanceId
, which refer to the ID of a deployment and the instance, in the URL. Instances are the manifestation of an image in the deployment. Response should include state
, id
, updatedAt
, and image
details including id
, name
, tag
, order
and config
variables.
/api/{teamSlug}/deployments/{deploymentId}/instances/{instanceId}
Request must include teamSlug
, deploymentId
, instanceId
in URL, and portion of the instance configuration as config
in the body. Response should include config
variables in an array.
/api/{teamSlug}/deployments/{deploymentId}/instances/{instanceId}
No body
Request must include teamSlug
, deploymentId
and instanceId
, which refer to the ID of a deployment and the instance, needs to be included in URL. Response should include container prefix
and name
, and publicKey
, keys
.
/api/{teamSlug}/deployments/{deploymentId}/instances/{instanceId}/secrets
Request must include teamSlug
and deploymentId
in the URL, which will be copied. The body must include the nodeId
, prefix
and optionally a note
. Response should include deployment data: id
, prefix
, status
, note
, and miscellaneous details of audit
log, project
, version
, and node
.
/api/{teamSlug}/deployments/{deploymentId}/copy
Request must include teamSlug
and deploymentId
in the URL. Response should include an items
array with objects of type
, deploymentStatus
, createdAt
, log
, and containerState
which consists of state
and instanceId
.
/api/{teamSlug}/deployments/{deploymentId}/log
Request must include teamSlug
and deploymentId
in the URL. In the body a name
and optionally the expiration date as expirationInDays
.
/api/{teamSlug}/deployments/{deploymentId}/token
Fetch data of deployment targets. Request must include teamSlug
in URL. Response should include an array with the node's type
, status
, description
, icon
, address
, connectedAt
date, version
, updating
, id
, and name
.
/api/{teamSlug}/nodes
Request must include the teamSlug
in URL, and node's name
in body. Response should include an array with the node's type
, status
, description
, icon
, address
, connectedAt
date, version
, updating
, id
, and name
.
/api/{teamSlug}/nodes
Fetch data of a specific node. Request must include teamSlug
in URL, and nodeId
in body. Response should include an array with the node's type
, status
, description
, icon
, address
, connectedAt
date, version
, updating
, id
, name
, hasToken
, and agent installation details.
/api/{teamSlug}/nodes/{nodeId}
Request must include the teamSlug
in URL, and node's name
in body, body can include description
and icon
.
/api/{teamSlug}/nodes/{nodeId}
No body
Request must include the teamSlug
in URL, and node's name
in body. Response should include type
, status
, description
, icon
, address
, connectedAt
date, version
, updating
, id
, name
, hasToken
, and install
details.
/api/{teamSlug}/nodes/{nodeId}/script
Request must include teamSlug
in URL and nodeId
, type
, and scriptType
.
/api/{teamSlug}/nodes/{nodeId}/script
docker
, k8s
shell
, powershell
Request must include teamSlug
in URL, and its body must include skip
, take
, and dates of from
and to
. Response should include an array of items
: createdAt
date, event
, and data
.
/api/{teamSlug}/nodes/{nodeId}/audit
Request must include nodeId
, prefix
, and name
.
/api/{teamSlug}/nodes/{nodeId}//{prefix}/containers/{name}
No body
Request must include nodeId
and prefix
. Response should include id
, command
, createdAt
, state
, status
, imageName
, imageTag
and ports
of images.
/api/{teamSlug}/nodes/{nodeId}/containers
Request must include skip
, take
, and dates of from
and to
. Response should include an array of items
: createdAt
date, userId
, email
, serviceCall
, and data
.
/api/{teamSlug}/audit-log
Request must include teamSlug
in the URL, type
, enabledEvents
, id
, name
, url
, and active
in the body. Response should list type
, enabledEvents
, id
, name
, url
, active
, and creatorName
.
/api/{teamSlug}/notifications
discord
, slack
, teams
Request must include teamSlug
and notificationId
parameters in URL. Response should include type
, enabledEvents
, id
, name
, url
, active
, and creatorName
.
/api/{teamSlug}/notifications/{notificationId}
Request must include teamSlug
in the URL, type
, enabledEvents
, id
, name
, url
, and active
in the body. Response should include type
, enabledEvents
, id
, name
, url
, active
, and creatorName
.
/api/{teamSlug}/notifications/{notificationId}
discord
, slack
, teams
Request must include type
, id
, and name
. Response should include id
, name
, description
, type
, and audit
log details of templates.
/api/templates
versionless
, versioned
teamSlug
is required in URL. Response should include users
, number of auditLogEntries
, projects
, versions
, deployments
, failedDeployments
, details of nodes
, latestDeployments
and auditLog
entries.
/api/{teamSlug}/dashboard
Creates a new storage. Request must include teamSlug
in URL, body is required to include name
, and url
. Request body may include description
, icon
, accesKey
, and secretKey
. Response should include description
, icon
, url
, id
, name
, accessKey
, secretKey
, and inUse
.
/api/{teamSlug}/storages
Get the details of a storage. Request must include teamSlug
and storageId
in URL. Response should include description, icon, url, id
, name
, accessKey
, secretKey
, and inUse
.
/api/{teamSlug}/storages/{storageId}
Updates a storage. Request must include teamSlug
and storageId
in URL. name
, and url
must be included in body. Request body may include description
, icon
, accesKey
, and secretKey
.
/api/{teamSlug}/storages/{storageId}
No body