FLUID Data Product contract (v0.5.7). Enhanced build section with:
• Multiple build objects for multi-modal concerns (batch + streaming, SQL + ML, etc.)
• Improved build patterns from v0.4.0: declarative, hybrid-reference, embedded-logic, logical-mapping
• NEW multi-stage pattern for complex orchestration
• Pattern-specific properties with conditional validation
• Build execution configuration with triggers and runtime
• Build dependencies and orchestration for complex pipelines
• Simplified tagging from v0.5.4 maintained throughout
Designed for complex data products with multiple transformation paradigms.
{
"fluidVersion": "0.5.7",
"kind": "DataProduct",
"id": "gold.customer.analytics_360_v1",
"name": "Customer 360 Analytics",
"description": "Unified customer profiles with ML-driven insights",
"domain": "Customer Experience",
"tags": [
"customer-data",
"analytics",
"gold-layer"
],
"labels": {
"team": "customer-analytics",
"criticality": "high",
"cost-center": "engineering"
},
"metadata": {
"layer": "Gold",
"owner": {
"team": "customer-analytics",
"email": "customer-analytics@company.com"
},
"businessContext": {
"domain": "Customer Experience",
"subdomain": "Customer Intelligence"
}
},
"exposes": [
{
"exposeId": "customer_profiles",
"title": "Unified Customer Profiles",
"version": "2.1.0",
"kind": "table",
"tags": [
"pii",
"customer-facing",
"real-time"
],
"labels": {
"sensitivity": "high",
"retention": "7-years",
"region": "us-central1"
},
"contract": {
"schema": [
{
"name": "customer_id",
"type": "STRING",
"required": true,
"description": "Unique customer identifier",
"sensitivity": "cleartext",
"tags": [
"identifier",
"primary-key"
],
"labels": {
"business-name": "Customer ID",
"data-category": "identifier"
}
}
]
},
"binding": {
"platform": "gcp",
"format": "bigquery_table",
"location": {
"project": "company-data",
"dataset": "gold_customer",
"table": "profiles_v1"
}
}
}
]
}
Contract schema version. Must be exactly '0.5.7' for this schema.
Specific value:"0.5.7"Must match regular expression: ^\d+\.\d+(\.\d+)?$
"0.5.7"
Kind of contract. 'MLPipeline' added for basic ML support.
Stable product identifier, e.g. 'gold.hr.employee360v1'.
Must match regular expression:^[a-z0-9_][a-z0-9_.-]*[a-z0-9_]$|^[a-z0-9_]$
Must be at least 1 characters long
Business domain/mesh domain (e.g., 'HR', 'Finance').
Product-level labels for metadata and automation.
{
"team": "customer-analytics",
"criticality": "high",
"cost-center": "engineering",
"retention": "7-years",
"region": "us-central1",
"business-name": "Customer Profiles",
"data-category": "analytical"
}
Each additional property must conform to the following schema
Type: stringLabel values are always strings for consistency and tooling compatibility.
Data layer label (e.g., Bronze/Silver/Gold). Free-form.
Oncall rotation or contact for operational issues.
Business alignment information for data mesh organization.
No Additional PropertiesBusiness domain this product belongs to.
Business subdomain for more granular organization.
Business capability this product supports.
Value stream this product participates in.
Must contain a minimum of 1 items
{
"exposeId": "customer_profiles",
"title": "Customer Profiles Table",
"kind": "table",
"tags": [
"pii",
"customer-facing",
"analytical"
],
"labels": {
"sensitivity": "high",
"retention": "7-years",
"team": "customer-analytics"
},
"contract": {
"schema": [
{
"name": "customer_id",
"type": "STRING",
"required": true,
"sensitivity": "cleartext",
"tags": [
"identifier",
"primary-key"
],
"labels": {
"business-name": "Customer ID",
"data-category": "identifier"
}
}
]
},
"binding": {
"platform": "gcp",
"format": "bigquery_table",
"location": {
"project": "company-data",
"dataset": "customer",
"table": "profiles"
}
}
}
Semantic version (semver.org).
Must match regular expression:^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$
Hash of canonical schema/OpenAPI. Used by contract-tests gates.
Must match regular expression:^sha256:[0-9a-fA-F]{64}$
Tabular schema (for table/view/file).
No Additional ItemsMust be at least 1 characters long
Must be at least 1 characters long
Field-level sensitivity classification for improved policy ergonomics.
Semantic meaning (e.g., 'email', 'phone', 'identifier').
Business-friendly name for this field.
Business definition and meaning of this field.
Field-level validation constraints.
No Additional ItemsOpenAPI document URL (for APIs).
Compatibility promise for non-breaking evolution.
Enhanced data quality rules including anomaly detection.
No Additional PropertiesISO-8601 duration (e.g., P1D, PT15M, P2Y6M).
Must match regular expression:^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$
Availability percentage (e.g., 99.9%).
Must match regular expression:^(100(\.0+)?|\d{2}(\.\d+)?|\d{1}\d(\.\d+)?)%$
e.g., '0 rows'
Target completeness ratio (0.0 to 1.0).
Value must be greater or equal to 0 and lesser or equal to 1
Acceptable error rate (0.0 to 1.0).
Value must be greater or equal to 0 and lesser or equal to 1
Column-level access control.
No Additional ItemsAdditional Properties of any type are allowed.
Type: objectProvider-specific predicate
Provider-native addressing with tightened structure for better interop.
No Additional PropertiesCloud account ID
GCP project ID
BigQuery dataset or database name
Database name
Schema name
Table name
Storage bucket name
File or object path
API gateway endpoint
Base URL for API endpoints
Pub/Sub or Kafka topic name
Pub/Sub subscription name
Cloud region
Cloud zone
Unified lifecycle state vocabulary.
Reference to replacement data product or expose.
Human/machine-readable SLI check description
Default SLI trio (freshness, completeness, latency) by kind.
No Additional PropertiesEnable auto-generation of default SLIs.
Default freshness SLI configuration.
No Additional PropertiesFreshness threshold (auto-set by kind: table=PT6H, stream=PT1M, api=PT1S)
Same definition as windowDefault completeness SLI configuration.
No Additional PropertiesCompleteness threshold (auto-set by kind: table=0.95, stream=0.99)
Value must be greater or equal to 0 and lesser or equal to 1
Default latency SLI configuration.
No Additional PropertiesP95 latency threshold (auto-set by kind: api=PT200MS, table=PT5S, stream=PT100MS)
Same definition as windowLatency percentile to measure.
Value must be greater or equal to 0 and lesser or equal to 100
Upstream data product identifier (e.g., 'silver.hr.people_v2'). Renamed from 'provider' for clarity.
Same definition as idSemver range (e.g., ^1.2, ~1.4, >=1.0.0). Not strictly validated by regex; tooling enforces.
Minimum completeness expectation.
Value must be greater or equal to 0 and lesser or equal to 1
Business purpose for consuming this data.
NEW in v0.5.5: Multiple build configurations for multi-modal data products (e.g., batch + streaming, SQL + ML).
No Additional ItemsEnhanced build configuration supporting v0.4.0 patterns with v0.5.5 improvements.
No Additional PropertiesIf the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.
"hybrid-reference"
Hybrid-reference pattern from v0.4.0 (dbt-style).
No Additional PropertiesAdditional Properties of any type are allowed.
Type: objectEach additional property must conform to the following schema
Type: enum (of string)Key-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.
Same definition as labelsIf the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.
"embedded-logic"
Embedded logic pattern from v0.4.0.
No Additional PropertiesAdditional Properties of any type are allowed.
Type: objectKey-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.
Same definition as labelsIf the conditions in the "If" tab are respected, then the conditions in the "Then" tab should be respected. Otherwise, the conditions in the "Else" tab should be respected.
"multi-stage"
NEW in v0.5.5: Multi-stage orchestration pattern.
No Additional PropertiesUnified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.
Same definition as idKey-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.
Same definition as labelsValue must be greater or equal to 1
Key-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.
Same definition as labelsBuild identifier for multi-build scenarios (e.g., 'batch-processing', 'ml-training').
Same definition as idHuman-readable description of this build configuration.
Build pattern: hybrid-reference (dbt-style), embedded-logic (raw SQL/code), or multi-stage (complex pipelines).
Pattern-specific build properties with conditional validation.
Build execution configuration (triggers, runtime, retries).
No Additional PropertiesEach additional property must conform to the following schema
Type: stringValue must be greater or equal to 1
List of exposeIds produced by this build.
No Additional ItemsUnified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.
Same definition as idDependencies on other builds (for multi-build orchestration).
No Additional ItemsUnified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.
Same definition as idLegacy transformations array for backward compatibility.
No Additional ItemsPath/script identifier (dbt model, sql file, etc.)
List of exposeIds materialized by this step. VALIDATION: Tools must validate that every output exists in exposes[].exposeId.
No Additional ItemsUnified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.
Same definition as idKey-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.
Same definition as labelsSingle build configuration (legacy). Use 'builds' array for multi-modal.
Same definition as builds_itemsOptional lineage tracking for better data governance.
No Additional PropertiesLevel of lineage tracking granularity.
Upstream dependencies and their field mappings.
No Additional ItemsField-level lineage mappings (optional).
No Additional ItemsTransformation logic or SQL expression.
Type of data relationship.
Known downstream consumers (optional).
No Additional ItemsImpact level if this data product changes.
Optional schema evolution strategy for managing changes.
No Additional PropertiesVersioning strategy for schema changes.
Compatibility approach for schema evolution.
Advance notice period for breaking changes.
Value must be greater or equal to 0
Whether schema changes require approval.
List of approvers for schema changes.
No Additional ItemsOptional ML model specifications for MLPipeline kind.
No Additional PropertiesList of feature names used by this model.
No Additional ItemsTarget variable for supervised learning.
Validation metrics (e.g., accuracy, auc_roc).
No Additional ItemsMinimum acceptable metric values.
Each additional property must conform to the following schema
Type: numberOptional environment-specific overrides (dev, staging, prod).
Each additional property must conform to the following schema
Type: objectEnvironment-specific metadata overrides.
No Additional PropertiesEnvironment-specific expose overrides.
No Additional ItemsUnified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.
Same definition as id