# vodoo security

Manage Vodoo API security groups and service accounts. See the full [Security Guide](../development/security.md) for architecture details.

<!-- This file is auto-generated by scripts/gen_cli_docs.py. Do not edit manually. -->

## Commands

### create-groups

Create or reuse the standard Vodoo security groups.

### assign-bot

Assign a bot user to all Vodoo API security groups.

**Options:**

| Option | Type | Description |
|--------|------|-------------|
| `--user-id` / `-u` | INT | User ID of the bot account |
| `--login` | TEXT | User login/email for the bot account |
| `--create-groups` / `--no-create-groups` | BOOL | Ensure Vodoo API groups exist before assigning (default: True) |
| `--keep-default-groups` | BOOL | Do not remove base.group_user or base.group_portal |

### create-user

Create a new API service account user.

Creates a share user (not billed) with no default groups.
Optionally assigns to all Vodoo API security groups.

NOTE: Requires admin credentials (Access Rights group).

Examples:
    vodoo security create-user "Bot User" bot@example.com
    vodoo security create-user "Bot User" bot@example.com --password MySecretPass123
    vodoo security create-user "Bot User" bot@example.com --assign-groups

    # With admin credentials:
    ODOO_USERNAME=admin@example.com ODOO_PASSWORD=... vodoo security create-user ...

**Arguments:**

| Argument | Type | Description |
|----------|------|-------------|
| `name` | TEXT | User's display name |
| `login` | TEXT | User's login (usually email) |

**Options:**

| Option | Type | Description |
|--------|------|-------------|
| `--password` / `-p` | TEXT | User's password (generated if not provided) |
| `--email` / `-e` | TEXT | User's email (defaults to login) |
| `--assign-groups` / `--no-assign-groups` | BOOL | Assign user to all Vodoo API security groups |
| `--create-groups` / `--no-create-groups` | BOOL | Create Vodoo API groups if they don't exist (requires --assign-groups) (default: True) |

### set-password

Set or reset a user's password.

NOTE: Requires admin credentials (Access Rights group).

Examples:
    vodoo security set-password --login bot@example.com
    vodoo security set-password --user-id 42 --password MyNewPassword123

**Options:**

| Option | Type | Description |
|--------|------|-------------|
| `--user-id` / `-u` | INT | User ID |
| `--login` / `-l` | TEXT | User login/email |
| `--password` / `-p` | TEXT | New password (generated if not provided) |

