When the internal Database provider is used, Anjana Data Platform manages user authentication through the Users table in the Configuration Panel.
This table contains the users who can log in to the platform and subsequently receive permissions/roles to operate in the various Anjana Data Platform portals.
Adding users
Users of the Database provider can be registered through three mechanisms:
-
Manual registration from the Configuration Panel
Recommended method for creating users individually.
Path: Schemas → Users → New. -
Registration via API
Allows automating user provisioning from external processes.
(Refer to the Zeus Users API documentation for more details.) -
User synchronization
Available via the action:Actions > Syncronize users
The Users Table in the Configuration Panel (Administrator View)
The users table stores the basic information of each user authenticated/authorized via database.
To view and access the Users table within the Configuration Panel, the user must have a role with permissions for the CREDENTIAL_ADMIN action on the ANJANA subtype.
Table structure
Each user is defined by the following fields:
-
Id: unique identifier of the user in the table. -
userName: unique identifier of the user in the application or the identity provider integrated with the Platform.
It is the name with which the user registers and logs in to the Anjana Data Platform portals. -
firstName: first name of the user. -
lastName: last name(s) of the user. -
email: email address of the user. -
phone: phone number of the user. -
title: title of the user (informational field, not mandatory). -
Password: hash of the user's password in BCrypt format. The hash is unique per user, even for identical passwords. It can be generated with any standard BCrypt tool. -
isServiceUser: boolean indicating whether this is a service user for securing microservices (true) or a named user (false).
Adding users to the Users table
The registration and management of users via the Anjana Data Platform Administrator Panel is performed in the Users table.
-
To create a new user, click New.
-
The creation wizard prompts you to fill in the fields described in the Structure section.
-
Click Save to save the user or Cancel to discard.
For authentication via Database, the user will use the plaintext password (before hashing) as their password, which is validated against the Password field.
Modifying users in the Users table
Modification of the attributes associated with a user (userName) can be done with caution.
-
Go to Schemas → Users within the Configuration Panel.
The list of existing users will be displayed. -
Locate the user you want to modify:
-
You can search by userName, email or other fields available in the table using the filters.
-
-
Open the user's details by clicking the pencil icon that opens the editing panel:
-
Modify the required fields:
-
firstName
-
lastName
-
email
-
phone
-
title
-
Password (only if you wish to change the password)
-
-
Save the changes using the Save button.
Important:
-
For changes to take effect immediately, it is recommended to clear caches from the Configuration Panel using the
Actions > Clear cacheoption. -
It is not recommended to change values that were populated via synchronization with the corporate identity management system, unless those values are not present in that system.
Important considerations
-
userNameis a unique identifier.
It is not recommended to modify it except in exceptional cases, as it is the login value and may be referenced in permissions/roles or in a user-type attribute in an object's template.
If it is modified:-
if there are users referenced in user-type attributes in any template, a bulk edit must be performed to remove any such references.
-
it must comply with all restrictions of the
userNamefield (uniqueness, length, valid characters, etc.). -
the user will need to log in with the new value.
-
-
Password change
If the password is updated, the field to modify ispassword, which must be a valid BCrypt hash.
The user will use the plaintext password corresponding to that hash when logging in. -
isServiceUser
This is an informational field. It should not be modified manually unless indicated by the platform team.
Configuring users via direct database access (Developer View)
The creation and maintenance of internal users in Anjana Data Platform (authentication by Database) is performed on the zeus.users table. It stores the user identity data and their encrypted credential.
|
Column |
Data type |
Constraints / Notes |
|---|---|---|
|
|
|
Not null. PK. Internal user identifier. Must be unique. |
|
|
|
Unique. User's email address. Can be null, but if provided it cannot be duplicated. |
|
|
|
User's first name. Optional. |
|
|
|
User's last name(s). Optional. |
|
|
|
Not null. Password hash. Length compatible with BCrypt. |
|
|
|
Contact phone number. Optional. |
|
|
|
User's position/role. Optional. |
|
|
|
Not null. Unique. Username for internal login. |
|
|
|
Indicates whether this is a service user. Default value |
Relevant constraints and indexes
-
Primary key:
users_pkey (id_user) -
Email uniqueness:
UNIQUE (email) -
Username uniqueness:
UNIQUE (user_name) -
Case-insensitive username uniqueness:
CREATE UNIQUE INDEX unique_lower_username ON zeus.users (lower(user_name::text));
This prevents duplicates due to uppercase/lowercase differences (e.g.,jgarciaandJGarcia).
Authentication considerations
-
The
password_hashfield must be stored encrypted, not in plaintext. -
The expected format is a BCrypt hash (hence the size of 60).
-
If a user is inserted without a valid hash, they will not be able to authenticate.
Note: the exact procedure for hash generation (cost factor, library, etc.) must follow the deployment/security technical guide of the installation. It is not recommended to generate hashes manually without using the official method.
Example of user creation via SQL
Below is an example of how to register named users:
INSERT INTO zeus.users (
id_user, email, first_name, last_name, password_hash,
phone, title, user_name, is_service_user
) VALUES
(1, 'ana.lopez@empresa.com', 'Ana', 'López',
'$2a$10$u1oS7m0y4v5B8uYVg0WwJeWwBq0wO6T8z7pBq8cY3oZfM2a8n4c9S',
NULL, 'Data Steward', 'alopez', false),
(2, 'svc_anjana@empresa.com', 'Anjana', 'Service',
'$2a$10$QwErTyUiOpAsDfGhJkLzXeCvBnMmNnBbVvCcXxZzAaSsDdFfGgHh',
NULL, 'Service Account', 'svc_anjana', true);