You are viewing documentation for an older version.
pb_project.yaml
2 minute read
The pb_project.yaml file contains the overall project configuration. This includes the entities and id_types that are used throughout the project.
Video walkthrough
Overview
The pb_project.yaml file is saved in the top level of a Profiles project.
name: project_name
schema_version: version_number
connection: connection_name
model_folders:
- directories
entities:
<entity-config>
id_types:
<id_type-config>
python_requirements: # Optional
- python_package==version
carry_forward_privileges: true / false| Field | Description |
|---|---|
nameRequired | Project name. |
schema_versionRequired | Project’s YAML version. |
connectionRequired | Connection name from siteconfig.yaml. |
model_foldersRequired | Path to the folder containing the model files. |
entitiesRequired | List of entities used in the project. |
id_typesRequired | Configuration of all ID types across all entities. |
python_requirements | List of Python packages and versions required for the project, specifically used for controlling the Profiles version. |
carry_forward_privileges | Boolean that determines whether the privileges granted on the views should be retained after the view definitions are updated. This resolves the issue where recreating views for each model in the project led to revoked privileges. Note: Using this key can lead to some performance overhead. |
Example
# Project name
name: sample_attribution
schema_version: 85
connection: prod-db-profile
model_folders:
- models
entities:
- name: user
id_column_name: user_rud_id # Optional
id_types:
- user_id
- anonymous_id
- email
feature_views:
using_ids:
- id: email
name: customer_profile_by_email
id_types:
- name: anonymous_id
- name: email
filters:
- type: include
regex: ".+@.+"
- name: user_id
filters:
- type: exclude
value: "test"
python_requirements:
- profiles-rudderstack==0.19
carry_forward_privileges: false