> ## Documentation Index
> Fetch the complete documentation index at: https://docs.controlplane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# user

> cpln user — Manage users and their access within your organization.

Manage users

For a detailed overview, please visit the [user's](/reference/user) reference page.

```none theme={null}
cpln user [SUBCOMMAND]
```

```text theme={null}
Commands:
  cpln user access-report <ref>  Show the access report for the referenced user
  cpln user audit [ref]          Retrieve audit trail events for the referenced user
  cpln user delete <ref...>      Delete one or more referenced users
  cpln user edit <ref>           Edit the referenced user, as YAML, within an editor
  cpln user eventlog <ref>       Show the event log of the referenced user  [aliases: log]
  cpln user get [ref...]         Retrieve one or more referenced users
  cpln user invite               Invite users to the current or overridden organization
  cpln user patch <ref>          Update the referenced user's metadata using an input file
  cpln user permissions          Show the grantable permissions for a user object type
  cpln user query                Find all the users based on the given query
  cpln user tag <ref...>         Manage the tags belonging to one or more referenced users
  cpln user update <ref>         Update properties of the referenced user

Options:
  --help  Show help  [boolean]
```

***

#### user access-report

Show the access report for the referenced user

**Usage**

```none theme={null}
cpln user access-report <ref> [OPTIONS]
```

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  The resource reference. Usually it is the name of the resource.  [required]

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  <CodeGroup>
    ```bash Command theme={null}
    cpln user access-report test-128@example.com --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +------------+--------------------------------------------------------+--------+
    |PERMISSION  |PRINCIPAL                                               |GRANTED |
    |------------|--------------------------------------------------------|--------|
    |delete      |/org/demo-cpln-organization/group/superusers            |manage  |
    |delete      |/org/demo-cpln-organization/serviceaccount/controlplane |manage  |
    |edit        |/org/demo-cpln-organization/group/superusers            |manage  |
    |edit        |/org/demo-cpln-organization/serviceaccount/controlplane |manage  |
    |impersonate |/org/demo-cpln-organization/group/superusers            |manage  |
    |impersonate |/org/demo-cpln-organization/serviceaccount/controlplane |manage  |
    |invite      |/org/demo-cpln-organization/group/superusers            |manage  |
    |invite      |/org/demo-cpln-organization/serviceaccount/controlplane |manage  |
    |manage      |/org/demo-cpln-organization/group/superusers            |manage  |
    |manage      |/org/demo-cpln-organization/serviceaccount/controlplane |manage  |
    |view        |/org/demo-cpln-organization/group/viewers               |view    |
    |view        |/org/demo-cpln-organization/group/superusers            |manage  |
    |view        |/org/demo-cpln-organization/serviceaccount/controlplane |manage  |
    +------------+--------------------------------------------------------+--------+
    ```
  </CodeGroup>
</Accordion>

***

#### user audit

Retrieve audit trail events for the referenced user

**Usage**

```none theme={null}
cpln user audit [ref] [OPTIONS]
```

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  The resource reference. Usually it is the name of the resource.

  Command options:
    --subject  Filter by subject (serviceaccount name or user email)  [string]
    --context  Audit context name (the 'cpln' context displays Control Plane actions)  [string] [default: "cpln"]
    --since    Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to  [string] [default: "7d"]
    --from     Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since  [string]
    --to       End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m)  [string]

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

***

#### user delete

Delete one or more referenced users

**Usage**

```none theme={null}
cpln user delete <ref...> [OPTIONS]
```

<Warning>
  Deleting a user will remove all associated resources (permissions, group memberships, etc.)
</Warning>

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  One or more resource references. Usually it is the name of the resource.  [array] [required] [default: []]

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  <CodeGroup>
    ```bash Command theme={null}
    cpln user delete demo-user@controlplane.com --org demo-cpln-organization
    ```

    ```text Output theme={null}
    If the delete was successful, a new command prompt will be shown.
    ```
  </CodeGroup>
</Accordion>

***

#### user edit

Edit the referenced user, as YAML, within an editor

**Usage**

```none theme={null}
cpln user edit <ref> [OPTIONS]
```

<Note>
  The default editor can be set by using the EDITOR environment variable.
</Note>

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  The resource reference. Usually it is the name of the resource.  [required]

  Command options:
    --replace, -r  Replace instead of patch/merge  [boolean] [default: false]

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  <CodeGroup>
    ```bash Command theme={null}
    cpln user edit test-128@example.com --org demo-cpln-organization
    ```

    ```text Output theme={null}
    Your default editor will be launched.

    Once any modifications are saved, the updates will be sent to the API.
    ```
  </CodeGroup>
</Accordion>

***

#### user eventlog

Show the event log of the referenced user

**Usage**

```none theme={null}
cpln user eventlog <ref> [OPTIONS]
```

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  The resource reference. Usually it is the name of the resource.  [required]

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  <CodeGroup>
    ```bash Command theme={null}
    cpln user eventlog test-128@example.com --org demo-cpln-organization
    ```

    ```text Output theme={null}
    The event log for the referenced user will be shown.
    ```
  </CodeGroup>
</Accordion>

***

#### user get

Retrieve one or more referenced users

**Usage**

```none theme={null}
cpln user get [ref...] [OPTIONS]
```

<Note>
  An empty reference will return all references
</Note>

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  One or more resource references. Usually it is the name of the resource.  [array] [default: []]

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  * Get all users

  <CodeGroup>
    ```bash Command theme={null}
    cpln user get --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+-----------------------+-------------+---------+------------------------------------------+
    |ID                           |FULL NAME            |EMAIL                  |CREATED      |IDP      |TAGS                                      |
    |-----------------------------|---------------------|-----------------------|-------------|---------|------------------------------------------|
    |rMdL2BFDxEeYQPA5qRYGbLivhVS2 |Kyle Cupp            |kyle@controlplane.com  |2 years ago  |firebase |firebase/sign_in_provider="microsoft.com" |
    |3mpcnkfyNhYXdjq8TbLefzXwyfu1 |Majid Abu Rmelah     |majid@controlplane.com |6 months ago |firebase |firebase/sign_in_provider="microsoft.com" |
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com   |5 years ago  |firebase |firebase/sign_in_provider="password"      |
    +-----------------------------+---------------------+-----------------------+-------------+---------+------------------------------------------+
    ```
  </CodeGroup>

  * Get one user

  <CodeGroup>
    ```bash Command theme={null}
    cpln user get test-128@example.com --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
    |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |firebase/sign_in_provider="password" |
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    ```
  </CodeGroup>
</Accordion>

***

#### user invite

Invite users to the current or overridden organization

**Usage**

```none theme={null}
cpln user invite --email EMAIL_ADDRESS [--group GROUP_NAME] [OPTIONS]
```

<Accordion title="Reference">
  ```text theme={null}
  Command options:
    --email  Email address of the user to invite  [required]
    --group  Primary group to add the user to after they accept an invitation

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  <CodeGroup>
    ```bash Command theme={null}
    cpln user invite --email demo@controlplane.com --org demo-cpln-organization
    ```

    ```text Output theme={null}
    If the invite request was successful, a JSON output with the task ID will be shown. 
    ```
  </CodeGroup>
</Accordion>

***

#### user patch

Update the referenced user's metadata using an input file

**Usage**

```none theme={null}
cpln user patch <ref> --file FILE_NAME [OPTIONS]
```

<Note>
  Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
</Note>

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  The resource reference. Usually it is the name of the resource.  [required]

  Command options:
    --file, -f  File to load the patch from. Use `--file -` to enable input from stdin.  [required]

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  <CodeGroup>
    ```bash Command theme={null}
    cpln user patch test-128@example.com --file update.json --org demo-cpln-organization
    ```

    ```text Output theme={null}
    The changes within the JSON file will be performed against the referenced user.
    ```
  </CodeGroup>
</Accordion>

***

#### user permissions

Show the grantable permissions for a user object type

**Usage**

```none theme={null}
cpln user permissions [OPTIONS]
```

<Accordion title="Reference">
  ```text theme={null}
  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  <CodeGroup>
    ```bash Command theme={null}
    cpln user permissions --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +------------+-----------------------------+------------------------------------------------+
    |NAME        |DESCRIPTION                  |IMPLIES                                         |
    |------------|-----------------------------|------------------------------------------------|
    |delete      |Delete existing users        |                                                |
    |edit        |Modify existing users        |view                                            |
    |impersonate |Lets you impersonate a user  |                                                |
    |invite      |Can invite users to this org |                                                |
    |manage      |Full access                  |delete, edit, impersonate, invite, manage, view |
    |view        |Read-only access             |                                                |
    +------------+-----------------------------+------------------------------------------------+
    ```
  </CodeGroup>
</Accordion>

***

#### user query

Find all the users based on the given query

**Usage**

```none theme={null}
cpln user query QUERY_OPTIONS [OPTIONS]
```

<Accordion title="Reference">
  ```text theme={null}
  Query options:
    --match             Query filter type  [choices: "all", "none", "any"] [default: "all"]
    --property, --prop  Property to query
    --tag               Tag to query
    --rel               Relation to query

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  <Note>
    Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
  </Note>

  * Search for a user based on a property

  <CodeGroup>
    ```bash Command theme={null}
    cpln user query --match any --prop email=test-128@example.com --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
    |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |firebase/sign_in_provider="password" |
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    ```
  </CodeGroup>

  * Search for a user based on a tag

  <CodeGroup>
    ```bash Command theme={null}
    cpln user query --match any --tag firebase/sign_in_provider="password" --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
    |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |firebase/sign_in_provider="password" |
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    ```
  </CodeGroup>

  * Search for a user based on a property and tag

  <CodeGroup>
    ```bash Command theme={null}
    cpln user query --match any --prop email=test-128@example.com --tag firebase/sign_in_provider="password" --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
    |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |firebase/sign_in_provider="password" |
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    ```
  </CodeGroup>
</Accordion>

***

#### user tag

Manage the tags belonging to one or more referenced users

**Usage**

```none theme={null}
cpln user tag <ref...> --tag KEY=VALUE [OPTIONS]
```

<Note>
  Built-in tags, which begin with cpln/\*, can't be modified.
</Note>

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  One or more resource references. Usually it is the name of the resource.  [array] [required] [default: []]

  Command options:
    --tag         Attach tags (e.g., --tag drink=water)
    --remove-tag  Remove tags (e.g., --remove-tag tagname)

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Example">
  * Add a tag

  <CodeGroup>
    ```bash Command theme={null}
    cpln user tag test-128@example.com --tag drink=water --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
    |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |drink="water"                        |
    |                             |                     |                     |            |         |firebase/sign_in_provider="password" |
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    ```
  </CodeGroup>

  * Update same tag (after running the example above)

  <CodeGroup>
    ```bash Command theme={null}
    cpln user tag test-128@example.com --tag drink=coffee --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
    |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |drink="coffee"                       |
    |                             |                     |                     |            |         |firebase/sign_in_provider="password" |
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    ```
  </CodeGroup>

  * Remove tag (after running the example above)

  <CodeGroup>
    ```bash Command theme={null}
    cpln user tag test-128@example.com --remove drink --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
    |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |firebase/sign_in_provider="password" |
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    ```
  </CodeGroup>
</Accordion>

***

#### user update

Update properties of the referenced user

**Usage**

```none theme={null}
cpln user update <ref> --set UPDATE_PROPERTY [OPTIONS]
```

<Accordion title="Reference">
  ```text theme={null}
  Positionals:
    ref  The resource reference. Usually it is the name of the resource.  [required]

  Update Properties:
    --set    Update the following properties (e.g., --set description="Updated Description"):

             tags.<key>    string
    --unset  Unset a property (same paths as --set, e.g., --unset description)

  Context options:
    --profile  Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
    --org      Override the organization. The default organization can be set in your profile by using the `cpln profile update` command

  Format options:
    --output, -o  Set the output format  [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
    --color       Colorize the output  [boolean] [default: true]
    --ts          Timestamp format if the output format is text (e.g., --output=text)  [choices: "iso", "local", "age"]
    --max         Maximum number of records to show. A value less than 1 will return all records.  [number] [default: 50]

  Request options:
    --token         Override the authorization token
    --endpoint      Override the API URL
    --insecure, -k  Ignore TLS errors  [boolean]

  Debug options:
    --verbose, -v  Enable verbose output to stderr  [boolean] [default: false]
    --debug, -d    Show all HTTP communications  [boolean] [default: false]

  Options:
    --help  Show help  [boolean]
  ```

  [Common Options Reference](/cli-reference/using-cli/common-options)
</Accordion>

<Accordion title="Options">
  * The `--set` option allows the modification of the following user properties:
    * description
      * Description of the user
      * Type: string
    * tags
      * Tags (key=value) associated with the user
      * Type: string
</Accordion>

<Accordion title="Example">
  * For the examples below, the initial user is configured as:

  ```text theme={null}
  +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
  |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
  |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
  |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |firebase/sign_in_provider="password" |
  +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
  ```

  * Update a user's tag

  <CodeGroup>
    ```bash Command theme={null}
    cpln user update test-128@example.com --set tags.user-name="test-128" --org demo-cpln-organization
    ```

    ```text Output theme={null}
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    |ID                           |FULL NAME            |EMAIL                |CREATED     |IDP      |TAGS                                 |
    |-----------------------------|---------------------|---------------------|------------|---------|-------------------------------------|
    |HkKCu6TcHIMB8ON8iXayuKw5oop2 |test-128@example.com |test-128@example.com |5 years ago |firebase |firebase/sign_in_provider="password" |
    |                             |                     |                     |            |         |user-name="test-128"                 |
    +-----------------------------+---------------------+---------------------+------------+---------+-------------------------------------+
    ```
  </CodeGroup>
</Accordion>

***
