Saved Queries
The SavedQueryController provides a reusable query library where users can save, organize, share, and discover SQL queries.
Base Path
/v1/saved-queriesCreate a Saved Query
curl -X POST http://query-engine:8080/v1/saved-queries \
-H "Content-Type: application/json" \
-H "X-Tenant-ID: 550e8400-e29b-41d4-a716-446655440000" \
-H "X-User-ID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8" \
-H "Authorization: Bearer $JWT_TOKEN" \
-d '{
"name": "Top Customers by Revenue",
"description": "Monthly revenue ranking of top 100 customers",
"sql": "SELECT c.name, SUM(o.total) as revenue FROM customers c JOIN orders o ON c.id = o.customer_id WHERE o.order_date >= date_trunc('\''month'\'', current_date) GROUP BY c.name ORDER BY revenue DESC LIMIT 100",
"tags": ["revenue", "customers", "monthly"],
"isPublic": true
}'Browse Queries
# Get all accessible queries (own + public)
curl "http://query-engine:8080/v1/saved-queries?page=0&size=20" \
-H "X-Tenant-ID: ..." \
-H "X-User-ID: ..." \
-H "Authorization: Bearer $JWT_TOKEN"
# Get only my queries
curl "http://query-engine:8080/v1/saved-queries/my?page=0&size=20" \
-H "X-Tenant-ID: ..." \
-H "X-User-ID: ..." \
-H "Authorization: Bearer $JWT_TOKEN"
# Search queries
curl "http://query-engine:8080/v1/saved-queries/search?q=revenue&page=0&size=20" \
-H "X-Tenant-ID: ..." \
-H "X-User-ID: ..." \
-H "Authorization: Bearer $JWT_TOKEN"
# Get queries by tag
curl "http://query-engine:8080/v1/saved-queries/tag/revenue" \
-H "X-Tenant-ID: ..." \
-H "X-User-ID: ..." \
-H "Authorization: Bearer $JWT_TOKEN"
# Get most popular queries
curl "http://query-engine:8080/v1/saved-queries/popular?page=0&size=10" \
-H "X-Tenant-ID: ..." \
-H "X-User-ID: ..." \
-H "Authorization: Bearer $JWT_TOKEN"Update and Delete
# Update a saved query
curl -X PUT http://query-engine:8080/v1/saved-queries/{queryId} \
-H "Content-Type: application/json" \
-H "X-Tenant-ID: ..." \
-H "X-User-ID: ..." \
-H "Authorization: Bearer $JWT_TOKEN" \
-d '{"name": "Updated Name", "sql": "...", "isPublic": false}'
# Delete a saved query
curl -X DELETE http://query-engine:8080/v1/saved-queries/{queryId} \
-H "X-Tenant-ID: ..." \
-H "X-User-ID: ..." \
-H "Authorization: Bearer $JWT_TOKEN"Visibility Model
| Visibility | Description |
|---|---|
Private (isPublic: false) | Only visible to the creator |
Public (isPublic: true) | Visible to all users in the tenant |