Skip to content
RunningLake
Contents: Reference

BUILDING Parts of this page describe what is not built yet, and each says so.

SQLEnginePolicy

A SQLEnginePolicy as RunningLake's configuration repository declares it, at sql/engines.yaml. Generated from the Go types the control plane decodes this file into, so it checks the shape the gate reads — field names and types, and which fields may exist. The gate also applies rules no schema can express — required fields inside spec among them — so a file this schema accepts can still be refused by `rl diff`. Take #/properties/spec for the spec alone.

Recorded, and not yet checked. This file belongs to your organisation, not to an environment, and is read from one project: the one an owner designates for the organisation’s settings. A copy in any other project is not read. A push that only takes an engine away from a role applies at the next sync. A push that gives a role an engine is not applied: the control plane keeps the grants it had and lists the change as held until an owner or an admin confirms it with a fresh confirmation. A file that cannot be read gives nobody an engine.

What that does not do: no query reads these grants yet, so the engine a role runs ad-hoc SQL on does not change because of this file; it cannot tell who pushed a change; and designating a project that does not hold the file takes away every engine a file had granted.

File: sql/engines.yaml

Fields

FieldTypeRequiredMeaning
apiVersion string Yes

The config schema's version, which is independent of the HTTP API's (rule unsupported-api-version).

Values: runninglake.io/v1alpha1

kind string Yes

The kind this file declares. A kind that disagrees with the file's path is refused (rule kind-mismatch).

Values: SQLEnginePolicy

metadata object Yes
No description
metadata.name string Yes

The resource's name, which is also its path segment. It must be the name this file's path gives it (rule name-mismatch).

metadata.labels map of string No
No description
metadata.annotations map of string No
No description
spec object No

SQLEnginePolicySpec says which engine each of your roles may run ad-hoc SQL on. A role that is not named keeps the engine the platform pins for it.

spec.roles map of array of string No

Roles maps a role (owner, admin, engineer, analyst or viewer) to the engines it may run ad-hoc SQL on. The only engine is trino; DuckDB is not an engine ad-hoc SQL can be granted. A role listed with no engines, or not listed, has none. Giving a role an engine is held until an owner or admin confirms it; taking one away takes effect at the next sync. Required: write roles: {} to take every grant away.

spec.limits object No

Limits is the organisation's one limit on ad-hoc SQL. Optional: a file without it sets no limit, and so does a file that is gone.

spec.limits.maxWarmMinutes integer No

MaxWarmMinutes is the longest, in whole minutes from 1 to 1440, that any project may keep the engine warm after its last query. Optional: absent means no limit. Lowering it takes effect at the next sync; raising it, or removing it, is held until an owner or admin confirms it, because a longer warm time is spend. A project that already sets more keeps its own number and runs on the lesser of the two.

A nested field is written with its parents, spec.a.b; an item of a list is [] and a value of a map is *. Required means the parent object must carry the field; the rules a schema cannot express, such as a field that is required only inside spec, are checked by rl diff.

The schema

This page is read from the kind’s published schema, at https://runninglake.com/schema/v1alpha1/sqlenginepolicy.json. An editor that follows it checks a file of this kind as you type. To see the fields of a kind’s spec from the command line, run rl schema with the kind’s name: it works offline and prints what the gate accepts. The command reference has the rest.

All kinds