Working in projects

A project is a collaborative workspace where you work with data and other assets to accomplish a particular goal.

Projects are shared across each of the experiences that you can access. See Shared projects across experiences.

You can view projects that you create and collaborate in by selecting Projects > All projects in the navigation menu, or by viewing the Projects section on the main page.

Your project can include many types of resources.

Collaborators

Collaborators are the people who you work with in your project.

As a project creator, you can add other collaborators and assign them roles that control which actions they can take. You automatically have the Admin role in the project, and if you give other collaborators the Admin role, they can add collaborators too. See Collaboration.

All collaborators work with the same copy of each asset. Only one collaborator can edit an asset at a time. While a collaborator is editing an asset in a tool, that asset is locked. Other collaborators can view a locked asset, but not edit it. See Managing assets.

Collaboration on assets

For all tools in projects except the JupyterLab IDE and RStudio with Git integration, assets are locked during editing. This prevents conflicts between changes that are made by different collaborators.

Collaboration in the JupyterLab IDE

The JupyterLab IDE uses the version control features of a Git repository instead of locking. When you create a project, you have options to synchronize the project with a Git repository and enable collaborators to use JupyterLab. When you select the JupyterLab option, project collaborators can edit notebooks only in JupyterLab, and the standard Jupyter notebook editor is disabled.

The project shows the contents of the branch that you specified when you created the project. Each collaborator must clone the repository to work on notebooks, scripts, or other files independently and simultaneously. To view or schedule jobs for updated assets in the project, collaborators must push their changes to the project branch, and then pull the updated assets into the project. Users can use the Git functionality in JupyterLab to work with different branches and handle any merge conflicts. They can push their changes to the project branch either directly from JuptyerLab or through Git, for example, by creating a pull request.

See JupyterLab.

Data assets

Data assets are what you work with. Data assets often consist of raw data that you work with to refine.

You can add these types of data assets to projects:

  • Data assets from files
  • Connections to cloud and on-premises data sources
  • Connected data assets from an existing connection asset that provide read-only access to a table or file in an external data source
  • Folder data assets to view the files within a folder in a file system

See Adding data to a project.

Tools and their associated assets

Tools and their associated assets are how you work with data.

When you run a tool, you create an asset that contains the information for a specific goal. For example, you can create flow assets that define operations to run on data with multiple tools. Each tool has one or more types of associated assets that run in the tool.

For a mapping of assets to the tools that you use to create them, see Asset types and properties.

The tools that you can use in a project depend on the services that you have.

Environments

Environments are how you configure compute resources for running assets in tools. An environment template specifies hardware and software resources to instantiate the environment runtimes that run your assets in tools.

Some tools have an automatically selected environment template. However, for other tools, you can choose between multiple environments. When you create an asset in a tool, you assign an environment to it. You can change the environment for an asset when you run it.

Default environment templates can vary by coding language, tool, and compute engine type. You can also create custom environment templates or add services that provide environment templates.

See Environments.

Jobs

Jobs are how you manage and schedule the running of assets in tools.

A job is a single run of an asset in a tool with a specified environment runtime. You can schedule one or repeating jobs, monitor, edit, stop, or cancel jobs. See Jobs.

Project storage

Project storage is where project information and files are stored.

Each project has a dedicated, secure storage that contains:

  • Files that you upload to the project as data assets
  • Data assets from files that you copy from another workspace
  • Files that you save to the project with a tool
  • Files for some assets that run in tools, such as notebooks
  • The project readme file and internal project files
  • Project documentation

The initial storage limitation of assets is 100 GB across all workspaces.

To store large amounts of data, you can use databases, storage volumes, or object stores instead and connect to your data sources.

If you need to increase the size of your storage, complete the following steps. See Resizing Persistent Volumes using Kubernetes for more details.

  1. Confirm if the storage provisioner allows the storage volume to be resized.
  2. Edit the persistent volume claim and update the size value.

When you delete a project, the files that are associated with the project are also deleted.

Additional services

IBM Software Hub administrators can install more services to add tools or compute environments.

Integrations

Integrations are how you incorporate external tools in the project.

You can integrate with a Git repository to export the project, work with documents and notebooks in JupyterLab, or back up the project for source code management purposes. See integrate with a Git repository.

Project documentation

While you create a project, you can add a short description to document the purpose or goal of the project. You can edit the description later, on the project's Manage page.

The Overview page of a project contains a Document editor where you can document the whole lifecycle of your project. You can create and edit documents directly in the editor by using standard Markdown formatting. To set the document that you are editing as the readme file, click the Overflow menu and select Set as Readme. Collaborators with the Admin or Editor role can edit the readme file.

Project configurations

You can mark the project as sensitive when you create the project. When users open a project that is marked as sensitive, a notification is displayed stating that no data assets can be downloaded or exported from the project. You can't change this setting after you create the project.

You can set the following controls at any time on the Manage page in a project:

  • Folders to organize assets.
  • Log all project activities to track detailed project activity in a downloadable log file.
  • Allow reporting on metadata.

Notifications

You can view recent asset activity in the Assets pane on the Overview page. You can also filter the assets to list assets that you edited or assets that all collaborators edited.

All collaborators in a project are notified when a collaborator changes an asset.

Notification settings

Notification settings are how you set notifications to suit your needs.

To see your notification settings, click the notification bell icon and then click the settings icon.

You can change your notification settings in the following ways:

  • Specify to receive push notifications that appear briefly. If you select Do not disturb, you continue to see notifications on the home page and the number of notifications on the bell.
  • Specify to receive notifications by email.
  • Specify for which projects or spaces you receive notifications.

Assets from other workspaces

You can add assets to a project from other workspaces. Not all workspaces are available in all experiences.

A deployment space is where you deploy finished assets. You can move assets from a project to a deployment space when you are ready to deploy them.

A catalog is a central repository for assets where you can easily find and share data and other assets. You can copy assets from the catalog into a project to use them. You can create assets in a project and then publish them into the catalog.

Learn more