Skip to content

Cloud User Directory ​

Cloud User Directory is how you sign in to Skippr Cloud, how you manage people on this account, and how you allow a function or CI identity to call Cloud services. Start with skippr-cloud login. After that, Cloud commands use your saved session.

Users of your product belong in an Auth user pool, not here.

Status: Preview. See API actions for the full command list.

Sign in ​

You need an email address registered with Skippr Cloud.

bash
skippr-cloud login --email you@example.com

Skippr emails you a one-time code. Paste it at the prompt. Then confirm the session:

bash
skippr-cloud whoami

Later commands reuse that session. Sign out with skippr-cloud logout.

If a command fails with 401, sign in again. 403 means your account is not allowed to run that command.

What you can do after sign-in ​

  • Run Cloud commands such as skippr-cloud tables list-tables.
  • See who is on your account and assign roles.
  • Attach policies so a function or other workload can call Cloud services.
  • Create keys for Terraform, CI, or short-lived objects access.

For identities used by your application’s end-users, see Auth.

Manage the session ​

TaskCommand
See who is signed inskippr-cloud whoami
Sign outskippr-cloud logout
Delete the accountskippr-cloud auth delete-account

Your team ​

These are the people who operate this Skippr Cloud account — CLI, Terraform, and the console.

bash
skippr-cloud auth list-directory-members
skippr-cloud auth list-directory-roles
skippr-cloud auth assign-directory-role --member-id '<memberId>' --role developer

Roles are owner, admin, developer, billing, and readonly.

You can list people already on the account and change their roles. Email invites and signing in with your company identity provider are coming soon. Until then, everyone on the team uses skippr-cloud login with email.

Policies ​

A function or CI identity cannot call Cloud services until you allow it. A function named hello uses workload principal fn/hello. An empty policy set denies Cloud actions for that principal.

bash
skippr-cloud auth create-policy --input - <<JSON
{
  "policyId": "hello-data",
  "policy": "permit (principal == Cloud::Principal::\"fn/hello\", action == Cloud::Action::\"tables:GetItem\", resource);",
  "attachedTo": ["workload:fn/hello"]
}
JSON

See Functions for the full package → register → authorize → invoke path.

Keys for Terraform and CI ​

Interactive work uses skippr-cloud login. Automation can use a key instead of a person at the prompt.

UseWhat to create
Terraform, CDKTF, or scripts as yourselfAn operator access key
CI or an application identityA workload key, then attach a policy that allows the actions it needs
Short-lived objects accessskippr-cloud auth get-credentials

Create and revoke operator keys:

bash
skippr-cloud auth create-operator-access-key
skippr-cloud auth list-operator-access-keys
skippr-cloud auth revoke-operator-access-key --key-id <keyId>

The create response returns secretAccessKey once. Store it immediately.

Set CLOUD_ACCESS_KEY_ID and CLOUD_SECRET_ACCESS_KEY for those tools. See Terraform and CDKTF.

Application code should call the official SDK default chain (Client::from_env(), CloudClient.fromEnv(), CloudClient.from_env()) instead of embedding keys. On Skippr Cloud the SDK uses the workload role automatically. Terraform and CDKTF stay on paired access keys.

sk_live_… keys from the ELT runner do not sign in to Skippr Cloud, Terraform, or the CLI's Cloud commands. Use operator or workload SigV4 keys instead.

Wire details (JWT, SigV4 service names, and HTTP routes) are in the API reference and Auth OpenAPI.

Cloud User Directory identifiers ​

IdentifierWhat it identifies
principal_idA person or workload on this account
memberIdA person on your team
keyIdAn operator key, used when you revoke it
accessKeyIdThe public half of an operator or workload key
workspace / runIdA workspace and one recorded run

Workspace run locks ​

Workspace run locks stop overlapping work in one workspace. This is an advanced coordination feature:

bash
skippr-cloud auth acquire-run-lock --workspace <workspace>
skippr-cloud auth run-lock-heartbeat --workspace <workspace>
skippr-cloud auth run-lock-complete --workspace <workspace>
skippr-cloud auth get-run-lock --workspace <workspace>

The lease is 120 seconds and a heartbeat extends it. Lock conflicts return 409.

Limits and errors ​

LimitValue
OTP attempts per code5
Access token lifetime15 minutes
Refresh token lifetime365 days
Active operator keys per person2
Active workload keys per principal2
Workload principals per account100
Workspace name128 characters; letters, numbers, _, and -
  • 400: the email, code, identifier, or request is invalid.
  • 401: you are not signed in, or the session expired. Run skippr-cloud login again.
  • 403: the signed-in account is not allowed to run that command.
  • 404: the identity or resource does not exist.
  • 409: a run lock or active-key limit conflicts with the request.
  • 429: wait, then retry.