Skip to content

docs: track 0.18.1 — every page says what 0.18.1 does, with release notes and an upgrade guide for 0.15.1–0.18.1 - #141

Merged
fas89 merged 55 commits into
mainfrom
docs/track-0.18.1
Oct 5, 2026
Merged

fas89 merged 55 commits into
mainfrom
docs/track-0.18.1

Conversation

@fas89

@fas89 fas89 commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator

What this changes

The docs claimed to track CLI 0.15.3. pip install data-product-forge gives 0.18.1. Content was last written for 0.15.0: 0.15.1–0.15.3 only bumped version strings, and 0.16.0–0.17.0 had no docs pass at all. This PR brings every existing page up to what 0.18.1 does, and adds the release notes and upgrade guide that were missing.

  • Pin.
    • cli-version.json moves to 0.18.1.
    • quickstartScaffoldVersion moves to 0.7.5, because fluid init --quickstart now emits it.
    • Schema 0.7.5 is stable and 0.7.6 is the preview.
  • New pages.
    • RELEASE_NOTES_0.16.0.md covers 0.15.1–0.16.2, and RELEASE_NOTES_0.17.0.md covers 0.16.3–0.17.0. Both use the 0.15.0 page's shape: headline, who should upgrade, checklist, per-area changes.
    • upgrading.md is a standing upgrade guide, with a per-version checklist from 0.15.x to 0.18.1 and how to check each step.
    • RELEASE_NOTES_0.18.0.md gains the 0.18.1 fix.
  • CLI reference (docs/cli/**).
    • Each command was compared with --help on 0.18.1. Missing flags and subcommands are added, for example diff --state-backend/--workspace-dir/--no-state-drift, schedule-sync --delete-scope, generate ci's pipeline defaults and contract digest. Wrong defaults, choices and outputs are corrected.
    • Behaviour changes are written in:
      • plan/apply mode and env binding;
      • the per-provider state key and its migration;
      • the drift gate reading the live target and the apply's OpenTofu state;
      • env-scoped Airflow DAG ids;
      • Command Center publish: org resolution, private by default, last-writer-wins per contract;
      • apply run reporting.
  • Providers.
    • AWS:
      • bucket landing and the region pin (opentofu_region_moved);
      • Lake Formation column grants, bucketPolicy, and admins being authoritative;
      • KMS plus lifecycle.expire;
      • masking at landing;
      • verify on Glue/Athena.
    • GCP: governance parity, which was measured against real BigQuery, Cloud KMS and Data Catalog on 4 Oct 2026 on 0.18.0, matching forge-cli docs/governance-parity.md (#694). This covers dataset grants as iam_member, policy tags (with BigQuery's live refusal wording), CMEK, DAY-partition retention and sovereignty failing closed.
    • Local and Snowflake: the 0.18 DuckDB sandbox.
  • Concepts, recipes, walkthroughs, advanced, SDK.
    • consumes[] examples now validate.
    • The governance enforcement matrix says per provider what is enforced, what is only declared, and what verify checks.
    • The 11-stage pipeline walkthrough follows the generated bundle chain.
    • Environment variables were re-derived from the code.
    • The error reference keeps every anchor the CLI prints.
  • Truth over tidiness. Where 0.18.1 behaves badly, the page says what it actually does. Examples:
    • fluid policy-apply changes no permissions;
    • the quickstart's local apply writes a placeholder file;
    • validate --probe is accepted and ignored.
  • Not changed. No page was moved or renamed, and no heading behind a CLI-printed anchor changed. Since 0.15.2, the CLI prints links into this site (fluid_build/_errors.py::_DOC_ROUTES), so those URLs are a contract.

A second PR, "the story", follows once this merges. It adds the contract fragments concept page, environments, workspaces and state, one contract on two clouds, the generated contract field reference, and the reorganised navigation.

Tested

  • Gates, run locally on the branch:
    • npm run docs:build: exit 0.
    • node scripts/check-dist-links.mjs: clean, 115,736 absolute references across 227 built pages.
    • scripts/check_cli_docs.py against an installed data-product-forge==0.18.1: every check OK, including the flag oracle over 1,226 documented fluid invocations and the version sweep.
    • scripts/check_providers.py: OK.
  • Live. The built site was served under /forge_docs/, as GitHub Pages serves it, and walked in a browser:
    • All 37 docs URLs and anchors that 0.18.1 prints in its own output resolve, including advanced/typed-cli-errors.html#validation-schema, #capability-negotiation, #connectivity-secrets, #pipeline-operations and #governance.
    • No console errors.
    • At phone width there is no horizontal scroll on the widest new pages.
  • Commands and output. Every command a page tells you to run was run on 0.18.1, or checked against the v0.18.1 source where it needs a cloud. Example output is real.
  • Method. 23 units wrote the pages. Each unit's diff then went through an adversarial claim-by-claim review and a fix round. A final pass applied cross-page handoffs.

Security review

  • A dedicated review found no HIGH issues. Every MEDIUM and LOW in this PR is fixed:
    • mTLS is no longer described as binding caller identity on the MCP output port; only FLUID_MCP_AUTH_MODE=jwt does.
    • Jenkins credentials go through withCredentials, not agent-wide properties.
    • A warning that any MCP client can set allow_metadata_service.
    • Dependency-confusion warnings for extra pip indexes.
    • GitHub Actions OIDC trust is scoped to the repo and environment, and id-token: write is granted on deploy jobs only.
    • A danger box on the legacy "universal pipeline" Jenkinsfile.
    • Real third-party domains used as placeholders are replaced.
  • gitleaks over the branch reports no leaks.

Prior art

  • The page types follow Diátaxis.
  • The upgrade guide takes its shape from dbt's "Upgrading to vX" guides.

Follow-ups (not in this PR)

  • CLI defects found while verifying the docs have gone to the maintainer as a separate list. They are not filed here.
  • The repo-root examples/ directory still uses company.com / yourcompany.com in sample contracts.

fas89 added 30 commits October 5, 2026 01:56
…es you

The quickstart now scaffolds fluidVersion 0.7.5, so the pin that guards it
moves with it. Content for 0.15.1 through 0.18.1 follows in this branch.
…egion pin and guard, Lake Formation column grants and bucket policy, KMS and lifecycle, masking at landing, verify on Glue/Athena
…al sandbox and path rules; Snowflake governance as it ships in 0.18.1
…oped DAGs, Command Center publish, and corrected ship, retention and secrets behaviour
validate: --probe is accepted and ignored, --report applies to bundles only, the workspace form runs the schema check only; adds --env overlay behaviour, governance binding checks, bundle validation and schema versions.
rollback: snapshots exist only on the native apply path, restore per provider, the latest-snapshot ordering issue.
runs, stats, status, describe, docs, version, doctor, auth: real output and flags.
…-build DAGs, sql and dbt engine output, ci options and Jenkins defaults, GCP grants, per-provider state key, known --provider limits
… remote state keys, Command Center run reporting, live and state drift in diff
…ags, contract digest, working contract-tests baseline, init paths and fluidVersion table, import --server-url, ai test
… and product types match 0.18.1

Rewrite consumes[] with the productId/exposeId shape and how a DuckDB build
resolves it (workspace, FLUID_UPSTREAM_CONTRACTS, --env, lineage-only, explicit
inputs), with real output and failures. Fix invalid examples (s3 path, execution
trigger, Python build), the binding enums, the cloud-switch claim (overlays), the
required-field count, the version list (0.7.6 preview) and the spec link. Say what
validate, plan, apply and diff actually do with composition rules and versions.
… against 0.18.1, with runnable examples and real output
…limit refusals, show where accessPolicy lives, fix the build-destination wording
…w and network pages from 0.18.1

Environment variables are regrouped from the 0.18.1 read sites, with the
variables that earlier versions listed but nothing reads named as such.
The CI page follows the bundle chain the generated Jenkinsfile runs and
documents the generate ci options, the dry-run default and the advisory
federation check. The error pages now cover the codes added in 0.16 to 0.18
(state, overlay, publish, masking, sandbox) with real output, correct exit
codes and the real render shape. Airflow leads with fluid generate schedule;
credential-resolver, network-safety and capability-warnings are corrected
against the code.
…m-scaffold command, CLI-linked pages contract, honest demo caveats
…debar duplicate and scoping of the upgrade notes
fas89 added 25 commits October 5, 2026 08:23
…ts and the Forge GPT pack re-verified on CLI 0.18.1
… MCP and source-aligned walkthroughs on 0.18.1 and fix what drifted
…port walkthroughs on CLI 0.18.1

The local walkthrough now runs a two-product journey that lands real files, and states
what the local engine does and refuses (sandbox, first-expose writes, masking, placeholder
output). The 11-stage page follows the bundle chain the generated Jenkinsfile runs, with
the live and state drift gate, the stage 6 sovereignty check, Command Center apply
reporting, env-scoped DAG layout and the first-build parameter caveat. The Airflow and
export pages show real generated output, and the export contracts validate.
…tention warning on apply, drop a non-reproducible sql_chars value
… runs

The companion package's entry point is named generate-custom-scaffold, but
the subcommand it registers is custom-scaffold, and only that name runs.
The SDK pages now use it, so the allowlist entry follows.
….18.1 pass

Link the provider pages to the verify, apply, governance and acquisition references, say that the local reader depends on the apply mode, explain the missing-pattern validation error, replace the 0.18 quality-rule description, add the FAQ symptoms, mark the 0.15.0 federation gate as superseded and complete the data-model flag list.
…ther; fix agent-policy fragment placement and three stale anchors
…ials corrected, CI stage and env-var coverage, snapshot and runs claims fixed
…chain and placeholders

MCP output port: mTLS at a proxy authenticates the connection but binds no
identity. FLUID_MCP_AUTH_MODE accepts shared-token, jwt and none; only a
verified JWT supplies model, use_case, tenant_id and jurisdiction. The
X-Client-CN and X-Client-Fingerprint headers are copied unverified into the
caller attributes when an auth mode is enforced and reach no audit record.
A shared token drops client-declared identity, so a model-gated contract
denies every call as missing-model-identity.

Credentials: Jenkins credentials binding is the recommended path; Global and
Node Properties are warned against. Universal-pipeline Jenkinsfile gets a
danger box listing its defects. The metadata-service opt-in is a per-call
argument any MCP client can set. GitHub Actions template grants id-token:
write per deploy job and pins the cloud trust to repository and environment.

Supply chain: dependency-confusion warnings for FLUID_PIP_EXTRA_INDEX_URL,
private plugin installs and FLUID_PLUGINS_ALLOWLIST, pin the Inspector and
the scaffold-ci install.

Placeholders: real third-party domains replaced with RFC 2606 names.
GCP-bound examples use name.example.com because fluid validate refuses a
.example principal on a GCP binding. Hash-suffixed IaC resource names
recomputed for the new member.

Also: init and secrets agree on secretRef for a database password; policy-apply
is described as changing no permissions in 0.18.1; the GCP apply identity gets
dataOwner and jobUser instead of bigquery.admin.
…on the first

The gateway reads the caller's identity from each request's own context and
never caches it on the shared session.

This branch was successfully deployed

1 active deployment
github-pages — d6655e0d Deployed Oct 5, 2026 by fas89 via deploy #171
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant