User Management
User management is a core component of Cavaliba’s IAM (Identity & Access Management) system. In this section, we’ll explore multiple ways to create and manage users: through the web interface, bulk imports via YAML files, and CSV imports with data transformation pipelines.
Create Your First User
Let’s start by creating a user directly through the Cavaliba web interface.
Empty User List
Click on Users in the sidebar. When you first navigate to the Users section, it’s empty (except for the built-in admin account).

Manually create a new user
Click the “Create” or “+” button to open the user creation form ; fill the form :

The form includes fields for:
- Login - Unique username for authentication
- First Name - User’s first name
- Last Name - User’s last name
- Display Name - Full name or display identifier
- Email - Primary email address
- Mobile - Phone number
- Description - Additional notes or purpose
- Enabled - Toggle to activate/deactivate the user
- Notification Preferences - Email/SMS notification settings
Fill in the required fields and click “Save”.
User Successfully Created
After saving, you’ll see a confirmation message and the user appears in the Detail window :

The user list now shows your newly created user with details like login, display name, and email.

Bulk Import Tutorial Users
For any practical deployments, you will import multiple users at once (and periodically), using CSV, JSON or YAML files, or API REST calls. Cavaliba provides demo user data that you can load directly.
Use the CLI command to import a pre-configured set of users:
cavaliba load builtin/demo/010_user.yaml

This command loads users defined in the demo YAML file.
Note on user Data Structure
Users imported from YAML follow this structure:
- classname: _user
login: adela81
firstname: Marijn
(...)The login field is the primary key. An email format is accepted. Mandatory fields are classname: _user and login(keyname is supported to match general Schema). Similar JSON structure are supported.
The underscore before the user schema, indicates a builtin Schema. Don’t use underscore for your own Assets schema names.
Export Users
Cavaliba allows you to export users to similar format for backup, sharing, or integration with other systems.
Use the export functionality in the User UI (dropdown Export) or CLI to download your user data in various formats.

From the command line (CLI):
# Export to JSON
cavaliba schema --export _user
# Export to YAML
cavaliba schema --export _user --format yamlImport CSV user files
Once exported, you can reimport user data ; CSV files requires setting up a pipeline that defines how to process the CSV data : separator, encoding, column mapping.
Create a Pipeline from the UI
First, define a pipeline configuration in the Import Tool from the UI sidebar:
- classname: _pipeline
keyname: user_import_csv
displayname: "User CSV Import Pipeline"
description: "Pipeline to import users in CSV format with pipe delimiter"
content: |
csv_delimiter: '|'
encoding: 'utf-8'
classname: _user
keyfield: login
tasks:
- field_lower: ['', email, login] This pipeline configuration:
- Uses pipe (
|) as the CSV delimiter - Specifies UTF-8 encoding (‘ISO-8859-1’ is another valid encoding)
- Maps CSV rows to the
_userschema - Uses
loginas the unique key field - Includes a task to convert email and login fields to lowercase ; many task operators are available.

from the CLI
Alternatively, load the pipeline definition into Cavaliba with the provided demo files :
cavaliba load builtin/demo/010_user_pipeline.yamlImport CSV with Pipeline
Now you can import a CSV file using the pipeline:
# Basic import
cavaliba load builtin/demo/010_user.csv --pipeline user_import_csv
# Import with progress indicator
cavaliba load builtin/demo/010_user.csv --pipeline user_import_csv --progress
# Preview last 5 records before importing
cavaliba load builtin/demo/010_user.csv --pipeline user_import_csv --last 5
# Verbose output with details
cavaliba load builtin/demo/010_user.csv --pipeline user_import_csv --last 5 --verbosePipeline Output Example
When you run the import with --verbose, you’ll see the processed data:
(...)
Found: 5 objects
[
{
"classname": "_user",
"login": "adela81",
"firstname": "Marijn",
"lastname": "Torrecilla",
"displayname": "Marijn Torrecilla",
"email": "torrecilla@demo.cavaliba",
"mobile": "+56-16832089",
"external_id": "BA-948192",
"is_enabled": true,
"description": "User Marijn Torrecilla for cavaliba demo",
"want_notifications": true,
"want_24": false,
"want_email": true,
"want_sms": false,
"secondary_email": "",
"secondary_mobile": "",
"keyname": "adela81"
},
...
]The pipeline processes the CSV data and load the user objects in the Database.
Managing Large User Datasets
Once you have imported users via any method (UI, YAML, or CSV), you can:
- Edit individual user records
- Bulk update via CSV pipelines
- Export for backup or integration
- Organize users into groups (see the Groups part of this tutorial)
- Assign roles and permissions (see the IAM & Permissions)
You’ll see later how to configre periodical import/export task, or use the REST API to remotely import/export Users and other data objects.
Next steps: Continue to the Groups tutorial to learn how to organize users into groups and assign group-level permissions.