Skip to content

Commit 5d56e7b

Browse files
committed
test fixes
1 parent ae882c7 commit 5d56e7b

4 files changed

Lines changed: 28 additions & 4 deletions

File tree

runtime/drivers/registry.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ type Instance struct {
5757
// ProjectVariables contains default variables from rill.yaml
5858
// (NOTE: This can always be reproduced from rill.yaml, so it's really just a handy cache of the values.)
5959
ProjectVariables map[string]string `db:"project_variables"`
60+
// PresetConfigs contains preset InstanceConfig for the instance.
61+
PresetConfigs map[string]string `db:"preset_configs"`
6062
// FeatureFlags contains feature flags configured in rill.yaml
6163
FeatureFlags map[string]string `db:"feature_flags"`
6264
// Annotations to enrich activity events (like usage tracking)
@@ -71,8 +73,6 @@ type Instance struct {
7173
FrontendURL string `db:"frontend_url"`
7274
// Theme is the name of the theme resource to use for AI-generated charts.
7375
Theme string `db:"theme"`
74-
// PresetConfigs contains preset InstanceConfig for the instance.
75-
PresetConfigs map[string]string `db:"preset_configs"`
7676
}
7777

7878
// InstanceConfig contains dynamic configuration for an instance.

runtime/drivers/registry_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,27 @@ func testRegistry(t *testing.T, reg drivers.RegistryStore) {
8080
require.NoError(t, err)
8181
require.Equal(t, 1, len(insts))
8282
}
83+
84+
func TestInstanceConfig_PresetConfigsOverrideVariables(t *testing.T) {
85+
inst := &drivers.Instance{
86+
Variables: map[string]string{
87+
"rill.download_limit_bytes": "100",
88+
"rill.interactive_sql_row_limit": "200",
89+
},
90+
PresetConfigs: map[string]string{
91+
"rill.download_limit_bytes": "300",
92+
"rill.model.timeout_override": "400",
93+
},
94+
}
95+
96+
config, err := inst.Config()
97+
require.NoError(t, err)
98+
99+
// Variables are applied before preset configs, so overlapping preset values win.
100+
require.Equal(t, int64(300), config.DownloadLimitBytes)
101+
require.Equal(t, int64(200), config.InteractiveSQLRowLimit)
102+
require.Equal(t, uint32(400), config.ModelTimeoutOverride)
103+
104+
// Unrelated defaults should still remain intact.
105+
require.Equal(t, uint32(5), config.ModelConcurrentExecutionLimit)
106+
}

runtime/drivers/sqlite/backups.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ var (
3838
// Table `instances`.
3939
// It excludes the JSON columns due to a type mess up: the columns are TEXT, but we've been saving BLOB values to them.
4040
// SQLite weirdly allows this, but DuckDB chokes on it.
41-
"instances": "SELECT * EXCLUDE (variables, project_variables, feature_flags, annotations, connectors, project_connectors, public_paths) FROM instances",
41+
"instances": "SELECT * EXCLUDE (variables, project_variables, feature_flags, annotations, connectors, project_connectors, public_paths, preset_configs) FROM instances",
4242
// Table `instance_health`
4343
"instance_health": "SELECT * FROM instance_health",
4444
// Table `catalogv2` (NOTE: the `data` column has already been converted to JSON in rewriteSnapshotForAnalytics below).

runtime/server/instances.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ func (s *Server) CreateInstance(ctx context.Context, req *runtimev1.CreateInstan
112112
AIConnector: req.AiConnector,
113113
Connectors: req.Connectors,
114114
Variables: req.Variables,
115+
PresetConfigs: req.PresetConfig,
115116
Annotations: req.Annotations,
116117
FrontendURL: req.FrontendUrl,
117-
PresetConfigs: req.PresetConfig,
118118
}
119119

120120
err := s.runtime.CreateInstance(ctx, inst)

0 commit comments

Comments
 (0)