Skip to content

Project

This section shows how to create, modify and list projects in AI & Analytics Engine using

  • Using the GUI
  • Using API access through SDK

Using the GUI

Creating a project

Creating a project can be done in one of two methods.

  • From the dashboard, when it's focused on the organization. You will see a darkened rectangle "NEW PROJECT". Click on it.

  • From within an organization. On the lower right part you have the '+' icon. Clicking on it will expand and allow to create a new project.

After using one of these methods, the project creation menu will open and is straight forward:

Step 1 Step 2

In the first step you assign a name, organization and an optional description to the project. In the second step you may add more users and their privileges with respect to the project. Users that already exist in your organization will appear in the window, as can be seen.

Retrieving information of a project

The project information can be seen partially via the dashboard (Count of datasets, application, models and deployments). It can be seen fully by clicking the project on the dashboard and entering the project menu. The first tab is the "SUMMARY" as below:

Updating a project

Enter the project menu, select the "SETTINGS" tab under the project name headline. A menu will appear. In the menu update the project details. Once finished, click the "SAVE" button and the project details will be updated.

Deleting a project

Enter the project menu, select the garbage bin icon in the rightmost side of the tabs ribbon. A menu will appear asking you to verify the deletion. After typing in delete and clicking the "DELETE" button, the project will be deleted and the UI will return to the dashboard.

Listing projects in an organization

The listing is performed via observation in the dashboard. Enter the dashboard and select the relevant organization. Once the organization is selected, you will see the projects attached to it connected by a curved line as in the example below:

Listing projects that belong to an user and users that can access a project

Unlike the API, in the UI there's no easy way to get a concentrated list of projects that belong to a specific user. In a project menu, select the "USERS" tab in the tabs ribbon. The list of users that this project belongs to will appear, together with their privileges.

Adding a user to a project

In a project menu, select the "USERS" tab in the tabs ribbon. Once there, in the lower right side of the window will be a '+' icon. Hovering above it will expand to show an "ADD USERS" button. Clicking on it will open the familiar "ADD USER" window, where an existing/new user can be added to the project and also determine the user privileges. Example:

Step 1 Step 2

Deleting a user from a project

In a project menu, select the "USERS" tab in the tabs ribbon. Once there the list of users will be displayed:

On the right side of a user who's not an owner, there's a garbage bin icon. Clicking on it will lead to the standard deletion window which will prompt the deletion of the user from the project. Clicking on "DELETE" button will remove the user.

Using API access through SDK

To access the API functions, you must first authenticate into the platform.

from aiaengine import api

client = api.Client()

Importing project

Then you need to import project to proceed with the next steps.

from aiaengine.api import project

Creating a project

Now you can create a new project within an organization by specifying a project name, some description and the org id.

create_project_response = client.projects.CreateProject(
    project.CreateProjectRequest(
        name='Project Name',
        description='What is this project about',
        org_id='id_of_org_where_this_project_is_included'
    )
)

project_id = create_project_response.id

Once created, the project is assigned to a unique id which is frequently used in other functions.

Retrieving information of a project

You can get information about a project by providing the project id.

client.projects.GetProject(
    project.GetProjectRequest(
        id='id_of_project'
    )
)

Updating a project

You can modify the name and description of an existing project by specifying the project id.

client.projects.UpdateProject(
    project.UpdateProjectRequest(
        id='id_of_updated_project',
        name='Updated Project',
        description='This project has been updated'
    )
)

Deleting a project

You can also remove a project which is no longer needed by giving the project id.

client.projects.DeleteProject(
    project.DeleteProjectRequest(
        id='id_of_deleted_project'
    )
)

Listing projects in an organization

You can list all the projects within an organization by providing the organization id.

client.projects.ListOrgProjects(
    project.ListOrgProjectsRequest(
        org_id='id_of_org_where_projects_are_included'
    )
)

Listing projects that belong to an user

Similarly you can inspect all the projects that can be accessed by a user by specifiying the user id.

client.projects.ListUserProjects(
    project.ListUserProjectsRequest(
        user_id='id_of_user_who_can access_listed_projects'
    )
)

Here if user_id is omitted or set to None, the above code returns the list of projects associated with the current user.

Listing users that can access a project

You can also list all the users who have access to a particular project by providing the project id.

client.projects.ListProjectUsers(
    project.ListProjectUsersRequest(
        id='id_of_project_that_listed_users_can_access'
    )
)

Adding a user to a project

You can add an existing user of the platform to a project by specifying the project id, the user id and the role of the user (project-viewer, project-owner, project-editor).

client.projects.CreateProjectUser(
    project.CreateProjectUserRequest(
        id='id_of_project',
        user_id='id_of_added_user',
        role_id='project-editor'
    )
)

Deleting a user from a project

Once a user is no longer interested in a project, you can remove the user with input of the project id and user id.

client.projects.DeleteProjectUser(
    project.DeleteProjectUserRequest(
        id='id_of_project_that_user_can_access',
        user_id='id_of_user_whose_access_to_project_is_deleted'
    )
)