# inputs.yaml

The [`inputs.yaml`]({{< ref "profiles/concepts/inputs.md" >}}) file contains the configuration of all [input sources](#input-sources) used in Profiles. This includes the ID graph, entity vars, feature view, etc.

```yaml
inputs:
    - name: input_name
      app_defaults:
        table: schema.table # Key must be only one of table/view/s3/csv
        occurred_at_col: time_series_column
        row_identifier: [list of identifiers for composite key]    # Optional
        ids:
            <id-config>
      where: <filtering_condition>
```

| Key | Description |
| :-----| :-------------- |
| `name` <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | The input name. |
| `contract` | Helps you handle any potential errors if the required column doesn't exist. <br /><br /><table><tr><th>Key</th><th>Description</th></tr><tr><td>`is_optional`</td><td>Boolean that indicates if the model is optional.</td></tr><tr><td>`is_event_stream`</td><td>Boolean indicating if the data is Event Stream (contains a `timestamp` column).</td></tr><tr><td>`with_entity_ids`</td><td>List of all entities.</td></tr><tr><td>`with_columns`</td><td>List of all ID columns that the contract is applicable for.</td></tr></table> |
| `app_defaults` <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | Input configuration. |
| `table`\ `view`\ `s3`\ `csv` <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | Source name, see [input sources](#input-sources). |
| `occurred_at_col` <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | Time series column. |
| `row_identifier` | List of all the identifiers that combine to create a composite primary key. |
| [`ids`]({{< ref "profiles/dev-docs/inputs-yaml/identifiers.md" >}}) <br/> <span style="color: #4D4DFF;font-size:12px;">Required</span> | All IDs in the input source, mapped to `entities` and `id_types` |
| `where` | The `WHERE` clause specifying the filtering condition. <br /><br />**Note**: The filtered row will not be considered for ID stitching as well. |

## Input sources

A source can be a warehouse table, view, Amazon S3 bucket, or CSV file. Only one key can be used per source.

| Key |  Description |
|:--------------|:--------------|
| `table` | Warehouse table name <br /><br />You can also refer to tables from other databases/schemas in the same data warehouse.|
| `view` | Warehouse view name. |
| `csv` | CSV file path. Note that this path should be relative to the project folder. <br/><br/>**Note**: RudderStack recommends using CSV file as an input only if you have limited amount of data. |
| [`s3`]({{< ref "profiles/dev-docs/inputs-yaml/s3-bucket-input.md" >}}) | Amazon S3 URI path. |

## Video walkthrough

{{< youtube qigqPmaRU_s >}}

