Projects
Learn how to use projects in ZenML Pro.
Projects in ZenML Pro provide a logical subdivision within workspaces, allowing you to organize and manage your MLOps resources more effectively. Each project acts as an isolated environment within a workspace, with its own set of pipelines, artifacts, models, and access controls.
Understanding Projects
Projects help you organize your ML work and resources. You can use projects to separate different initiatives, teams, or experiments while sharing common resources across your workspace.
Projects offer several key benefits:
Resource Isolation: Keep pipelines, artifacts, and models organized and separated by project
Granular Access Control: Define specific roles and permissions at the project level
Team Organization: Align projects with specific teams or initiatives within your organization
Resource Management: Track and manage resources specific to each project independently
Using Projects with the CLI
Before you can work with projects, you need to be logged into your workspace. If you haven't done this yet, see the Workspaces documentation for instructions on logging in.
Setting an active project
After initializing your ZenML repository (zenml init
), you should set an active project. This is similar to how you set an active stack:
This command sets the "default" project as your active project. All subsequent ZenML operations will be executed in the context of this project.
Best practice is to set your active project right after running zenml init
, just like you would set an active stack. This ensures all your resources are properly organized within the project.
Creating and Managing Projects
To create a new project:
Click "Add a New Project"
In the project creation form, you'll need to provide:
Project Name: A descriptive name for your project
Project ID: A unique identifier that enables you to access your project through both the API and CLI. Use only letters, numbers, and hyphens or underscores (no spaces).
Description (optional): A brief explanation of what your project is about
Project-Level Roles
Projects have their own role-based access control (RBAC) system, scoped to the project level. The default project roles include:
Project Admin
Full permissions to any project resource
Can manage project members and their roles
Can configure project settings
Has complete control over all project resources
Project Developer
Permissions to create and view resources in the project
Can work with pipelines, artifacts, and models
Cannot modify project settings or member roles
Project Contributor
Permissions to create resources in the project
Can add new pipelines, artifacts, and models
Cannot modify existing resources or settings
Project Viewer
Permissions to view resources in the project
Read-only access to all project resources
Cannot create or modify any resources
Managing Project Resources
Projects provide isolation for various MLOps resources:
Pipelines
Pipelines created within a project are only visible to project members
Pipeline runs and their artifacts are scoped to the project
Pipeline configurations and templates are project-specific
Artifacts and Models
Artifacts and models are isolated within their respective projects
Version control and lineage tracking is project-specific
Sharing artifacts between projects requires explicit permissions
Best Practices
Project Structure
Create projects based on logical boundaries (e.g., use cases, teams, or products)
Use clear naming conventions for projects
Document project purposes and ownership
Access Control
Start with default roles before creating custom ones
Regularly audit project access and permissions
Use teams for easier member management
Resource Management
Monitor resource usage within projects
Set up appropriate quotas and limits
Clean up unused resources regularly
Documentation
Maintain project-specific documentation
Document custom roles and their purposes
Keep track of project dependencies and integrations
Project Hierarchy
Projects exist within the following hierarchy in ZenML Pro:
Organization (top level)
Workspaces (contain multiple projects)
Projects (contain resources)
Resources (pipelines, artifacts, models, etc.)
This hierarchy ensures clear organization and access control at each level while maintaining flexibility in resource management.

Last updated
Was this helpful?