c8y(1)

πŸ“¦ version 2.56.1, in nixpkgs unstable

c8y(1) β€” session login but make it πŸ’…

okay so bestie, this is section 1 of the manual, and it's literally the glow-up guide for getting logged into Cumulocity. why are we here? to set up a session, log in, test that session, and snag yourself either an OAuth2 token or vibe with two-factor authentication. no cap, it's giving "main character energy" for your CLI 🫢


✨ NAME ✨

c8y-sessions-login β€” login to Cumulocity and return environment variables (including a token), periodt.


🌸 SYNOPSIS 🌸

c8y sessions login [flags]

πŸ¦‹ DESCRIPTION πŸ¦‹

Set a session, login and test the session and get either OAuth2 token, or using two factor authentication. that's the whole vibe, bestie β€” you're setting up your session so the rest of your commands can slay πŸ”₯


πŸ’… OPTIONS πŸ’…

  • --browserCallback="" β€” Custom redirect URI for the browser flow's local callback server, e.g. http://127.0.0.1:8080/callback. This one must match a URI registered in the SSO provider. Defaults to http://127.0.0.1:5001/callback (iykyk, that's your local callback server).
  • --clear[=false] β€” Clear any existing tokens. fresh start energy ✨
  • --format="" β€” External command format, e.g. json, yaml, toml.
  • --from-cmd="" β€” External command to execute to get the log in details.
  • --from-env[=false] β€” Read from environment variables.
  • --from-file="" β€” Read session from a file.
  • --from-prompt[=false] β€” Read from user prompted input.
  • --from-stdin[=false] β€” Read from standard input.
  • -h, --help[=false] β€” help for login.
  • --host="" β€” Cumulocity host. Only used with the 'interactive' provider.
  • --loginType="" β€” Login type preference, e.g. OAUTH2_INTERNAL, DEVICE (device flow), BROWSER (Authorization Code via browser), BASIC or CERTIFICATE (mTLS). OAUTH2 is a legacy alias for DEVICE. When set to BASIC, any existing token will be cleared. pick your fighter, bestie πŸŽ€
  • --mode="" β€” Session mode which controls which commands are allowed, e.g. dev, qual or prod.
  • --no-banner[=false] β€” Don't show the session banner.
  • --output-format="" β€” Output format.
  • --provider="" β€” Session provider which returns the session to use.
  • --secrets=[] β€” List of secrets to include as env variables when running an external command. Only valid with from-cmd.
  • --shell="" β€” Shell type to return the environment variables.
  • --sso-audience="" β€” SSO Audience.
  • --sso-scopes="" β€” SSO Scopes.
  • --tfaCode="" β€” Two Factor Authentication code.

🌈 OPTIONS INHERITED FROM PARENT COMMANDS 🌈

  • --abortOnErrors=10 β€” Abort batch when reaching specified number of errors.
  • --allowEmptyPipe[=false] β€” Don't fail when piped input is empty (stdin).
  • --cache[=false] β€” Enable cached responses.
  • --cacheBodyPaths=[] β€” Cache should limit hashing of selected paths in the json body. Empty indicates 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 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 custom message to the activity log.
  • --maxJobs=0 β€” Maximum number of jobs. 0 = unlimited (use with caution!) β€” like, fr fr be careful bestie πŸ’€
  • --noAccept[=false] β€” Ignore Accept header 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 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 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 πŸŽ€

okay bestie, these examples are literally the blueprint. copy them exactly, no cap:

$ eval "$( c8y sessions login --from-file .env )"
Set a session from a dotenv file
$ eval "$( c8y sessions login --from-env )"
Set a session from environment variables (e.g. in Github)
$ eval "$( c8y-session-bitwarden | c8y sessions login --from-stdin --format json )"
Set a session from an external command, accepting the selected session via stdin
$ eval "$( c8y sessions login --from-cmd "c8y sessions set --output json" )"
Set a session using the in-built "c8y sessions set"
$ eval "$( c8y sessions login --from-cmd "c8y-session-bitwarden list --folder c8y" --secrets BW_SESSION --format json )"
Set a session from an external command, where the external commands returns the selected session in json format on stdout
$ eval "$( c8y sessions login --from-prompt --host example.cumulocity.com)"
$ eval "$( c8y sessions login --from-file .env --loginType DEVICE )"
Login using the OAuth2 device flow (polls for approval after visiting the URL shown in the terminal)
$ eval "$( c8y sessions login --from-file .env --loginType BROWSER )"
Login using Authorization Code flow – opens the system browser and waits for the callback
$ eval "$( c8y sessions login --from-file .env --loginType BROWSER --browserCallback http://127.0.0.1:8080/callback )"
Login via browser with a custom callback URL registered in the SSO provider
$ eval "$( c8y sessions login --from-file .env --loginType CERTIFICATE )"
Login using a device certificate (mTLS); reads cert paths from the session file or C8Y_CERTIFICATE / C8Y_CERTIFICATE_KEY env vars

πŸ’œ SEE ALSO πŸ’œ

  • c8y-sessions(1) β€” like, go read it bestie, it's the whole session saga 🫢

happy logging, icon! this page is from way back β€” Jan 1980 β€” and yeah, that's the c8y(1) manual source/version and date, so now you know. slay and stay logged in πŸ’…βœ¨

πŸ“¦ where this page comes from