Inventory
The Inventory is responsible for storing, serving and grouping Escape releases and metadata.
The EscapeKit Inventory is very similar to the Open Source Inventory and can act as a drop-in replacement. The main difference between the proprietary and open source version of the Inventory is that the proprietary version comes with authentication and Role Based Access Control.
Endpoints
Applications
/api/v1/inventory/{namespace}/units/
List the units in a namespace
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/
Get a unit and its versions.
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/tags/
Tag a release
User should have one of the following roles:
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/
Get all the unit's known versions
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
Hooks
/api/v1/inventory/{namespace}/hooks/
Get the hooks configured on a namespace. DEPRECATED?
/api/v1/inventory/{namespace}/hooks/
Update the hooks configured on a namespace. DEPRECATED?
/api/v1/inventory/{namespace}/units/{name}/hooks/
Admin endpoint to get hooks for a namespace unit. DEPRECATED?
/api/v1/inventory/{namespace}/units/{name}/hooks/
Admin endpoint to update hooks on a namespace unit. DEPRECATED?
Internal
This is a public endpoint
Status | Response Type | Description |
200 |
|
The version of the EscapeKit Inventory |
/api/v1/internal/add-namespace
Add a namespace.
User has to be logged in.
/api/v1/internal/get_namespaces_for_project
Filter /api/v1/inventory/ for the given project namespaces.
This is a public endpoint
/health
Healthcheck endpoint
This is a public endpoint
Status | Response Type | Description |
200 |
|
The version of the EscapeKit Inventory |
Namespaces
/api/v1/inventory/
List all Namespaces accessible to the user.
Unknown ACL: PublicButRBACInternally
/api/v1/inventory/__providers
Search for providers
Unknown ACL: PublicButRBACInternally
/api/v1/inventory/search
Search for releases
Unknown ACL: PublicButRBACInternally
/api/v1/inventory/{namespace}/
Get a Namespace and its units.
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/
Update Namespace metadata
User should have one of the following roles:
project:{{project}}:global:owner
Status | Response Type | Description |
201 |
|
Successfully updated the Namespace metadata. |
/api/v1/inventory/{namespace}/hard-delete
Admin endpoint to delete a namespace and everything related to it (except the on-disk packages in storage)
/api/v1/inventory/{namespace}/register
Register a new release
User should have one of the following roles:
project:{{project}}:global:write
project:{{project}}:global:owner
Releases
/api/v1/inventory/{namespace}/units/{name}/next-version
Get the next version for a given prefix.
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/
Get a release version
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/dependency-graph
Get a release's dependency graph
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/diff/
List differences between given version and the release before it.
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/diff/{diffWith}/
List differences between two given versions.
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/download
Download release package data
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/downstream
List downstream releases.
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/previous/
Get previous version
User should have one of the following roles:
project:{{project}}:global:read
project:{{project}}:global:write
project:{{project}}:global:owner
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/upload
Upload release package data
User should have one of the following roles:
project:{{project}}:global:write
project:{{project}}:global:owner
Schemas
AddNamespace
Field |
Type |
Description |
Example |
|
description |
string
|
An optional description for the namespace. |
|
logo |
string
|
An optional logo (image data) |
|
name |
string
|
The namespace itself. |
|
org_url |
string
|
An optional URL to associate with this namespace. |
|
project |
string
|
The State Project this Namespace belongs to. |
|
Application
Field |
Type |
Description |
Example |
|
description |
string
|
An optional description for the Application. This field is
automatically set based on the last released version and
can be defined in the 'description' field of the Escape plan.
|
my-project
|
latest_version |
string
|
The latest version. The highest version number for all the releases
for this Application
|
|
logo |
string
|
An optional logo (image data) |
|
name |
string
|
The application name |
hello-world
|
project |
string
|
The Namespace name (deprecated) |
my-project
|
uploaded_at |
string
|
The time of the last uploaded release. |
|
uploaded_by |
string
|
The username of the User that uploaded the last release. |
|
Dummy
Namespace
Description:
A Namespace provides a grouping for Applications.
Field |
Type |
Description |
Example |
|
description |
string
|
An optional description for the namespace. |
|
logo |
string
|
An optional logo (image data) |
|
name |
string
|
The namespace itself. |
|
org_url |
string
|
An optional URL to associate with this namespace. |
|
permission |
enum
|
Permission (deprecated). Read only. Describes global permissions for this user on this namespace. |
"read"
"write"
"owner"
"admin"
|
NamespacePayload
Description:
A payload for the Namespace and its Applications.
NamespacesPayload
Description:
Namespaces map keyed by name.
ReleaseMetadata
Description:
The result of a successful Escape release.
Field |
Type |
Description |
Example |
|
api_version |
string
|
The Release Metadata API version. |
|
branch |
string
|
Optional repository branch this release was built from. |
|
built_with_core_version |
string
|
What version of escape-core was used to build this release? |
|
built_with_escape_version |
string
|
What version of escape was used to build this release? |
|
description |
string
|
An optional description. |
|
files |
{ string :
string
}
|
A map of files and their checksum. |
|
gt_revision |
string
|
Optional repository revision ID this release was built from. |
|
license |
string
|
An optional license. |
|
logo |
string
|
Optional image data. |
|
metadata |
{ string :
string
}
|
A map of key:value pairs |
|
name |
string
|
The Application name. |
|
project |
string
|
Deprecated. The Namespace this release is grouped under. |
|
repository |
string
|
Optional repository this release was built from. |
|
revision_author |
string
|
Optional repository revision author this release was built from. |
|
revision_message |
string
|
Optional repository revision message this release was built from. |
|
version |
string
|
The Release version. |
|
ReleaseTagRequest
Description:
Request used to tag a release.
Field |
Type |
Description |
Example |
|
release_id |
string
|
The Release ID to which to apply the tag. |
my-project/hello-world-v1.0
|
tag |
string
|
The tag to be applied to the release. |
|