Skitflow

Multi-Tenancy

Organize your infrastructure with organizations, projects, environments, and services.

Skitflow's multi-tenancy system enables organized infrastructure management through a hierarchical structure with four levels.

Hierarchy

Organizations

The top-level tenant containing users, billing, and settings. Each Skitflow instance includes one default organization created during setup. Organizations manage:

  • Team members and their roles
  • Billing and subscription settings
  • Global configuration

Projects

Logical groupings within organizations. Use projects to organize by product, client, or team. Projects contain multiple environments and shared variables that are inherited by all services within.

Environments

Isolated contexts within projects (e.g., production, staging, development). Each environment has:

  • Completely isolated services without interference
  • Independent domain configurations
  • Environment-specific variable overrides
  • Separate deployment pipelines

Services

The actual workloads — applications, databases, and Docker Compose stacks. Each service has:

  • Independent domains and SSL certificates
  • Service-specific environment variables
  • Deployment history and rollback capabilities
  • Resource monitoring and logs

Variable Inheritance

Variables flow hierarchically with override capabilities:

Organization Variables
  └── Project Variables (can override org vars)
       └── Environment Variables (can override project vars)
            └── Service Variables (can override environment vars)

A variable defined at the organization level is available to all services, unless overridden at a lower level.

Role-Based Access Control

Access is scoped at every level of the hierarchy:

RoleOrganizationProjectEnvironmentService
OwnerFull accessFull accessFull accessFull access
AdminManage usersManage servicesManage deploymentsFull access
MemberView onlyAssigned projectsAssigned environmentsDeploy only
CustomConfigurableConfigurableConfigurableConfigurable

Custom roles can be created with granular permissions tailored to your team's needs (see Custom Roles).

Best Practices

  • Use consistent naming conventions across projects and environments
  • Implement least-privilege access — assign the minimum role needed
  • Separate staging from production environments to prevent accidental deployments
  • Use project-level variables for shared configuration (database hosts, API URLs)
  • Create dedicated projects for each client in agency setups

On this page