> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skypoint.ai/llms.txt
> Use this file to discover all available pages before exploring further.

#  

# Declaring a source

## Overview

The `source.yml` file in dbt project is used to define the source tables that will be transformed by dbt models. This file contains information such as the database name, schema, and corresponding tables for a given source. By using the `{{ source() }}` function, you can select from source tables in your models and establish the lineage of your data.

To use dbt transformations, you need to create the `source.yml` file. Here is an example of what the `source.yml` file might look like for a project that transforms data from a database:

```yaml theme={null}
Sources:

  - name: klaviyo
    database: platformdbtest\_production\_main
    schema: platformdbtest\_production
    tables:
      - name: campaigns
        identifier: klaviyo\_klaviyo\_campaign
      - name: events
        identifier: klaviyo\_klaviyo\_events

  - name: square
    database: platformdbtest\_production\_main
    schema: platformdbtest\_production
    tables:
      - name: orderlineitems
        identifier: square\_square\_orderlineitems
      - name: order
        identifier: square\_square\_order
      - name: location
        identifier: square\_square\_location  

```

In this example of a `source.yml` file for dbt transformation, there are two specified sources: `klaviyo` and `square`. The `klaviyo` source is in the `platformdbtest\_production\_main` database, `platformdbtest\_production` schema and has two tables that can be referenced in dbt models for transformations: `klaviyo\_klaviyo\_campaign` as campaigns and `klaviyo\_klaviyo\_events` as events.

You can use the `{{ source() }}` function to select from source tables in dbt models and establish data lineage. For example, if you create a model that references the `klaviyo\_klaviyo\_campaign` table from the `klaviyo` source, you can track the lineage of the data in your models. Similarly, if you create a model that references the `square\_square\_order` table from the `square` source, you can establish the data lineage for that table.
