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 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 login --email you@example.com

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

bash
skippr whoami

Later commands reuse that session. Sign out with skippr 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 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 whoami
Sign outskippr logout
Delete the accountskippr auth delete-account

Your team

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

bash
skippr auth list-directory-members
skippr auth list-directory-roles
skippr 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 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 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 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 auth get-credentials

Create and revoke operator keys:

bash
skippr auth create-operator-access-key
skippr auth list-operator-access-keys
skippr 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.

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 auth acquire-run-lock --workspace <workspace>
skippr auth run-lock-heartbeat --workspace <workspace>
skippr auth run-lock-complete --workspace <workspace>
skippr 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 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.