Adding Users

Providing LDAP or OAuth users with access to the Aizen platform is a two-step process:

  1. Users must be authenticated by JupyterLab.

  2. Users must be added to Aizen.

JupyterLab Authentication

At Aizen installation time, the installer applies these authentication settings:

  • The authentication type (LDAP or OAuth) (LDAP by default)

  • The external user ID that will serve as the Aizen JupyterLab admin user

  • The LDAP or OAuth group or organization that permits all users within that group to be auto-authenticated with the external authentication database

The external user ID that is specified as admin_user during Aizen installation will be granted the AIZEN_ADMIN role as part of the installation process. Only users within the LDAP or OAuth group or organization specified during installation will be able to log in to the Aizen notebook and run commands.

Adding System-Level User Information

Aizen users are registered into the Aizen database with their system-level information:

  • User ID, name, and contact information

  • Aizen alert delivery preferences

  • System-level Aizen roles

  1. Log in to the Jupyter console as a user with the AIZEN_ADMIN role.

  2. Create a json file with the system-level user details. The json file should contain a list of users with their login ID, name, and alert preferences. An email address or phone number is required to receive alerts. See the Example system_users_config.json below.

  3. For each user, specify any system-level Aizen roles (AIZEN_ADMIN and PROJECT_CREATOR) as applicable.

    • You may want to designate one or more users as additional AIZEN_ADMINs.

    • You will want to designate one or more users to be PROJECT_CREATOR, so they can create projects and manage those projects.

    • You can leave the roles as an empty list or omit the roles property for users that will only have project-specific privileges (PROJECT_ADMIN, PROJECT_EXECUTOR, or PROJECT_READER).

  4. Create or open a notebook.

  5. Execute the following command to add the system-level users:

    add users <system users config json file>

Users with the PROJECT_CREATOR role can now log in and add other project users as part of the project creation and configuration.

Example system_users_config.json

[
   {
      "id": "user1",
      "name": "user1",
      "email_id": "user1@demo.net",
      "phone_number": "1231231234",
      "roles": ["AIZEN_ADMIN", "PROJECT_CREATOR"],
      "alert_options": [
         {
            "severity": "error",
            "type": ["email"]
         },
         {
            "severity": "info",
            "type": ["email"]
         }
      ]
   },
   {
      "id": "user2",
      "name": "user2",
      "email_id": "user2@demo.net",
      "phone_number": "3213214321",
      "roles": [],
      "alert_options": [
         {
            "severity": "error",
            "type": ["email"]
         }
      ]      
   }
]

For severity of the alerts, you can specify one of these options:

  • critical

  • error

  • warning

  • info

For the type of the alerts, you can specify email or text.

Adding Project Users

The Aizen ML pipeline is organized by projects. A user with the PROJECT_CREATOR role can create a project and add additional users who can access objects within that project.

  1. Log in to the Jupyter console as a user with the PROJECT_CREATOR role.

  2. Create a json file with the project user details:

    • The project user details consist of a project description and a list of project-level users.

    • Each user entry requires the user ID, a list of project-level roles (PROJECT_ADMIN, PROJECT_EXECUTOR, or PROJECT_READER), and a list of services for which the user wants to receive alerts. See the Example project_users_config.json below.

  3. Create or open a notebook.

  4. Execute the following command to create a project using the input json file to define users for the project and their roles and alert preferences:

    create project <project name>,config=<project users config json file>

Now, the project is accessible by all users specified in the project configuration file.

Example project_users_config.json

{
    "description": "trip fare",
    "name": "trip_fare",
    "users": [
        {
            "id": "user1",
            "name": "user1",
            "roles": ["PROJECT_ADMIN"],
            "alerts_for_services": ["all"]
        },
		{
            "id": "user2",
            "name": "user2",
            "roles": ["PROJECT_EXECUTOR"],
            "alerts_for_services": ["all"]
        }
    ]
}

A user can receive alerts for these services (alerts_for_services):

  • datasink

  • dataset

  • training

  • prediction

  • featureview

  • storage

  • jobcontroller

  • metaserver

  • all

Last updated