What is a Workspace?
A Workspace is a logical container that groups related resources and provides a collaborative environment for teams to work together on cloud native infrastructure. Think of Workspaces as project folders that contain:- Designs - Infrastructure configurations and deployment templates
- Environments - Collections of deployment targets and connections
- Team access - Permissions and collaboration settings
Workspaces facilitate collaboration between you and your teams, allow you to control access to resources, and track activity and report on related events.
Key Features
Resource Sharing
Workspaces enable seamless resource sharing among team members:- Share designs with specific teams or across the entire workspace
- Provide access to environments without exposing individual credentials
- Collaborate in real-time on infrastructure designs
- Track changes and activity across shared resources
Logical Grouping
Organize your infrastructure resources logically:- Project-based - Create workspaces for individual projects or applications
- Team-based - Organize by team responsibilities (platform, app team, SRE)
- Environment-based - Separate development, staging, and production workflows
- Domain-based - Group by business domain or service ownership
Access Control
Control who can view and modify resources:- Grant workspace access to specific teams
- Control design ownership and editing permissions
- Manage environment access through workspace assignments
- Track user activity and audit resource changes
Workspace Structure
Data Model
Workspaces in Meshery are defined with the following structure:Resource Relationships
Workspaces maintain relationships with other Meshery entities: Workspace → Environments:Working with Workspaces
Creating a Workspace
Create workspaces through the Meshery UI or API: Via REST API:- Navigate to Workspaces section
- Click “Create Workspace”
- Enter name and description
- Select organization (if applicable)
- Click “Create”
Adding Resources to Workspaces
Adding Environments
Assign environments to make their connections available in the workspace:- All connections in that environment become available
- Team members can deploy designs to those connections
- Environment credentials are managed separately for security
Adding Designs
Share designs with workspace members:- Makes the design visible to all workspace members
- Allows collaborative editing (based on permissions)
- Enables deployment to workspace environments
- Maintains design version history
Querying Workspace Resources
List all workspaces:page- Page number (default: 0)pagesize- Items per page (default: 20)search- Filter by name (greedy search)order- Sort by field (e.g., “name”, “created_at”)orgID- Organization filter (required)
Workspace Relationships and Constraints
Organizations
- Workspaces belong to exactly one organization
- Organizations are the unit of tenancy in Meshery
- All resources created by users are owned by their organization
- Remote providers can extend organization capabilities (hierarchies, teams)
Environments
- A workspace can have zero or more environments
- The same environment can be assigned to multiple workspaces
- Removing an environment from a workspace doesn’t delete the environment
- Environment connections become available to all workspace members
Designs
- A design belongs to only one workspace at any given time
- Designs can be transferred between workspaces
- The design owner controls sharing and access permissions
- Cloning a design creates a new design owned by the cloner
While designs belong to a single workspace, they can be shared across workspace boundaries through cloning or export/import mechanisms.
Teams
- One or more teams can be granted access to a workspace
- Team members inherit workspace permissions
- Remote providers can offer fine-grained team permissions
- Access control is extensible through provider plugins
Use Cases and Patterns
Project-Based Workspaces
Pattern: Create a workspace for each major project or application.- Clear project boundaries
- Easy onboarding of new team members
- Project-specific resource isolation
Team-Based Workspaces
Pattern: Organize workspaces by team responsibility.- Clear ownership and responsibilities
- Reduced blast radius of changes
- Team-specific configurations and templates
Environment-Based Workspaces
Pattern: Separate workspaces by deployment stage.- Strong production/non-production separation
- Different approval workflows per workspace
- Reduced risk of accidental production changes
Best Practices
Naming Conventions
Use clear, consistent naming patterns:Access Management
- Principle of least privilege: Only grant access to teams that need it
- Regular audits: Review workspace membership quarterly
- Clear ownership: Designate workspace owners for each workspace
- Documentation: Maintain descriptions of workspace purpose and contents
Resource Organization
- Logical grouping: Keep related designs and environments together
- Avoid over-fragmentation: Don’t create too many small workspaces
- Clear boundaries: Define what belongs in each workspace
- Regular cleanup: Remove unused designs and environments
Design Management
- Use templates: Create reusable design templates in shared workspaces
- Version control: Leverage design versioning and snapshots
- Documentation: Add descriptions to designs explaining their purpose
- Testing: Test designs in non-production environments first
API Reference
Key workspace API endpoints:| Method | Endpoint | Description |
|---|---|---|
| GET | /api/workspaces | List all workspaces |
| POST | /api/workspaces | Create a new workspace |
| GET | /api/workspaces/{id} | Get workspace details |
| PUT | /api/workspaces/{id} | Update workspace |
| DELETE | /api/workspaces/{id} | Delete workspace |
| GET | /api/workspaces/{id}/environments | List workspace environments |
| POST | /api/workspaces/{id}/environments/{envID} | Add environment |
| DELETE | /api/workspaces/{id}/environments/{envID} | Remove environment |
| GET | /api/workspaces/{id}/designs | List workspace designs |
| POST | /api/workspaces/{id}/designs/{designID} | Add design |
Related Concepts
- Environments - Managing deployment targets and connections
- Designs - Infrastructure as code and deployment templates
- Connections - Integrations with Kubernetes and services
- Organizations - Multi-tenancy and user management