BUILDING Parts of this page describe what is not built yet, and each says so.
The AI policy
What the policy says AI may do in your organisation is one answer for each place it could be asked: the organisation, each project and environment, and each layer inside one. The control plane works the answer out and the console and the command line show it. Neither works it out for itself, so what you read is what the control plane holds.
A task for a project where AI is off is refused, and the refusal names the place that said so. A task can be started, and what it is about is checked as the person who asks: a thing they cannot see reads as absent. It then waits queued: no gateway claims a task yet, so none runs and nothing is spent. A model call and an admission are not checked against the policy yet. A change to it is recorded at once and takes effect where those checks are made, as they are built.
One answer per scope
The organisation sets a ceiling. A project and a layer can be stricter than the ceiling and never looser, so the strictest value wins and the answer names the place that decided it. These are the settings:
| Setting | What it says |
|---|---|
| AI | Whether the policy lets AI be used at all, on or off. |
| Row samples | Whether a sample of a table's rows may be shown to a model, on or off. |
| Prompt text | Whether the text of each model call's prompt is stored, on or off. A trial cannot turn it on. No prompt text is stored yet. |
| Regions | The regions a model call may be processed in, when the organisation has set them. A model call is not checked against it yet. |
| Excluded layers | The layers of a project that AI may not read. A restricted layer is excluded by default. |
| Masking of free text | The kinds of personal data masked in free text, when the organisation has set them. Nothing masks free text before a model call yet. |
Apart from AI, which is checked when a task starts, no setting here is checked against a model call yet.
Where a value came from
Every value carries its source, and a Why beside each row opens the steps the control plane took to reach it, one sentence for each. A source is one of four:
- The default for your plan, when nothing has set the value.
- The organisation's policy, with the version that set it and who set or approved it.
- A project's policy, the file kept with the project's configuration.
- A layer's exclusion, either named in the project's policy or by the default for a restricted layer.
A value that came from a scope above the one you are reading is marked as inherited. A value the control plane did not report is shown as not reported, never as a default of the console's own.
Changing it
At the organisation, a change either makes the policy stricter or looser, and the two are treated differently.
- A narrowing is recorded at once. An owner or an admin turns something off, from the console or with an API token, and nobody else has to agree. Turning AI off for the whole organisation also ends every task the organisation has waiting or running, with the reason ai_off, and the answer says how many. A project or a layer turned off in a file ends none yet.
- A widening is a request. It is made from a console session whose person confirmed it is them within the last five minutes, and it waits for a different owner or admin, who approves it with a confirmation from the last five minutes too. The change is recorded with both names. An API token can narrow and cannot widen, and a person cannot approve their own request while another owner or admin could.
- An organisation with nobody else who can approve has no second pair of eyes to ask. That is an organisation where no other owner or admin is active: one owner on their own, or one owner beside analysts, engineers and viewers, who cannot approve a widening. The owner approves their own request after typing the organisation's name, and the change is recorded as a self-approval. A second owner or admin, once they can sign in, is asked instead.
Only one widening can wait at a time. A widening that nobody approves expires 14 days after it was asked, and the person who asked can take it back before then, with Withdraw on the waiting request on the Policy tab, from their own signed-in session (an API token cannot, even one they minted). Nobody else can withdraw it, and withdrawing needs no recent sign-in, because it only makes the policy stricter.
At a project or a layer, the policy is a file kept with the project's configuration, so a change is a change set like any other: planned, reviewed and approved. Making it stricter follows the environment's review policy. Making it looser waits for an owner or an admin, outside production too, and turning prompt text on also needs the approver's confirmation from the last five minutes. The console's Propose a change opens the planner with the project's file filled in and sends nothing until you plan it. An agent can read the policy and cannot propose a change to it.
Reading it from the command line
rl ai policy prints what the control plane reports for each scope: each setting,
its value, its source, the control plane's own detail and the steps it took, and any
widening that is waiting, with who asked and when. -project and
-env name where to read; with no project it reads every project your credential
can see and says so on its standard error. -o json prints the response as one
JSON document. The command only reads: there is no way to change a setting from it, and
none of its flags can carry a key or a secret.
It exits 0 when it printed the policy, 1 when the control plane refused the read, and 2 when nothing was read, so a script never mistakes a call that did not happen for an empty policy. The rest of the command line is on The rl command line.
What this page leaves out
It describes the policy and how it is read and changed. It does not describe how a model call is checked against it, because none is yet, which providers or models an organisation allows, how free text is masked, or the record kept for a regulator.