Rules
Here you can find an overview of all possible rules. Use the filter below to find the rules you need, or search using Ctrl or Cmd + K.
Manifest Rules
| Rule Name | Category | Description | Keywords |
|---|---|---|---|
| has_description | Manifest | Check if a description is populated. Ensures objects have a description in their schema (e.g. YAML) files. | description, documentation, yaml, schema |
| name_convention | Manifest | Check if object names follow casing (e.g.snake_case) or custom regex patterns. Enforces naming standards using configurable patterns. | naming, pattern, regex, conventions, prefixes |
| has_tags | Manifest | Check if objects have the required tags. Ensure proper categorization for selective execution. | tags, metadata, categorization, organization |
| is_not_orphaned | Manifest | Check if objects are referenced by other objects. Identifies orphaned data assets that may be unused or underutilized. | orphaned, unused, references, dependencies, lineage |
| has_unique_test | Manifest | Check if dbt objects have at least one uniqueness test attached. Supports standard and custom uniqueness tests. | tests, uniqueness, unique, validation, custom |
| has_metadata_keys | Manifest | Check if dbt objects has the provided keys in the metadata | tests, uniqueness, unique, validation, custom |
| has_refs | Manifest | Check if dbt objects have at least one upstream reference using ref() or source(). Identifies objects that may be using hardcoded SQL instead of leveraging dbt's dependency management. | references, upstream, dependencies, ref, source |
| max_code_lines | Manifest | Enforce a maximum line count for code. | code, lines, length, size, complexity |
Catalog Rules
Why differentiate between manifest and catalog?
These rules use both the manifest.json and catalog.json artifacts. These files can become out of sync during development (for example, when running dbtective in pre-commit hooks), especially if files are moved or renamed and only one of the commands generating manifest.json is run. For more information, see the dbt documentation on manifest.json.
To ensure your catalog is up to date, delete it from the dbt target folder and regenerate it using dbt docs generate. Future updates to dbtective will include an option to automate this process with a specific flag.
| Rule Name | Category | Description | Keywords |
|---|---|---|---|
| columns_all_documented | Catalog | Check if all SQL columns are documented in e.g. their yml file. Validates that database columns match documentation. | columns, catalog, database, schema, undocumented |
| columns_have_description | Catalog | Check if all documented columns have non-empty descriptions. Ensures column-level documentation is complete | columns, descriptions, documentation, catalog, database |
| columns_name_convention | Catalog | Check if column names follow casing (e.g.snake_case) or custom regex patterns. Enforces naming standards using configurable patterns. | columns, naming, pattern, regex, conventions |
| columns_canonical_name | Catalog | Enforce canonical column naming by flagging invalid name patterns. Supports exceptions for allowed variations. | columns, canonical, naming, standards, consistency |