Event Stream Source Management using Rudder CLI Quickstart
Alpha
Get started with creating and deploying an Event Stream source using the Rudder CLI tool.
Available Plans
- free
- starter
- growth
- enterprise
This quickstart guide shows you how to use the Rudder CLI tool to create and deploy an Event Stream source to your workspace.
Prerequisites
Run the following command and enter your access token when prompted:
2. Create a project directory
Create a project directory to store your source YAML files:

If you are already managing Tracking Plans or Data Catalog resources via CLI, you can add source definitions to the same project directory. The CLI processes all YAML files in the directory recursively.
3. Review the YAML reference
Before defining your Event Stream source, review the Source YAML Reference to understand:
- The complete YAML structure for Event Stream sources
- Required and optional fields for source configuration
- Governance validation settings and violation rules
- Reference syntax for linking sources to Tracking Plans

Understanding the YAML reference will help you create properly structured files and avoid common validation errors when defining your sources.
4. Define an Event Stream source
Create a YAML file for your Event Stream source (~/tutorial-sources/ios-source.yaml):
version: rudder/0.1
kind: event-stream-source
metadata:
name: ios-source
spec:
id: "my-ios-source"
type: "ios"
name: "iOS Source"
enabled: true
This example creates a basic iOS source without governance configuration. The source accepts events and is enabled by default.
5. Optional: Add governance configuration
If you want to associate a Tracking Plan with your source for data governance, update the YAML file to include governance settings:
version: rudder/0.1
kind: event-stream-source
metadata:
name: ios-source
spec:
id: "my-ios-source"
type: "ios"
name: "iOS Source"
enabled: true
governance:
validations:
tracking_plan: "#/tp/my-tracking-plan/my-tracking-plan"
config:
track:
propagate_violations: true
drop_unplanned_events: true
drop_unplanned_properties: true
drop_other_violations: true
identify:
propagate_violations: true
drop_unplanned_properties: true
drop_other_violations: true
In this example:
- The source is linked to a Tracking Plan referenced as
#/tp/my-tracking-plan/my-tracking-plan. - For
track events, violations are propagated, unplanned events are dropped, unplanned properties are dropped, and other violations are dropped. - For
identify events, violations are propagated, unplanned properties are dropped, and other violations are dropped.

The Tracking Plan reference follows the format #/tp/[metadata.name]/[tracking-plan.id], where metadata.name is the metadata.name value in your Tracking Plan YAML file and tracking-plan.id is the spec.id value of the Tracking Plan.
See Source YAML Reference for detailed information about these configuration options.
6. Validate and deploy
- Validate your files:
rudder-cli validate -l ~/tutorial-sources
- Optional: Review changes before deploying:
rudder-cli apply -l ~/tutorial-sources --dry-run
- Deploy changes to your workspace:
rudder-cli apply -l ~/tutorial-sources
Supported sources
You can define Event Stream source YAMLs only client-side and server-side SDK sources.

Rudder CLI does not support cloud apps and webhook sources currently.
Click here to view the full list of sources.
Web
Mobile
- Android
- iOS
- React Native
- Flutter
- Cordova
- Unity
Server
- Java
- .NET
- PHP
- Rust
- Python
- Go
- Node
- Ruby
- Unity
Next steps
Questions? Contact us by Email or on
Slack