ationsThe Application Versioning APIs have been sunset. Unqork recommends using the Unqork Application Versioning tool.
Overview
Application Versioning is an important process in software development. Because many team members contribute to the creation of an application, versioning ensures team members are building and testing the correct application version at the correct environment level.
To learn more about Application Versioning, view our Application Versioning article.
This reference guide contains all the necessary API documentation to perform GraphQL queries and mutations on your versioned applications. For example, you can enable Application Versioning in an application, create application versions, add application dependencies, and so on. To use these APIs, you must access and authenticate your environment's GraphQL sandbox.
To learn about accessing, authenticating, and using the GraphQL sandbox, view our How to: Use the GraphQL Sandbox article.
Queries
This section explores all available queries you can perform on your versioned applications.
In the Editor panel, remove the example query.
In the side panel to the left of the Editor panel, click
(Explorer).
Under Root Types, select
query.
Select
administration.
Select
application.
Selecting any of the available queries lets you add arguments and fields, and enter a payload in the Variables panel of the GraphQL sandbox.
Arguments and a minimum of one field are required. Field selections depend on the data you want returned.
Enabling Application Versioning
Use the canChangeApplicationVersioningSetting query to determine if you can change the Application Versioning setting to a specific value. For example, if you want to disable Application Versioning, you'll send versioning: false
in the payload. The returned canChange
field determines whether you can change the value you sent. Doing so lets Unqork perform a check to determine how you want to change the setting. if you want to disable it, Unqork checks to see if you have version(s) created and return canChange: false
.
Once enabled, you cannot disable Application Versioning.
This query contains the following arguments:
Argument | Description |
---|---|
canChangeApplicationVersioningSettingInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
canChange | Whether Application Versioning is enabled for a specified application. Displays | Boolean |
errors | If an error occurs in the call, it is returned. | String |
To make the call, you must provide the application ID and a Boolean value of true. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request:
{
"canChangeApplicationVersioningSettingInput": {
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45",
// To enable Application Versioning in your application.
"versioning": true
}
}
Generating Version Resolutions for an Application
Use the generateVersionResolutions query to generate version resolutions for a specified application.
This query contains the following arguments:
Argument | Description |
---|---|
applicationInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
generateAt | The date and time when the version resolutions were generated. | Datetime |
versionResolutions | Details on all dependency resolutions associated with modules, workflows, transforms, and styles.
| Multiple |
To make the call, you must provide the application ID. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"applicationInput": {
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45"
}
}
Retrieving All Application Dependencies
Use the getAllAvailableDependencies query to retrieve all available dependencies in your environment.
This query provides the following fields to return in the response:
Field | Description | Type |
---|---|---|
applicationId | The application's unique identifier. | String |
applicationName | The application's name. | String |
version | The application's current version number. | Semver |
Retrieving an Application's Dependencies
Use the getAllApplicationVersionDependencies query to retrieve all dependencies for a versioned application.
This query contains the following arguments:
Argument | Description |
---|---|
applicationVersionDependenciesInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
applicationId | The application's unique identifier. | String |
applicationName | The application's name. | String |
applicationTitle | The application's title. | String |
created | The date and time the application was created. | Datetime |
modified | The date and time the application was last modified. | Datetime |
version | The application's current version number. | Semver |
To make the call, you must provide the application ID and version of the application. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"applicationVersionDependenciesInput": {
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45",
// The application you want to query.
"version": "1.0.0"
}
}
Retrieving an Application Version
Use the getApplicationVersion query to retrieve a specific version of an application.
This query contains the following arguments:
Argument | Description |
---|---|
getApplicationVersionInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
active | Whether the specified application version is the active one. Displays | Boolean |
applicationId | The application's unique identifier. | String |
created | The date and time the application version was created. | Datetime |
createdBy | The email address of the Creator that created the application version. | String |
definition | The complete JSON definition of the application version.
| Multiple |
description | The description explaining the changes that were made to the application when the version was created. | String |
id | The unique identifier associated with this application version. | String |
modified | The date and time the application version was last modified. | Datetime |
modifiedBy | The email address of the Creator that modified the application version. | String |
moduleImports | The unique identifiers for modules imported in the application version.
| Multiple |
version | The application's version number. | Semver |
versionResolutions | Details on all dependency resolutions associated with modules, workflows, transforms, and styles in the application version.
| Multiple |
To make the call, you must provide the application ID and version of the application. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"getApplicationVersionInput": {
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45",
// The version you want to query. If omitted, the active version is returned.
"semanticVersion": "1.0.0"
}
}
Retrieving Application Version History
Use the getApplicationVersionHistory query to retrieve version history for a specified application.
This query contains the following arguments:
Argument | Description |
---|---|
getApplicationVersionHistoryInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
created | The date and time the application version was created. | Datetime |
elements | The application's elements, including modules, workflows, transforms, and styles.
| Multiple |
version | The application's version number. | String |
To make the call, you must provide the application ID. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"getApplicationVersionHistoryInput": {
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45"
}
}
Retrieving In-Progess Changes
Use the compareApplicationVersion query to retrieve information associated with the changes between the current and all recently created versions of a specified application.
This query contains the following arguments:
Argument | Description | Type |
---|---|---|
applicationId | The application's unique identifier. | String |
version | The release or version type. Values include major, minor, and patch.
| Semver |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
changed | Details associated with changes made to app elements in the application. For example, if an application element was created, modified, or deleted.
| Multiple |
unchanged | Details associated with application elements that were not changed in the application.
| Multiple |
version | The application's version number. | Semver |
To make the call, you must provide the application ID. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45"
}
Retrieving Multiple Application Versions
Use the Introduction to Application Versioning getApplicationVersionsBatch query to retrieve all application versions for a specified application.
This query contains the following arguments:
Argument | Description |
---|---|
getApplicationVersionsBatchInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
active | Whether the specified application version is the active one. Displays | Boolean |
applicationId | The application's unique identifier. | String |
created | The date and time the application version was created. | Datetime |
createdBy | The email address of the Creator that created the application version. | String |
definition | The complete JSON definition of the application version.
| Multiple |
description | The description explaining the changes that were made to the application when the version was created. | String |
id | The unique identifier associated with this application version. | String |
modified | The date and time the application version was last modified. | Datetime |
modifiedBy | The email address of the Creator that modified the application version. | String |
moduleImports | The unique identifiers for modules imported in the application version.
| Multiple |
version | The application's version number. | Semver |
versionResolutions | Details on all dependency resolutions associated with modules, workflows, transforms, and styles in the application version.
| Multiple |
To make the call, you must provide the application ID. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"getApplicationVersionsBatchInput": {
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45"
}
}
Retrieving the Next Application Version Number
Use the getNextVersion query to retrieve the next application version number for a specified application and release (or version) type.
This query contains the following arguments:
Argument | Description | Type |
---|---|---|
applicationId | The application's unique identifier. | String |
releaseType | The release or version type. Values include
| String |
To make the call, you must provide the application ID and release type. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45",
// Values include major, minor, or patch.
"releaseType": "minor"
}
Mutations
This section explores all available mutations you can perform on your versioned applications in the GraphQL sandbox.
In the Editor panel, remove the example query.
In the side panel to the left of the Editor panel, click
(Explorer).
Under Root Types, select
mutation.
Select
administration.
Select
application.
Selecting any of the available queries lets you add arguments and fields, and provide a payload in the Variables panel of the GraphQL sandbox.
Arguments and a minimum of one field are required. Field selections depend on the data you want returned.
Adding an Application Dependency
Use the addApplicationDependencies mutation to add an application dependency.
To add an application dependency, that dependency must have Application Versioning enabled. You can only add one application version as a dependency to another application.
This mutation contains the following arguments:
Argument | Description |
---|---|
applicationVersionInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
created | The date and time the application version was created. | Datetime |
createdBy | The email address of the Creator that created the application version. | String |
dataSchemas | JSON Schemas associated with the application. | JSON |
dependencies | Information detailing the application dependencies.
| Multiple |
description | The description of the application version. | String |
folders | The folder structure storing the application's app elements. | JSON |
id | The application's unique identifier. | String |
modified | The date and time the application version was last modified. | Datetime |
modifiedBy | The email address of the Creator that modified the application version. | String |
name | The application's name. | String |
origResource | The CORS (Cross-Origin Resource Sharing) associated with the application. | String |
previousVerisonId | The unique identifier of the application's previous version. | String |
promotions | Information detailing the promotions of the application version. | JSON |
settings | Information detailing the application's configured application settings.
| Multiple |
title | The application's title. | String |
type | The application type. | String |
workspaceId | The unique identifier of the workspace where the application exists. | String |
To make the call, you must provide the application ID. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"applicationDependenciesInput": {
// The ID of the application where you want to add the dependency.
"applicationId": "65709fbccc2b43b866d2eb45",
"dependencies": [
{
// The ID of the application dependency you want to add.
"applicationId": "6582f327453b728e979a69ef",
// The application dependency version you want to add.
"version": "1.0.0"
}
]
}
}
Changing an Existing Application Dependency's Version Number
Use the updateApplicationDependencies mutation to change an existing application dependency's version number.
This mutation contains the following arguments:
Argument | Description |
---|---|
applicationInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
created | The date and time the application version was created. | Datetime |
createdBy | The email address of the Creator that created the application version. | String |
dataSchemas | JSON Schemas associated with the application. | JSON |
dependencies | Information detailing the application dependencies.
| Multiple |
description | The description of the application version. | String |
folders | The folder structure storing the application's app elements. | JSON |
id | The application's unique identifier. | String |
modified | The date and time the application version was last modified. | Datetime |
modifiedBy | The email address of the Creator that modified the application version. | String |
name | The application's name. | String |
origResource | The CORS (Cross-Origin Resource Sharing) associated with the application. | String |
previousVerisonId | The previous unique identifier of the application's previous version. | String |
promotions | Information detailing the promotions of the application version. | JSON |
settings | Information detailing the application's configured application settings.
| Multiple |
title | The application's title. | String |
type | The application type. | String |
workspaceId | The unique identifier of the workspace where the application exists. | String |
To make the call, you must provide the application ID and new application version number. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"applicationDependenciesInput": {
// The ID of the application where the dependency exists.
"applicationId": "65709fbccc2b43b866d2eb45",
"dependencies": [
{
// The ID of the application dependency whose version number you want to change.
"applicationId": "6582f327453b728e979a69ef",
// The application dependency version you want to use.
"version": "2.0.0"
}
]
}
}
Creating an Application Version
Use the createApplicationVersion mutation to create an application version.
This mutation contains the following arguments:
Argument | Description |
---|---|
applicationVersionInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
active | Whether the specified application version is the active one.
| Boolean |
applicationId | The application's unique identifier. | String |
created | The date and time the application version was created. | Datetime |
createdBy | The email address of the Creator that created the application version. | String |
definition | The complete JSON definition of the application version.
| Multiple |
description | The description explaining the changes that were made to the application when the version was created. | String |
id | The unique identifier associated with this application version. | String |
modified | The date and time the application version was last modified. | Datetime |
modifiedBy | The email address of the Creator that modified the application version. | String |
moduleImports | The unique identifiers for modules imported in the application version.
| Multiple |
version | The application's version number. | Semver |
versionResolutions | Details on all dependency resolutions associated with modules, workflows, transforms, and styles.
| Multiple |
To make the call, you must provide the application ID and the new application version number. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"applicationVersionInput": {
// The ID of your application.
"applicationId": "65709fbccc2b43b866d2eb45",
// The new application version number.
"version": "1.3.2",
// Optional description of the new application version.
"description": "Fixed the dashboard module to gracefully fail when the weather API is down."
}
}
Removing an Application Dependency
Use the removeApplicationDependencies mutation to remove an application dependency from an application.
This mutation contains the following arguments:
Argument | Description |
---|---|
applicationInput | The required argument lets you send a payload as part of the request in the Variables panel of the GraphQL sandbox. |
It also lets you select the following fields to return in the response:
Field | Description | Type |
---|---|---|
created | The date and time the application version was created. | Datetime |
createdBy | The email address of the Creator that created the application version. | String |
dataSchemas | JSON Schemas associated with the application. | JSON |
dependencies | Information detailing the application dependencies.
| Multiple |
description | The description of the application version. | String |
folders | The folder structure storing the application's app elements. | JSON |
id | The application's unique identifier. | String |
modified | The date and time the application version was last modified. | Datetime |
modifiedBy | The email address of the Creator that modified the application version. | String |
name | The application's name. | String |
origResource | The CORS (Cross-Origin Resource Sharing) associated with the application. | String |
previousVerisonId | The previous unique identifier of the application's previous version. | String |
promotions | Information detailing the promotions of the application version. | JSON |
settings | Information detailing the application's configured application settings.
| Multiple |
title | The application's title. | String |
type | The application type. | String |
workspaceId | The unique identifier of the workspace where the application exists. | String |
To make the call, you must provide the application ID and new application version number. Add and manipulate the following payload in the Variables panel of the GraphQL sandbox to make the request.
{
"applicationDependenciesInput": {
// The ID of the application where the dependency exists.
"applicationId": "65709fbccc2b43b866d2eb45",
"dependencies": [
{
// The ID of the application dependency you want to remove.
"applicationId": "6582f327453b728e979a69ef",
// The version number of the dependency you want to remove.
"version": "2.0.0"
}
]
}
}
Promoting an Application Version
You can promote application versions, and their elements and dependencies, using Postman or another tool.
It's important to note that not all element types are currently integrated into application versioning. Promoting an application version will transfer both versioned and unversioned elements.
Versioned Elements
Versioned elements are all those contained in the versionResolutions
data. These elements include modules, workflows, and transforms. Promoting these elements also promotes their archived version.
Unversioned Elements
Unversioned elements include Data Collections and Data Schemas. Because these elements are currently unversioned, they must be promoted as-is. Updating these elements can impact a specific application version.
Below is the required information to make the API call.
Attribute | Description |
---|---|
Request Method | To promote an application version, you must use a |
URL | The required endpoint to promote your application version to the next available environment level. Use the following format: |
clientName | The subdomain of your environment. For example, |
clientLevel | The environment level where you are promoting your application version. For example, if you want to promote your application version from the Staging to QA environment level, you'll enter |
applicationId | The application ID of your versioned application. |
version | The application version you want to promote. |
Below is an example of the necessary syntax to make the API call:
POST https://training.unqork.io/api/1.0/promote/applicationVersion
{
"clientName": "training",
"clientLevel": "QA",
"applicationId": "65709fbccc2b43b866d2eb45",
"version": "1.0.0"
}