diff --git a/spec/openapi.infra.yaml b/spec/openapi.infra.yaml
index 8979f5ee5..f49e8f789 100644
--- a/spec/openapi.infra.yaml
+++ b/spec/openapi.infra.yaml
@@ -75,6 +75,13 @@ components:
required: true
schema:
type: string
+ tag:
+ name: tag
+ in: path
+ required: true
+ schema:
+ type: string
+ description: Tag name
paginationLimit:
name: limit
in: query
@@ -95,42 +102,42 @@ components:
type: string
responses:
- "400":
+ '400':
description: Bad request
content:
application/json:
schema:
- $ref: "#/components/schemas/Error"
- "401":
+ $ref: '#/components/schemas/Error'
+ '401':
description: Authentication error
content:
application/json:
schema:
- $ref: "#/components/schemas/Error"
- "403":
+ $ref: '#/components/schemas/Error'
+ '403':
description: Forbidden
content:
application/json:
schema:
- $ref: "#/components/schemas/Error"
- "404":
+ $ref: '#/components/schemas/Error'
+ '404':
description: Not found
content:
application/json:
schema:
- $ref: "#/components/schemas/Error"
- "409":
+ $ref: '#/components/schemas/Error'
+ '409':
description: Conflict
content:
application/json:
schema:
- $ref: "#/components/schemas/Error"
- "500":
+ $ref: '#/components/schemas/Error'
+ '500':
description: Server error
content:
application/json:
schema:
- $ref: "#/components/schemas/Error"
+ $ref: '#/components/schemas/Error'
schemas:
Team:
@@ -172,6 +179,16 @@ components:
type: boolean
description: Whether the template is public or only accessible by the team
+ TemplateUpdateResponse:
+ required:
+ - names
+ properties:
+ names:
+ type: array
+ description: Names of the template (namespace/alias format when namespaced)
+ items:
+ type: string
+
CPUCount:
type: integer
format: int32
@@ -267,7 +284,7 @@ components:
type: string
description: Log message content
level:
- $ref: "#/components/schemas/LogLevel"
+ $ref: '#/components/schemas/LogLevel'
fields:
type: object
additionalProperties:
@@ -282,12 +299,12 @@ components:
description: Logs of the sandbox
type: array
items:
- $ref: "#/components/schemas/SandboxLog"
+ $ref: '#/components/schemas/SandboxLog'
logEntries:
description: Structured logs of the sandbox
type: array
items:
- $ref: "#/components/schemas/SandboxLogEntry"
+ $ref: '#/components/schemas/SandboxLogEntry'
SandboxMetric:
description: Metric entry with timestamp and line
@@ -356,7 +373,7 @@ components:
deprecated: true
description: Identifier of the client
envdVersion:
- $ref: "#/components/schemas/EnvdVersion"
+ $ref: '#/components/schemas/EnvdVersion'
envdAccessToken:
type: string
description: Access token used for envd communication
@@ -404,7 +421,7 @@ components:
format: date-time
description: Time when the sandbox will expire
envdVersion:
- $ref: "#/components/schemas/EnvdVersion"
+ $ref: '#/components/schemas/EnvdVersion'
envdAccessToken:
type: string
description: Access token used for envd communication
@@ -413,15 +430,15 @@ components:
nullable: true
description: Base domain where the sandbox traffic is accessible
cpuCount:
- $ref: "#/components/schemas/CPUCount"
+ $ref: '#/components/schemas/CPUCount'
memoryMB:
- $ref: "#/components/schemas/MemoryMB"
+ $ref: '#/components/schemas/MemoryMB'
diskSizeMB:
- $ref: "#/components/schemas/DiskSizeMB"
+ $ref: '#/components/schemas/DiskSizeMB'
metadata:
- $ref: "#/components/schemas/SandboxMetadata"
+ $ref: '#/components/schemas/SandboxMetadata'
state:
- $ref: "#/components/schemas/SandboxState"
+ $ref: '#/components/schemas/SandboxState'
ListedSandbox:
required:
@@ -458,17 +475,17 @@ components:
format: date-time
description: Time when the sandbox will expire
cpuCount:
- $ref: "#/components/schemas/CPUCount"
+ $ref: '#/components/schemas/CPUCount'
memoryMB:
- $ref: "#/components/schemas/MemoryMB"
+ $ref: '#/components/schemas/MemoryMB'
diskSizeMB:
- $ref: "#/components/schemas/DiskSizeMB"
+ $ref: '#/components/schemas/DiskSizeMB'
metadata:
- $ref: "#/components/schemas/SandboxMetadata"
+ $ref: '#/components/schemas/SandboxMetadata'
state:
- $ref: "#/components/schemas/SandboxState"
+ $ref: '#/components/schemas/SandboxState'
envdVersion:
- $ref: "#/components/schemas/EnvdVersion"
+ $ref: '#/components/schemas/EnvdVersion'
SandboxesWithMetrics:
required:
@@ -476,7 +493,7 @@ components:
properties:
sandboxes:
additionalProperties:
- $ref: "#/components/schemas/SandboxMetric"
+ $ref: '#/components/schemas/SandboxMetric'
NewSandbox:
required:
@@ -504,13 +521,13 @@ components:
Allow sandbox to access the internet. When set to false, it behaves the same as specifying denyOut
to 0.0.0.0/0 in the network config.
network:
- $ref: "#/components/schemas/SandboxNetworkConfig"
+ $ref: '#/components/schemas/SandboxNetworkConfig'
metadata:
- $ref: "#/components/schemas/SandboxMetadata"
+ $ref: '#/components/schemas/SandboxMetadata'
envVars:
- $ref: "#/components/schemas/EnvVars"
+ $ref: '#/components/schemas/EnvVars'
mcp:
- $ref: "#/components/schemas/Mcp"
+ $ref: '#/components/schemas/Mcp'
ResumedSandbox:
properties:
@@ -610,6 +627,7 @@ components:
- buildCount
- envdVersion
- aliases
+ - names
- buildStatus
properties:
templateID:
@@ -619,17 +637,23 @@ components:
type: string
description: Identifier of the last successful build for given template
cpuCount:
- $ref: "#/components/schemas/CPUCount"
+ $ref: '#/components/schemas/CPUCount'
memoryMB:
- $ref: "#/components/schemas/MemoryMB"
+ $ref: '#/components/schemas/MemoryMB'
diskSizeMB:
- $ref: "#/components/schemas/DiskSizeMB"
+ $ref: '#/components/schemas/DiskSizeMB'
public:
type: boolean
description: Whether the template is public or only accessible by the team
aliases:
type: array
description: Aliases of the template
+ deprecated: true
+ items:
+ type: string
+ names:
+ type: array
+ description: Names of the template (namespace/alias format when namespaced)
items:
type: string
createdAt:
@@ -642,7 +666,7 @@ components:
description: Time when the template was last updated
createdBy:
allOf:
- - $ref: "#/components/schemas/TeamUser"
+ - $ref: '#/components/schemas/TeamUser'
nullable: true
lastSpawnedAt:
type: string
@@ -658,9 +682,9 @@ components:
format: int32
description: Number of times the template was built
envdVersion:
- $ref: "#/components/schemas/EnvdVersion"
+ $ref: '#/components/schemas/EnvdVersion'
buildStatus:
- $ref: "#/components/schemas/TemplateBuildStatus"
+ $ref: '#/components/schemas/TemplateBuildStatus'
TemplateRequestResponseV3:
required:
@@ -668,6 +692,8 @@ components:
- buildID
- public
- aliases
+ - names
+ - tags
properties:
templateID:
type: string
@@ -678,9 +704,20 @@ components:
public:
type: boolean
description: Whether the template is public or only accessible by the team
+ names:
+ type: array
+ description: Names of the template
+ items:
+ type: string
+ tags:
+ type: array
+ description: Tags assigned to the template build
+ items:
+ type: string
aliases:
type: array
description: Aliases of the template
+ deprecated: true
items:
type: string
@@ -708,11 +745,11 @@ components:
type: string
description: Identifier of the last successful build for given template
cpuCount:
- $ref: "#/components/schemas/CPUCount"
+ $ref: '#/components/schemas/CPUCount'
memoryMB:
- $ref: "#/components/schemas/MemoryMB"
+ $ref: '#/components/schemas/MemoryMB'
diskSizeMB:
- $ref: "#/components/schemas/DiskSizeMB"
+ $ref: '#/components/schemas/DiskSizeMB'
public:
type: boolean
description: Whether the template is public or only accessible by the team
@@ -731,7 +768,7 @@ components:
description: Time when the template was last updated
createdBy:
allOf:
- - $ref: "#/components/schemas/TeamUser"
+ - $ref: '#/components/schemas/TeamUser'
nullable: true
lastSpawnedAt:
type: string
@@ -747,7 +784,7 @@ components:
format: int32
description: Number of times the template was built
envdVersion:
- $ref: "#/components/schemas/EnvdVersion"
+ $ref: '#/components/schemas/EnvdVersion'
TemplateBuild:
required:
@@ -763,7 +800,7 @@ components:
format: uuid
description: Identifier of the build
status:
- $ref: "#/components/schemas/TemplateBuildStatus"
+ $ref: '#/components/schemas/TemplateBuildStatus'
createdAt:
type: string
format: date-time
@@ -777,19 +814,20 @@ components:
format: date-time
description: Time when the build was finished
cpuCount:
- $ref: "#/components/schemas/CPUCount"
+ $ref: '#/components/schemas/CPUCount'
memoryMB:
- $ref: "#/components/schemas/MemoryMB"
+ $ref: '#/components/schemas/MemoryMB'
diskSizeMB:
- $ref: "#/components/schemas/DiskSizeMB"
+ $ref: '#/components/schemas/DiskSizeMB'
envdVersion:
- $ref: "#/components/schemas/EnvdVersion"
+ $ref: '#/components/schemas/EnvdVersion'
TemplateWithBuilds:
required:
- templateID
- public
- aliases
+ - names
- createdAt
- updatedAt
- lastSpawnedAt
@@ -805,6 +843,12 @@ components:
aliases:
type: array
description: Aliases of the template
+ deprecated: true
+ items:
+ type: string
+ names:
+ type: array
+ description: Names of the template (namespace/alias format when namespaced)
items:
type: string
createdAt:
@@ -828,7 +872,19 @@ components:
type: array
description: List of builds for the template
items:
- $ref: "#/components/schemas/TemplateBuild"
+ $ref: '#/components/schemas/TemplateBuild'
+
+ TemplateAliasResponse:
+ required:
+ - templateID
+ - public
+ properties:
+ templateID:
+ type: string
+ description: Identifier of the template
+ public:
+ type: boolean
+ description: Whether the template is public or only accessible by the team
TemplateBuildRequest:
required:
@@ -850,9 +906,9 @@ components:
description: Ready check command to execute in the template after the build
type: string
cpuCount:
- $ref: "#/components/schemas/CPUCount"
+ $ref: '#/components/schemas/CPUCount'
memoryMB:
- $ref: "#/components/schemas/MemoryMB"
+ $ref: '#/components/schemas/MemoryMB'
TemplateStep:
description: Step in the template build process
@@ -877,19 +933,27 @@ components:
description: Whether the step should be forced to run regardless of the cache
TemplateBuildRequestV3:
- required:
- - alias
properties:
+ name:
+ description: Name of the template. Can include a tag with colon separator (e.g. "my-template" or "my-template:v1"). If tag is included, it will be treated as if the tag was provided in the tags array.
+ type: string
+ tags:
+ type: array
+ description: Tags to assign to the template build
+ items:
+ type: string
alias:
- description: Alias of the template
+ description: Alias of the template. Deprecated, use name instead.
type: string
+ deprecated: true
teamID:
+ deprecated: true
type: string
description: Identifier of the team
cpuCount:
- $ref: "#/components/schemas/CPUCount"
+ $ref: '#/components/schemas/CPUCount'
memoryMB:
- $ref: "#/components/schemas/MemoryMB"
+ $ref: '#/components/schemas/MemoryMB'
TemplateBuildRequestV2:
required:
@@ -899,24 +963,25 @@ components:
description: Alias of the template
type: string
teamID:
+ deprecated: true
type: string
description: Identifier of the team
cpuCount:
- $ref: "#/components/schemas/CPUCount"
+ $ref: '#/components/schemas/CPUCount'
memoryMB:
- $ref: "#/components/schemas/MemoryMB"
+ $ref: '#/components/schemas/MemoryMB'
FromImageRegistry:
oneOf:
- - $ref: "#/components/schemas/AWSRegistry"
- - $ref: "#/components/schemas/GCPRegistry"
- - $ref: "#/components/schemas/GeneralRegistry"
+ - $ref: '#/components/schemas/AWSRegistry'
+ - $ref: '#/components/schemas/GCPRegistry'
+ - $ref: '#/components/schemas/GeneralRegistry'
discriminator:
propertyName: type
mapping:
- aws: "#/components/schemas/AWSRegistry"
- gcp: "#/components/schemas/GCPRegistry"
- registry: "#/components/schemas/GeneralRegistry"
+ aws: '#/components/schemas/AWSRegistry'
+ gcp: '#/components/schemas/GCPRegistry'
+ registry: '#/components/schemas/GeneralRegistry'
AWSRegistry:
type: object
@@ -982,7 +1047,7 @@ components:
type: string
description: Template to use as a base for the template build
fromImageRegistry:
- $ref: "#/components/schemas/FromImageRegistry"
+ $ref: '#/components/schemas/FromImageRegistry'
force:
default: false
type: boolean
@@ -992,7 +1057,7 @@ components:
description: List of steps to execute in the template build
type: array
items:
- $ref: "#/components/schemas/TemplateStep"
+ $ref: '#/components/schemas/TemplateStep'
startCmd:
description: Start command to execute in the template after the build
type: string
@@ -1034,7 +1099,7 @@ components:
type: string
description: Log message content
level:
- $ref: "#/components/schemas/LogLevel"
+ $ref: '#/components/schemas/LogLevel'
step:
type: string
description: Step in the build process related to the log entry
@@ -1054,7 +1119,7 @@ components:
description: Log entries related to the status reason
type: array
items:
- $ref: "#/components/schemas/BuildLogEntry"
+ $ref: '#/components/schemas/BuildLogEntry'
TemplateBuildStatus:
type: string
@@ -1084,7 +1149,7 @@ components:
description: Build logs structured
type: array
items:
- $ref: "#/components/schemas/BuildLogEntry"
+ $ref: '#/components/schemas/BuildLogEntry'
templateID:
type: string
description: Identifier of the template
@@ -1092,9 +1157,9 @@ components:
type: string
description: Identifier of the build
status:
- $ref: "#/components/schemas/TemplateBuildStatus"
+ $ref: '#/components/schemas/TemplateBuildStatus'
reason:
- $ref: "#/components/schemas/BuildStatusReason"
+ $ref: '#/components/schemas/BuildStatusReason'
TemplateBuildLogsResponse:
required:
@@ -1105,7 +1170,7 @@ components:
description: Build logs structured
type: array
items:
- $ref: "#/components/schemas/BuildLogEntry"
+ $ref: '#/components/schemas/BuildLogEntry'
LogsDirection:
type: string
@@ -1150,7 +1215,7 @@ components:
format: uuid
description: Identifier of the cluster
status:
- $ref: "#/components/schemas/NodeStatus"
+ $ref: '#/components/schemas/NodeStatus'
DiskMetrics:
required:
@@ -1217,7 +1282,7 @@ components:
type: array
description: Detailed metrics for each disk/mount point
items:
- $ref: "#/components/schemas/DiskMetrics"
+ $ref: '#/components/schemas/DiskMetrics'
MachineInfo:
required:
- cpuFamily
@@ -1274,15 +1339,15 @@ components:
type: string
description: Identifier of the cluster
machineInfo:
- $ref: "#/components/schemas/MachineInfo"
+ $ref: '#/components/schemas/MachineInfo'
status:
- $ref: "#/components/schemas/NodeStatus"
+ $ref: '#/components/schemas/NodeStatus'
sandboxCount:
type: integer
format: uint32
description: Number of sandboxes running on the node
metrics:
- $ref: "#/components/schemas/NodeMetrics"
+ $ref: '#/components/schemas/NodeMetrics'
createSuccesses:
type: integer
format: uint64
@@ -1332,16 +1397,16 @@ components:
deprecated: true
description: Identifier of the nomad node
machineInfo:
- $ref: "#/components/schemas/MachineInfo"
+ $ref: '#/components/schemas/MachineInfo'
status:
- $ref: "#/components/schemas/NodeStatus"
+ $ref: '#/components/schemas/NodeStatus'
sandboxes:
type: array
description: List of sandboxes running on the node
items:
- $ref: "#/components/schemas/ListedSandbox"
+ $ref: '#/components/schemas/ListedSandbox'
metrics:
- $ref: "#/components/schemas/NodeMetrics"
+ $ref: '#/components/schemas/NodeMetrics'
cachedBuilds:
type: array
description: List of cached builds id on the node
@@ -1375,7 +1440,7 @@ components:
type: string
description: The fully created access token
mask:
- $ref: "#/components/schemas/IdentifierMaskingDetails"
+ $ref: '#/components/schemas/IdentifierMaskingDetails'
createdAt:
type: string
format: date-time
@@ -1404,14 +1469,14 @@ components:
type: string
description: Name of the API key
mask:
- $ref: "#/components/schemas/IdentifierMaskingDetails"
+ $ref: '#/components/schemas/IdentifierMaskingDetails'
createdAt:
type: string
format: date-time
description: Timestamp of API key creation
createdBy:
allOf:
- - $ref: "#/components/schemas/TeamUser"
+ - $ref: '#/components/schemas/TeamUser'
nullable: true
lastUsed:
type: string
@@ -1435,7 +1500,7 @@ components:
type: string
description: Raw value of the API key
mask:
- $ref: "#/components/schemas/IdentifierMaskingDetails"
+ $ref: '#/components/schemas/IdentifierMaskingDetails'
name:
type: string
description: Name of the API key
@@ -1445,7 +1510,7 @@ components:
description: Timestamp of API key creation
createdBy:
allOf:
- - $ref: "#/components/schemas/TeamUser"
+ - $ref: '#/components/schemas/TeamUser'
nullable: true
lastUsed:
type: string
@@ -1469,6 +1534,49 @@ components:
type: string
description: New name for the API key
+ AssignedTemplateTags:
+ required:
+ - tags
+ - buildID
+ properties:
+ tags:
+ type: array
+ items:
+ type: string
+ description: Assigned tags of the template
+ buildID:
+ type: string
+ format: uuid
+ description: Identifier of the build associated with these tags
+
+ AssignTemplateTagsRequest:
+ required:
+ - target
+ - tags
+ properties:
+ target:
+ type: string
+ description: Target template in "name:tag" format
+ tags:
+ description: Tags to assign to the template
+ type: array
+ items:
+ type: string
+
+ DeleteTemplateTagsRequest:
+ required:
+ - name
+ - tags
+ properties:
+ name:
+ type: string
+ description: Name of the template
+ tags:
+ description: Tags to delete
+ type: array
+ items:
+ type: string
+
Error:
required:
- code
@@ -1508,16 +1616,17 @@ tags:
- name: auth
- name: access-tokens
- name: api-keys
+ - name: tags
paths:
/health:
get:
description: Health check
responses:
- "200":
+ '200':
description: Request was successful
- "401":
- $ref: "#/components/responses/401"
+ '401':
+ $ref: '#/components/responses/401'
/teams:
get:
@@ -1527,7 +1636,7 @@ paths:
- AccessTokenAuth: []
- Supabase1TokenAuth: []
responses:
- "200":
+ '200':
description: Successfully returned all teams
content:
application/json:
@@ -1535,11 +1644,11 @@ paths:
type: array
items:
allOf:
- - $ref: "#/components/schemas/Team"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ - $ref: '#/components/schemas/Team'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/teams/{teamID}/metrics:
get:
@@ -1550,7 +1659,7 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/teamID"
+ - $ref: '#/components/parameters/teamID'
- in: query
name: start
schema:
@@ -1566,22 +1675,22 @@ paths:
minimum: 0
description: Unix timestamp for the end of the interval, in seconds, for which the metrics
responses:
- "200":
+ '200':
description: Successfully returned the team metrics
content:
application/json:
schema:
type: array
items:
- $ref: "#/components/schemas/TeamMetric"
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "403":
- $ref: "#/components/responses/403"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TeamMetric'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '403':
+ $ref: '#/components/responses/403'
+ '500':
+ $ref: '#/components/responses/500'
/teams/{teamID}/metrics/max:
get:
@@ -1592,7 +1701,7 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/teamID"
+ - $ref: '#/components/parameters/teamID'
- in: query
name: start
schema:
@@ -1615,20 +1724,20 @@ paths:
enum: [concurrent_sandboxes, sandbox_start_rate]
description: Metric to retrieve the maximum value for
responses:
- "200":
+ '200':
description: Successfully returned the team metrics
content:
application/json:
schema:
- $ref: "#/components/schemas/MaxTeamMetric"
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "403":
- $ref: "#/components/responses/403"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/MaxTeamMetric'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '403':
+ $ref: '#/components/responses/403'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes:
get:
@@ -1646,7 +1755,7 @@ paths:
schema:
type: string
responses:
- "200":
+ '200':
description: Successfully returned all running sandboxes
content:
application/json:
@@ -1654,13 +1763,13 @@ paths:
type: array
items:
allOf:
- - $ref: "#/components/schemas/ListedSandbox"
- "401":
- $ref: "#/components/responses/401"
- "400":
- $ref: "#/components/responses/400"
- "500":
- $ref: "#/components/responses/500"
+ - $ref: '#/components/schemas/ListedSandbox'
+ '401':
+ $ref: '#/components/responses/401'
+ '400':
+ $ref: '#/components/responses/400'
+ '500':
+ $ref: '#/components/responses/500'
post:
description: Create a sandbox from the template
tags: [sandboxes]
@@ -1673,20 +1782,20 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/NewSandbox"
+ $ref: '#/components/schemas/NewSandbox'
responses:
- "201":
+ '201':
description: The sandbox was created successfully
content:
application/json:
schema:
- $ref: "#/components/schemas/Sandbox"
- "401":
- $ref: "#/components/responses/401"
- "400":
- $ref: "#/components/responses/400"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/Sandbox'
+ '401':
+ $ref: '#/components/responses/401'
+ '400':
+ $ref: '#/components/responses/400'
+ '500':
+ $ref: '#/components/responses/500'
/v2/sandboxes:
get:
@@ -1710,13 +1819,13 @@ paths:
schema:
type: array
items:
- $ref: "#/components/schemas/SandboxState"
+ $ref: '#/components/schemas/SandboxState'
style: form
explode: false
- - $ref: "#/components/parameters/paginationNextToken"
- - $ref: "#/components/parameters/paginationLimit"
+ - $ref: '#/components/parameters/paginationNextToken'
+ - $ref: '#/components/parameters/paginationLimit'
responses:
- "200":
+ '200':
description: Successfully returned all running sandboxes
content:
application/json:
@@ -1724,13 +1833,13 @@ paths:
type: array
items:
allOf:
- - $ref: "#/components/schemas/ListedSandbox"
- "401":
- $ref: "#/components/responses/401"
- "400":
- $ref: "#/components/responses/400"
- "500":
- $ref: "#/components/responses/500"
+ - $ref: '#/components/schemas/ListedSandbox'
+ '401':
+ $ref: '#/components/responses/401'
+ '400':
+ $ref: '#/components/responses/400'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes/metrics:
get:
@@ -1753,18 +1862,18 @@ paths:
maxItems: 100
uniqueItems: true
responses:
- "200":
+ '200':
description: Successfully returned all running sandboxes with metrics
content:
application/json:
schema:
- $ref: "#/components/schemas/SandboxesWithMetrics"
- "401":
- $ref: "#/components/responses/401"
- "400":
- $ref: "#/components/responses/400"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/SandboxesWithMetrics'
+ '401':
+ $ref: '#/components/responses/401'
+ '400':
+ $ref: '#/components/responses/400'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes/{sandboxID}/logs:
get:
@@ -1775,7 +1884,7 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
- in: query
name: start
schema:
@@ -1792,18 +1901,18 @@ paths:
type: integer
description: Maximum number of logs that should be returned
responses:
- "200":
+ '200':
description: Successfully returned the sandbox logs
content:
application/json:
schema:
- $ref: "#/components/schemas/SandboxLogs"
- "404":
- $ref: "#/components/responses/404"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/SandboxLogs'
+ '404':
+ $ref: '#/components/responses/404'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes/{sandboxID}:
get:
@@ -1814,20 +1923,20 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
responses:
- "200":
+ '200':
description: Successfully returned the sandbox
content:
application/json:
schema:
- $ref: "#/components/schemas/SandboxDetail"
- "404":
- $ref: "#/components/responses/404"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/SandboxDetail'
+ '404':
+ $ref: '#/components/responses/404'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
delete:
description: Kill a sandbox
@@ -1837,16 +1946,16 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
responses:
- "204":
+ '204':
description: The sandbox was killed successfully
- "404":
- $ref: "#/components/responses/404"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ '404':
+ $ref: '#/components/responses/404'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes/{sandboxID}/metrics:
get:
@@ -1857,7 +1966,7 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
- in: query
name: start
schema:
@@ -1874,22 +1983,22 @@ paths:
description: Unix timestamp for the end of the interval, in seconds, for which the metrics
responses:
- "200":
+ '200':
description: Successfully returned the sandbox metrics
content:
application/json:
schema:
type: array
items:
- $ref: "#/components/schemas/SandboxMetric"
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/SandboxMetric'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
# TODO: Pause and resume might be exposed as POST /sandboxes/{sandboxID}/snapshot and then POST /sandboxes with specified snapshotting setup
/sandboxes/{sandboxID}/pause:
@@ -1901,18 +2010,18 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
responses:
- "204":
+ '204':
description: The sandbox was paused successfully and can be resumed
- "409":
- $ref: "#/components/responses/409"
- "404":
- $ref: "#/components/responses/404"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ '409':
+ $ref: '#/components/responses/409'
+ '404':
+ $ref: '#/components/responses/404'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes/{sandboxID}/resume:
post:
@@ -1924,28 +2033,28 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/ResumedSandbox"
+ $ref: '#/components/schemas/ResumedSandbox'
responses:
- "201":
+ '201':
description: The sandbox was resumed successfully
content:
application/json:
schema:
- $ref: "#/components/schemas/Sandbox"
- "409":
- $ref: "#/components/responses/409"
- "404":
- $ref: "#/components/responses/404"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/Sandbox'
+ '409':
+ $ref: '#/components/responses/409'
+ '404':
+ $ref: '#/components/responses/404'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes/{sandboxID}/connect:
post:
@@ -1956,34 +2065,34 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/ConnectSandbox"
+ $ref: '#/components/schemas/ConnectSandbox'
responses:
- "200":
+ '200':
description: The sandbox was already running
content:
application/json:
schema:
- $ref: "#/components/schemas/Sandbox"
- "201":
+ $ref: '#/components/schemas/Sandbox'
+ '201':
description: The sandbox was resumed successfully
content:
application/json:
schema:
- $ref: "#/components/schemas/Sandbox"
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/Sandbox'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes/{sandboxID}/timeout:
post:
@@ -2007,16 +2116,16 @@ paths:
format: int32
minimum: 0
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
responses:
- "204":
+ '204':
description: Successfully set the sandbox timeout
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
/sandboxes/{sandboxID}/refreshes:
post:
@@ -2038,14 +2147,14 @@ paths:
maximum: 3600 # 1 hour
minimum: 0
parameters:
- - $ref: "#/components/parameters/sandboxID"
+ - $ref: '#/components/parameters/sandboxID'
responses:
- "204":
+ '204':
description: Successfully refreshed the sandbox
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
/v3/templates:
post:
@@ -2054,26 +2163,27 @@ paths:
security:
- ApiKeyAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateBuildRequestV3"
+ $ref: '#/components/schemas/TemplateBuildRequestV3'
responses:
- "202":
+ '202':
description: The build was requested successfully
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateRequestResponseV3"
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TemplateRequestResponseV3'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/v2/templates:
post:
@@ -2083,26 +2193,27 @@ paths:
security:
- ApiKeyAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateBuildRequestV2"
+ $ref: '#/components/schemas/TemplateBuildRequestV2'
responses:
- "202":
+ '202':
description: The build was requested successfully
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateLegacy"
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TemplateLegacy'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/templates/{templateID}/files/{hash}:
get:
@@ -2112,8 +2223,9 @@ paths:
- AccessTokenAuth: []
- ApiKeyAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
+ - $ref: '#/components/parameters/templateID'
- in: path
name: hash
required: true
@@ -2122,20 +2234,20 @@ paths:
description: Hash of the files
responses:
- "201":
+ '201':
description: The upload link where to upload the tar file
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateBuildFileUpload"
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TemplateBuildFileUpload'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
/templates:
get:
@@ -2145,6 +2257,7 @@ paths:
- ApiKeyAuth: []
- AccessTokenAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- in: query
required: false
@@ -2153,7 +2266,7 @@ paths:
type: string
description: Identifier of the team
responses:
- "200":
+ '200':
description: Successfully returned all templates
content:
application/json:
@@ -2161,11 +2274,11 @@ paths:
type: array
items:
allOf:
- - $ref: "#/components/schemas/Template"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ - $ref: '#/components/schemas/Template'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
post:
description: Create a new template
deprecated: true
@@ -2173,26 +2286,27 @@ paths:
security:
- AccessTokenAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateBuildRequest"
+ $ref: '#/components/schemas/TemplateBuildRequest'
responses:
- "202":
+ '202':
description: The build was accepted
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateLegacy"
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TemplateLegacy'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/templates/{templateID}:
get:
@@ -2203,20 +2317,20 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
- - $ref: "#/components/parameters/paginationNextToken"
- - $ref: "#/components/parameters/paginationLimit"
+ - $ref: '#/components/parameters/templateID'
+ - $ref: '#/components/parameters/paginationNextToken'
+ - $ref: '#/components/parameters/paginationLimit'
responses:
- "200":
+ '200':
description: Successfully returned the template with its builds
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateWithBuilds"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TemplateWithBuilds'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
post:
description: Rebuild an template
deprecated: true
@@ -2224,26 +2338,27 @@ paths:
security:
- AccessTokenAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
+ - $ref: '#/components/parameters/templateID'
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateBuildRequest"
+ $ref: '#/components/schemas/TemplateBuildRequest'
responses:
- "202":
+ '202':
description: The build was accepted
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateLegacy"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TemplateLegacy'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
delete:
description: Delete a template
tags: [templates]
@@ -2251,39 +2366,42 @@ paths:
- ApiKeyAuth: []
- AccessTokenAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
+ - $ref: '#/components/parameters/templateID'
responses:
- "204":
+ '204':
description: The template was deleted successfully
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
patch:
description: Update template
+ deprecated: true
tags: [templates]
security:
- ApiKeyAuth: []
- AccessTokenAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
+ - $ref: '#/components/parameters/templateID'
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateUpdateRequest"
+ $ref: '#/components/schemas/TemplateUpdateRequest'
responses:
- "200":
+ '200':
description: The template was updated successfully
- "400":
- $ref: "#/components/responses/400"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/templates/{templateID}/builds/{buildID}:
post:
@@ -2293,16 +2411,17 @@ paths:
security:
- AccessTokenAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
- - $ref: "#/components/parameters/buildID"
+ - $ref: '#/components/parameters/templateID'
+ - $ref: '#/components/parameters/buildID'
responses:
- "202":
+ '202':
description: The build has started
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/v2/templates/{templateID}/builds/{buildID}:
post:
@@ -2311,22 +2430,54 @@ paths:
security:
- ApiKeyAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
- - $ref: "#/components/parameters/buildID"
+ - $ref: '#/components/parameters/templateID'
+ - $ref: '#/components/parameters/buildID'
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateBuildStartV2"
+ $ref: '#/components/schemas/TemplateBuildStartV2'
responses:
- "202":
+ '202':
description: The build has started
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
+
+ /v2/templates/{templateID}:
+ patch:
+ description: Update template
+ tags: [templates]
+ security:
+ - ApiKeyAuth: []
+ - AccessTokenAuth: []
+ - Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
+ parameters:
+ - $ref: '#/components/parameters/templateID'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TemplateUpdateRequest'
+ responses:
+ '200':
+ description: The template was updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TemplateUpdateResponse'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/templates/{templateID}/builds/{buildID}/status:
get:
@@ -2336,9 +2487,10 @@ paths:
- AccessTokenAuth: []
- ApiKeyAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
- - $ref: "#/components/parameters/buildID"
+ - $ref: '#/components/parameters/templateID'
+ - $ref: '#/components/parameters/buildID'
- in: query
name: logsOffset
schema:
@@ -2359,20 +2511,20 @@ paths:
- in: query
name: level
schema:
- $ref: "#/components/schemas/LogLevel"
+ $ref: '#/components/schemas/LogLevel'
responses:
- "200":
+ '200':
description: Successfully returned the template
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateBuildInfo"
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TemplateBuildInfo'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
/templates/{templateID}/builds/{buildID}/logs:
get:
@@ -2382,9 +2534,10 @@ paths:
- AccessTokenAuth: []
- ApiKeyAuth: []
- Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/templateID"
- - $ref: "#/components/parameters/buildID"
+ - $ref: '#/components/parameters/templateID'
+ - $ref: '#/components/parameters/buildID'
- in: query
name: cursor
schema:
@@ -2404,29 +2557,114 @@ paths:
- in: query
name: direction
schema:
- $ref: "#/components/schemas/LogsDirection"
+ $ref: '#/components/schemas/LogsDirection'
- in: query
name: level
schema:
- $ref: "#/components/schemas/LogLevel"
+ $ref: '#/components/schemas/LogLevel'
- in: query
name: source
schema:
- $ref: "#/components/schemas/LogsSource"
+ $ref: '#/components/schemas/LogsSource'
description: Source of the logs that should be returned from
responses:
- "200":
+ '200':
description: Successfully returned the template build logs
content:
application/json:
schema:
- $ref: "#/components/schemas/TemplateBuildLogsResponse"
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TemplateBuildLogsResponse'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
+
+ /templates/tags:
+ post:
+ description: Assign tag(s) to a template build
+ tags: [tags]
+ security:
+ - ApiKeyAuth: []
+ - Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AssignTemplateTagsRequest'
+ responses:
+ '201':
+ description: Tag assigned successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AssignedTemplateTags'
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
+ delete:
+ description: Delete multiple tags from templates
+ tags: [tags]
+ security:
+ - ApiKeyAuth: []
+ - Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteTemplateTagsRequest'
+ responses:
+ '204':
+ description: Tags deleted successfully
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
+
+ /templates/aliases/{alias}:
+ get:
+ description: Check if template with given alias exists
+ tags: [templates]
+ security:
+ - ApiKeyAuth: []
+ - Supabase1TokenAuth: []
+ Supabase2TeamAuth: []
+ parameters:
+ - name: alias
+ in: path
+ required: true
+ schema:
+ type: string
+ description: Template alias
+ responses:
+ '200':
+ description: Successfully queried template by alias
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TemplateAliasResponse'
+ '400':
+ $ref: '#/components/responses/400'
+ '403':
+ $ref: '#/components/responses/403'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
/nodes:
get:
@@ -2435,7 +2673,7 @@ paths:
security:
- AdminTokenAuth: []
responses:
- "200":
+ '200':
description: Successfully returned all nodes
content:
application/json:
@@ -2443,11 +2681,11 @@ paths:
type: array
items:
allOf:
- - $ref: "#/components/schemas/Node"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ - $ref: '#/components/schemas/Node'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/nodes/{nodeID}:
get:
@@ -2456,7 +2694,7 @@ paths:
security:
- AdminTokenAuth: []
parameters:
- - $ref: "#/components/parameters/nodeID"
+ - $ref: '#/components/parameters/nodeID'
- in: query
name: clusterID
description: Identifier of the cluster
@@ -2465,39 +2703,39 @@ paths:
type: string
format: uuid
responses:
- "200":
+ '200':
description: Successfully returned the node
content:
application/json:
schema:
- $ref: "#/components/schemas/NodeDetail"
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/NodeDetail'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
post:
description: Change status of a node
tags: [admin]
security:
- AdminTokenAuth: []
parameters:
- - $ref: "#/components/parameters/nodeID"
+ - $ref: '#/components/parameters/nodeID'
requestBody:
content:
application/json:
schema:
- $ref: "#/components/schemas/NodeStatusChange"
+ $ref: '#/components/schemas/NodeStatusChange'
responses:
- "204":
+ '204':
description: The node status was changed successfully
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
/admin/teams/{teamID}/sandboxes/kill:
post:
@@ -2515,18 +2753,18 @@ paths:
format: uuid
description: Team ID
responses:
- "200":
+ '200':
description: Successfully killed sandboxes
content:
application/json:
schema:
- $ref: "#/components/schemas/AdminSandboxKillResult"
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/AdminSandboxKillResult'
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
/access-tokens:
post:
@@ -2539,18 +2777,18 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/NewAccessToken"
+ $ref: '#/components/schemas/NewAccessToken'
responses:
- "201":
+ '201':
description: Access token created successfully
content:
application/json:
schema:
- $ref: "#/components/schemas/CreatedAccessToken"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/CreatedAccessToken'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/access-tokens/{accessTokenID}:
delete:
@@ -2559,16 +2797,16 @@ paths:
security:
- Supabase1TokenAuth: []
parameters:
- - $ref: "#/components/parameters/accessTokenID"
+ - $ref: '#/components/parameters/accessTokenID'
responses:
- "204":
+ '204':
description: Access token deleted successfully
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
/api-keys:
get:
@@ -2578,18 +2816,18 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
responses:
- "200":
+ '200':
description: Successfully returned all team API keys
content:
application/json:
schema:
type: array
items:
- $ref: "#/components/schemas/TeamAPIKey"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/TeamAPIKey'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
post:
description: Create a new team API key
tags: [api-keys]
@@ -2601,18 +2839,18 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/NewTeamAPIKey"
+ $ref: '#/components/schemas/NewTeamAPIKey'
responses:
- "201":
+ '201':
description: Team API key created successfully
content:
application/json:
schema:
- $ref: "#/components/schemas/CreatedTeamAPIKey"
- "401":
- $ref: "#/components/responses/401"
- "500":
- $ref: "#/components/responses/500"
+ $ref: '#/components/schemas/CreatedTeamAPIKey'
+ '401':
+ $ref: '#/components/responses/401'
+ '500':
+ $ref: '#/components/responses/500'
/api-keys/{apiKeyID}:
patch:
@@ -2622,22 +2860,22 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/apiKeyID"
+ - $ref: '#/components/parameters/apiKeyID'
requestBody:
required: true
content:
application/json:
schema:
- $ref: "#/components/schemas/UpdateTeamAPIKey"
+ $ref: '#/components/schemas/UpdateTeamAPIKey'
responses:
- "200":
+ '200':
description: Team API key updated successfully
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
delete:
description: Delete a team API key
tags: [api-keys]
@@ -2645,13 +2883,13 @@ paths:
- Supabase1TokenAuth: []
Supabase2TeamAuth: []
parameters:
- - $ref: "#/components/parameters/apiKeyID"
+ - $ref: '#/components/parameters/apiKeyID'
responses:
- "204":
+ '204':
description: Team API key deleted successfully
- "401":
- $ref: "#/components/responses/401"
- "404":
- $ref: "#/components/responses/404"
- "500":
- $ref: "#/components/responses/500"
+ '401':
+ $ref: '#/components/responses/401'
+ '404':
+ $ref: '#/components/responses/404'
+ '500':
+ $ref: '#/components/responses/500'
diff --git a/src/configs/mock-data.ts b/src/configs/mock-data.ts
index cfcf0edb8..d1d04e593 100644
--- a/src/configs/mock-data.ts
+++ b/src/configs/mock-data.ts
@@ -15,6 +15,7 @@ import { nanoid } from 'nanoid'
const DEFAULT_TEMPLATES: DefaultTemplate[] = [
{
aliases: ['code-interpreter'],
+ names: ['code-interpreter'],
buildID: 'build_000',
cpuCount: 1,
memoryMB: 1024,
@@ -36,6 +37,7 @@ const DEFAULT_TEMPLATES: DefaultTemplate[] = [
},
{
aliases: ['web-starter'],
+ names: ['web-starter'],
buildID: 'build_005',
cpuCount: 2,
memoryMB: 2048,
@@ -54,6 +56,7 @@ const DEFAULT_TEMPLATES: DefaultTemplate[] = [
},
{
aliases: ['data-science'],
+ names: ['data-science'],
buildID: 'build_006',
cpuCount: 4,
memoryMB: 8192,
@@ -78,6 +81,7 @@ const DEFAULT_TEMPLATES: DefaultTemplate[] = [
const TEMPLATES: Template[] = [
{
aliases: ['node-typescript', 'node-ts'],
+ names: ['node-typescript', 'node-ts'],
buildID: 'build_001',
cpuCount: 2,
memoryMB: 2048,
@@ -97,6 +101,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['react-vite'],
+ names: ['react-vite'],
buildID: 'build_002',
cpuCount: 1,
memoryMB: 1024,
@@ -113,6 +118,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['postgres', 'pg'],
+ names: ['postgres', 'pg'],
buildID: 'build_003',
cpuCount: 2,
memoryMB: 4096,
@@ -129,6 +135,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['redis'],
+ names: ['redis'],
buildID: 'build_004',
cpuCount: 1,
memoryMB: 2048,
@@ -145,6 +152,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['python-ml', 'ml'],
+ names: ['python-ml', 'ml'],
buildID: 'build_005',
cpuCount: 4,
memoryMB: 8192,
@@ -161,6 +169,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['elastic', 'es'],
+ names: ['elastic', 'es'],
buildID: 'build_006',
cpuCount: 2,
memoryMB: 4096,
@@ -177,6 +186,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['grafana'],
+ names: ['grafana'],
buildID: 'build_007',
cpuCount: 1,
memoryMB: 2048,
@@ -193,6 +203,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['nginx'],
+ names: ['nginx'],
buildID: 'build_008',
cpuCount: 1,
memoryMB: 1024,
@@ -209,6 +220,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['mongodb', 'mongo'],
+ names: ['mongodb', 'mongo'],
buildID: 'build_009',
cpuCount: 2,
memoryMB: 4096,
@@ -225,6 +237,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['mysql'],
+ names: ['mysql'],
buildID: 'build_010',
envdVersion: '0.1.0',
cpuCount: 2,
@@ -241,6 +254,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['nextjs', 'next'],
+ names: ['nextjs', 'next'],
buildID: 'build_011',
envdVersion: '0.1.0',
cpuCount: 2,
@@ -260,6 +274,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['vue', 'vue3'],
+ names: ['vue', 'vue3'],
buildID: 'build_012',
cpuCount: 1,
envdVersion: '0.1.0',
@@ -276,6 +291,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['django'],
+ names: ['django'],
buildID: 'build_013',
envdVersion: '0.1.0',
cpuCount: 2,
@@ -295,6 +311,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['flask'],
+ names: ['flask'],
buildID: 'build_014',
envdVersion: '0.1.0',
cpuCount: 1,
@@ -311,6 +328,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['golang', 'go'],
+ names: ['golang', 'go'],
buildID: 'build_015',
envdVersion: '0.1.0',
cpuCount: 2,
@@ -330,6 +348,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['rust'],
+ names: ['rust'],
buildID: 'build_016',
cpuCount: 2,
memoryMB: 2048,
@@ -346,6 +365,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['java-spring', 'spring'],
+ names: ['java-spring', 'spring'],
buildID: 'build_017',
cpuCount: 3,
memoryMB: 4096,
@@ -365,6 +385,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['dotnet', 'csharp'],
+ names: ['dotnet', 'csharp'],
buildID: 'build_018',
cpuCount: 2,
memoryMB: 3072,
@@ -381,6 +402,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['php-laravel', 'laravel'],
+ names: ['php-laravel', 'laravel'],
buildID: 'build_019',
cpuCount: 2,
memoryMB: 2048,
@@ -400,6 +422,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['ruby-rails', 'rails'],
+ names: ['ruby-rails', 'rails'],
buildID: 'build_020',
cpuCount: 2,
memoryMB: 2048,
@@ -416,6 +439,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['jupyter', 'notebook'],
+ names: ['jupyter', 'notebook'],
buildID: 'build_021',
cpuCount: 4,
memoryMB: 6144,
@@ -435,6 +459,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['tensorflow'],
+ names: ['tensorflow'],
buildID: 'build_022',
cpuCount: 8,
memoryMB: 16384,
@@ -454,6 +479,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['pytorch'],
+ names: ['pytorch'],
buildID: 'build_023',
cpuCount: 8,
memoryMB: 16384,
@@ -473,6 +499,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['cassandra'],
+ names: ['cassandra'],
buildID: 'build_024',
cpuCount: 4,
memoryMB: 8192,
@@ -489,6 +516,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['docker', 'dind'],
+ names: ['docker', 'dind'],
buildID: 'build_025',
cpuCount: 2,
memoryMB: 4096,
@@ -508,6 +536,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['kubernetes', 'k8s'],
+ names: ['kubernetes', 'k8s'],
buildID: 'build_026',
cpuCount: 4,
memoryMB: 8192,
@@ -527,6 +556,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['terraform'],
+ names: ['terraform'],
buildID: 'build_027',
cpuCount: 2,
memoryMB: 2048,
@@ -543,6 +573,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['ansible'],
+ names: ['ansible'],
buildID: 'build_028',
cpuCount: 1,
memoryMB: 1536,
@@ -562,6 +593,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['prometheus'],
+ names: ['prometheus'],
buildID: 'build_029',
cpuCount: 2,
memoryMB: 3072,
@@ -578,6 +610,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['jenkins'],
+ names: ['jenkins'],
buildID: 'build_030',
cpuCount: 3,
envdVersion: '0.1.0',
@@ -597,6 +630,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['gitlab-ci'],
+ names: ['gitlab-ci'],
buildID: 'build_031',
cpuCount: 2,
envdVersion: '0.1.0',
@@ -613,6 +647,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['apache-spark', 'spark'],
+ names: ['apache-spark', 'spark'],
buildID: 'build_032',
cpuCount: 8,
envdVersion: '0.1.0',
@@ -632,6 +667,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['kafka'],
+ names: ['kafka'],
envdVersion: '0.1.0',
buildID: 'build_033',
cpuCount: 3,
@@ -648,6 +684,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['rabbitmq'],
+ names: ['rabbitmq'],
buildID: 'build_034',
cpuCount: 2,
memoryMB: 2048,
@@ -667,6 +704,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['zookeeper'],
+ names: ['zookeeper'],
envdVersion: '0.1.0',
buildID: 'build_035',
cpuCount: 1,
@@ -683,6 +721,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['solr'],
+ names: ['solr'],
buildID: 'build_036',
cpuCount: 2,
memoryMB: 4096,
@@ -702,6 +741,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['logstash'],
+ names: ['logstash'],
buildID: 'build_037',
cpuCount: 2,
memoryMB: 3072,
@@ -718,6 +758,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['kibana'],
+ names: ['kibana'],
buildID: 'build_038',
cpuCount: 1,
memoryMB: 2048,
@@ -734,6 +775,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['minio'],
+ names: ['minio'],
buildID: 'build_039',
cpuCount: 2,
memoryMB: 2048,
@@ -753,6 +795,7 @@ const TEMPLATES: Template[] = [
},
{
aliases: ['vault'],
+ names: ['vault'],
buildID: 'build_040',
cpuCount: 1,
envdVersion: '0.1.0',
diff --git a/src/features/dashboard/settings/general/info-card.tsx b/src/features/dashboard/settings/general/info-card.tsx
index 91976ec53..aaab3dd2a 100644
--- a/src/features/dashboard/settings/general/info-card.tsx
+++ b/src/features/dashboard/settings/general/info-card.tsx
@@ -38,6 +38,11 @@ export function InfoCard({ className }: InfoCardProps) {
{team.id}