Application as Configuration
Application Management
Download an Application
Syntax:download-application <username> <password> <server-url> <application-name> <output-file>.<json|yaml>
Example:`./download-application myuser mypassword https://url:8443 myApp myApp.json`With saved credentials (application name as argument):
download-application <application-name> <output-file>.<json|yaml>
Example:`./download-application myApp myApp.json`Upload an Application
Syntax:upload-application <username> <password> <server-url> <input-file>.<json|yaml>
Example:`./upload-application myuser mypassword https://url:8443 myApp.json`With saved credentials:
upload-application <input-file>.<json|yaml>
Example:`./upload-application myApp.json`
Application CAC Structure
An Application CAC file contains the complete definition of an application including its properties, teams, tags, webhooks, and configurations.
Field Descriptions
Application Metadata
- type: The type of entity (set to "application")
- name: The unique identifier for the application
- description: Human-readable description of the application (optional, defaults to empty)
- useWizard: Boolean value indicating whether to use the wizard interface
Settings
The settings object contains configuration options:
- enforceCompleteSnapshots: Optional boolean value, defaults to false
- onlyChangedVersions: Optional boolean value, defaults to false
Notification Scheme
- notificationSchemeName: Optional field referencing an existing notification scheme from the server, defaults to none
Properties Structure
The properties array contains property definitions. Each property definition includes:
- name: Internal property name
- value: Optional property value
- description: Optional property description
- secure: Boolean indicating if the property value is encrypted (default: false)
Note: You cannot delete existing properties but you can modify them.
Webhooks
- webhook: Optional array for adding webhooks. Each webhook definition includes:
- url: The webhook URL
- proxyHost: Proxy host (optional)
- proxyPort: Proxy port (optional)
- environments: Array of environment names where the webhook applies
- webhookTemplate: Object containing webhook template configuration
- name: Template name
- description: Template description
- type: Webhook type (e.g., PROCESS_SUCCESS)
Note: You can add new webhooks, modify them, or delete them by removing the corresponding JSON from the webhooks array. Environment & webhook-template are prerequisites. You cannot modify webhook proxyusername and proxypassword using CAC and would have to do it in UI.
Team Mappings
- teams: Optional array of team names that already exist in the server
Tags
- tags: Optional array of tag names that already exist in the server
Informational Fields
- components: Optional info-only field listing associated components
- environments: Optional info-only field listing associated environments
- processes: Optional info-only field listing associated processes
Note: The informational fields (components, environments, processes) are for reference only. To make modifications to these entities, use their respective commands.
Mandatory and Optional Fields
The only mandatory field to create an application is name. The minimal JSON required to create an application is:
{
"name": "PAC-APP-2"
}When an application is created with only the name field, the server applies default values for all other fields.
All remaining fields are optional at the application level and can be provided to configure settings such as properties, webhooks, teams, tags, and other application configurations.
Limitations
- Pipelines, Blueprint, Calendar are not supported yet
- components, environments, processes — These fields are for informational purposes only. If you want to make modifications to them, you must use the respective commands for these entities
- Webhook credentials — You cannot modify webhook proxyusername and proxypassword using CAC; these must be configured in the UI
JSON Structure
{
"type": "application",
"name": "<name of the application>",
"description": "<Optional | defaults to empty | description>",
"useWizard": "<Boolean value>",
"settings": {
"enforceCompleteSnapshots": "<Optional | boolean value | defaults to false>",
"onlyChangedVersions": "<Optional | boolean value | defaults to false>"
},
"notificationSchemeName": "<Optional | Existing notification scheme from server | defaults to none>",
"properties": [
// Optional | 0 or more properties in below structure
{
"name": "<name of property>",
"value": "<optional value>",
"description": "<optional description>",
"secure": "<false>"
}
],
"webhook": [
// Optional | array for adding webhooks
],
"teams": [
// Optional | array of team names that already exist in the server
],
"tags": [
// Optional | array of tag names that already exist in the server
],
"components": "<Optional info only fields>",
"environments": "<Optional info only fields>",
"processes": "<Optional info only fields>"
}YAML Structure
type: "application"
name: "<name of the application>"
description: "<Optional | defaults to empty | description>"
useWizard: <Boolean value>
settings:
enforceCompleteSnapshots: <Optional | boolean value | defaults to false>
onlyChangedVersions: <Optional | boolean value | defaults to false>
notificationSchemeName: "<Optional | Existing notification scheme from server | defaults to none>"
properties:
- name: "<name of property>"
value: "<optional value>"
description: "<optional description>"
secure: <false>
webhook:
- <Optional | array for adding webhooks>
teams:
- "<Optional | team name that already exists in the server>"
tags:
- "<Optional | tag name that already exists in the server>"
components: "<Optional info only fields>"
environments: "<Optional info only fields>"
processes: "<Optional info only fields>"Additional Information
Notification Scheme
If you want to modify notificationSchemeName to another value, ensure that the new notification scheme already exists in the server.
Properties
You can add properties using a JSON structure like below as an array to the properties field:
{
"name": "prop-1",
"value": "property value",
"description": "some-desc",
"secure": false
}You cannot delete existing properties but you can modify them.
Webhooks
You can add new webhooks, modify them, or even delete them by removing the corresponding JSON from the webhooks array.
{
"url": "https://url.com",
"proxyHost": "",
"proxyPort": "",
"environments": [
"QA"
],
"webhookTemplate": {
"name": "proc-success",
"description": "",
"type": "PROCESS_SUCCESS"
}
}You cannot modify webhook proxyusername and proxypassword using CAC and would have to do it in UI. Environment & webhook-template are prerequisites for this.
Real-World Examples
Example 1: Minimum Required Fields
Minimal JSON for creating an application with upload-application command:
{
"name": "PAC-APP-2"
}Example 2: Complete Application JSON
A comprehensive JSON example of an application:
{
"type": "application",
"name": "PAC-APP",
"description": "",
"useWizard": false,
"settings": {
"enforceCompleteSnapshots": false,
"onlyChangedVersions": true
},
"notificationSchemeName": "",
"properties": [],
"teams": [
"Deployer-team",
"custom_team"
],
"tags": [
"TEST"
],
"webhooks": [
{
"url": "https://sample.com",
"proxyHost": "${p?:system/proxyHost}",
"proxyPort": "${p?:system/proxyPort}",
"environments": [
"DEV",
"QA"
],
"webhookTemplate": {
"name": "proc-success",
"description": "",
"type": "PROCESS_SUCCESS"
}
}
],
"components": "PAC-COMP",
"environments": "QA, DEV",
"processes": "APP-PROCESS"
}Example 3: Complete Application YAML
A comprehensive YAML example for an application:
---
type: "application"
name: "PAC-APP"
description: ""
useWizard: false
settings:
enforceCompleteSnapshots: false
onlyChangedVersions: true
notificationSchemeName: ""
properties: []
components: "PAC-COMP"
environments: "QA, DEV"
processes: "APP-PROCESS"
teams:
- "Deployer-team"
- "custom_team"
tags:
- "TEST"
webhooks:
- url: "https://sample.com"
proxyHost: "${p?:system/proxyHost}"
proxyPort: "${p?:system/proxyPort}"
environments:
- "DEV"
- "QA"
webhookTemplate:
name: "proc-success"
description: ""
type: "PROCESS_SUCCESS"Workflow Integration
Workflow Scenarios
Scenario 1: Modify Application Metadata
Use application upload/download when you need to change application-level settings:
# Download the application definition
download-application admin admin https://localhost:8443 MyApp MyApp.json
# Edit MyApp.json to update:
# - teams: add or modify team assignments
# - tags: add or modify tags
# - properties: add or modify application properties
# - webhooks: add, modify, or remove webhooks
# - settings: update enforceCompleteSnapshots or onlyChangedVersions
# Upload the modified application
upload-application admin admin https://localhost:8443 MyApp.jsonScenario 2: Create New Application from Scratch
# Create a new application from the CAC JSON file with required fields
# (See examples above for structure)
# Upload to create the application
upload-application admin admin https://localhost:8443 NewApplication.json