Skip to content
Built with

Platform users and projects ​

SDK Reference

You need an administrator session for these commands. See Platform Management for choosing a platform, previews and confirmation.

On this pageManage users and projects · Control who can sign up · Send and revoke invitations

This section finds a user, then changes their account.

Step 1. Find a user by login, email or ID, then show their projects and usage. Note the user ID.

Requires: platform admin login

These commands need an admin session from void platform auth login. Automation uses VOID_OPERATOR_TOKEN from a secret store. Never put it in project files.

sh
void platform user list [--search <text>] [--page <n>] [--limit <n>]
void platform user show <id>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Step 2. Use the user ID from step 1 to change the plan, suspend the account, restore it or delete it.

sh
void platform user plan <id> <plan-id>
void platform user suspend <id> [--reason <text>]

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Next, restore or delete the account. Use the same user ID from step 1.

sh
void platform user restore <id>
void platform user delete <id>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Suspending a user blocks their apps, including scheduled jobs and queue consumers. During the suspension, each queue message is retried about once an hour. Each retry uses one of the queue's retries. Messages that run out are dropped. With the default of 3 retries, that is after about 3 hours. A queue with maxRetries: 0 drops them at once. If you suspend an account by mistake, restore it quickly. Queue delivery resumes within about an hour.

Deleting a user also deletes their project resources. A plan change updates resource limits and keeps any admin suspension.

The last active admin cannot be deleted or suspended. Previews and real changes both enforce this, including in the browser admin UI. When an admin is removed, admin access is revoked before resource cleanup. If cleanup fails, access stays revoked and the partial result says so.

Projects ​

These commands list projects across the platform, filter them by owner or show one project's resources. Commands that take an <id> use a project ID from list.

Now you will run void platform project list and void platform project show.

sh
void platform project list [--user <user-id>] [--search <text>] [--page <n>] [--limit <n>]
void platform project show <id>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Next, run void platform project normalize and void platform project delete.

sh
void platform project normalize <id> [--plan | --yes]
void platform project delete <id>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Next, run void platform project owner.

sh
void platform project owner <project-id> <user-id>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Search matches a project's slug, ID or owner's login. show includes resources, domains, the latest 10 deploys and the latest 20 builds. delete removes the project and its resources.

If a deploy reports that a project needs normalization, preview normalize <id> --plan, then apply it with --yes. It checks the serving deploy and any recorded queue names before it updates project records. Traffic and Cloudflare resources stay in place. It refuses to run during a deploy or recovery.

If a verified queue name differs from the expected routing name, normalization refuses. Fix that queue routing, then retry. If the serving deploy cannot be verified, investigate the reported route before you retry. If a project's active deploy is missing, finish the interrupted recovery on the previous compatible runtime before you upgrade.

owner moves a project to another registered user. Preview it with --plan. Apply it interactively or with --yes. The preview reports blockers and the account plan that will apply. The former owner becomes a project admin. Existing project CI deploy credentials are revoked. Usage so far stays with the former owner.

Signup Access ​

These commands show signup limits, open signup to everyone or require an allowlist match.

Now you will run void platform signup show and void platform signup open.

sh
void platform signup show
void platform signup open

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Next, run void platform signup restrict.

sh
void platform signup restrict

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Add and remove GitHub or email entries by type and pattern.

Now you will run void platform signup allow and void platform signup disallow.

sh
void platform signup allow <github|email> <pattern> [--note <text>]
void platform signup disallow <github|email> <pattern>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Next, run void platform signup remove.

sh
void platform signup remove <github|email> <pattern>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

remove stays as an alias for existing scripts. GitHub entries match a login. Email entries match an address or a domain pattern such as *@example.com, across sign-in providers. Quote wildcard patterns in your shell.

Some OIDC identities have no verified email. Grant them access with the connection ID from void platform config auth list and the stable provider subject.

Now you will run void platform signup allow identity and void platform signup disallow identity.

sh
void platform signup allow identity <connection-id> <subject> [--note <text>]
void platform signup disallow identity <connection-id> <subject>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Subjects match exactly, including case. Wildcards, email matching and account linking do not apply. The login method's domain or group limits must still pass. A newly admitted account gets the normal user role. Under invited or allowlisted signup, an empty allowlist blocks new accounts. Under company-approved signup, explicit grants admit people on top of the company rules.

Invitations ​

These commands invite people by email and show whether they joined. revoke takes an invitation ID from list.

Now you will run void platform invitation list and void platform invitation send.

sh
void platform invitation list [--page <n>] [--limit <n>]
void platform invitation send <email[,email...]>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

Next, run void platform invitation revoke.

sh
void platform invitation revoke <id>

Example output: the requested record, list, or a confirmation. Commands with --plan show the change without applying it.

send takes up to 100 comma-separated addresses. Invitations grant signup access even if email delivery fails. Delivery is reported separately. If no email goes out, share the platform's /invite page or the void connect '<platform URL>' command yourself. Revoking a pending invitation removes its exact email grant. A broader domain entry may still let that person sign up.

Next steps ​

implemented.stream AI