CLI authentication
Sign in with native Cloud PKCE and distinguish its session from legacy API and DDS service credentials.
Overview
Choose the credential path for the command you are using. Native Cloud sign-in, legacy customer action credentials, and an operator-configured DDS HTTP service are separate contracts. Local XLS and native workspace operations need no Cloud credentials.
Desktop and CLI Credentials Are Separate
Surface | Credential path | Authority |
|---|---|---|
Digital Design Studio 2.0.2 Windows | Browser sign-in for protected local features; editing and saving also work without sign-in | No My PC device licence. Free sign-in supports the documented local features; Cloud and AI check separate permissions. |
| Browser PKCE and a private CLI session | Account identity and organization/project permissions are checked by the server |
Customer action/job client |
| The credential and scope presented to the selected API |
| Configured service origin and | The legacy service’s existing authorization contract |
No CLI session grants a desktop licence. Do not import desktop session files, browser cookies, or internal service headers into a native Cloud request.
Native Cloud Sign-in
alti ide cloud login
alti ide cloud whoami
alti ide cloud refresh
alti ide cloud logout
Login prints the authorization URL for the browser PKCE flow. It defaults to https://api.altifigence.com and a private session directory at ~/.local/state/altifigence/cloud-cli. Use --session-dir consistently to select another session. Login also accepts --org and a bounded --wait-seconds; subsequent commands use their own request deadlines.
Use whoami for server identity rather than inferring it from a stored token. Refresh and logout operate on this native session. Organization/project IDs on Cloud search and terminal commands scope the request but cannot grant access. Typed ide cloud run operations retain server permission checks and require --allow-source-upload when their contract carries uploaded source.
The CLI connects through its explicit native API routes. A sign-in flow does not promise that every Cloud operation is enabled for every organization.
Environment Variables the CLI Reads
The legacy customer action and Cloud job clients retain these settings:
Variable | Effect |
|---|---|
| Required bearer credential; a missing or blank value is refused |
| Required organization scope |
| API base, default |
|
|
| Opt-in for source-bearing customer MCP actions; absent means denied |
Only set endpoint overrides to a service you control or an endpoint explicitly provided for your account. A changed origin can send the corresponding credential to a different host.
Legacy DDS HTTP commands instead use --endpoint or ALTI_STUDIO_ENDPOINT and the existing service-secret environment setting. They do not reuse the native Cloud login or invent an authentication flow for that service.
Configuration Status Is Not Authentication
alti auth status inspects legacy environment configuration only. Its serverVerification remains not_performed; it is not the equivalent of alti ide cloud whoami.
The legacy top-level alti login and alti whoami still exit 4 with AUTH_FLOW_UNAVAILABLE and IDENTITY_NOT_VERIFIED. Top-level alti logout cannot clear values inherited from a parent process. Clear or rotate those values at their source; use ide cloud logout for the native session.
Secret Handling
Keep CI credentials in the CI secret store and inject them only into the step that needs them.
Keep session directories private to their owner; do not add them to source control, caches shared between users, or published artifacts.
Do not log tokens, service secrets, browser cookies, or complete environments.
Disable shell tracing around credentialed commands and rotate any value that may have entered a log.
Remote API Access
Use the typed Job and Cloud Commands for the backend you selected. Client validation and a successful login do not replace server-side permissions or prove that a requested job has completed.
Verify and recover the native session
alti ide cloud login
alti ide cloud whoami
Run these as the same ordinary Linux user who will use the CLI. Complete the browser flow and require a successful whoami response before workspace operations. If you use an alternate --session-dir, use it for login and subsequent calls; a different directory is a different saved session.
If the session expires, use the native refresh/sign-in flow. If identity succeeds but a project is denied, inspect organization membership and project permissions. Do not copy credentials from the desktop or change API origins to work around that refusal. For account recovery, use Account security.