c8y(1)

πŸ“¦ version 2.56.1, in nixpkgs unstable

πŸ’… c8y β€” the c8y ui plugins create page, but make it make sense

okay bestie, welcome to c8y(1) β€” specifically the corner of the manual that covers c8y-ui-plugins-create, which is a whole mouthful, i know. it's the page you want when you're about to shove a UI plugin at your tenant and you'd rather not do it blind 🫢


✨ NAME ✨

c8y-ui-plugins-create β€” create or update a UI plugin and its version πŸŽ€

like, literally that's the whole job. you give it a file, it gives you a plugin. slay.


✨ SYNOPSIS ✨

c8y ui plugins create [flags]

that's it. that's the vibe. flags are where all the drama lives πŸ’€


✨ DESCRIPTION ✨

So the actual deal: this command creates a new UI plugin, or if it already exists, it updates the binary of that existing UI plugin. new plugin, old plugin, doesn't matter β€” you're covered ✨

🚨 notes, and this one is important bestie β€” if the file you pass in has a space in the filename, it gets copied to a temp location first and the spaces get replaced with underscores. why? because otherwise the server will straight up reject the file upload 😭 so like... it handles it for you, but now you know why things look weird in /tmp.

🌸 OPTIONS 🌸

  • --availability="" β€” access level for other tenants. possible values are MARKET, SHARED, PRIVATE (and PRIVATE is the default, no cap)
  • --contextPath="" β€” the contextPath of the hosted application. required when the application type is HOSTED ⚠️
  • -d, --data=[] β€” static data to be applied to the body. takes json or shorthand json, i.e. --data 'value1=1,my.nested.value=100' πŸ’–
  • --file="" β€” the UI plugin file to be uploaded, this is the main character honestly πŸ‘‘
  • -h, --help[=false] β€” help for create (the classic)
  • --key="" β€” shared secret of the application πŸ”
  • --name="" β€” name of the application
  • --processingMode="" β€” Cumulocity processing mode
  • --resourcesUrl="" β€” URL to the application base directory hosted on an external server. required when the application type is HOSTED ⚠️
  • --tag=[] β€” tags. include 'latest' to change the activeVersionId of the application ⭐
  • --template="" β€” body template
  • --templateVars=[] β€” body template variables
  • --version="" β€” plugin version πŸŽ€

πŸ¦‹ OPTIONS INHERITED FROM PARENT COMMANDS πŸ¦‹

yes there are this many. no i'm not skipping any. we're doing this together bestie, hold my hand 🫢

  • --abortOnErrors=10 β€” abort the batch when you hit the specified number of errors
  • --allowEmptyPipe[=false] β€” don't fail when the piped input (stdin) is empty
  • --cache[=false] β€” enable cached responses
  • --cacheBodyPaths=[] β€” cache should limit hashing to selected paths in the json body. empty means all values
  • --cacheTTL="60s" β€” cache time-to-live (TTL) as a duration, i.e. 60s, 2m
  • -c, --compact[=false] β€” compact instead of pretty-printed output when using json output. pretty print is the default if output is the terminal πŸ’…
  • --confirm[=false] β€” prompt for confirmation
  • --confirmText="" β€” custom confirmation text
  • --currentPage=0 β€” current page which should be returned
  • --customQueryParam=[] β€” add custom URL query parameters. i.e. --customQueryParam 'withCustomOption=true,myOtherOption=myvalue'
  • --debug[=false] β€” set very verbose log messages πŸ›
  • --delay="0ms" β€” delay after each request, i.e. 5ms, 1.2s
  • --delayBefore="0ms" β€” delay before each request, i.e. 5ms, 1.2s
  • --dry[=false] β€” dry run. don't send any data to the server πŸ™ˆ
  • --dryFormat="markdown" β€” dry run output format. i.e. json, dump, markdown or curl
  • --examples[=false] β€” show examples for the current command
  • --filter=[] β€” apply a client side filter to the response before returning it to the user
  • --flatten[=false] β€” flatten json output by replacing nested json properties with properties where their names are represented by dot notation
  • -f, --force[=false] β€” do not prompt for confirmation. ignored when using --confirm
  • -H, --header=[] β€” custom headers. i.e. --header "Accept: value, AnotherHeader: myvalue"
  • --includeAll[=false] β€” include all results by iterating through each page
  • -k, --insecure[=false] β€” allow insecure server connections when using SSL πŸ”“
  • -l, --logMessage="" β€” add a custom message to the activity log
  • --maxJobs=0 β€” maximum number of jobs. 0 = unlimited (use with caution! ⚠️)
  • --noAccept[=false] β€” ignore the Accept header, which will remove the Accept header from requests, however PUT and POST requests will only see the effect
  • --noCache[=false] β€” force disabling of cached responses (overwrites the cache setting)
  • -M, --noColor[=false] β€” don't use colors when displaying log entries on the console
  • --noLog[=false] β€” disables the activity log for the current command
  • --noProgress[=false] β€” disable progress bars
  • --noProxy[=false] β€” ignore the proxy settings
  • -n, --nullInput[=false] β€” don't read the input (stdin). useful if using in shell for/while loops
  • -o, --output="table" β€” output format, i.e. table, json, csv, csvheader
  • --outputFile="" β€” save JSON output to file (after select/view)
  • --outputFileRaw="" β€” save raw response to file (before select/view)
  • --outputTemplate="" β€” jsonnet template to apply to the output
  • -p, --pageSize=5 β€” maximum results per page
  • --progress[=false] β€” show progress bar. this will also disable any other verbose output
  • --proxy="" β€” proxy setting, i.e. http://10.0.0.1:8080
  • -r, --raw[=false] β€” show raw response. this mode will force output=json and view=off
  • --retries=3 β€” max number of attempts when a failed http call is encountered
  • --select=[] β€” comma separated list of properties to return. wildcards and globstar accepted, i.e. --select 'id,name,type,**.serialNumber'
  • --session="" β€” session configuration
  • --sessionMode="" β€” override the default session mode for a single command, which would normally be disabled
  • -P, --sessionPassword="" β€” override session password
  • -U, --sessionUsername="" β€” override session username. i.e. peter or t1234/peter (with tenant)
  • --silentExit[=false] β€” silent status codes do not affect the exit code
  • --silentStatusCodes="" β€” status codes which will not print out an error message
  • --timeout="600s" β€” request timeout duration, i.e. 60s, 2m
  • --totalPages=0 β€” total number of pages to get
  • -v, --verbose[=false] β€” verbose logging
  • --view="auto" β€” use views when displaying data on the terminal. disable using --view off
  • --withError[=false] β€” errors will be printed on stdout instead of stderr
  • --withTotalElements[=false] β€” request Cumulocity to include the total elements in the response statistics under .statistics.totalElements (introduced in 10.13)
  • -t, --withTotalPages[=false] β€” request Cumulocity to include the total pages in the response statistics under .statistics.totalPages
  • --workers=1 β€” number of workers

πŸŽ€ EXAMPLE πŸŽ€

real examples, copy-paste-able, the whole thing πŸ’–

$ c8y ui plugins create --file ./myapp.zip --tag latest
Create new ui plugin from a file and tag it as the latest

create a new ui plugin straight from a file and tag it as the latest. iconic.

$ c8y ui plugins create --name my-plugin --file ./myapp.zip
Create or update a ui plugin using an explicit name

create or update a ui plugin using an explicit name. this is the "i know what i'm doing" one.

$ c8y ui plugins create --file ./myapp.zip --name my-plugin --version 1.0.0 --tag latest --tag stable-v1
Create/update a ui plugin and override the name and version

create/update a ui plugin and override the name and the version. tag it twice, why not β€” you get latest and stable-v1 πŸ”₯

$ c8y ui plugins create --file "https://github.com/SoftwareAG/cumulocity-remote-access-cloud-http-proxy/releases/download/v2.5.0/cloud-http-proxy-ui.zip"
Create/update a ui plugin from a URL

and yes bestie, it takes a URL too. create/update a ui plugin from a URL, no local file required. ate. πŸ‘‘


⭐ SEE ALSO ⭐


okay that's the whole page! and before you close the tab β€” this one's c8y(1), dated Jan 1980 (yes, really, the manpage dating is a whole mood πŸ’€). consider this your cute lil' sign-off β€” now go upload that plugin, you've got this πŸ¦‹βœ¨ 🌈

πŸ“¦ where this page comes from