Links

API

Below is a fundamental description of dyrector.io's API endpoints.

Registries

Registries are 3rd party registries where the images of versions are located. Learn more about registries here.
get
/api/registries
Fetch data of registries.
post
/api/registries
Create a new registry.
get
/api/registries/{registryId}
Fetch data of a registry.
put
/api/registries/{registryId}
Modify the details of a registry.
delete
/api/registries/{registryId}
Delete a registry from dyrectorio.

Products

There are two kinds of products in dyrector.io: Simple and Complex. Simple products make up one deployable unit without versioning, while Complex products come with multiple rolling or incremental versions. More details here.
get
/api/products
Fetch the products list.
post
/api/products
Create a new product for a team.
get
/api/products/{productId}
Fetch details of a product.
put
/api/products/{productId}
Update a product.
delete
/api/products/{productId}
Delete a product.

Versions

Versions belong to products. While Simple Products are technically versionless, they act as a rolling version of a Complex Product.
The purpose of versions is to separate different variations of your product. They can be either rolling or incremental. One Complex Product can have multiple versions of both types. More details about rolling and incremental versions here.
get
/api/products/{productId}/versions
Fetch the list of all the versions under a product.
post
/api/products/{productId}/versions
Create a new version.
get
/api/products/{productId}/versions/{versionId}
Retrieve the details of a version of a product.
put
/api/products/{productId}/versions/{versionId}
Modify version.
delete
/api/products/{productId}/versions/{versionId}
Delete a version.
put
/api/products/{productId}/versions/{versionId}/default
Turn version into a default one of the complex product other versions under it will inherit images and deployments from.
post
/api/products/{productId}/versions/{versionId}/increase
Increase a the version of a complex product with a new version.

Version/Images

Images make up a Complex Product's version, or a Simple Product.
get
/api/products/{productId}/versions/{versionId}/images
Fetch data of all images of a version.
post
/api/products/{productId}/versions/{versionId}/images
Add images to a version.
get
/api/products/{productId}/versions/{versionId}/images/{imageId}
Fetch data of an image of a version.
delete
/api/products/{productId}/versions/{versionId}/images/{imageId}
Delete an image from a version.
patch
/api/products/{productId}/versions/{versionId}/images/{imageId}
Configure an image of a version.
put
/api/products/{productId}/versions/{versionId}/images/order
Edit image deployment order of a version.

Teams

Teams are the shared entity of multiple users. The purpose of teams is to separate users, nodes and products based on their needs within an organization. Team owners can assign roles. More details about teams here.
get
/api/teams
Fetch data of teams the user is a member of.
post
/api/teams
Create new team.
get
/api/teams/{teamId}
Fetch data of a team the user is a member of.
put
/api/teams/{teamId}
Modify a team's name.
delete
/api/teams/{teamId}
Deletes a team.
post
/api/teams/{teamId}/users
Invite a new user to the team.
put
/api/teams/{teamId}/users/{userId}/role
Edit user role.
delete
/api/teams/{teamId}/users/{userId}
Remove a user from the team.
post
/api/teams/{teamId}/users/{userId}/reinvite
Reinvite user with a pending invite status to a team.

Users/Me

Users/Me cover endpoints related to your user profile.
post
/api/users/me
Fetch the current user.
post
/api/users/me/active-team
Sets the active team.
post
/api/users/me/invitations/{teamId}
Accept invitation to a team.
delete
/api/users/me/invitations/{teamId}
Decline invitation to a team.

Deployments

Deployments are the process that gets the installation of your versions or Simple Products done on the node of your choice. More details about deployments here.
get
/api/deployments
Fetch the list of deployments.
post
/api/deployments
Create new deployment.
get
/api/deployments/{deploymentId}
Retrieve details of a deployment.
delete
/api/deployments/{deploymentId}
Delete deployment.
patch
/api/deployments/{deploymentId}
Update deployment.
get
/api/deployments/{deploymentId}/instances/{instanceId}
Get details of a soon-to-be container.
patch
/api/deployments/{deploymentId}/instances/{instanceId}
Update instance configuration.
get
/api/deployments/{deploymentId}/instances/{instanceId}/secrets
Fetch secrets of a soon-to-be container.
post
/api/deployments/{deploymentId}/start
Start the deployment process.
post
/api/deployments/{deploymentId}/copy
Copy deployment.
get
/api/deployments/{deploymentId}/log
Fetch event log of a deployment.

Tokens

Tokens are the access tokens that grant you access to a user profile and the teams the profile is a member of.
get
/api/tokens
List of tokens.
post
/api/tokens
Create access token.
get
/api/tokens/{tokenId}
Fetch token details.
delete
/api/tokens/{tokenId}
Delete an access token.

Nodes

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.
get
/api/nodes
Get data of nodes that belong to your team.
post
/api/nodes
Create new node.
get
/api/nodes/{nodeId}
Get data of nodes that belong to your team.
put
/api/nodes/{nodeId}
Update details of a node.
delete
/api/nodes/{nodeId}
Delete node.
get
/api/nodes/{nodeId}/script
Fetch install script.
post
/api/nodes/{nodeId}/script
Create agent install script.
delete
/api/nodes/{nodeId}/script
Delete node set up install script.
delete
/api/nodes/{nodeId}/token
Revoke the node's access token.
post
/api/nodes/{nodeId}/update
Update node's data.
post
/api/nodes/{nodeId}/{prefix}/containers/{name}/start
Start a container deployed with dyrectorio on a node.
post
/api/nodes/{nodeId}/{prefix}/containers/{name}/stop
Stop a container deployed with dyrectorio on a node.
post
/api/nodes/{nodeId}/{prefix}/containers/{name}/restart
Restart a container deployed with dyrectorio on a node.
delete
/api/nodes/{nodeId}/{prefix}/containers
Delete containers deployed with dyrectorio, with the specified prefix on a node.
delete
/api/nodes/{nodeId}/{prefix}/containers/{name}
Delete a container deployed with dyrectorio, with the specified prefix and name on a node.
get
/api/nodes/{nodeId}/containers
Fetch data of all containers on a node.
post
/api/nodes/{nodeId}/containers/{name}/start
Start the specific container on a node.
post
/api/nodes/{nodeId}/containers/{name}/stop
Stop the specific container on a node.
post
/api/nodes/{nodeId}/containers/{name}/restart
Restart the specific container on a node.
delete
/api/nodes/{nodeId}/containers/{name}
Delete the specific container from a node.

Audit log

Audit log is a log of team activity generated by the platform.
get
/api/audit-log
Fetch audit log.

Health

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.
get
/api/health
Return service status of the platform.

Notifications

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.
get
/api/notifications
Retrieve notifications that belong to a team.
post
/api/notifications
Create a new notification.
get
/api/notifications/{notificationId}
Fetch details of a notification.
put
/api/notifications/{notificationId}
Modify a notification.
delete
/api/notifications/{notificationId}
Delete a notification.
post
/api/notifications/{notificationId}/test
Send a test message.

Templates

Templates are preset applications that can be turned into a product right away. They can be deployed with minimal configuration. More details about templates here.
get
/api/templates
Return list of templates on the platform.
post
/api/templates
Creates a new product from the selected template.
get
/api/templates/{templateId}/image
Retrieves the picture of the template

Dashboard

Dashboard summarizes the latest activities of a team.
get
/api/dashboard
Fetch dashboard data of latest activities.

Storages

Storages are S3 compatible memory storages. They can be used for file injection. More details here.
get
/api/storages
Fetch the list of storages.
post
/api/storages
Create a new storage.
get
/api/storages/options
Fetch the name and ID of available storage options.
get
/api/storages/{storageId}
Return details of a storage.
put
/api/storages/{storageId}
Modify a storage.
delete
/api/storages/{storageId}
Delete a storage from dyrectorio.