FLUID 0.7.1 — Provider-First Orchestration + Agentic Governance

Type: object

FLUID Data Product contract (v0.7.1). Provider-First Orchestration + Agentic Governance Release:

🔥 NEW in v0.7.1:
• Agentic governance - AI/LLM usage policies (agentPolicy) control which models can consume data and for what purposes
• Sovereignty constraints - Top-level jurisdiction and data residency requirements for compliance enforcement
• Orchestration philosophy - Pragmatic engine enumeration (v0.7.x) with path to capability-based abstraction (v0.8.0+)

🔥 NEW in v0.7.0:
• Provider actions as first-class tasks - Direct invocation of provider actions (aws.s3.ensurebucket, sf.table.ensure) without wrapper operators
• Unified task type taxonomy - Simplified type system: provider
action, fluid_*, bash, python, sensor
• Data product references in datasets - Link trigger datasets to actual exposes[] with strong typing and auto-URI generation
• Task output → expose mapping - Formal produces[] declaration for automatic dataset registration and lineage
• Cross-provider workflow patterns - Native support for multi-cloud pipelines with XCom data passing
• Build step references - Link orchestration tasks to transformation steps via buildStepRef
• Data product dependencies - Tasks can declare dependencies on other data products with version constraints
• Enhanced error categorization - Retryable vs non-retryable errors with intelligent handling
• Provider-specific operators - Native support for SnowflakeOperator, BigQueryOperator, GlueOperator, etc.
• Cost tracking enhancements - Track actual vs estimated costs with budget enforcement

✅ BACKWARD COMPATIBLE with v0.5.7:
• All v0.5.7 contracts remain valid (no breaking changes)
• New features are opt-in via new fields
• Existing patterns (hybrid-reference, embedded-logic, multi-stage) fully preserved
• All data quality, observability, policy, and lineage features retained

📋 Inherited from v0.5.7:
• Multiple build patterns with conditional validation
• Enhanced build section for multi-modal concerns
• Comprehensive data quality specs with anomaly detection
• Detailed observability with default SLIs
• Fine-grained policy controls (privacy, RBAC, column-level access)
• Field-level lineage tracking
• Schema evolution strategies
• Machine learning model specifications
• Environment-specific overrides
• Simplified tagging maintained throughout

🎯 Design Philosophy:
• Provider actions = orchestration primitives
• Contracts drive both infrastructure and workflows
• Strong typing and validation
• Natural multi-cloud/multi-provider patterns
• Minimal abstraction layers
• Agentic governance: Data owners control AI/LLM usage boundaries
• Sovereignty-first: Jurisdiction constraints enforced at contract level

⚙️ Orchestration Philosophy (v0.7.x):
• Pragmatic approach: Enumerate known engines (airflow, dagster, prefect) for immediate adoption
• Trade-off: Implementation-specific vs pure abstraction - favoring real-world deployment patterns
• Future path: v0.8.0+ will evolve toward capability-based orchestration model
• Escape hatch: 'custom' engine allows experimentation without schema changes

No Additional Properties
Example:

{
    "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"
                }
            }
        }
    ]
}

Type: const

Contract schema version. Must be exactly '0.7.1' for agentic governance + provider-first orchestration with full backward compatibility to 0.5.7.

Specific value: "0.7.1"Must match regular expression: ^\d+\.\d+(\.\d+)?$
Example:

"0.7.1"

Type: enum (of string)

Kind of contract. 'MLPipeline' added for basic ML support.

Must be one of:

  • "DataProduct"
  • "MLPipeline"

Type: string

Stable product identifier, e.g. 'gold.hr.employee360v1'.

Must match regular expression: ^[a-z0-9_][a-z0-9_.-]*[a-z0-9_]$|^[a-z0-9_]$

Type: string

Must be at least 1 characters long

Type: string

Type: string

Business domain/mesh domain (e.g., 'HR', 'Finance').

Type: array of string

Product-level tags for categorization and discovery.

All items must be unique

No Additional Items

Each item of this array must be:

Type: string

Tag format: lowercase alphanumeric with hyphens, e.g., 'customer-data', 'pii', 'real-time'

Must match regular expression: ^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$

Type: object

Product-level labels for metadata and automation.


Example:

{
    "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: string

Label values are always strings for consistency and tooling compatibility.

Type: object
No Additional Properties

Type: string

Data layer label (e.g., Bronze/Silver/Gold). Free-form.

Type: object
No Additional Properties

Type: string

Type: stringFormat: email

Type: string

Type: string

Oncall rotation or contact for operational issues.

Type: stringFormat: date-time

Type: object

Business alignment information for data mesh organization.

No Additional Properties

Type: string

Business domain this product belongs to.

Type: string

Business subdomain for more granular organization.

Type: string

Business capability this product supports.

Type: string

Value stream this product participates in.

Type: array

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties
Example:

{
    "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"
        }
    }
}

Type: string

Stable interface handle (used by consumers & build.outputs).

Same definition as id

Type: string

Type: string

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.-]+)?$

Type: enum (of string)

Must be one of:

  • "table"
  • "view"
  • "api"
  • "file"
  • "stream"
  • "topic"
  • "feature_store"
  • "model"
  • "vector"
  • "graph"
  • "time_series"
  • "other"

Type: array of string

Expose-level tags for categorization and routing.

Same definition as tags

Type: object

Expose-level labels for metadata and automation.

Same definition as labels

Type: object
No Additional Properties

Type: object

The following properties are required:

  • schema
Type: object

The following properties are required:

  • openapiRef

Type: string

Hash of canonical schema/OpenAPI. Used by contract-tests gates.

Must match regular expression: ^sha256:[0-9a-fA-F]{64}$

Type: array

Tabular schema (for table/view/file).

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Must be at least 1 characters long

Type: string

Must be at least 1 characters long

Type: enum (of string)

Field-level sensitivity classification for improved policy ergonomics.

Must be one of:

  • "none"
  • "internal"
  • "confidential"
  • "restricted"
  • "pii"
  • "phi"
  • "cleartext"
  • "treated"
  • "anonymized"
  • "tokenized"
  • "encrypted"

Type: string

Semantic meaning (e.g., 'email', 'phone', 'identifier').

Type: string

Business-friendly name for this field.

Type: string

Business definition and meaning of this field.

Type: array of object

Field-level validation constraints.

No Additional Items

Each item of this array must be:

Type: array of string

Field-level tags for categorization and data governance.

Same definition as tags

Type: object

Field-level labels for metadata and automation.

Same definition as labels

Type: stringFormat: uri

OpenAPI document URL (for APIs).

Type: object
No Additional Properties

Type: enum (of string)

Compatibility promise for non-breaking evolution.

Must be one of:

  • "none"
  • "patch"
  • "minor"
  • "backward"
  • "forward"
  • "strict"

Type: array of enum (of string)
No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "additive_columns"
  • "additive_fields"
  • "additive_endpoints"
  • "nullable_to_required_disallowed"
  • "field_removal_with_notice"
  • "type_widening_allowed"

Type: object

Enhanced data quality rules including anomaly detection.

No Additional Properties

Type: array
No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "freshness"
  • "completeness"
  • "uniqueness"
  • "valid_values"
  • "accuracy"
  • "schema"
  • "anomaly_detection"
  • "drift_detection"

Type: enum (of string)

Must be one of:

  • ">="
  • ">"
  • "<="
  • "<"
  • "=="
  • "!="

Type: string

ISO-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)?)?$

Type: enum (of string)

Must be one of:

  • "info"
  • "warn"
  • "error"
  • "critical"

Type: array of string

DQ rule tags for categorization and automation.

Same definition as tags

Type: object

DQ rule labels for metadata and routing.

Same definition as labels

Type: object
No Additional Properties

Type: boolean Default: true

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: array of string

Data quality specification tags.

Same definition as tags

Type: object

Data quality specification labels.

Same definition as labels

Type: array of string

Contract-level tags for data quality and governance.

Same definition as tags

Type: object

Contract-level labels for automation and metadata.

Same definition as labels

Type: object
No Additional Properties

Type: string

Availability percentage (e.g., 99.9%).

Must match regular expression: ^(100(\.0+)?|\d{2}(\.\d+)?|\d{1}\d(\.\d+)?)%$

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: string

e.g., '0 rows'

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: number

Target completeness ratio (0.0 to 1.0).

Value must be greater or equal to 0 and lesser or equal to 1

Type: number

Acceptable error rate (0.0 to 1.0).

Value must be greater or equal to 0 and lesser or equal to 1

Type: array of string

QoS-level tags for SLA management.

Same definition as tags

Type: object

QoS-level labels for automation and reporting.

Same definition as labels

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "oidc"
  • "oauth2"
  • "api_key"
  • "none"
  • "custom"
  • "iam"
  • "jwt"

Type: object
No Additional Properties

Type: array of string
No Additional Items

Each item of this array must be:

Type: array of string
No Additional Items

Each item of this array must be:

Type: array of object

Column-level access control.

No Additional Items

Each item of this array must be:

Type: array of string

Authorization policy tags.

Same definition as tags

Type: object

Authorization policy labels.

Same definition as labels

Type: object
No Additional Properties

Type: array of object
No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "mask"
  • "hash"
  • "tokenize"
  • "encrypt"
  • "k_anonymity"

Type: object

Additional Properties of any type are allowed.

Type: object

Type: array of string

Privacy masking rule tags.

Same definition as tags

Type: object
No Additional Properties

Type: string

Provider-specific predicate

Type: array of string

Row-level policy tags.

Same definition as tags

Type: array of string

Privacy policy tags.

Same definition as tags

Type: object

Privacy policy labels.

Same definition as labels

Type: enum (of string)

Must be one of:

  • "Public"
  • "Internal"
  • "Confidential"
  • "Restricted"

Type: object

NEW in v0.7.1: AI/LLM usage governance - controls which AI models can consume this data and for what purposes.

No Additional Properties

Type: array of string

Whitelist of AI models permitted to consume this data. Examples: ['gpt-4', 'claude-3-opus', 'gemini-pro']. Empty array = no AI access.

All items must be unique

No Additional Items

Each item of this array must be:

Type: string
Must match regular expression: ^[a-z0-9][a-z0-9-_.]*[a-z0-9]$|^[a-z0-9]$
Examples:

"gpt-4"
"claude-3-opus"
"claude-3-sonnet"
"gemini-pro"
"gemini-ultra"
"llama-3"
"mixtral-8x7b"

Type: array of string

Blacklist of AI models explicitly prohibited from consuming this data. Takes precedence over allowedModels.

All items must be unique

No Additional Items

Each item of this array must be:

Type: integer

Maximum tokens per AI request. Prevents excessive data exposure in single queries.

Value must be greater or equal to 1


Examples:

4096
8192
16384

Type: integer

Daily token limit for AI consumption. Enforces usage quotas.

Value must be greater or equal to 1

Type: array of enum (of string)

Permitted AI use cases. Controls whether data can be used for training, inference, reasoning, etc.

All items must be unique

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "inference"
  • "reasoning"
  • "analysis"
  • "summarization"
  • "classification"
  • "embedding"
  • "search"
  • "qa"
  • "code_generation"
  • "fine_tuning"
  • "training"
  • "rag"

Examples:

[
    "inference",
    "reasoning",
    "summarization"
]
[
    "search",
    "qa",
    "rag"
]

Type: array of enum (of string)

Prohibited AI use cases. Example: Allow reporting but deny model training.

All items must be unique

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "inference"
  • "reasoning"
  • "analysis"
  • "summarization"
  • "classification"
  • "embedding"
  • "search"
  • "qa"
  • "code_generation"
  • "fine_tuning"
  • "training"
  • "rag"

Example:

[
    "training",
    "fine_tuning"
]

Type: boolean Default: false

Whether AI agents can use this data for multi-step reasoning/chain-of-thought. False = simple retrieval only.

Type: boolean Default: false

Whether AI systems can cache/store this data. False = ephemeral processing only.

Type: object

Data retention requirements for AI systems consuming this data.

Type: integer

Maximum days AI system can retain this data. 0 = no retention allowed.

Value must be greater or equal to 0

Type: boolean Default: true

Whether AI system must delete data after use.

Type: boolean Default: true

Whether AI consumption must be logged/audited.

Type: string

Free-text description of allowed purposes. Example: 'Customer service chatbot only, not for marketing'.

Type: array of string

Agent policy tags for categorization.

Same definition as tags

Type: object

Agent policy labels for automation.

Same definition as labels

Type: array of string

Policy-level tags for governance.

Same definition as tags

Type: object

Policy-level labels for automation.

Same definition as labels

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "gcp"
  • "aws"
  • "azure"
  • "snowflake"
  • "databricks"
  • "kafka"
  • "local"
  • "kubernetes"
  • "other"

Type: enum (of string)

Must be one of:

  • "bigquery_table"
  • "snowflake_table"
  • "gcs_file"
  • "s3_file"
  • "http_api"
  • "grpc_api"
  • "pubsub_topic"
  • "kafka_topic"
  • "delta_table"
  • "parquet"
  • "csv"
  • "json"
  • "other"

Type: object

Provider-native addressing with tightened structure for better interop.

No Additional Properties

Type: string

Cloud account ID

Type: string

GCP project ID

Type: string

BigQuery dataset or database name

Type: string

Database name

Type: string

Schema name

Type: string

Table name

Type: string

Storage bucket name

Type: string

File or object path

Type: string

API gateway endpoint

Type: stringFormat: uri

Base URL for API endpoints

Type: string

Pub/Sub or Kafka topic name

Type: string

Pub/Sub subscription name

Type: string

Cloud region

Type: string

Cloud zone

Type: array of string

Binding configuration tags for infrastructure.

Same definition as tags

Type: object

Binding configuration labels for automation.

Same definition as labels

Type: object
No Additional Properties

Type: enum (of string)

Unified lifecycle state vocabulary.

Must be one of:

  • "preview"
  • "active"
  • "deprecated"
  • "retired"

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: object
No Additional Properties

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: string

Reference to replacement data product or expose.

Type: array of string

Deprecation policy tags.

Same definition as tags

Type: array of string

Lifecycle tags for automation.

Same definition as tags

Type: object

Lifecycle labels for governance.

Same definition as labels

Type: object
No Additional Properties

Type: array of object
No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Human/machine-readable SLI check description

Type: array of object
No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "slack"
  • "email"
  • "webhook"
  • "pagerduty"
  • "custom"

Type: enum (of string)

Must be one of:

  • "info"
  • "warning"
  • "critical"

Type: array of string

Alert configuration tags.

Same definition as tags

Type: object

Default SLI trio (freshness, completeness, latency) by kind.

No Additional Properties

Type: boolean Default: true

Enable auto-generation of default SLIs.

Type: object

Default freshness SLI configuration.

No Additional Properties

Type: string

Freshness threshold (auto-set by kind: table=PT6H, stream=PT1M, api=PT1S)

Same definition as window

Type: enum (of string) Default: "warning"

Must be one of:

  • "info"
  • "warning"
  • "critical"

Type: array of string

Freshness SLI tags.

Same definition as tags

Type: object

Default completeness SLI configuration.

No Additional Properties

Type: number Default: 0.95

Completeness 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

Type: enum (of string) Default: "warning"

Must be one of:

  • "info"
  • "warning"
  • "critical"

Type: array of string

Completeness SLI tags.

Same definition as tags

Type: object

Default latency SLI configuration.

No Additional Properties

Type: boolean Default: true

Type: string

P95 latency threshold (auto-set by kind: api=PT200MS, table=PT5S, stream=PT100MS)

Same definition as window

Type: number Default: 95

Latency percentile to measure.

Value must be greater or equal to 0 and lesser or equal to 100

Type: enum (of string) Default: "warning"

Must be one of:

  • "info"
  • "warning"
  • "critical"

Type: array of string

Latency SLI tags.

Same definition as tags

Type: array of string

Default SLI configuration tags.

Same definition as tags

Type: object

Default SLI configuration labels.

Same definition as labels

Type: array of string

Observability configuration tags.

Same definition as tags

Type: object

Observability configuration labels.

Same definition as labels

Type: object
No Additional Properties

Type: stringFormat: uri

Type: stringFormat: uri

Type: stringFormat: uri

Type: stringFormat: uri

Type: array of string

Documentation tags for organization.

Same definition as tags

Type: object

Documentation labels for automation.

Same definition as labels

Type: array
No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Upstream data product identifier (e.g., 'silver.hr.people_v2'). Renamed from 'provider' for clarity.

Same definition as id

Type: string

The upstream exposeId being consumed.

Same definition as id

Type: string

Semver range (e.g., ^1.2, ~1.4, >=1.0.0). Not strictly validated by regex; tooling enforces.

Type: object
No Additional Properties

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: string

Maximum acceptable staleness for consumed data.

Same definition as window

Type: number

Minimum completeness expectation.

Value must be greater or equal to 0 and lesser or equal to 1

Type: array of string

QoS expectation tags.

Same definition as tags

Type: object

QoS expectation labels.

Same definition as labels

Type: array of string
No Additional Items

Each item of this array must be:

Type: string

Business purpose for consuming this data.

Type: array of string

Consumption relationship tags.

Same definition as tags

Type: object

Consumption relationship labels.

Same definition as labels

Type: array

NEW in v0.5.5: Multiple build configurations for multi-modal data products (e.g., batch + streaming, SQL + ML).

No Additional Items

Each item of this array must be:

Type: object

Enhanced build configuration supporting v0.4.0 patterns with v0.5.5 improvements.

No Additional Properties

Type: object

If 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.

Type: object

Type: const
Specific value: "hybrid-reference"
Type: object

Type: object

Hybrid-reference pattern from v0.4.0 (dbt-style).

No Additional Properties

Type: object

Additional Properties of any type are allowed.

Type: object

Type: object

Each additional property must conform to the following schema

Type: enum (of string)

Must be one of:

  • "table"
  • "view"
  • "incremental"
  • "ephemeral"

Type: array of string

Simple string tags for categorization, discovery, and automation. Consistent pattern used throughout FLUID objects.

Same definition as tags

Type: object

Key-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.

Same definition as labels
Type: object

If 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.

Type: object

Type: const
Specific value: "embedded-logic"
Type: object

Type: object

Embedded logic pattern from v0.4.0.

No Additional Properties

Type: enum (of string)

Must be one of:

  • "sql"
  • "flink_sql"
  • "pyspark"
  • "scala"
  • "python"
  • "r"

Type: object

Additional Properties of any type are allowed.

Type: object

Type: array of string

Simple string tags for categorization, discovery, and automation. Consistent pattern used throughout FLUID objects.

Same definition as tags

Type: object

Key-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.

Same definition as labels
Type: object

If 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.

Type: object

Type: const
Specific value: "multi-stage"
Type: object

Type: object

NEW in v0.5.5: Multi-stage orchestration pattern.

No Additional Properties

Type: array of object
No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: enum (of string) Default: "hybrid-reference"

Must be one of:

  • "hybrid-reference"
  • "embedded-logic"

Type: object

Base properties for all build patterns.

Same definition as properties

Type: array of string
No Additional Items

Each item of this array must be:

Type: array
No Additional Items

Each item of this array must be:

Type: string

Unified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.

Same definition as id

Type: array of string

Simple string tags for categorization, discovery, and automation. Consistent pattern used throughout FLUID objects.

Same definition as tags

Type: object

Key-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.

Same definition as labels

Type: array of string

Simple string tags for categorization, discovery, and automation. Consistent pattern used throughout FLUID objects.

Same definition as tags

Type: object

Key-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.

Same definition as labels

Type: string

Build identifier for multi-build scenarios (e.g., 'batch-processing', 'ml-training').

Same definition as id

Type: string

Human-readable description of this build configuration.

Type: enum (of string) Default: "hybrid-reference"

Build pattern: hybrid-reference (dbt-style), embedded-logic (raw SQL/code), or multi-stage (complex pipelines).

Must be one of:

  • "hybrid-reference"
  • "embedded-logic"
  • "multi-stage"

Type: enum (of string) Default: "dbt"

Must be one of:

  • "dbt"
  • "sql"
  • "python"
  • "spark"
  • "custom"

Type: string

Type: object

Pattern-specific build properties with conditional validation.

Type: object

Build execution configuration (triggers, runtime, retries).

No Additional Properties

Type: object

Type: enum (of string)

Must be one of:

  • "schedule"
  • "event"
  • "manual"
  • "dependency"
  • "dataset"
  • "schedule_and_dataset"
  • "timetable"

Type: array

NEW in v0.7.0: Can reference data products directly via exposeRef for strong typing and auto-URI generation. Backward compatible with raw URIs.

No Additional Items

Each item of this array must be:


Type: string

Raw dataset URI (legacy, e.g., 'dataset://gcp/project/dataset/table')

Type: object

NEW in v0.7.0: Data product reference with strong typing

Type: enum (of string) Default: "all"

Must be one of:

  • "any"
  • "all"

Type: string

Cron expression for schedule trigger

Type: string Default: "UTC"

Type: object

Custom timetable configuration

Type: object

Type: object

Each additional property must conform to the following schema

Type: string

Type: enum (of string)

Must be one of:

  • "gcp"
  • "aws"
  • "azure"
  • "local"
  • "kubernetes"
  • "composer"
  • "mwaa"
  • "databricks"
  • "snowflake"

Type: enum (of string)

Must be one of:

  • "LocalExecutor"
  • "CeleryExecutor"
  • "KubernetesExecutor"
  • "SequentialExecutor"

Type: string

Container image for execution

Type: string

Service account for cloud execution

Type: object

Type: integer

Value must be greater or equal to 1

Type: enum (of string)

Must be one of:

  • "fixed"
  • "exponential"
  • "linear"

Type: array
No Additional Items

Each item of this array must be:

Type: object

Type: enum (of string)

Must be one of:

  • "email"
  • "slack"
  • "webhook"
  • "pagerduty"

Type: enum (of string)

Must be one of:

  • "success"
  • "failure"
  • "always"

Type: object

Type: enum (of string)

Must be one of:

  • "airflow"
  • "dagster"
  • "prefect"
  • "kubeflow"
  • "custom"
  • "none"

Type: enum (of string) Default: "generated"

Must be one of:

  • "generated"
  • "manual"
  • "hybrid"

Type: boolean Default: true

Type: object

Type: string
Must match regular expression: ^[a-z0-9_][a-z0-9_.-]*[a-z0-9_]$|^[a-z0-9_]$

Type: object

Type: integer

Value must be greater or equal to 1

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: array of string

Airflow DAG tags (different from FLUID tags)

No Additional Items

Each item of this array must be:

Type: object

Default configuration for all tasks (can be overridden per task)

Type: integer

Value must be greater or equal to 0

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: string

ISO-8601 duration (e.g., P1D, PT15M, P2Y6M).

Same definition as window

Type: enum (of string)

Must be one of:

  • "all_success"
  • "all_failed"
  • "all_done"
  • "one_success"
  • "one_failed"
  • "none_failed"
  • "none_skipped"

Type: object

NEW in v0.7.0: Enhanced error categorization and handling

Type: enum (of string) Default: "exponential_backoff"

Must be one of:

  • "fixed"
  • "exponential_backoff"
  • "linear_backoff"

Type: array of string

Error types that should trigger retries

No Additional Items

Each item of this array must be:


Example:

[
    "TemporaryFailure",
    "RateLimitExceeded",
    "ConnectionTimeout",
    "DeadlineExceeded"
]

Type: array of string

Error types that should fail immediately

No Additional Items

Each item of this array must be:


Example:

[
    "ValidationError",
    "SchemaViolation",
    "PermissionDenied",
    "InvalidCredentials"
]

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: enum (of string)

Must be one of:

  • "notify"
  • "create_incident"
  • "log"
  • "custom"

Type: enum (of string)

Must be one of:

  • "low"
  • "medium"
  • "high"
  • "critical"

Type: enum (of string)

Must be one of:

  • "always"
  • "maxAttemptsExceeded"
  • "nonRetryableError"

Type: array

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

Type: object

Backward compatibility: If 'operator' is specified but not 'type', map operator to type

If 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.


Must not be:

Type: object

The following properties are required:

  • type

The following properties are required:

  • operator
Type: object

Operator field is deprecated but still works. Maps: FluidExecuteOperator→fluid_execute, BashOperator→bash, etc.

Type: object

NEW in v0.7.0: Validate provider_action tasks have required fields

If 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.

Type: object

The following properties are required:

  • provider
  • action
  • params
Type: object

Validate fluid_execute tasks

If 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.

Type: object

Validate bash tasks

If 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.

Type: object

Validate python tasks

If 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.

Type: string
Must match regular expression: ^[a-z0-9_][a-z0-9_.-]*[a-z0-9_]$|^[a-z0-9_]$

Type: enum (of string)

NEW in v0.7.0: Simplified task type taxonomy. Replaces 'operator' field (backward compatible). Types: provideraction (NEW!), fluidvalidate, fluidplan, fluidapply, fluidexecute, fluidverify, fluiddqcheck, bash, python, sensor, or provider-specific operators.

Must be one of:

  • "provider_action"
  • "fluid_validate"
  • "fluid_plan"
  • "fluid_apply"
  • "fluid_execute"
  • "fluid_verify"
  • "fluid_dq_check"
  • "bash"
  • "python"
  • "branch_python"
  • "sensor"
  • "email"
  • "http"
  • "snowflake_query"
  • "bigquery_query"
  • "bigquery_job"
  • "glue_job"
  • "databricks_job"
  • "custom"

Type: string

DEPRECATED in v0.7.0: Use 'type' instead. Maintained for backward compatibility with v0.6.1 contracts. Maps to 'type' automatically (FluidExecuteOperator → fluid_execute, BashOperator → bash).

Type: enum (of string)

NEW in v0.7.0: Provider name when type=provider_action. Examples: aws, gcp, azure, snowflake, databricks.

Must be one of:

  • "aws"
  • "gcp"
  • "azure"
  • "snowflake"
  • "databricks"
  • "kafka"
  • "kubernetes"
  • "local"
  • "custom"

Type: string

NEW in v0.7.0: Provider action when type=provideraction. Format: service.operation (e.g., s3.ensurebucket, table.ensure, kinesis.create_stream).

Must match regular expression: ^[a-z0-9_]+\.[a-z0-9_]+$
Examples:

"s3.ensure_bucket"
"table.ensure"
"database.ensure"
"kinesis.create_stream"
"glue.create_job"
"bigquery.create_table"

Type: string

NEW in v0.7.0: Reference to transformation step in builds[].transformations[]. Links orchestration tasks to build steps for clearer mapping.

Type: array of string
No Additional Items

Each item of this array must be:

Type: object

Additional Properties of any type are allowed.

Type: object

Type: array of object

NEW in v0.7.0: Declares what exposes[] this task produces. Enables automatic dataset registration and lineage tracking.

No Additional Items

Each item of this array must be:

Type: object

Type: string

The exposeId from exposes[] that this task produces

Same definition as id

Type: string

Optional: Airflow dataset URI. Auto-generated from binding.location if not specified.

Type: enum (of string) Default: "replace"

How this task updates the data

Must be one of:

  • "replace"
  • "append"
  • "merge"
  • "upsert"

Type: array of object

NEW in v0.7.0: Tasks can declare dependencies on other data products with version constraints and freshness requirements.

No Additional Items

Each item of this array must be:

Type: object

Task-specific overrides for taskDefaults

Type: object

XCom configuration for inter-task communication (from v0.6.1)

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Cost tracking (enhanced in v0.7.0)

Type: boolean Default: false

NEW in v0.7.0: Track actual costs vs estimate

Type: number

NEW in v0.7.0: Alert if actual > threshold * estimate (e.g., 1.5 = 150%)

Type: array
No Additional Items

Each item of this array must be:

Type: object

Type: enum (of string)

Must be one of:

  • "FileSensor"
  • "ExternalTaskSensor"
  • "TimeSensor"
  • "HttpSensor"
  • "S3KeySensor"
  • "GCSObjectSensor"
  • "custom"

Type: integer Default: 60

Value must be greater or equal to 1

Type: integer Default: 3600

Value must be greater or equal to 1

Type: enum (of string) Default: "poke"

Must be one of:

  • "poke"
  • "reschedule"

Type: array

List of exposeIds produced by this build.

No Additional Items

Each item of this array must be:

Type: string

Unified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.

Same definition as id

Type: array of object

Dependencies on other builds (for multi-build orchestration).

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Unified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.

Same definition as id

Type: enum (of string)

Must be one of:

  • "success"
  • "completion"
  • "always"

Type: array

Legacy transformations array for backward compatibility.

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Path/script identifier (dbt model, sql file, etc.)

Type: array

List of exposeIds materialized by this step. VALIDATION: Tools must validate that every output exists in exposes[].exposeId.

No Additional Items

Each item of this array must be:

Type: string

Unified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.

Same definition as id

Type: array of string

Transformation step tags.

Same definition as tags

Type: array of string

Simple string tags for categorization, discovery, and automation. Consistent pattern used throughout FLUID objects.

Same definition as tags

Type: object

Key-value labels for structured metadata and automation. Consistent pattern used throughout FLUID objects.

Same definition as labels

Type: object

Single build configuration (legacy). Use 'builds' array for multi-modal.

Same definition as builds_items

Type: object

Optional lineage tracking for better data governance.

No Additional Properties

Type: enum (of string) Default: "table_level"

Level of lineage tracking granularity.

Must be one of:

  • "table_level"
  • "field_level"

Type: array of object

Upstream dependencies and their field mappings.

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Upstream data product ID.

Same definition as id

Type: string

Upstream expose ID being consumed.

Same definition as id

Type: array of object

Field-level lineage mappings (optional).

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "direct_mapping"
  • "aggregation"
  • "calculation"
  • "lookup"

Type: string

Transformation logic or SQL expression.

Type: enum (of string)

Type of data relationship.

Must be one of:

  • "direct_consumption"
  • "lookup_enrichment"
  • "aggregation"

Type: array of string

Upstream relationship tags.

Same definition as tags

Type: object

Upstream relationship labels.

Same definition as labels

Type: array of object

Known downstream consumers (optional).

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Downstream data product ID.

Same definition as id

Type: enum (of string)

Impact level if this data product changes.

Must be one of:

  • "critical"
  • "high"
  • "medium"
  • "low"

Type: array of string

Downstream relationship tags.

Same definition as tags

Type: object

Downstream relationship labels.

Same definition as labels

Type: array of string

Lineage configuration tags.

Same definition as tags

Type: object

Lineage configuration labels.

Same definition as labels

Type: object

Optional schema evolution strategy for managing changes.

No Additional Properties

Type: enum (of string)

Versioning strategy for schema changes.

Must be one of:

  • "semantic_versioning"
  • "date_based"
  • "sequential"

Type: enum (of string)

Compatibility approach for schema evolution.

Must be one of:

  • "backward_compatible"
  • "forward_compatible"
  • "full_compatible"
  • "breaking"

Type: object
No Additional Properties

Type: integer

Advance notice period for breaking changes.

Value must be greater or equal to 0

Type: boolean

Whether schema changes require approval.

Type: array of string

List of approvers for schema changes.

No Additional Items

Each item of this array must be:

Type: array of string

Change policy tags.

Same definition as tags

Type: object

Change policy labels.

Same definition as labels

Type: array of string

Schema evolution tags.

Same definition as tags

Type: object

Schema evolution labels.

Same definition as labels

Type: object

Optional ML model specifications for MLPipeline kind.

No Additional Properties

Type: boolean Default: false

Type: enum (of string)

Must be one of:

  • "mlflow"
  • "kubeflow"
  • "sagemaker"
  • "vertex_ai"
  • "custom"

Type: array of object
No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Semantic version (semver.org).

Same definition as version

Type: enum (of string)

Must be one of:

  • "classification"
  • "regression"
  • "clustering"
  • "recommendation"
  • "other"

Type: array of string

List of feature names used by this model.

No Additional Items

Each item of this array must be:

Type: string

Target variable for supervised learning.

Type: object
No Additional Properties

Type: array of string

Validation metrics (e.g., accuracy, auc_roc).

No Additional Items

Each item of this array must be:

Type: object

Minimum acceptable metric values.

Each additional property must conform to the following schema

Type: number

Type: array of string

Model validation tags.

Same definition as tags

Type: array of string

ML model tags.

Same definition as tags

Type: array of string

ML configuration tags.

Same definition as tags

Type: object

ML configuration labels.

Same definition as labels

Type: object

Optional environment-specific overrides (dev, staging, prod).

Each additional property must conform to the following schema

Type: object
No Additional Properties

Type: object

Environment-specific metadata overrides.

No Additional Properties

Type: object
No Additional Properties

Type: array of string

Environment-specific metadata tags.

Same definition as tags

Type: object

Environment-specific metadata labels.

Same definition as labels

Type: array of object

Environment-specific expose overrides.

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Unified identifier pattern: starts/ends with alphanumeric or underscore, allows dots and hyphens in middle.

Same definition as id

Type: array of string

Environment-specific expose tags.

Same definition as tags

Type: object

Environment-specific expose labels.

Same definition as labels

Type: array of string

Environment configuration tags.

Same definition as tags

Type: object

Environment configuration labels.

Same definition as labels

Type: object
Same definition as docs

Type: object

NEW in v0.7.1: Jurisdiction and data residency requirements for compliance enforcement.

No Additional Properties
Examples:

{
    "jurisdiction": "EU",
    "allowedRegions": [
        "eu-west-1",
        "eu-central-1"
    ],
    "dataResidency": true,
    "crossBorderTransfer": false,
    "regulatoryFramework": [
        "GDPR"
    ],
    "enforcementMode": "strict"
}
{
    "jurisdiction": "US",
    "allowedRegions": [
        "us-east-1",
        "us-west-2"
    ],
    "dataResidency": true,
    "regulatoryFramework": [
        "CCPA",
        "HIPAA"
    ],
    "enforcementMode": "strict"
}

Type: enum (of string)

Required legal jurisdiction for data storage and processing. Used to validate binding.location matches sovereignty intent.

Must be one of:

  • "EU"
  • "US"
  • "UK"
  • "CA"
  • "AU"
  • "JP"
  • "CN"
  • "IN"
  • "BR"
  • "Global"
  • "Multi-Region"

Examples:

"EU"
"US"
"Global"

Type: array of string

Explicit list of allowed cloud regions. Example: ['eu-west-1', 'eu-central-1'] for EU-only.

All items must be unique

No Additional Items

Each item of this array must be:


Examples:

[
    "eu-west-1",
    "eu-central-1"
]
[
    "us-east-1",
    "us-west-2"
]

Type: array of string

Explicit list of prohibited cloud regions. Takes precedence over allowedRegions.

All items must be unique

No Additional Items

Each item of this array must be:

Type: boolean Default: true

Whether data must remain within jurisdiction boundaries at rest and in transit. True = strict residency.

Type: boolean Default: false

Whether cross-border data transfer is permitted. False = data never leaves jurisdiction.

Type: array of enum (of string)

Allowed legal mechanisms for cross-border transfer (if permitted). Example: ['SCCs', 'BCRs', 'Adequacy'].

All items must be unique

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "SCCs"
  • "BCRs"
  • "Adequacy"
  • "DPF"
  • "Consent"
  • "Derogation"

Type: array of enum (of string)

Applicable regulatory frameworks. Example: ['GDPR', 'CCPA', 'HIPAA'].

All items must be unique

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "GDPR"
  • "CCPA"
  • "CPRA"
  • "HIPAA"
  • "PIPEDA"
  • "LGPD"
  • "PDPA"
  • "POPIA"
  • "DPA"
  • "APPI"

Examples:

[
    "GDPR"
]
[
    "GDPR",
    "CCPA"
]
[
    "HIPAA"
]

Type: enum (of string) Default: "strict"

How sovereignty violations are handled. strict = block deployment, advisory = warn, audit = log only.

Must be one of:

  • "strict"
  • "advisory"
  • "audit"

Type: boolean Default: true

Whether binding.location must be validated against sovereignty rules before deployment.

Type: array of string

Sovereignty policy tags.

Same definition as tags

Type: object

Sovereignty policy labels.

Same definition as labels

Type: object

Root-level access policy for automated IAM binding generation. Defines principals, permissions, and resources for data product access control.

No Additional Properties
Example:

{
    "grants": [
        {
            "principal": "group:data-analytics@company.com",
            "permissions": [
                "read",
                "select",
                "query"
            ]
        },
        {
            "principal": "serviceAccount:pipeline@project.iam.gserviceaccount.com",
            "permissions": [
                "write",
                "insert",
                "update",
                "delete"
            ]
        }
    ]
}

Type: array of object

List of access grants to principals (users, groups, service accounts).

No Additional Items

Each item of this array must be:

Type: object
No Additional Properties

Type: string

Identity receiving access. Format: 'user:email@domain.com', 'group:name@domain.com', 'serviceAccount:name@project.iam.gserviceaccount.com'


Examples:

"group:data-analytics@company.com"
"serviceAccount:pipeline@project.iam.gserviceaccount.com"
"user:analyst@company.com"

Type: array of enum (of string)

Permissions to grant. Will be mapped to provider-specific roles (e.g., BigQuery roles).

All items must be unique

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "read"
  • "select"
  • "query"
  • "write"
  • "insert"
  • "update"
  • "delete"
  • "admin"
  • "manage"

Examples:

[
    "read",
    "select"
]
[
    "write",
    "insert",
    "update"
]

Type: array of string

Resources this grant applies to. JSONPath expressions referencing exposes[] items. If omitted, applies to all exposed resources.

No Additional Items

Each item of this array must be:


Examples:

"$.exposes[?(@.exposeId=='customer_table')]"
"$.exposes[?(@.kind=='table')]"

Type: object

Optional conditions for conditional access (e.g., IP restrictions, time windows).

Additional Properties of any type are allowed.

Type: object