Creating a query
- Open the Queries tab in the app editor
- Click “New Query”
- Select a connection
- Write your SQL query
- Click “Run” to test
- Save your query
Writing SQL
Telemetry supports standard PostgreSQL SQL syntax. Write queries just like you would in any SQL client.Query execution
Queries are executed when the app loads. Query results are stored in state and can be accessed in component transforms usingquery(slug).
Using queries in components
After creating a query, you can use it in code mode transforms:query() function returns:
| Property | Type | Description |
|---|---|---|
columns | string[] | Column names from the query |
rows | object[] | Array of row data |
count | number | Number of rows returned |
executedAt | string | ISO timestamp of last execution |
State
Query results are automatically stored in the app’s state system. This means:- Results are available immediately in transforms via
query(slug) - Results persist across component re-renders
- Results are cached in IndexedDB with a 10-minute TTL
Best practices
Security
- Never interpolate user input directly into SQL strings
- Limit permissions on your database user
- Use read-only users for dashboards
Performance
- Add
LIMITclauses to prevent loading too much data - Use
WHEREclauses to filter at the database level - Create indexes on frequently queried columns
- Avoid
SELECT *— only select columns you need
Organization
- Give queries descriptive names (used as slugs in code)
- Add comments to complex queries