[x] Support measure filters in metricsview package
[x] Deprecate metrics queries in queries package
[x] In runtime/metricsview, push unnest handling to dimension expression
[x] Use jsonval for metricsResolver
[ ] Migrate MetricsViewRows and MetricsViewSearch to use runtime/metricsview for query generation
[ ] Setup test fixtures for easily testing metrics queries against all backends
[ ] Migrate old metrics tests
[ ] Validation for advanced measures (including unnest)
[ ] Cache metrics view schema in state in reconciler
[ ] Migration of OLAP connector:
Check connector.druid.dsn and olap_connector is set for every Druid project
Remove DB driver and DSN from admin-side
Change OLAP config logic in local.NewApp
[ ] Test unnest for Druid and DuckDB (must not add prefix on Druid)
[ ] Test windowed measure partitioned by unnested dimension
[ ] Fix dynamic time range of P1Y becomes narrower than no time range
[ ] Clean up parse_metrics_view.go code
[ ] Deprecate rillv1beta compiler
[ ] In resolverResult, the rowLimit can be changed to SetCap
[ ] In resolverResult, the MarshalJSON can easily be optimized
[ ] Rename OLAPStore.Execute to OLAPStore.Query
[ ] Remove Measures in Subquery, replace it with a recursive scan of names in Having
[ ] Fix ordering of messages in api.proto
[ ] Rename ServiceToken to ServiceAuthToken for consistency
[ ] Incorporate Security.QueryFilter into metricssql
[ ] Drop V2 suffixes in resources.proto
[ ] Remove ReadProfiling and ReadRepo permissions in JWT on cloud
[ ] Add E2E tests for security policies
[ ] Add an option to custom APIs about whether or not to skip security policies on the underlying resolver
[ ] In the admin server, cleanup and reduce duplication in the calls to NewToken
[ ] Implement pagination for ListResources
[ ] Fix the exports in runtime/resolvers/sql.go
[ ] Simplify trigger API
[ ] Support triggers for alerts and reports
[ ] Fix +1 second issue in alert execution times (thread)
[ ] Remove the DDL functions from OLAPStore and make internal functions
[ ] Cleanup CPU/memory config (spread multiple places – DuckDB should get from the instance, the instance should discover CPU/memory instead of being set by the creator)
[ ] Change CORS on local to only allow requests from frontend (code here)
[ ] Support DataYAML in reports
[ ] Remove unused features in runtime/drivers/blob and move to runtime/pkg
[ ] Change ObjectStore.ListObjects to return an iterator
[ ] Change ObjectStore.DownloadFiles to accept a fixed options struct
[ ] Rename ObjectStore.DownloadFiles to DownloadObjects
[ ] Change SQLStore.Query[AsFiles] to accept a fixed options struct
[ ] Change globutil.URL to have Bucket instead of Host
[ ] Remove the EmbedCatalog option
[ ] Remove implementation of CatalogStore on the DuckDB driver (always use SQLite)
[ ] Panics from reparse are not caught by controller because the watcher is invoked in a different goroutine (causes a crash)
[ ] Change runtime/server/auth to use the external URL as the audience. And use auth_service_url for issuer.
[ ] Support rill env [<project>] instead "rill env --project" for consistency
[ ] Parse mock_users: in rill.yaml on the backend for correct validation
[ ] Rename "organization" to "org" everywhere
[ ] Rename resource "kind" to "type" internally
[ ] Support exports for custom APIs
[ ] Support returning user-defined 4xx errors from custom APIs (maybe with a {{ error ... }} template func)
[ ] Finalize support for multi-level aggregations ("per" key in advanced measures)
[ ] Support join_to_spine for time series
[ ] Remove ModelMaterializeDelaySeconds
[ ] Remove code marked deprecated for a long time
[ ] Remove BucketPlanner, PullTrigger and other deprecated/orphaned resources
[ ] Document resources.proto
[ ] Add a /v1 prefix to the ad-hoc endpoints (auth, Github, etc.) on the admin and runtime servers
[ ] The rill project logs command fails with ugly error messages when it times out. Here's an example, but it sometimes looks different (maybe if enforced at the ingress level instead?): Error: failed to watch logs: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp XXX.XXX.XXX.XXX:443: i/o timeout" (Unavailable)
[ ] When running rill user list on an org you're not a member of, it still partially succeeds as a superuser, which is confusing. It should fail immediately instead.
[ ] Validate the measure format_presets on the backend during metrics view validation.
[ ] Avoid upgrade in rill upgrade if version is already latest.
metricsview
packagequeries
packageruntime/metricsview
, push unnest handling to dimension expressionjsonval
for metricsResolverMetricsViewRows
andMetricsViewSearch
to useruntime/metricsview
for query generationunnest
)connector.druid.dsn
andolap_connector
is set for every Druid projectunnest
for Druid and DuckDB (must not add prefix on Druid)parse_metrics_view.go
coderillv1beta
compilerresolverResult
, therowLimit
can be changed toSetCap
resolverResult
, theMarshalJSON
can easily be optimizedOLAPStore.Execute
toOLAPStore.Query
Measures
inSubquery
, replace it with a recursive scan of names inHaving
api.proto
ServiceToken
toServiceAuthToken
for consistencySecurity.QueryFilter
into metricssqlV2
suffixes inresources.proto
ReadProfiling
andReadRepo
permissions in JWT on cloudadmin
server, cleanup and reduce duplication in the calls toNewToken
ListResources
runtime/resolvers/sql.go
OLAPStore
and make internal functionsDataYAML
in reportsruntime/drivers/blob
and move toruntime/pkg
ObjectStore.ListObjects
to return an iteratorObjectStore.DownloadFiles
to accept a fixed options structObjectStore.DownloadFiles
to DownloadObjectsSQLStore.Query[AsFiles]
to accept a fixed options structglobutil.URL
to have Bucket instead of HostEmbedCatalog
optionCatalogStore
on the DuckDB driver (always use SQLite)runtime/server/auth
to use the external URL as the audience. And useauth_service_url
for issuer.rill env [<project>]
instead "rill env --project" for consistencymock_users:
inrill.yaml
on the backend for correct validation{{ error ... }}
template func)join_to_spine
for time seriesModelMaterializeDelaySeconds
BucketPlanner
,PullTrigger
and other deprecated/orphaned resourcesresources.proto
/v1
prefix to the ad-hoc endpoints (auth, Github, etc.) on theadmin
andruntime
serversrill project logs
command fails with ugly error messages when it times out. Here's an example, but it sometimes looks different (maybe if enforced at the ingress level instead?):Error: failed to watch logs: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp XXX.XXX.XXX.XXX:443: i/o timeout" (Unavailable)
rill user list
on an org you're not a member of, it still partially succeeds as a superuser, which is confusing. It should fail immediately instead.format_preset
s on the backend during metrics view validation.upgrade
inrill upgrade
if version is already latest.