An overview of Source properties
Let's review the properties available for declaring Sources on dbt.
Part of the “Mastering dbt” series. Access to the full Study Guide. Let’s connect on LinkedIn!
Notes from this documentation.
Below, we are going to cover the properties available to define your sources. If it’s not clear yet, review the difference between properties and configs.
Source properties

description:
Describes your source, the tables, and columns. Descriptions assigned here are used in the documentation generated by dbt. It can include markdown and doc blocks.
database:
The database your sources are in. By default, dbt looks for the tables in your target database.
schema:
The schema your sources are in. By default, dbt looks for a schema with the same name as the source name. This property is useful when you want your source name to be different from the schema name.
loader:
Allows you to define the tool used to load the source data. For documentation purposes only.
quoting:
Defines whether dbt should wrap the database, schema and table names (identifier) in quotes when resolving the {{ source( ) }} function. It can be defined at top level or at table level, with the most specific setup taking precedence.

Table and column level properties

identifier:
The table name as stored in the database. Useful if you want the table name on dbt to differ from the table name in the database.
data_tests:
Data tests will be covered in more detail in future Checkpoints.
external:
Allows dbt to create, refresh, or manage external tables if you use macros from the “dbt-external-tables” package.
Examples of external tables include tables backed by files in cloud storage (S3, GCS, Azure Blob), a Hive or Iceberg external table, or a table managed outside your warehouse but referenced inside it.
