Docs · Your machines

Organisation limits

Governance is your organisation's policy over its own fleet, inside what your plan already allows. It is not your plan, and it is not the hardware.

Three different things#

A workload refused by a quota would have fitted, and your plan would have permitted it. Collapsing any two of these sends a refused person to the wrong place.

What it isRemedyReason code
LimitWhat your plan grantsA purchaseLIMIT_REACHED, FEATURE_NOT_ENTITLED
QuotaYour organisation's own number, set inside the limitA colleague, this minuteQUOTA_EXCEEDED
PermissionWhat a principal in your organisation may doAn administrator—

Each has its own code, and a governance refusal can never carry a capacity or an entitlement code — because the code being right is no help if the sentence sends somebody to a plan.

Setting a policy#

Terminal
nodeau governance                          # show the current policy
nodeau governance --max-workloads 4
nodeau governance --max-gpus 2
nodeau governance --max-batch-workers 2
nodeau governance --allow-model qwen3.5-4b-q4km --allow-model finance-model
nodeau governance --allow-device GPU-c080d9be-9a09-0895-7162-fdb28011a7fd
nodeau governance --allow-node nodeforge
nodeau governance --clear
nodeau governance --json
FlagWhat it limits
--max-workloads <n>The most workloads that may run at once. 0 removes the quota
--max-gpus <n>The most graphics cards in use at once. 0 removes the quota
--max-batch-workers <n>The most batch workers at once. 0 removes the quota
--allow-model <id>Permit a model, by the id a workload runs under. Repeatable
--allow-device <uuid>Permit a graphics card, by UUID. Repeatable
--allow-node <name>Permit a machine, by name. Repeatable
--clearRemove every governance setting from this fleet

The same policy can be set from app.nodeau.ai. Setting it there is remote management and needs FeatureRemoteManagement — Home Pro or Business. Setting it locally with nodeau governance is ungated, and reading a policy is free on every plan, because somebody refused by a number has to be able to see the number that refused them.

Lowering a limit never stops anything#

A quota decides what may START. Workloads already placed keep running, and you can stop them the ordinary way when you want the capacity back.

A policy never evicts, moves, stops or restarts anything.

Naming a model in a policy#

Use the id a workload runs under — a catalog id, or the alias you imported a custom model as.

Terminal
nodeau governance --allow-model qwen3.5-4b-q4km
nodeau governance --allow-model finance-model

Naming a card#

By its own UUID, never by a number that moves.

Terminal
nodeau fleet list                       # shows each card's UUID
nodeau governance --allow-device GPU-…

A card left out of a set is healthy and simply not one this workload may use.

What a pool is, and is not#

A GPU pool or fleet group is a filter on candidates, not a reservation over them. Nodeau holds no devices at all, so a pool can never be "full", "busy", "in use" or "unavailable" — it either leaves an eligible machine or it does not.

If it leaves none, the refusal is POOL_RESTRICTED.

Where governance sits in the decision#

Governance narrows the candidate set before any capacity arithmetic. That ordering is what makes the refusal honest: a workload refused by a limit is told it was a limit, in your organisation's own words, and never as though it did not fit.

A policy cannot make hardware that cannot hold a model able to hold it, and it is not a scheduling decision — it narrows the set, and the scheduler still chooses, with the arithmetic it would have used anyway.

Finding out which policy refused you#

Terminal
nodeau service explain <name>

The refusal names the code, says which of the three it was, and — for a model policy — prints what is permitted here.

CodeMeaning
QUOTA_EXCEEDEDThe organisation's own number is spent
POOL_RESTRICTEDA pool or fleet group left no eligible machine
MODEL_NOT_PERMITTEDAn organisation's model policy disallows this model. Distinct from MODEL_UNSUPPORTED, which is a fact about the runtime rather than a decision somebody made
BATCH_QUOTA_EXHAUSTEDThe organisation's batch allowance is spent

What governance is not#

No priorities, no priority queues, no preemption. A policy does not evict, move, stop or restart anything, and it is not an entitlement feature — nothing can withhold it.

Audit, usage accounting, cost attribution, controlled release channels, maintenance windows and air-gapped licensing are separate capabilities and are not set here.

Documentation for the current published build, the beta channel. Something here wrong or missing? Tell us — a report from a machine we have never seen is the most useful thing we get.