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
| Field | Type | Required | Meaning |
|---|---|---|---|
apiVersion |
string | Yes |
The config schema's version, which is independent of the HTTP API's (rule unsupported-api-version). Values: |
kind |
string | Yes |
The kind this file declares. A kind that disagrees with the file's path is refused (rule kind-mismatch). Values: |
metadata |
object | Yes |
No description
|
metadata. |
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. |
map of string | No |
No description
|
metadata. |
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. |
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. |
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. |
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.