Skip to main content

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.

Usage Microapps Sample

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, and CXCLIENTSECRET.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cxcli-0.1.2.tar.gz (15.4 kB view hashes)

Uploaded Source

Built Distribution

cxcli-0.1.2-py3-none-any.whl (14.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page