FLUID (Federated Layered Unified Interchange Definition) Specification

Type: object

A comprehensive, production-ready schema for FLUID data product contracts. This version adds stricter validation patterns for identifiers and other key fields to ensure contract integrity.

No Additional Properties

Type: string

Version of the FLUID spec this contract adheres to.

Must match regular expression: ^\d+\.\d+(\.\d+)?$
Example:

"2.3.0"

Type: string

The type of data product definition.


Examples:

"DataProduct"
"VirtualDataProduct"
"EgressFlow"
"IngestFlow"
"MLModelProduct"
"FeatureStoreProduct"

Type: string

Globally-unique, versioned data product identifier. Should be machine-friendly.

Must match regular expression: ^[a-zA-Z0-9_.-]+$

Must be at least 1 characters long

Type: string

Human-readable product name.

Type: string

A brief, business-focused description of the product's purpose.

Type: string

The owning business domain (e.g., 'Marketing', 'Finance').

Must match regular expression: ^[a-zA-Z0-9_.-]+$

Type: object

Type: enum (of string)

The architectural layer of the data product.

Must be one of:

  • "Bronze"
  • "Silver"
  • "Gold"
  • "Platinum"


The team or individual responsible for the data product.

Type: stringFormat: email

A contact email address for the owner.

Type: object

Type: string

Type: stringFormat: email

Type: string

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

Must be one of:

  • "Development"
  • "Published"
  • "Deprecated"

Type: array of string

A list of arbitrary tags for categorization.

No Additional Items

Each item of this array must be:

Type: string

Type: array

An optional list of input data sources required to build the product.

No Additional Items

Each item of this array must be:

Type: object

Type: string

A local alias for the consumed data source.

Must match regular expression: ^[a-zA-Z0-9_.-]+$

Type: string

A reference to another data product (e.g., URN).

Type: object

Describes the logical transformation process and its operational details.

Type: string

The transformation engine used. Provided examples cover common cloud services, but any string is valid.


Examples:

"bigquery"
"redshift-sql"
"athena-sql"
"snowflake-sql"
"dbt"
"spark-sql"
"spark-python"
"databricks-sql"
"databricks-python"
"emr-spark"
"glue-spark"
"dataflow-python"
"custom-python"

Type: string

A reference to the specific model or script (e.g., dbt model path, git URI to a SQL file).

Type: object

Engine-specific configuration key-value pairs.

Additional Properties of any type are allowed.

Type: object

Type: object

Defines how the build is initiated.

Type: object

Type: const
Specific value: "schedule"

Type: string

A standard cron expression.

Must match regular expression: ^((?:\*|\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*)(?:/\d+)?\s+){4,5}(?:\*|\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*)(?:/\d+)?$
Type: object

Type: const
Specific value: "event"

Type: string
Type: object

Type: const
Specific value: "manual"

Type: object

Type: string

The runtime platform. Provided examples cover common cloud orchestrators, but any string is valid.


Examples:

"composer"
"mwaa"
"airflow"
"dbt-cloud"
"databricks"
"emr-serverless"
"glue-jobs"
"kubernetes-engine"
"cloud-run"
"aws-lambda"

Type: object

Type: string

Type: string

Type: object

Type: integer Default: 0

Value must be greater or equal to 0

Type: integer Default: 0

Value must be greater or equal to 0

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

Must be one of:

  • "none"
  • "exponential"

Type: array
No Additional Items

Each item of this array must be:

Type: object

Type: enum (of string)

Must be one of:

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

Type: array

The public output interfaces (ports) of the data product.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

A single output port of the data product.

Type: string

The unique identifier for this output port.

Must match regular expression: ^[a-zA-Z0-9_.-]+$

Type: string

The physical type of the output. Provided examples cover common cloud services, but any string is valid.


Examples:

"bigquery_table"
"bigquery_view"
"bigquery_materialized_view"
"gcs_delta_table"
"gcs_iceberg_table"
"gcs_parquet_files"
"pubsub_topic"
"redshift_table"
"redshift_view"
"redshift_materialized_view"
"s3_delta_table"
"s3_iceberg_table"
"s3_parquet_files"
"kinesis_stream"
"kafka_topic"
"snowflake_table"
"api_endpoint"

Type: string

Type: object

Type: string

Examples:

"parquet"
"delta"
"iceberg"
"json"
"csv"
"avro"

Type: object

Technology-specific properties. E.g., for BigQuery: { 'project': '...', 'dataset': '...', 'table': '...' }. For S3: { 'bucket': '...', 'path': '...' }.

Type: object

Type: enum (of string)

The modeling archetype of the port.

Must be one of:

  • "hub"
  • "satellite"
  • "link"
  • "view"
  • "table"

Type: array
No Additional Items

Each item of this array must be:

Type: object

Type: string

The 'id' of the target port for the relationship.

Type: enum (of string)

Must be one of:

  • "one-to-one"
  • "one-to-many"
  • "many-to-one"
  • "many-to-many"

Type: array
No Additional Items

Each item of this array must be:

Type: object

Type: string
Must match regular expression: ^[a-zA-Z0-9_]+$

Type: string

The physical data type.

Type: boolean Default: true

Type: string

Reference to an ontology term or glossary ID.

Type: array of string

Semantic tags like 'primarykey', 'foreignkey', 'pii'.

No Additional Items

Each item of this array must be:

Type: array

Declarative transformation logic that separates lineage from rules.

No Additional Items

Each item of this array must be:

Type: object

Defines the transformation for a single target column, explicitly separating source columns for lineage from the transformation rule.

Type: string

The name of the target column in the output schema.

Must match regular expression: ^[a-zA-Z0-9_]+$

Type: array of string

An array of input columns used, for automated lineage generation.

No Additional Items

Each item of this array must be:

Type: string

The transformation logic or function to compute the target column.

Type: array

A list of quality rules specific to this port.

No Additional Items

Each item of this array must be:

Type: object

Type: string

The rule to be enforced (e.g., 'not_null', 'unique', or a SQL predicate).

Type: object

Type: enum (of string)

Must be one of:

  • "reject_row"
  • "quarantine_row"
  • "fail_pipeline"
  • "alert"

Type: array

A list of privacy treatments applied to columns in this port.

No Additional Items

Each item of this array must be:

Type: object

Type: enum (of string)

Must be one of:

  • "PII"
  • "SPI"
  • "Confidential"

Type: array of string
No Additional Items

Each item of this array must be:

Type: object

Type: enum (of string)

Must be one of:

  • "hashing"
  • "masking"
  • "encryption"
  • "tokenization"

Type: object

Type: stringFormat: uri

Type: object

Each additional property must conform to the following schema

Type: string

Type: object

Defines the Service Level Objectives for the entire data product.

Type: integer

Maximum query latency in milliseconds.

Value must be greater or equal to 0

Type: integer

Maximum data latency in minutes.

Value must be greater or equal to 0

Type: number

Expected uptime percentage.

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

Type: object

Type: array
No Additional Items

Each item of this array must be:

Type: object

Type: string

e.g., group:analysts, user:name@company.com, gcpserviceaccount:..., awsiamrole:...

Must match regular expression: ^(group|user|gcp_service_account|aws_iam_role):.+$

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

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "readData"
  • "readMetadata"
  • "manage"

Type: object

Type: object

Defines the Service Level Objectives for the entire data product.

Same definition as slo

Type: object

Type: integer

Value must be greater or equal to 0

Type: enum (of string)

Must be one of:

  • "hard-delete"
  • "soft-delete"
  • "anonymize"

Type: object

Type: string Default: "AES256"

Method of at-rest encryption. Examples provided for cloud KMS services.


Examples:

"AES256"
"GCP_CMEK"
"AWS_KMS"

Type: string Default: "TLS1.2+"

Method of in-transit encryption.


Examples:

"TLS1.2+"
"mTLS"

Type: object

Type: array of object
No Additional Items

Each item of this array must be:

Type: object

Type: string