The rule form always opens the reduction policy on Clamp, even where the provider can take usage back #105

Open
opened 2026-09-21 07:18:31 +00:00 by cgalo5758 · 0 comments
Owner

What a person cannot do today

Rely on the reduction policy the rule form offers first. A limit rule carries a reduction policy (what happens to holders who are already over a limit the operator is lowering), and the select opens on Clamp for every rule, whatever resource it governs. Each resource key (the name a rule governs, such as sites on the wiki farm) carries a provider-declared over-limit behavior, and the form ignores it: a key whose provider parks or reclaims what is over the limit opens on the same Clamp as a key whose provider can only refuse new items.

What they should be able to do

Have the select open on the policy the key's provider can actually carry out: Force reduce where the provider declares it parks or reclaims, Clamp otherwise. The operator still chooses; the form stops proposing the wrong default on the keys where the choice has teeth.

Why it matters

The policy only bites where a provider can act on what is already over the limit. Where the provider refuses new items and leaves existing ones alone, every policy but Force reduce resolves to clamping, so the default costs nothing. Where it can park or reclaim, opening on Clamp quietly proposes leaving holders over the limit indefinitely, which is the opposite of what the operator lowering the limit asked for.

Where

internal/server/operator_entitlement_set_forms.go, the policy default and its options; internal/server/operator_entitlement_set_rules_view.go, which builds a row's options; the provider-declared over-limit behavior in internal/integration/contract.go and the resource key record it is stored on.

Done when

A new rule row on a key declared park or reclaim opens on Force reduce and one declared deny-new opens on Clamp, an existing rule still opens on its stored policy, the column default in the schema is unchanged, and the fields re-render that already runs when the key changes carries the new preselection. Tests cover one key of each declared behavior.

Migrated from status/issues.md at b7a0e15

## What a person cannot do today Rely on the reduction policy the rule form offers first. A limit rule carries a reduction policy (what happens to holders who are already over a limit the operator is lowering), and the select opens on Clamp for every rule, whatever resource it governs. Each resource key (the name a rule governs, such as sites on the wiki farm) carries a provider-declared over-limit behavior, and the form ignores it: a key whose provider parks or reclaims what is over the limit opens on the same Clamp as a key whose provider can only refuse new items. ## What they should be able to do Have the select open on the policy the key's provider can actually carry out: Force reduce where the provider declares it parks or reclaims, Clamp otherwise. The operator still chooses; the form stops proposing the wrong default on the keys where the choice has teeth. ## Why it matters The policy only bites where a provider can act on what is already over the limit. Where the provider refuses new items and leaves existing ones alone, every policy but Force reduce resolves to clamping, so the default costs nothing. Where it can park or reclaim, opening on Clamp quietly proposes leaving holders over the limit indefinitely, which is the opposite of what the operator lowering the limit asked for. ## Where [`internal/server/operator_entitlement_set_forms.go`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/internal/server/operator_entitlement_set_forms.go), the policy default and its options; [`internal/server/operator_entitlement_set_rules_view.go`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/internal/server/operator_entitlement_set_rules_view.go), which builds a row's options; the provider-declared over-limit behavior in [`internal/integration/contract.go`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/internal/integration/contract.go) and the resource key record it is stored on. ## Done when A new rule row on a key declared park or reclaim opens on Force reduce and one declared deny-new opens on Clamp, an existing rule still opens on its stored policy, the column default in the schema is unchanged, and the fields re-render that already runs when the key changes carries the new preselection. Tests cover one key of each declared behavior. Migrated from status/issues.md at b7a0e15
cgalo5758 added the
kind
enhancement
area/entitlementsarea/operator-ui
labels 2026-09-21 07:18:31 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#105