Skip to Content
Admin ConsoleUser Import & Export

User Import & Export

Auris provides bulk import and export tools for user data. Import users from CSV or JSON files when migrating from another identity provider, onboarding a new department, or seeding a staging environment. Export your user database for backup, compliance audits, or migration to another system.

Access via ConsoleSettingsImport / Export.


Importing Users

The import flow walks you through file upload, data preview, and processing. Imports run asynchronously — you can navigate away from the page and check progress later.

Import Walkthrough

Click Import Users

On the Import / Export page, click the Import Users button in the Import section.

Select the file format

Choose CSV or JSON. This tells Auris how to parse the file you are about to upload.

Upload your file

Drag and drop a file onto the upload area, or click Browse to select a file from your computer. The maximum file size is 10 MB.

Preview the parsed data

Auris parses the file and displays the first 10 rows in a preview table. Verify that column headers are correctly detected and that values appear in the right fields. If the preview looks wrong, check your file format against the requirements below.

Map columns to Auris fields

If your file uses non-standard column names, map each column to the corresponding Auris field:

Auris FieldRequiredDescription
emailYesThe user’s email address. Must be a valid email format. Must be unique across the tenant.
firstNameNoFirst name
lastNameNoLast name
usernameNoUsername. If omitted, Auris derives it from the email address.
passwordNoPlaintext password. Hashed (bcrypt) before storage. If omitted, the user must use Forgot Password or Magic Link to set a password.
rolesNoComma-separated list of role names to assign. Roles must already exist in the tenant.

Click Start Import

Click Start Import to begin processing. The import runs in the background.


File Format Requirements

CSV Format

The first row must be a header row with column names. Values containing commas must be quoted. Multi-value fields (like roles) should be quoted and comma-separated within the quotes.

email,firstName,lastName,password,roles [email protected],Alice,Smith,SecureP@ss123,editor [email protected],Bob,Jones,AnotherP@ss456,"editor,viewer" [email protected],Carol,Williams,,viewer

In the example above, Carol has no password — she will need to use Forgot Password or Magic Link to set one.

JSON Format

The file must contain a JSON array of user objects. Each object follows the same field structure as the CSV columns.

[ { "email": "[email protected]", "firstName": "Alice", "lastName": "Smith", "password": "SecureP@ss123", "roles": ["editor"] }, { "email": "[email protected]", "firstName": "Bob", "lastName": "Jones", "password": "AnotherP@ss456", "roles": ["editor", "viewer"] }, { "email": "[email protected]", "firstName": "Carol", "lastName": "Williams", "roles": ["viewer"] } ]

Passwords in import files are hashed (bcrypt) before storage. They are never stored or logged in plaintext. Users imported with passwords can log in immediately. Users imported without passwords must use the Forgot Password flow or Magic Links to create credentials.


Import Processing

After clicking Start Import, the import runs asynchronously. Each row is processed sequentially:

  1. The email is validated for format and uniqueness
  2. If a password is provided, it is hashed with bcrypt
  3. The user is created in Prisma (Auris database)
  4. The user is created in Keycloak (authentication backend)
  5. If roles are specified, the user is assigned to those roles
  6. The import progress counter increments

Import History

The Import section shows a history table of all import jobs:

ColumnDescription
File NameThe name of the uploaded file
FormatCSV or JSON
StatusCurrent status (see below)
Total RowsNumber of user records in the file
SuccessNumber of users successfully imported
ErrorsNumber of rows that failed
DateWhen the import was started

Import Statuses

StatusMeaning
PendingThe import is queued but has not started processing yet
ProcessingThe import is actively running. A progress bar shows X of Y users processed.
CompletedAll rows were processed successfully with zero errors
PartialProcessing finished but some rows failed. Click to see error details.
FailedThe import could not be processed at all (for example, the file is malformed or Keycloak is unreachable)

Viewing Error Details

Click any import with Partial or Failed status to see per-row error details:

ColumnDescription
Row NumberWhich row in the file failed
EmailThe email address from that row
ErrorWhat went wrong

Common per-row errors:

ErrorCause
Email already existsA user with this email is already in the tenant
Invalid email formatThe email address is not a valid format
Role not found: “admin”The specified role does not exist in the tenant
Keycloak errorKeycloak rejected the user creation (check Keycloak logs for details)
Missing required field: emailThe email column is empty for this row

Imports create users in both Prisma and Keycloak. If Keycloak is unreachable during import, affected rows will fail. The successfully imported rows (already in both systems) are not rolled back. Re-run the import after Keycloak is restored — existing users will be skipped with an “email already exists” error, and only the previously failed rows will be created.


Exporting Users

Export your user database to a CSV or JSON file for backup, migration, or compliance purposes.

Export Walkthrough

Click Export Users

On the Import / Export page, click the Export Users button in the Export section.

Select the export format

Choose CSV or JSON.

Click Start Export

Click Start Export. The export runs in the background.

Download the file

When the export completes, a Download button appears in the export history table. Click it to download the file.

Exported Fields

The export includes the following fields for each user:

FieldDescription
emailThe user’s email address
firstNameFirst name
lastNameLast name
usernameUsername
rolesComma-separated list of assigned role names
enabledWhether the account is active (true / false)
createdAtAccount creation timestamp (ISO 8601)
lastLoginAtMost recent login timestamp (ISO 8601), or empty if the user has never logged in

Passwords are never included in exports. This is a deliberate security measure. If you need to migrate users to another system, users will need to reset their passwords in the new system.

Export History

The Export section shows a history table of all export jobs:

ColumnDescription
FormatCSV or JSON
StatusPending, Processing, Completed, or Failed
Total UsersNumber of users included in the export
File SizeSize of the generated file
Expires AtWhen the download link expires (24 hours after completion)
DateWhen the export was started
ActionsDownload button (available when status is Completed and file has not expired)

Export files are automatically deleted 24 hours after generation. If you need the file after expiry, run a new export.


API Reference

Import and export operations are also available via the REST API for automation and CI/CD pipelines.

POST/api/users/import/
GET/api/users/import/
GET/api/users/import/:id
POST/api/users/export/
GET/api/users/export/
GET/api/users/export/:id/download

Best Practices

  1. Test with a small file first. Before importing 10,000 users, try a file with 5-10 users to verify your column mapping and role names are correct.

  2. Pre-create roles. Import does not create roles on-the-fly. Any role names referenced in the import file must already exist in Console → Roles.

  3. Use consistent email formatting. Auris treats email addresses as case-insensitive, but the original casing is preserved. Avoid mixing [email protected] and [email protected] in the same file.

  4. Schedule large imports during off-peak hours. Each imported user triggers a Keycloak API call. For imports with thousands of users, this generates significant load on Keycloak.

  5. Keep export files secure. While exports do not contain passwords, they do contain email addresses, names, and role assignments. Treat export files as sensitive data.


Permissions

PermissionDescription
manage:usersRequired for both importing and exporting users. This is the same permission used for creating and managing users through the Console UI.