Skip to content
Weik.ioDocs
2026.2
Try Weik.io

Projects, members and roles

Weik.io 2026.2

Create projects, give people a role in them and define your own roles from the platform's verbs.

On this page

A project groups integrations, APIs and the values they share, and people work in a project through a role it grants them. Weik.io comes with the roles viewer, editor, deployer and admin, and a platform administrator creates more from the verbs read, author, operate, reveal, deploy, entity-store-policy and members.

A membership can be limited to named environments and to named integrations and APIs. A support person can then restart one integration in production and see nothing else of the project. Projects, roles and members are also YAML documents that weikio apply accepts, and the commands below are the direct form.

Commands on this page#

Command What it does
weikio project create Create a project.
weikio get projects List projects.
weikio describe project Show a project with its members and counts.
weikio project set Change a project.
weikio delete project Delete a project and everything in it.
weikio rename project Rename a project.
weikio member add Give a user a role in a project, replacing any role they were given there. Without --integrations and --apis, the grant covers the whole project.
weikio get members List the members of a project.
weikio member list List the members of a project.
weikio member remove Remove a user from a project.
weikio get roles List the roles with their verbs.
weikio describe role Show a role.
weikio role create Create a role from a set of verbs.
weikio role set Replace the verbs of a role.
weikio delete role Delete a custom role.
weikio rename role Rename a custom role.

The flags every command accepts, such as --env, --project, -o and --context, are on the CLI reference page and are left out of the tables below.

weikio project create#

Create a project. Creating a project also creates its store for built versions, sized by --store-bytes.

Terminal
weikio project create <name> [--display-name S] [--description S] [--label k=v ...] [--store-bytes SIZE]
Argument or flag What it does
<name> Project name.
--display-name <display-name> The project’s display name.
--description <description> Project description.
--label <label> Label in k=v form (may be repeated).
--store-bytes <store-bytes> Store size for integration versions and build output, by default 1GiB.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a platform administrator.

API: PUT /api/v1/projects/{name}.

Also written as weikio create project.

Terminal
$ weikio project create finance --display-name "Finance" --label team=finance
You see
Target: https://hub.example
project finance created (revision 4102)

weikio get projects#

List projects.

Terminal
weikio get projects [-l k=v]
Argument or flag What it does
-l <l> Show only rows with every k=v label given.

Who can run it: a grant on the project whose role has read.

API: GET /api/v1/projects.

weikio describe project#

Show a project with its members and counts.

Terminal
weikio describe project <name>
Argument or flag What it does
<name> Project name.

Who can run it: a grant on the project whose role has read.

API: GET /api/v1/projects/{name}, GET /api/v1/projects/{name}/members, GET /api/v1/projects/{name}/integrations.

weikio project set#

Change a project.

Terminal
weikio project set <name> [--display-name S] [--description S] [--label k=v] [--unlabel k] [--store-bytes SIZE]
Argument or flag What it does
<name> Project name.
--display-name <display-name> The project’s display name, and “” removes it.
--description <description> Project description.
--label <label> Label in k=v form to add or replace (may be repeated).
--unlabel <unlabel> Label key to remove (may be repeated).
--store-bytes <store-bytes> Store size for integration versions and build output. Must be above what the store uses.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a platform administrator.

API: PUT /api/v1/projects/{name}.

weikio delete project#

Delete a project and everything in it. Deleting a project deletes everything in it in every environment: its integrations and versions, its stored events and dead letters, its entity types and its values. The command asks you to type the project’s name first, and -y skips that.

Terminal
weikio delete project <name> [-y]
Argument or flag What it does
<name> Project name.
-y, --yes Don’t ask for confirmation.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a platform administrator.

API: DELETE /api/v1/projects/{name}.

weikio rename project#

Rename a project.

Terminal
weikio rename project <name> <new-name>
Argument or flag What it does
<name> The project.
<new-name> The new name.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a platform administrator.

API: PATCH /api/v1/projects/{project}.

weikio member add#

Give a user a role in a project, replacing any role they were given there. Without --integrations and --apis, the grant covers the whole project. A membership is a grant: one role in one project, optionally limited to environments, integrations and APIs. Adding a member again replaces the grant they had.

Terminal
weikio member add <project> <id|email> --role R [--env E,...] [--integrations N,...] [--apis A,...]
Argument or flag What it does
<project> Project name.
<user> The user, by ID or e-mail.
--role <role> The role to grant.
--integrations <integrations> The integrations the grant covers, comma separated.
--apis <apis> The APIs the grant covers, comma separated.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a grant on the project whose role has members, as admin has.

API: GET /api/v1/users/_emails?email=, PUT /api/v1/projects/{project}/members/{userId}.

Terminal
$ weikio member add finance anna@example.com --role deployer --env devtest,production
You see
Target: https://hub.example, project finance (argument), user anna@example.com
member finance/anna@example.com created (role deployer; environments devtest, production; revision 4104)
Terminal
$ weikio member add finance ville@example.com --role helpdesk --env production --integrations erp-invoice-export,nightly-payroll
You see
Target: https://hub.example, project finance (argument), user ville@example.com
member finance/ville@example.com created (role helpdesk; environments production; integrations erp-invoice-export, nightly-payroll; revision 4105)

weikio get members#

List the members of a project.

Terminal
weikio get members <project>
Argument or flag What it does
<project> Project name.

Who can run it: a grant on the project whose role has members, as admin has.

API: GET /api/v1/projects/{project}/members, GET /api/v1/users/_emails?ids=.

weikio member list#

List the members of a project.

Terminal
weikio member list <project> [flags]
Argument or flag What it does
<project> Project name.

weikio member remove#

Remove a user from a project.

Terminal
weikio member remove <project> <id|email> [-y]
Argument or flag What it does
<project> Project name.
<user> The user, by ID or e-mail.
-y, --yes Don’t ask for confirmation.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a grant on the project whose role has members, as admin has.

API: GET /api/v1/users/_emails?email=, DELETE /api/v1/projects/{project}/members/{userId}.

weikio get roles#

List the roles with their verbs.

Terminal
weikio get roles

Who can run it: any valid API key.

API: GET /api/v1/roles.

Terminal
$ weikio get roles
You see
NAME       VERBS                                                                 SEEDED
viewer     read                                                                  yes
editor     read, author, operate, reveal                                         yes
deployer   read, author, operate, reveal, deploy, entity-store-policy            yes
admin      read, author, operate, reveal, deploy, entity-store-policy, members   yes
helpdesk   read                                                                  no

weikio describe role#

Show a role.

Terminal
weikio describe role <name>
Argument or flag What it does
<name> The role.

Who can run it: any valid API key.

API: GET /api/v1/roles/{name}.

weikio role create#

Create a role from a set of verbs. Roles are platform-wide, so one role serves every project.

Terminal
weikio role create <name> --verbs v1,v2 [--description S]
Argument or flag What it does
<name> The role’s name.
--verbs <verbs> The role’s verbs, comma separated.
--description <description> What the role is for.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a platform administrator.

API: PUT /api/v1/roles/{name}.

Also written as weikio create role.

Terminal
$ weikio apply -f platform/roles/helpdesk.yaml
You see
Target: https://hub.example
role helpdesk created

weikio role set#

Replace the verbs of a role.

Terminal
weikio role set <name> --verbs v1,v2 [--description S]
Argument or flag What it does
<name> The role.
--verbs <verbs> The role’s verbs, comma separated.
--description <description> What the role is for.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a platform administrator.

API: PUT /api/v1/roles/{name}.

weikio delete role#

Delete a custom role.

Terminal
weikio delete role <name> [-y]
Argument or flag What it does
<name> The role.
-y, --yes Don’t ask for confirmation.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a platform administrator.

API: DELETE /api/v1/roles/{name}.

weikio rename role#

Rename a custom role.

Terminal
weikio rename role <name> <new-name>
Argument or flag What it does
<name> The role.
<new-name> The new name.
--reason <reason> Reason for the change, stored with the audit record.

Who can run it: a platform administrator.

API: PATCH /api/v1/roles/{name}.

Exit codes#

The commands on this page exit with the codes in the exit code table: 0 on success, 1 when the hub refuses a change, 2 for a usage error, 3 when the key is missing or not allowed, 4 when something isn’t found, 5 for a conflicting change, 6 when the hub can’t be reached and 8 when a document isn’t valid.

See also#