Data Models
Understanding SmoothDeploy's data structure and relationships
SmoothDeploy uses a hierarchical data model to organize tests, users, and execution data. Understanding these models helps you structure your testing strategy effectively.
Core Entities
Organizations
The top-level container for all SmoothDeploy resources.
Key Properties:
id: Unique identifiername: Organization display nameslug: URL-friendly identifierlogo: Organization logo URLmetadata: Custom organization datalicense: Execution limits and retention settings
Relationships:
- Contains multiple projects
- Has many users (members)
- Owns all tests, steps, and runs
Users
Individual team members with access to the organization.
Key Properties:
id: Unique identifiername: User's full nameemail: Login email addressrole: Permission level within organizationactiveProject: Currently selected projectbanned: Account status
Relationships:
- Belongs to organization
- Can be member of multiple organizations
- Creates and manages tests
Projects
Logical groupings of related tests within an organization.
Key Properties:
id: Unique identifiername: Project display nameactive: Whether project is currently activemetadata: Custom project configurationvars: Environment variablesconfig: Playwright configurationfastFail: Stop on first failureconcurrent: Allow parallel execution
Relationships:
- Belongs to organization
- Contains multiple tests
- Has associated test runs
Tests
Individual test cases that can be executed.
Key Properties:
id: Unique identifiername: Test display nameactive: Whether test is enableddirectory: Whether this is a test foldermetadata: Test type and configurationparameters: Test input parametersvars: Test-specific variablesconfig: Test-specific Playwright config
Relationships:
- Belongs to project and organization
- Contains multiple test steps
- Has associated test runs
- Can be tagged with multiple tags
Steps
Individual actions that make up test execution.
Key Properties:
id: Unique identifiername: Step display namegroup: Whether step contains sub-stepsshared: Whether step can be reusedmetadata: Step configurationaction: FullAction object defining the step
Relationships:
- Belongs to organization
- Can be used in multiple tests
- Can have parent/child relationships
Test Steps
Junction table linking tests to their steps with execution context.
Key Properties:
id: Unique identifierorder: Execution order within testframe: Frame context for step executioncondition: When step should execute
Relationships:
- Links test to step
- Defines execution order and conditions
Tags
Labels for organizing and filtering tests.
Key Properties:
id: Unique identifiername: Tag display namecolor: Visual color for UIdescription: Tag purpose and usage
Relationships:
- Belongs to organization
- Can be applied to multiple tests
Test Runs
Execution instances of tests with results and metadata.
Key Properties:
id: Unique identifiername: Run display namestatus: Execution status (pending, running, completed, failed)vars: Runtime variablessecrets: Secure values for executionparameters: Test input valuesmetadata: Execution contextstats: Performance metricsduration: Execution time
Relationships:
- Belongs to test, project, and organization
- Contains execution results and artifacts
Secrets
Secure storage for sensitive test data.
Key Properties:
id: Unique identifiername: Secret identifierdata: Encrypted secret valuedescription: Secret purposestatus: Usage tracking
Relationships:
- Belongs to organization
- Can be used by multiple tests
Data Flow
- Organization contains Projects
- Projects contain Tests
- Tests are composed of Steps via Test Steps
- Tests can be tagged with Tags
- Test Runs execute Tests with specific parameters
- Secrets provide secure data to Tests
Best Practices
Organization Structure
- Create separate projects for different applications
- Use consistent naming conventions
- Set up appropriate user roles and permissions
Test Organization
- Group related tests in folders
- Use tags for cross-cutting concerns (smoke, regression, etc.)
- Leverage shared steps for common actions
Data Management
- Use variables for environment-specific values
- Store secrets securely for sensitive data
- Archive old test runs to manage storage