Space

This page outlines the concept of Space in GlassFlow, an important organizational unit that helps manage pipelines, resources, and permissions across your data processing workflows.

What is a Space in GlassFlow?

A Space in GlassFlow is a high-level organizational unit that acts as a container for managing pipelines, data sources, sinks, and related resources. It helps structure and segregate different environments, teams, or projects within your organization, ensuring clear separation and efficient management of resources.

Each Space in GlassFlow has its own configurations, permissions, and user management. This means that you can have different setups for development, testing, and production environments, or segregate pipelines based on departments or projects.

Spaces allow you to:

  • Organize and manage your pipelines and related resources efficiently.
  • Set individual configurations and permissions for different teams or environments.
  • Apply security and access control at a granular level.

You can create and manage Spaces using either the GlassFlow Python SDK or the GlassFlow WebApp.


Relevance Between Pipeline and Space

A Pipeline is a specific workflow for processing data, while a Space serves as the broader container that organizes multiple pipelines. Here’s how they relate:

1. Organizing Pipelines

Spaces provide a structured way to organize multiple pipelines that belong to a specific project, team, or environment. By grouping related pipelines within a Space, you can easily navigate and manage them as a unified set. This makes it easier to manage pipelines based on:

  • Project: Group all pipelines related to a single project under one Space.
  • Team: Create a Space for each team, with pipelines and resources specific to their work.
  • Environment: Maintain different Spaces for development, staging, and production environments.

2. Security and Permissions

Spaces provide a convenient way to enforce security boundaries. You can set permissions at the Space level, controlling who can access the pipelines, data sources, and sinks within the Space. This provides several benefits:

  • Role-based access: Assign different roles (e.g., admin, user, read-only) to team members and control their level of access.
  • Data privacy: Ensure sensitive data is accessible only to authorized personnel by controlling access at the Space level.
  • Separation of concerns: Prevent users from accessing pipelines or resources that don't belong to their team or project.

3. Scalability and Flexibility

Spaces make it easier to scale and manage your pipelines as your organization grows. By creating separate Spaces for different environments or projects, you can manage scaling, versioning, and deployment independently. This separation allows for:

  • Easy management of pipeline versions and configurations.
  • Ability to scale pipelines and resources based on demand within each Space.
  • Flexibility to handle different data processing needs for various teams or projects.

How to Create a Space

There are several ways to create a new Space in GlassFlow:

1. Using the GlassFlow WebApp

The GlassFlow WebApp provides a simple, user-friendly interface to create and manage Spaces. Follow these steps:

  1. Log in to the GlassFlow WebApp.
  2. Navigate to the Spaces section from the sidebar.
  3. Click Create Space and provide a name and any necessary configurations.
  4. Once created, you can start creating pipelines, data sources, and sinks to your new Space.

2. Using the GlassFlow Python SDK

If you prefer working programmatically, you can create a Space using the GlassFlow Python SDK. Here’s how:

  1. Install the GlassFlow SDK:
  1. Create a Python script to define and create the Space:

Best Practices for Using Spaces

Here are some best practices when working with Spaces in GlassFlow:

  • Use Separate Spaces for Different Environments: Create separate Spaces for development, testing, and production environments to ensure isolation and minimize risks.
  • Structure Spaces by Team or Project: Organize Spaces based on teams or projects to improve collaboration and resource management.
  • Set Clear Resource Limits: Define resource allocations at the Space level to ensure efficient usage and prevent overuse of shared resources.
  • Leverage Role-Based Access Control (RBAC): Use RBAC to manage user permissions within each Space to enforce security and ensure the right level of access.