c8y(1)
π
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 areMARKET,SHARED,PRIVATE(andPRIVATEis the default, no cap)--contextPath=""β thecontextPathof the hosted application. required when the application type isHOSTEDβ οΈ-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 forcreate(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 isHOSTEDβ οΈ--tag=[]β tags. include'latest'to change theactiveVersionIdof 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,markdownorcurl--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, howeverPUTandPOSTrequests 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 shellfor/whileloops-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 forceoutput=jsonandview=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.peterort1234/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 onstdoutinstead ofstderr--withTotalElements[=false]β request Cumulocity to include the total elements in the response statistics under.statistics.totalElements(introduced in10.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 β
c8y-ui-plugins(1)β the parent page, go say hi π«Ά
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
- nixpkgs unstable: go-c8y-cli 2.56.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms