Where policies live
Three options, from simplest to most distributed:Tero
Policies live in Tero. You review and approve them in the interface. This is the default and the easiest way to start. Good for: Getting started, small teams, centralized control.Central repository
Policies sync to a dedicated Git repository. The platform team maintains it. Changes go through pull requests. You get version history, code review, and audit trails.Service repositories
Policies sync to each service’s repository in a.tero/ folder. Engineers see exactly what’s happening to their service’s data. Changes come via PR, either from Tero or from engineers directly.
.tero/ folder pattern follows what engineers already know: .github/, .vscode/, .eslintrc. Configuration that lives with the code.
When Tero drops or transforms data from a service, the policy is right there for engineers to see. They can review what’s happening to their telemetry, understand why a policy exists, propose changes via PR, or override if something’s wrong.
Changes flow both ways. Tero proposes policies. Engineers can accept, modify, or reject them. If an engineer edits a policy directly in the repo, Tero picks up the change.
Good for: Distributed ownership, no surprises, service teams own their policies.
How sync works
Git is the source of truth. Tero proposes, you approve, Git stores, Tero enforces.- Tero detects an issue and generates a policy
- Tero opens a PR to add the policy to your repo
- You review, edit if needed, merge
- Tero enforces what’s in the repo
Version control
Every policy change is tracked:- Who approved or modified it
- When the change happened
- Why (linked to the detection that triggered it)
- What the previous version looked like