Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.

Rule suites (retired)

Rule suites have been retired. You no longer create or name a separate suite: every rule is a first-class record on the data asset it checks, and a validation holds the rules it runs one by one, from as many assets as you like. A validation no longer keeps an asset list. This page stays so older links keep working.

Where things moved​

You used to…Now you…
Create a rule suite for a tableOpen the data asset and add rules on its Rules card — see Add rules to a data asset.
Browse the expectation gallery from the suite editorUse Add rule on the asset's Rules card, which opens the rule gallery — see Rules.
Write custom SQL or row-condition rules in a suiteSame rule types, on the asset — see Custom SQL rules and Row conditions.
Reuse one suite across several tablesSave the rules as a rule template and apply it to each asset.
Run a suite with Run nowRun the asset's rules from its page (its default validation), or run a validation.
Add an asset (and so its suite) to a validation's asset listPick the asset's rules for the validation: all of its current rules, or some. A rule added to the asset later joins its asset's default validation and the validations you pick for it, not every validation automatically. See Validations → Choosing an asset's rules.

What happened to your data​

Nothing was lost. Each suite's rules were already first-class rules on their asset, and a validation that listed an asset holds every rule that asset had when suites were retired. Past results stay on the Results page; results written before the change still show the suite they ran (rule_suite_name).

For API and integration users​

The legacy endpoints are a deprecated, read-only alias for one release, and are removed in the next major SDK release:

  • GET /api/v1/.../rule-suites and GET .../rule-suites/{id} return the legacy suites with deprecated: true. For a suite attached to an asset, suite.rules is the asset's live rules.
  • POST .../rule-suites/{id}/validate (the dry-run lint) still works.
  • GET /api/v1/.../validation-configs[/{id}] returns the legacy rows.
  • Every write to /rule-suites or /validation-configs (create, replace, edit, delete) returns 410 Gone.
  • The validation asset-list endpoints are deprecated too: GET .../validations/{id}/members returns a list derived from the validation's rules, and POST / DELETE on members return 410 Gone.

Every alias response carries Deprecation: true and a Link header to its successor. Read rules with GET /api/v2/.../rules (filter by data_asset_id or validation_id) and write them on their asset (/api/v2/.../data-assets/{asset_id}/rules) — see Rules → API and the API reference. The Python and TypeScript SDKs have a rules resource, and the MCP server has mc_rule_* tools; client.rule_suites / client.ruleSuites and the mc_rule_suite_* tools are deprecated aliases.

dbt artifact ingestion no longer creates a dbt:<datasource_id> rule set: each imported result names its data asset directly, and the ingest response's rule_suite_id is always null.