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

GET
/api/v1/inventory/{namespace}/units/
List the units in a namespace
GET
/api/v1/inventory/{namespace}/units/{name}/
Get a unit and its versions.
/api/v1/inventory/{namespace}/units/{name}/tags/
Tag a release
GET
/api/v1/inventory/{namespace}/units/{name}/versions/
Get all the unit's known versions

Hooks

GET
/api/v1/inventory/{namespace}/hooks/
Get the hooks configured on a namespace. DEPRECATED?
PUT
/api/v1/inventory/{namespace}/hooks/
Update the hooks configured on a namespace. DEPRECATED?
GET
/api/v1/inventory/{namespace}/units/{name}/hooks/
Admin endpoint to get hooks for a namespace unit. DEPRECATED?
PUT
/api/v1/inventory/{namespace}/units/{name}/hooks/
Admin endpoint to update hooks on a namespace unit. DEPRECATED?

Internal

GET
/
Home
/api/v1/internal/add-namespace
Add a namespace.
GET
/api/v1/internal/get_namespaces_for_project
Filter /api/v1/inventory/ for the given project namespaces.
GET
/health
Healthcheck endpoint

Namespaces

GET
/api/v1/inventory/
List all Namespaces accessible to the user.
GET
/api/v1/inventory/__providers
Search for providers
/api/v1/inventory/search
Search for releases
GET
/api/v1/inventory/{namespace}/
Get a Namespace and its units.
PUT
/api/v1/inventory/{namespace}/
Update Namespace metadata
DELETE
/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

Releases

GET
/api/v1/inventory/{namespace}/units/{name}/next-version
Get the next version for a given prefix.
GET
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/
Get a release version
GET
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/dependency-graph
Get a release's dependency graph
GET
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/diff/
List differences between given version and the release before it.
GET
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/diff/{diffWith}/
List differences between two given versions.
GET
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/download
Download release package data
GET
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/downstream
List downstream releases.
GET
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/previous/
Get previous version
/api/v1/inventory/{namespace}/units/{name}/versions/{version}/upload
Upload release package data

Schemas

AddNamespace

Description:
Type:
object
FieldTypeDescriptionExample
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

Description:
Type:
object
FieldTypeDescriptionExample
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 namehello-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

Description:
Type:
string

Namespace

Description:
A Namespace provides a grouping for Applications.
Type:
object
FieldTypeDescriptionExample
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.
Type:
object
FieldTypeDescriptionExample
projectNamespace
units{
string
: Application }

NamespacesPayload

Description:
Namespaces map keyed by name.
Type:
{
string
: Namespace }

ReleaseMetadata

Description:
The result of a successful Escape release.
Type:
object
FieldTypeDescriptionExample
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.
Type:
object
FieldTypeDescriptionExample
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.