dbt-contracts

📜 Guides & Getting Started

  • Installation
  • Quick Start
    • Example configuration
  • Commands
  • Pre-commit

📖 Contracts Reference

  • Models
    • Filters
      • name
      • path
      • tag
      • meta
      • is_materialized
    • Validations
      • has_properties
      • has_description
      • has_required_tags
      • has_allowed_tags
      • has_required_meta_keys
      • has_allowed_meta_keys
      • has_allowed_meta_values
      • exists
      • has_tests
      • has_all_columns
      • has_expected_columns
      • has_matching_description
      • has_contract
      • has_valid_ref_dependencies
      • has_valid_source_dependencies
      • has_valid_macro_dependencies
      • has_no_final_semicolon
      • has_no_hardcoded_refs
      • has_constraints
    • Generator
    • Columns
  • Sources
    • Filters
      • name
      • path
      • tag
      • meta
      • is_enabled
    • Validations
      • has_properties
      • has_description
      • has_required_tags
      • has_allowed_tags
      • has_required_meta_keys
      • has_allowed_meta_keys
      • has_allowed_meta_values
      • exists
      • has_tests
      • has_all_columns
      • has_expected_columns
      • has_matching_description
      • has_loader
      • has_freshness
      • has_downstream_dependencies
    • Generator
    • Columns
  • Columns
    • Filters
      • name
      • tag
      • meta
    • Validations
      • has_description
      • has_required_tags
      • has_allowed_tags
      • has_required_meta_keys
      • has_allowed_meta_keys
      • has_allowed_meta_values
      • exists
      • has_tests
      • has_expected_name
      • has_data_type
      • has_matching_description
      • has_matching_data_type
      • has_matching_index
    • Generator
  • Macros
    • Filters
      • name
      • path
    • Validations
      • has_properties
      • has_description
    • Arguments
  • Arguments
    • Filters
      • name
    • Validations
      • has_description
      • has_type

🧩 API Reference

  • API Reference
    • dbt Contracts
      • CLI
        • CoreArgs
          • CoreArgs.prog
          • CoreArgs.profiles_dir
          • CoreArgs.project_dir
          • CoreArgs.profile
          • CoreArgs.target
          • CoreArgs.threads
          • CoreArgs.clean
          • CoreArgs.deps
          • CoreArgs.config
          • CoreArgs.contract
          • CoreArgs.files
          • CoreArgs.settings_customise_sources()
          • CoreArgs.parse()
          • CoreArgs.run()
          • CoreArgs.to_namespace()
        • CleanCommand
          • CleanCommand.prog
          • CleanCommand.cli_cmd()
        • DepsCommand
          • DepsCommand.prog
          • DepsCommand.cli_cmd()
        • ParseCommand
          • ParseCommand.prog
          • ParseCommand.cli_cmd()
        • DocsCommand
          • DocsCommand.prog
          • DocsCommand.cli_cmd()
        • ValidateCommand
          • ValidateCommand.prog
          • ValidateCommand.output
          • ValidateCommand.format
          • ValidateCommand.no_fail
          • ValidateCommand.terms
          • ValidateCommand.cli_cmd()
        • GenerateCommand
          • GenerateCommand.prog
          • GenerateCommand.cli_cmd()
        • MainCommand
          • MainCommand.prog
          • MainCommand.operation
          • MainCommand.cli_cmd()
        • clean()
        • deps()
        • parse()
        • docs()
        • validate()
        • generate()
      • Contracts
        • Contract
          • Contract.config_key
          • Contract.context
          • Contract.filtered_items
          • Contract.from_dict()
          • Contract.generate()
          • Contract.items
          • Contract.needs_catalog
          • Contract.needs_manifest
          • Contract.validate()
          • Contract.validate_conditions()
          • Contract.validate_terms()
          • Contract.manifest
          • Contract.catalog
          • Contract.conditions
          • Contract.terms
          • Contract.generator
        • ChildContract
          • ChildContract.config_key
          • ChildContract.filtered_items
          • ChildContract.generate()
          • ChildContract.items
          • ChildContract.validate()
          • ChildContract.parent
        • ParentContract
          • ParentContract.child_config_key
          • ParentContract.create_child_contract()
          • ParentContract.create_child_contract_from_dict()
          • ParentContract.filtered_items
          • ParentContract.generate()
          • ParentContract.validate()
        • ModelContract
          • ModelContract.items
        • SourceContract
          • SourceContract.items
        • ColumnContract
          • ColumnContract.items
        • MacroContract
          • MacroContract.items
        • MacroArgumentContract
          • MacroArgumentContract.items
        • ContractContext
          • ContractContext.add_result()
          • ContractContext.catalog
          • ContractContext.manifest
          • ContractContext.properties
          • ContractContext.results
        • ContractPart
          • ContractPart.name
        • Conditions
          • ContractCondition
            • ContractCondition.run()
          • Properties
            • NameCondition
              • NameCondition.run()
            • PathCondition
              • PathCondition.unify_chunked_path_values()
              • PathCondition.run()
            • TagCondition
              • TagCondition.tags
              • TagCondition.run()
            • MetaCondition
              • MetaCondition.meta
              • MetaCondition.make_meta_values_tuple()
              • MetaCondition.run()
            • IsMaterializedCondition
              • IsMaterializedCondition.run()
          • Source
            • IsEnabledCondition
              • IsEnabledCondition.run()
        • Generators
          • PropertyGenerator
            • PropertyGenerator.run()
            • PropertyGenerator.overwrite
          • PropertiesGenerator
            • PropertiesGenerator.generators
            • PropertiesGenerator.merge()
            • PropertiesGenerator.exclude
          • ParentPropertiesGenerator
            • ParentPropertiesGenerator.generate_properties_path()
            • ParentPropertiesGenerator.model_post_init()
            • ParentPropertiesGenerator.update()
            • ParentPropertiesGenerator.filename
            • ParentPropertiesGenerator.depth
          • ChildPropertiesGenerator
            • ChildPropertiesGenerator.merge()
          • Column
            • ColumnPropertyGenerator
            • SetColumnDescription
              • SetColumnDescription.run()
            • SetDataType
              • SetDataType.run()
            • ColumnPropertiesGenerator
              • ColumnPropertiesGenerator.exclude
              • ColumnPropertiesGenerator.description
              • ColumnPropertiesGenerator.data_type
              • ColumnPropertiesGenerator.merge()
          • Model
            • ModelPropertiesGenerator
              • ModelPropertiesGenerator.model_post_init()
          • Node
            • NodePropertyGenerator
            • SetNodeDescription
              • SetNodeDescription.run()
            • SetNodeColumns
              • SetNodeColumns.add
              • SetNodeColumns.remove
              • SetNodeColumns.order
              • SetNodeColumns.run()
            • NodePropertiesGenerator
              • NodePropertiesGenerator.exclude
              • NodePropertiesGenerator.description
              • NodePropertiesGenerator.columns
              • NodePropertiesGenerator.merge()
              • NodePropertiesGenerator.model_post_init()
          • Properties
            • SetDescription
              • SetDescription.terminator
          • Source
            • SourcePropertiesGenerator
              • SourcePropertiesGenerator.model_post_init()
        • Matchers
          • RangeMatcher
            • RangeMatcher.min_count
            • RangeMatcher.max_count
            • RangeMatcher.validate_max_count()
          • StringMatcher
            • StringMatcher.ignore_whitespace
            • StringMatcher.case_insensitive
            • StringMatcher.compare_start_only
          • PatternMatcher
            • PatternMatcher.include
            • PatternMatcher.exclude
            • PatternMatcher.match_all
        • Result
          • Result
            • Result.name
            • Result.path
            • Result.result_type
            • Result.result_level
            • Result.result_name
            • Result.message
            • Result.properties_path
            • Result.properties_start_line
            • Result.properties_start_col
            • Result.properties_end_line
            • Result.properties_end_col
            • Result.parent_id
            • Result.parent_name
            • Result.parent_type
            • Result.index
            • Result.resource_type
            • Result.has_parent
            • Result.from_resource()
            • Result.as_github_annotation()
            • Result.can_format_to_github_annotation
          • ModelResult
            • ModelResult.resource_type
          • SourceResult
            • SourceResult.resource_type
          • ColumnResult
            • ColumnResult.resource_type
            • ColumnResult.from_resource()
          • MacroResult
            • MacroResult.resource_type
          • MacroArgumentResult
            • MacroArgumentResult.resource_type
            • MacroArgumentResult.from_resource()
        • Terms
          • ContractTerm
            • ContractTerm.needs_catalog
            • ContractTerm.needs_manifest
            • ContractTerm.run()
          • ChildContractTerm
            • ChildContractTerm.run()
          • ParentContractTerm
          • Column
            • ColumnContractTerm
            • Exists
              • Exists.needs_catalog
              • Exists.run()
            • HasTests
              • HasTests.needs_manifest
              • HasTests.run()
            • HasExpectedName
              • HasExpectedName.patterns
              • HasExpectedName.make_pattern_values_tuple()
              • HasExpectedName.run()
            • HasDataType
              • HasDataType.run()
            • HasMatchingDescription
              • HasMatchingDescription.needs_catalog
              • HasMatchingDescription.run()
            • HasMatchingDataType
              • HasMatchingDataType.needs_catalog
              • HasMatchingDataType.run()
            • HasMatchingIndex
              • HasMatchingIndex.needs_catalog
              • HasMatchingIndex.run()
          • Macro
            • HasType
              • HasType.run()
          • Model
            • HasConstraints
              • HasConstraints.run()
          • Node
            • NodeContractTerm
            • Exists
              • Exists.needs_catalog
              • Exists.run()
            • HasTests
              • HasTests.needs_manifest
              • HasTests.run()
            • HasAllColumns
              • HasAllColumns.needs_catalog
              • HasAllColumns.run()
            • HasExpectedColumns
              • HasExpectedColumns.columns
              • HasExpectedColumns.run()
            • HasMatchingDescription
              • HasMatchingDescription.needs_catalog
              • HasMatchingDescription.run()
            • HasContract
              • HasContract.run()
            • HasValidUpstreamDependencies
              • HasValidUpstreamDependencies.needs_manifest
            • HasValidRefDependencies
              • HasValidRefDependencies.run()
            • HasValidSourceDependencies
              • HasValidSourceDependencies.run()
            • HasValidMacroDependencies
              • HasValidMacroDependencies.run()
            • HasNoFinalSemicolon
              • HasNoFinalSemicolon.run()
            • HasNoHardcodedRefs
              • HasNoHardcodedRefs.comments_pattern
              • HasNoHardcodedRefs.cte_keywords
              • HasNoHardcodedRefs.cte_pattern
              • HasNoHardcodedRefs.ref_keywords
              • HasNoHardcodedRefs.ref_ignore
              • HasNoHardcodedRefs.run()
          • Properties
            • HasProperties
              • HasProperties.run()
            • HasDescription
              • HasDescription.run()
            • HasRequiredTags
              • HasRequiredTags.tags
              • HasRequiredTags.run()
            • HasAllowedTags
              • HasAllowedTags.tags
              • HasAllowedTags.run()
            • HasRequiredMetaKeys
              • HasRequiredMetaKeys.keys
              • HasRequiredMetaKeys.run()
            • HasAllowedMetaKeys
              • HasAllowedMetaKeys.keys
              • HasAllowedMetaKeys.run()
            • HasAllowedMetaValues
              • HasAllowedMetaValues.meta
              • HasAllowedMetaValues.make_meta_values_tuple()
              • HasAllowedMetaValues.run()
          • Source
            • HasLoader
              • HasLoader.run()
            • HasFreshness
              • HasFreshness.run()
            • HasDownstreamDependencies
              • HasDownstreamDependencies.needs_manifest
              • HasDownstreamDependencies.run()
        • Utils
          • to_tuple()
          • merge_maps()
          • get_matching_catalog_table()
          • get_absolute_project_path()
      • dbt CLI
        • get_config()
        • add_default_args()
        • load_artifact()
        • get_result()
        • clean_paths()
        • install_dependencies()
        • get_manifest()
        • get_catalog()
      • Formatters
        • ResultsFormatter
          • ResultsFormatter.add_results()
          • ResultsFormatter.build()
        • Table
          • TableCellBuilder
            • TableCellBuilder.key
            • TableCellBuilder.prefix
            • TableCellBuilder.alignment
            • TableCellBuilder.colour
            • TableCellBuilder.min_width
            • TableCellBuilder.max_width
            • TableCellBuilder.wrap
            • TableCellBuilder.validate_wrap()
            • TableCellBuilder.prefix_coloured
            • TableCellBuilder.build()
          • TableRowBuilder
            • TableRowBuilder.cells
            • TableRowBuilder.separator
            • TableRowBuilder.colour
            • TableRowBuilder.remap_and_validate_cells()
            • TableRowBuilder.separator_coloured
            • TableRowBuilder.get_widths_from_lines()
            • TableRowBuilder.extend_line_widths()
            • TableRowBuilder.build_lines()
            • TableRowBuilder.join()
            • TableRowBuilder.build()
          • TableFormatter
            • TableFormatter.builder
            • TableFormatter.consistent_widths
            • TableFormatter.widths
            • TableFormatter.add_header()
            • TableFormatter.add_results()
            • TableFormatter.build()
          • GroupedTableFormatter
            • GroupedTableFormatter.formatter
            • GroupedTableFormatter.group_key
            • GroupedTableFormatter.header_key
            • GroupedTableFormatter.sort_key
            • GroupedTableFormatter.add_results()
            • GroupedTableFormatter.build()
      • Properties
        • SafeLineLoader
          • SafeLineLoader.construct_mapping()
        • IndentedDumper
          • IndentedDumper.increase_indent()
        • PropertiesIO
          • PropertiesIO.get_path()
          • PropertiesIO.save()
      • Runner
        • ContractsRunner
          • ContractsRunner.default_config_file_name
          • ContractsRunner.default_output_file_name
          • ContractsRunner.output_writers_map
          • ContractsRunner.config
          • ContractsRunner.dbt
          • ContractsRunner.manifest
          • ContractsRunner.catalog
          • ContractsRunner.paths
          • ContractsRunner.from_config()
          • ContractsRunner.from_args()
          • ContractsRunner.from_file()
          • ContractsRunner.from_yaml()
          • ContractsRunner.from_json()
          • ContractsRunner.from_dict()
          • ContractsRunner.validate()
          • ContractsRunner.generate()
          • ContractsRunner.log_results()
          • ContractsRunner.write_results()
      • Types

🛠️ Project Info

  • Release History
    • 1.1.0
      • Added
      • Changed
      • Fixed
      • Documentation
    • 1.0.9
      • Fixed
    • 1.0.8
      • Fixed
    • 1.0.7
      • Changed
    • 1.0.6
      • Fixed
    • 1.0.5
      • Fixed
    • 1.0.4
      • Fixed
    • 1.0.3
      • Changed
    • 1.0.2
      • Fixed
    • 1.0.1
      • Fixed
    • 1.0.0
  • Contributing
    • Setup your development environment
    • Development commands
    • Making changes and testing
    • Submitting your changes for review
  • Licence
dbt-contracts
  • Search


© Copyright 2026, George Martin Marino.

Built with Sphinx using a theme provided by Read the Docs.