Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ When the drift check fails, or forge-cli releases a new schema version

```bash
COMMIT=... # the commit from step 1, which is also upstream.commit
for v in 0.7.5 0.7.6; do
for v in 0.7.6 0.7.7; do
curl -fsSL "https://raw.githubusercontent.com/Agenticstiger/forge-cli/$COMMIT/fluid_build/schemas/fluid-schema-$v.json" \
-o "schema/fluid-schema-$v.json"
done
Expand Down
6 changes: 3 additions & 3 deletions GENERATOR_DOCS.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ pip install --require-hashes -r scripts/requirements-docs.lock

python3 generate-docs.py # every synced version
python3 generate-docs.py --all # the same, spelled out
python3 generate-docs.py --version 0.7.6 # one version; repeat the flag for more
python3 generate-docs.py --version 0.7.7 # one version; repeat the flag for more
python3 generate-docs.py --check # render to a temporary directory and
# exit 1 if specs/ differs, or if a
# file under schema/ or specs/ is not
Expand Down Expand Up @@ -76,8 +76,8 @@ pip-compile --generate-hashes --strip-extras \
--output-file=scripts/requirements-docs.lock scripts/requirements-docs.txt
```

A preview's page is labelled by its schema's own `title`; for 0.7.6 that reads
"FLUID 0.7.6 — Declarative Packaging Modes (preview)".
A preview's page is labelled by its schema's own `title`; for 0.7.7 that reads
"FLUID 0.7.7 — Preview: recursive streaming types".

`--version` also renders a version that is not synced, if its schema is in
`schema/`. The pages for versions before 0.7.2 were rendered by earlier
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<a href="https://open-data-protocol.github.io/fluid/schema/anatomy">🧭 Schema Anatomy</a> ·
<a href="https://open-data-protocol.github.io/fluid/examples/">🚀 Examples</a> ·
<a href="https://open-data-protocol.github.io/fluid/concepts/comparisons">🔄 vs ODCS / ODPS</a> ·
<a href="https://open-data-protocol.github.io/fluid/releases/0.7.5">✨ What's New</a>
<a href="https://open-data-protocol.github.io/fluid/releases/0.7.6">✨ What's New</a>
</p>

---
Expand All @@ -23,7 +23,7 @@ FLUID is one YAML file that describes a data product end to end — **schema, bu

```mermaid
flowchart LR
F["FLUID v0.7.5<br/>your .fluid.yml<br/>complete on its own"]
F["FLUID v0.7.6<br/>your .fluid.yml<br/>complete on its own"]
FC["forge-cli<br/>compiler → IaC + DAGs"]
BIT["Bitol ODPS + ODCS<br/>catalog interop"]
F -.->|compile + deploy| FC
Expand All @@ -35,7 +35,7 @@ FLUID is **standalone** — the contract is complete on its own. Everything else
## Minimal valid contract

```yaml
fluidVersion: "0.7.5"
fluidVersion: "0.7.6"
kind: DataProduct
id: demo.bronze.hello_world
name: Hello World
Expand All @@ -61,16 +61,16 @@ exposes:

## JSON Schema

- **Latest stable: 0.7.5** — `https://open-data-protocol.github.io/fluid/schema/fluid-schema-0.7.5.json`
- **Preview: 0.7.6** — `https://open-data-protocol.github.io/fluid/schema/fluid-schema-0.7.6.json`. A contract uses it only by declaring `fluidVersion: "0.7.6"`, and it can still change before it is promoted to stable. See **[Stable and preview versions](https://open-data-protocol.github.io/fluid/schema/versions#stable-and-preview-versions)** and **[What's new in 0.7.6](https://open-data-protocol.github.io/fluid/releases/0.7.6)**.
- **Latest stable: 0.7.6** — `https://open-data-protocol.github.io/fluid/schema/fluid-schema-0.7.6.json`
- **Preview: 0.7.7** — `https://open-data-protocol.github.io/fluid/schema/fluid-schema-0.7.7.json`. A contract uses it only by declaring `fluidVersion: "0.7.7"`, and it can still change before it is promoted to stable. See **[Stable and preview versions](https://open-data-protocol.github.io/fluid/schema/versions#stable-and-preview-versions)** and **[What's new in 0.7.7](https://open-data-protocol.github.io/fluid/releases/0.7.7)**.
- A document is validated against the schema of the `fluidVersion` it declares. To use a field, declare the version that added it — see **[Choosing `fluidVersion`](https://open-data-protocol.github.io/fluid/schema/versions#choosing-fluidversion)**.
- Editor support — add this line to a file that declares `fluidVersion: "0.7.5"` (use the URL matching the version the file declares):
- Editor support — add this line to a file that declares `fluidVersion: "0.7.6"` (use the URL matching the version the file declares):
```yaml
# yaml-language-server: $schema=https://open-data-protocol.github.io/fluid/schema/fluid-schema-0.7.5.json
# yaml-language-server: $schema=https://open-data-protocol.github.io/fluid/schema/fluid-schema-0.7.6.json
```
- All versions, diffs, and the generated HTML reference: **[Schema → Versions](https://open-data-protocol.github.io/fluid/schema/versions)**.

0.7.5 is additive over 0.7.4: every valid 0.7.4 contract stays valid when it declares `"0.7.5"`. See **[What's New in 0.7.5](https://open-data-protocol.github.io/fluid/releases/0.7.5)**.
0.7.6 is additive over 0.7.5: every valid 0.7.5 contract stays valid when it declares `"0.7.6"`. See **[What's New in 0.7.6](https://open-data-protocol.github.io/fluid/releases/0.7.6)**.

## Validate a contract

Expand Down
7 changes: 4 additions & 3 deletions docs/.vuepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ export default defineUserConfig({
{ text: 'Specification', link: '/schema/specification' },
{ text: 'Versions', link: '/schema/versions' },
{ text: 'Changelog', link: '/schema/changelog' },
{ text: 'JSON Schema 0.7.5 (stable) ↗', link: 'https://open-data-protocol.github.io/fluid/schema/fluid-schema-0.7.5.json', target: '_blank' },
{ text: 'Reference 0.7.5 (HTML) ↗', link: 'https://open-data-protocol.github.io/fluid/specs/0.7.5/fluid-spec.html', target: '_blank' },
{ text: 'Preview: 0.7.6', link: '/releases/0.7.6' },
{ text: 'JSON Schema 0.7.6 (stable) ↗', link: 'https://open-data-protocol.github.io/fluid/schema/fluid-schema-0.7.6.json', target: '_blank' },
{ text: 'Reference 0.7.6 (HTML) ↗', link: 'https://open-data-protocol.github.io/fluid/specs/0.7.6/fluid-spec.html', target: '_blank' },
{ text: 'Preview: 0.7.7', link: '/releases/0.7.7' },
],
},
{ text: 'Examples', link: '/examples/' },
Expand Down Expand Up @@ -175,6 +175,7 @@ export default defineUserConfig({
text: "What's New",
children: [
'/releases/README.md',
'/releases/0.7.7.md',
'/releases/0.7.6.md',
'/releases/0.7.5.md',
'/releases/0.7.4.md',
Expand Down
6 changes: 3 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ FLUID is one YAML file that describes a data product end to end — **schema, bu
## The shape of a contract

```yaml
fluidVersion: "0.7.5"
fluidVersion: "0.7.6"
kind: DataProduct
id: demo.bronze.hello_world
name: Hello World
Expand Down Expand Up @@ -65,7 +65,7 @@ exposes:
- **[Guide](/fluid/guide/)** — what FLUID is, the quickstart, and the FAQ.
- **[Concepts](/fluid/concepts/)** — the agentic-native layer and how FLUID compares to ODCS / ODPS.
- **[Schema Reference](/fluid/schema/anatomy)** — every top-level block, a cheatsheet, and the full specification.
- **[What's New in 0.7.5](/fluid/releases/0.7.5)** — the latest stable version: streaming Kafka → Iceberg sink, Confluent Cloud Tableflow, and a pgvector output port.
- **[0.7.6 (preview)](/fluid/releases/0.7.6)** — packaging modes, declared consumers, cross-mesh pins, row filters and masked columns, Flink builds; opt-in, and still subject to change.
- **[What's New in 0.7.6](/fluid/releases/0.7.6)** — the latest stable version: packaging modes, declared consumers, cross-mesh pins, row filters and masked columns, Flink builds, a continuous trigger, and the Bitol-shaped team, description, contract-id, serialization and quality fields.
- **[0.7.7 (preview)](/fluid/releases/0.7.7)** — nested columns, and the Kafka stream and record mapping an embedded-logic build can read; opt-in, and still subject to change.
- **[See the deck](/fluid/deck/)** — the FLUID story in slides.
- **[Contributing & governance](/fluid/contributing/)** — how the standard is maintained, and how to take part.
2 changes: 1 addition & 1 deletion docs/concepts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ A FLUID contract describes a data product end to end: its schema, build logic, d

This structure separates **interface** (what you get) from **implementation** (how it's built), enabling reliable data ecosystems ready for both humans and AI agents.

> The latest stable schema version is **0.7.5**; **0.7.6** is a preview that a contract uses only by declaring it. Every stable release after 0.7.2 has been additive over its predecessor; the one recorded narrowing is the step into 0.7.2 (0.7.1 → 0.7.2). See [What's New](/fluid/releases/) and [Versions](/fluid/schema/versions).
> The latest stable schema version is **0.7.6**; **0.7.7** is a preview that a contract uses only by declaring it. Every stable release after 0.7.2 has been additive over its predecessor; the one recorded narrowing is the step into 0.7.2 (0.7.1 → 0.7.2). See [What's New](/fluid/releases/) and [Versions](/fluid/schema/versions).

---

Expand Down
6 changes: 3 additions & 3 deletions docs/concepts/comparisons.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Four active "open data product" specs share overlapping names and adjacent scope
| **ODCS** (Open Data Contract Standard) | LF AI & Data · Bitol | v3.1.0 — Dec 2025 | Column-level technical contract; producer↔consumer agreement for one dataset |
| **Bitol ODPS** (Open Data Product Standard) | LF AI & Data · Bitol | v1.0.0 — Sep 2025 | Thin product manifest; bundles ODCS contracts via `contractId` on input/output ports |
| **ODPS v4** (Open Data Product Specification) | LF · [Open-Data-Product-Initiative](https://github.com/Open-Data-Product-Initiative/v4.0) | v4.0 — Jul 2025 · v4.1 — Oct 2025 | Business + commercial wrapper: pricing · license · multi-language · marketplace |
| **FLUID** | open-data-protocol | v0.7.5 (stable) — this repo | End-to-end operational contract: schema + build + orchestration + agentic governance + sovereignty + semantics |
| **FLUID** | open-data-protocol | v0.7.6 (stable) — this repo | End-to-end operational contract: schema + build + orchestration + agentic governance + sovereignty + semantics |

## How they actually fit together

Expand All @@ -34,7 +34,7 @@ flowchart LR
classDef core fill:#5B8DEF,color:#fff,stroke:#1E3A8A,stroke-width:4px,font-weight:bold
classDef opt fill:#94A3B8,color:#fff,stroke:#475569,stroke-width:1px,stroke-dasharray:6 3

F["FLUID v0.7.5<br/>your .fluid.yml<br/>standalone — complete on its own"]:::core
F["FLUID v0.7.6<br/>your .fluid.yml<br/>standalone — complete on its own"]:::core

FC["forge-cli<br/>reference implementation<br/>(emits IaC + Airflow DAGs)"]:::opt
BIT["Bitol ODPS + ODCS<br/>(catalog interop)"]:::opt
Expand Down Expand Up @@ -62,7 +62,7 @@ flowchart LR

## 📊 Capability matrix

Legend: ✅ deterministic in spec · ⚠️ partial · ❌ silent. Headers abbreviated for width: **F** = FLUID v0.7.5 · **ODCS** = Bitol ODCS v3.1 · **ODPS** = Bitol ODPS v1.0 · **v4** = ODPS v4.0. Field-level detail lives in the [**Schema Cheatsheet**](/fluid/schema/cheatsheet) — this matrix is the at-a-glance scoreboard.
Legend: ✅ deterministic in spec · ⚠️ partial · ❌ silent. Headers abbreviated for width: **F** = FLUID v0.7.6 · **ODCS** = Bitol ODCS v3.1 · **ODPS** = Bitol ODPS v1.0 · **v4** = ODPS v4.0. Field-level detail lives in the [**Schema Cheatsheet**](/fluid/schema/cheatsheet) — this matrix is the at-a-glance scoreboard.

### 📐 Data shape & quality

Expand Down
8 changes: 4 additions & 4 deletions docs/concepts/forge-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ fluid --version

## Which FLUID versions it supports

The JSON Schemas are authored in forge-cli and published here (see [CONTRIBUTING.md](https://github.com/open-data-protocol/fluid/blob/main/CONTRIBUTING.md#the-schemas-are-not-authored-here)). As of data-product-forge 0.18.1:
The JSON Schemas are authored in forge-cli and published here (see [CONTRIBUTING.md](https://github.com/open-data-protocol/fluid/blob/main/CONTRIBUTING.md#the-schemas-are-not-authored-here)). As of data-product-forge 0.27.0:

- It **bundles** the schemas for 0.7.1 to 0.7.6 and validates a contract against the schema of the `fluidVersion` it declares (`fluid validate --list-versions` lists them).
- **0.7.5 is its default** — the newest stable version — and `fluid init --quickstart` writes `fluidVersion: 0.7.5`.
- **0.7.6 is a preview**: validated when a contract declares it, never chosen by default. See [Stable and preview versions](/fluid/schema/versions#stable-and-preview-versions).
- It **bundles** the schemas for 0.7.1 to 0.7.7 and validates a contract against the schema of the `fluidVersion` it declares (`fluid validate --list-versions` lists them).
- **0.7.6 is its default** — the newest stable version, and the one the contracts it builds declare. (`fluid init --quickstart` still writes its static customer-360 example at `fluidVersion: 0.7.5`.)
- **0.7.7 is a preview**: validated when a contract declares it, never chosen by default. See [Stable and preview versions](/fluid/schema/versions#stable-and-preview-versions).
- For an older version it does not bundle, it fetches the schema from this repository and caches it (`--offline` restricts it to bundled and cached schemas).
- Its bundled 0.7.1 is a different document from the published 0.7.1 under the same `$id`; see [Versions](/fluid/schema/versions#_0-7-1-two-documents-share-one-id).

Expand Down
12 changes: 6 additions & 6 deletions docs/examples/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# FLUID by Example — From "Hello World" to Production

> Examples 1–13 target **`fluidVersion: "0.7.5"`**, the [latest stable schema](/fluid/schema/fluid-schema-0.7.5.json). Example 14 uses the **0.7.6 preview**.
> Examples 1–13 target **`fluidVersion: "0.7.5"`**, which every later schema still accepts. Example 14 uses **0.7.6**, the [latest stable schema](/fluid/schema/fluid-schema-0.7.6.json).
> Each example **adds one block** to the previous one. Read in order to learn the schema by accretion.
> Every complete contract on this page validates against the JSON Schema of the version it declares (Draft 2020-12) and with the reference implementation's `fluid validate`; examples that show only the new block validate when merged into the example before them.
> File names such as `01-minimal.fluid.yml` are illustrative: FLUID does not prescribe a file name, and the reference implementation scaffolds `contract.fluid.yaml`.
Expand All @@ -26,7 +26,7 @@
| 11 | [Agent-consumable output port (MCP)](#_11-agent-consumable-output-port-mcp) | `exposes[].mcp` (⭐ 0.7.4) |
| 12 | [Stream Kafka into Iceberg](#_12-stream-kafka-into-iceberg) | `kafka-connect` Iceberg streaming sink + Iceberg catalog location (⭐ 0.7.5) |
| 13 | [Vector output port (pgvector)](#_13-vector-output-port-pgvector) | `platform: pgvector` + `vectorConfig` (⭐ 0.7.5) |
| 14 | [Preview: packaging and consumers](#_14-preview-packaging-and-declared-consumers-0-7-6) | `packaging`, `consumers` (🧪 0.7.6 preview) |
| 14 | [Packaging and consumers](#_14-packaging-and-declared-consumers-0-7-6) | `packaging`, `consumers` (🧪 0.7.6) |

---

Expand Down Expand Up @@ -741,13 +741,13 @@ Which columns are embedded is not part of the schema; the reference implementati

---

## 14. Preview: packaging and declared consumers (0.7.6)
## 14. Packaging and declared consumers (0.7.6)

> 🧪 **0.7.6 is a preview.** It is opt-in — declare `fluidVersion: "0.7.6"` — and can still change before it is promoted. See [0.7.6 (preview)](/fluid/releases/0.7.6).
> 🧪 **New in 0.7.6.** Declare `fluidVersion: "0.7.6"` to use it. See [0.7.6](/fluid/releases/0.7.6).
> **New in this step:** top-level `packaging` and `consumers`.

```yaml
# 14-preview-packaging.fluid.yml
# 14-packaging.fluid.yml
fluidVersion: "0.7.6"
kind: DataProduct
id: finance.gold.revenue
Expand Down Expand Up @@ -777,7 +777,7 @@ exposes:
location: { account: acme-eu, database: FINANCE, schema: GOLD, table: REVENUE }
```

The 0.7.6 release note covers the rest of the preview: cross-mesh pins on `consumes[]`, encryption keys and principal mapping on bindings, and expiring data with `lifecycle.expire`.
The 0.7.6 release note covers the rest of 0.7.6: cross-mesh pins on `consumes[]`, encryption keys and principal mapping on bindings, and expiring data with `lifecycle.expire`.

---

Expand Down
Loading
Loading