Define and manage properties in your Data Catalog project using YAML configuration files.
Available Plans
free
starter
growth
enterprise
4 minute read
Properties provide context to your events by capturing additional attributes and metadata. This guide shows you how to define and manage properties in your Data Catalog using YAML configuration files.
Property types
RudderStack supports the following property types in your Data Catalog:
Property type
Description
String
Text values
Integer/Number
Number values
Boolean
True/False values
Array
Lists of values
Object
Nested structures
Custom Types
User-defined types with specific validation rules
Define properties
Using your preferred text editor, create a YAML file in your Data Catalog project and add the below content:
Basic structure
You can define properties in YAML files with the kind: properties specification. See Data Catalog YAML Reference for the detailed YAML spec containing property definitions.
Optional description (description) and validation rules
The following snippets highlight the YAML definitions for different property types:
- id:product_pricename:"Price"type:numberdescription:"Product price in USD"- id:is_premiumname:"isPremium"type:booleandescription:"Whether the user has a premium subscription"
You can group related properties in a single YAML file based on business context (like user profiles or product details) or other logical categories. Define each group with a unique metadata.name and list related properties under spec.properties.
When defining property groups, ensure that:
Properties in the same group share similar validation requirements
Related properties that are often used together in tracking plans are grouped together
Each property group has a clear, specific purpose (for example, user_properties for user-related attributes)
The following examples show how to organize properties into meaningful groups:
version:rudder/v0.1kind:propertiesmetadata:name:user_propertiesspec:properties:- id:user_idname:"ID"type:stringdescription:"Unique identifier for the user"propConfig:minLength:1maxLength:64- id:emailname:"Email"type:stringdescription:"User's email address"propConfig:format:"email"- id:account_typename:"Account Type"type:stringdescription:"Type of user account"propConfig:enum:- "personal"- "business"- "enterprise"
version:rudder/v0.1kind:propertiesmetadata:name:product_propertiesspec:properties:- id:product_idname:"Product ID"type:stringdescription:"Unique identifier for the product"propConfig:pattern:"^PRD-[0-9]{6}$"- id:pricename:"Price"type:numberdescription:"Product price in USD"propConfig:minimum:0exclusiveMinimum:true- id:categoriesname:"Categories"type:arraydescription:"Product categories"propConfig:minItems:1maxItems:3uniqueItems:true
Best practices
Follow these best practices when defining properties and property groups:
Naming conventions
Use clear, descriptive names
Follow consistent casing
Use meaningful prefixes for grouping
Organization
Use property groups to group related properties together
Use meaningful names that reflect the group’s purpose
Validation
Add meaningful constraints
Document validation requirements
Test edge cases
Validate and deploy properties
Before deploying your properties to the workspace, validate them to ensure they follow the correct structure and meet your requirements.
Validate properties
Run the following command to validate your property definitions:
rudder-cli tp validate -l ~/tutorial-catalog
The command checks your property definitions for:
Required fields and correct structure
Valid property types and validation rules
Unique identifiers across your catalog
Proper YAML syntax
If validation succeeds, the command returns no output. If it finds any issues, it displays specific error messages to help you fix them.
Deploy properties
After validating your properties, deploy them to your RudderStack workspace:
This site uses cookies to improve your experience while you navigate through the website. Out of
these
cookies, the cookies that are categorized as necessary are stored on your browser as they are as
essential
for the working of basic functionalities of the website. We also use third-party cookies that
help
us
analyze and understand how you use this website. These cookies will be stored in your browser
only
with
your
consent. You also have the option to opt-out of these cookies. But opting out of some of these
cookies
may
have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This
category only includes cookies that ensures basic functionalities and security
features of the website. These cookies do not store any personal information.
This site uses cookies to improve your experience. If you want to
learn more about cookies and why we use them, visit our cookie
policy. We'll assume you're ok with this, but you can opt-out if you wish Cookie Settings.