Experimental CLI for Citrix Cloud
Project description
cx: Experimental CLI for Citrix Cloud
Note: Given that this is experimental software, your mileage may vary. The CLI-syntax is not yet finalized and may still change.
The CLI works using the REST APIs of Citrix Cloud, as documented on Citrix's Developer Portal.
Features
- Provides a simple and efficient way to interact with Citrix Cloud
- Supports many Citrix Cloud services including: adm, apppersonalization, cvadrestapis, globalappconfiguration, manageddesktops, microapps, notifications, quickdeploy, securebrowser, reportingapi, systemlog, virtualappsessentialls, webhook, and wem.
- Always up-to-date as it synchronizes the latest published OpenAPI-specifications.
- Responses can be formatted as either JSON, YAML, Table, CSV, or binary.
- Powerful query and filter syntax powered by JMESPath.
- Handles authentication and caches tokens transparently.
- Secrets are stored using the user's OS keyring service.
- Autocompletion for Bash and Zsh (see below)
Installation
cxcli requires Python 3.x. Find more information here.
Install cxcli using:
python3 -m pip install cxcli
Configuration
Once installed, configure cxcli interactively:
cx --configure
Follow the Citrix Cloud Documentation, to create an API Client and obtain the CustomerId
, ClientID
, ClientSecret
required as part of the configuration.
Note: By default, cxcli will store credentials in the user's system keyring service (Windows Credential Locker, macOS Keychain, KDE KWallet, FreeDesktop Secret Service). Should your environment not have a keyring service, or every keyring access require a keyring password, you can provide the configuration alternatively using environment variables
CXCUSTOMERID
,CXCLIENTID
, andCXCLIENTSECRET
.
Usage examples
-
Show a list of Cloud Services available via CLI:
cx -h
-
Show a list of commands available within a Cloud Service:
cx systemlog
-
Extract the latest records from Citrix Cloud's systemlog-service:
cx systemlog GetRecords
-
Provide output as YAML:
cxcli systemlog GetRecords --output-as yaml
-
Filter for fields using JMESPath:
cx systemlog GetRecords --cliquery 'Items[].Message."en-US"'
-
Filter for values using JMESPath:
cx systemlog GetRecords --cliquery 'Items[?ActorDisplayName == "a.bad@m.an"]'
-
Show information about the CVAD Site:
cx cvadrestapis Me_GetMe
-
Create an Administrator notification in Citrix Cloud:
cx notifications Notifications_CreateItems --eventId $(uuidgen) --content '{
"languageTag": "en-US",
"title": "Dinner Time",
"description": "Fish and Chips!"
}' --severity "Information" --destinationAdmin "*" --component "Citrix Cloud" --priority High --createdDate 2021-02-13T08:20:17.120808-08:00
- Export a Microapp integration bundle as a backup:
cx microapps export_bundle --geo us --bundleExportType default --integrationExportConfig-id 1 --output-binary integration.mapp
- Re-importing the Microapp integration bundle, providing the necessary base configuration:
echo '{ "integrationImportConfig": { "type": "GWSC", "baseUrl": "https://mybaseurl/"} }' > config.txt
cx microapps import_bundle --geo us --config config.txt --bundle integration.mapp
Autocomplete for Bash and Zsh
For Bash - add the following snippet to your ~/.bashrc
-file:
eval "$(register-python-argcomplete cx)"
For zsh - Add the following snippet to your ~/.zshrc
-file:
autoload bashcompinit
bashcompinit
eval "$(register-python-argcomplete cx)"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cxcli-0.1.2.tar.gz
.
File metadata
- Download URL: cxcli-0.1.2.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17144bcad7828f12e2ee3b19be44e242b5de741a21e5adedeee74fa022b29281 |
|
MD5 | 8a8d07f34d9c5f6c0001321a112af306 |
|
BLAKE2b-256 | 2440a8289d119f4e8cefb6d589bc4a9df0805394d91b267ad2e9ab9ba109f4b4 |
File details
Details for the file cxcli-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: cxcli-0.1.2-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 599cf211ded6062a6f64550e819c0b31daa201ec8b0cc4f2e5c866e1e3d33965 |
|
MD5 | ba5a88aa4bab143f0a5f165306f42e5c |
|
BLAKE2b-256 | f676ed3990440b163a8dac9b1b1897193ab78b80d36129848f4d1157ae24109b |