MFCLI Governance Commands Reference Guide (Volt MX Foundry)
This document provides a complete reference for using MFCLI for governance to automate and manage Volt MX Foundry operations in both on-premise and cloud environments.
General Notes
-
For on-premise
- You must provide
-au(Auth Service URL) and-cu(Console URL).
- You must provide
-
For cloud:
- You must provide
-t(tenant ID) and optionally--cloud-urlif using a specific environment likeqa-,sit-, etc.
- You must provide
1. createPublishRequest
Creates a new publish request for an application. Run this command post diff command. requestType should be same for diff and create publish request commands.
Required Parameters
-u,--username: Login username-p,--password: Password-e,--environment: Target environment name-a,--app: Application name-r,--requestType: Type of publish request (e.g., publish). Only PUBLISH, CONFIGUREANDPUBLISH, REPUBLISH are supported.-d,--description: Description of the publish request-au,--auth-url: On-premise only. Auth service base URL-cu,--console-url: On-premise only.Console base URL-t,--account: Cloud only.Tenant account ID
Optional Parameters
-v,--version: App version (default: 1.0)--webAppVersion: Web app zip version--publishMicroApps: Publish micro apps (true/false)-k,--appkey: Primary App Key-s,--appsecret: Primary App Secret-sk,--secappkey: Secondary App Key-ss,--secappsecret: Secondary App Secret--skipwebapp: Skip web app publish--incremental: Incremental publish (true/false)--skipSwaggerFiles: Skip Swagger files--skipEngagementPublish: Skip engagement service publish--subType: App subtype (e.g., easdesignapp)--snapshotName: Snapshot name
Note :
When using request typeREPUBLISH, the--snapshotNameparameter is mandatory.
Snapshot names can be obtained using theexplore-snapshotscommand.
Sample (On-Premise)
java -jar mfcli.jar createPublishRequest -u admin -p pass -e Dev -a MyApp -r publish -d "First Publish" -au http://localhost:8080 -cu http://localhost:8099
Sample (Cloud)
java -jar mfcli.jar createPublishRequest -u admin -p pass -e Dev -a MyApp -r publish -d "First Publish" -t 100000001
Example Responses
- Success
{ "message": "Publish request created successfully", "httpStatusCode": 201 }
- Pending Exists
{ "message": "Pending publish request changes awaiting deployment", "httpStatusCode": 409 }
- Invalid or Failed Diff
{ "message": "Unable to fetch diff details", "httpStatusCode": 400 }
- Unexpected Error
{ "message": "Failed to create publish request", "httpStatusCode": 500 }
2. publishRequestStatus
Checks the current status of a publish request.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-a,--app: Application name-au,--auth-url: On-premise only-cu,--console-url: On-premise only-t,--account: Cloud only
Optional Parameters
-v,--version: App version (default: 1.0)
Sample (On-Premise)
java -jar mfcli.jar publishRequestStatus -u admin -p pass -e Dev -a MyApp -au http://localhost:8080 -cu http://localhost:8099
Sample (Cloud)
java -jar mfcli.jar publishRequestStatus -u admin -p pass -e Dev -a MyApp -t 100000001
Example Responses
- 200 OK (Approved and Published):
{
"publishRequestStatus": "APPROVED",
"appPublishStatus": "PUBLISHED"
}
- Pending and Approved:
{
"publishRequestStatus": "APPROVED",
"appPublishStatus": "PENDING"
}
- Declined request:
{
"publishRequestStatus": "DECLINED",
"appPublishStatus": "DONE"
}
- Cancelled Request:
{
"publishRequestStatus": "CANCELLED",
"appPublishStatus": "DONE"
}
- No Request Exists:
{
"publishRequestStatus": null,
"appPublishStatus": null
}
3. appUpdateStatus
Checks whether the app has unpublished updates.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-a,--app: Application name-au,--auth-url: On-premise only-cu,--console-url: On-premise only-t,--account: Cloud only
Optional Parameters
-v,--version: App version (default: 1.0)
Sample (On-Premise)
java -jar mfcli.jar appUpdateStatus -u admin -p pass -e Dev -a MyApp -au http://localhost:8080 -cu http://localhost:8099
Sample (Cloud)
java -jar mfcli.jar appUpdateStatus -u admin -p pass -e Dev -a MyApp -t 100000001
Example Responses
- Has updates
{
"isUpdated": true
}
- No updates
{
"isUpdated": false
}
4. governanceStatus
Checks if governance is enabled for the environment.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-au,--auth-url: On-premise only-cu,--console-url: On-premise only-t,--account: Cloud only
Sample (On-Premise)
java -jar mfcli.jar governanceStatus -u admin -p pass -e Dev -au http://localhost:8080 -cu http://localhost:8099
Sample (Cloud)
java -jar mfcli.jar governanceStatus -u admin -p pass -e Dev -t 100000001
Example Responses
- Governance Enabled
{
"Governance Enabled": "true"
}
- Governance Disabled
{
"Governance Enabled": "false"
}
5. publishDiff
Fetches differences between current app and last published snapshot.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-a,--app: Application name-r,--requestType: Request type (e.g., publish)-au,--auth-url: On-premise only-cu,--console-url: On-premise only-t,--account: Cloud only
Optional Parameters
-v,--version: App version (default: 1.0)-ic,--ignore-conflicts: Ignore conflicts (true/false)
Example Responses
- No Diff
{
"diff": []
}
- With Diff
{
"diff": [
{
"filename": "services/IntegrationService.json",
"status": "added"
},
{
"filename": "services/IntegrationService/operations.json",
"status": "modified"
}
]
}
- Conflict or Failure
{ "message": "Unable to fetch diff details", "httpStatusCode": 400 }
Common Errors
| Code | Message |
|---|---|
| 400 | Missing required parameters |
| 403 | Governance not enabled |
| 409 | Pending publish request exists |
| 500 | Internal server error |
5. updatePublishRequest
Updates the status of an existing publish request.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-a,--app: Application name-s,--status: New status (approved, declined, or cancelled)-au,--auth-url: On-premise only.Auth service base URL-cu,--console-url: On-premise only.Console base URL-t,--account: Cloud only. Tenant account ID
Optional Parameters
-v,--version: App version (default: 1.0)-c,--comments: Comments (required for approve/decline actions)
Sample (On-Premise) - Approve/Decline
java -jar mfcli.jar updatePublishRequest -u admin -p pass -e Dev -a MyApp -s approved -c "Changes look good" -au http://localhost:8080 -cu http://localhost:8099
Sample (On-Premise) - Cancel
java -jar mfcli.jar updatePublishRequest -u admin -p pass -e Dev -a MyApp -s cancelled -au http://localhost:8080 -cu http://localhost:8099
Sample (Cloud)
java -jar mfcli.jar updatePublishRequest -u admin -p pass -e Dev -a MyApp -s approved -c "Changes look good" -t 100000001
Note:
When a user raises a publish request, Admin, Owner, or Approver can either approve or decline it with comments. Only the author (requester) can cancel a publish request, and this can only be done while the request is in pending state or after approval but before successful deployment.
6. fetchAllPublishRequests
Retrieves a list of publish requests filtered by status.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-s,--status: Filter by status (pending or reviewed)-au,--auth-url: On-premise only. Auth service base URL-cu,--console-url: On-premise only. Console base URL-t,--account: Cloud only. Tenant account ID
Sample (On-Premise)
java -jar mfcli.jar fetchAllPublishRequest -u admin -p pass -e Dev -s pending -au http://localhost:8080 -cu http://localhost:8099
Sample (Cloud)
java -jar mfcli.jar fetchAllPublishRequest -u admin -p pass -e Dev -s reviewed -t 100000001
Note: Admin, Approver, or Owner can retrieve lists of publish requests in:
pending state (requests awaiting to be approved or declined) reviewed state (already approved, declined, or cancelled)
7. fetchPublishRequest
Retrieves details of a specific publish request for an application.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-a,--app: Application name-au,--auth-url: On-premise only. Auth service base URL-cu,--console-url: On-premise only. Console base URL-t,--account: Cloud only. Tenant account ID
Optional Parameters
-v,--version: App version (default: 1.0)
Sample (On-Premise)
java -jar mfcli.jar fetchPublishRequest -u admin -p pass -e Dev -a MyApp -au http://localhost:8080 -cu http://localhost:8099
Sample (Cloud)
java -jar mfcli.jar fetchPublishRequest -u admin -p pass -e Dev -a MyApp -t 100000001
Note:
Retrieves details of a publish request based on app name. Internally, this retrieves the corresponding request ID, which is then used to display relevant information for that app.
8. unpublish
Unpublishes an application from a specific environment.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-a,--app: Application name-au,--auth-url: On-premise only.Auth service base URL-cu,--console-url: On-premise only. Console base URL-t,--account: Cloud only. Tenant account ID
Optional Parameters
-v,--version: App version (default: 1.0)
Sample (On-Premise)
java -jar mfcli.jar unpublishRequest -u admin@hcl.com -p Admin@123 -e LocalDevEnv -a App1 -v 1.0 -d <description> -au https://voltmxfoundry.ocpsno.fnxlabs.com/ -cu https://voltmxfoundry.ocpsno.fnxlabs.com/
Sample (Cloud)
java -jar mfcli.jar unpublishRequest -u admin@hcl.com -p Admin@123 -e LocalDevEnv -a App1 -v 1.0 -d <description> -t 100000001
Notes
- Raised Unpublish Request for the specified application from the target environment.
9. deploy
Deploys an application to a specific environment.
Required Parameters
-u,--username: Username-p,--password: Password-e,--environment: Environment name-a,--app: Application name-au,--auth-url: On-premise only. Auth service base URL-cu,--console-url: On-premise only. Console base URL-t,--account: Cloud only. Tenant account ID
Optional Parameters
-v,--version: App version (default: 1.0)
Sample (On-Premise)
java -jar mfcli.jar deploy -u admin@hcl.com -p Admin01~ -e LocalDevEnv -a App5 -v 1.0 -au http://blmyclddw11751.nonprod.hclpnp.com:8081/ -cu http://blmyclddw11751.nonprod.hclpnp.com:8081
Sample (Cloud)
java -jar mfcli.jar deploy -u admin@hcl.com -p Admin01~ -e LocalDevEnv -a App5 -v 1.0 -t 100000001
Notes
Deploys the specified application to the target environment. This command is used to deploy an application after it has been approved through the governance workflow, if governance is enabled. For environments with governance enabled, this command should be executed after a publish request has been approved.