Schemas
Define, version, and enforce data schemas across your pipelines.
Overview
Schemas define the structure of data flowing through FacilFlow. Each schema is versioned with checksums and supports compatibility checking to prevent breaking changes.
Schema List
Navigate to Build > Schemas to see all schemas:
| Column | Description |
|---|---|
| Name | Schema identifier |
| Version | Current version number |
| Compatibility | Compatibility mode |
| Fields | Number of fields |
| Last Updated | Most recent change |
Creating a Schema
- Click Create Schema
- Define fields with name, type, and constraints
- Set the compatibility mode
- Save
Field Types
| Type | Description |
|---|---|
| string | Text values |
| integer | Whole numbers |
| float | Decimal numbers |
| boolean | True/false |
| timestamp | Date and time |
| json | Nested JSON object |
Versioning
Every schema change creates a new version. Each version stores:
- Field definitions
- SHA-256 checksum of the schema content
- Timestamp
- Author
Version History
Open a schema and click History to see all versions with diffs between consecutive versions.
Rollback
To revert to a previous version:
- Open the version history
- Select the target version
- Click Rollback
- Confirm — a new version is created matching the old version’s fields
Compatibility Modes
| Mode | Rules |
|---|---|
| None | No compatibility checking — any change allowed |
| Backward | New schema can read data written by the old schema. Adding optional fields and removing fields is allowed. |
| Forward | Old schema can read data written by the new schema. Adding fields and removing optional fields is allowed. |
| Full | Both backward and forward compatible. Only adding optional fields is allowed. |
Set the compatibility mode when creating a schema. FacilFlow rejects changes that violate the mode.
Version Comparison
Compare any two versions side-by-side:
- Open version history
- Select two versions
- Click Compare
- View added, removed, and modified fields highlighted in the diff
Usage Tracking
Each schema shows which pipelines and data sources reference it. This helps assess impact before making changes.