The disabled button that wasn't
You gray out the button when a user hits their limit. Then someone calls the API directly, or keeps an old tab open, and blows right past it. A disabled button is not enforcement. The server deciding at write time is.
Stel limieten in per abonnement. Eén losgeslagen gebruiker jaagt je rekening niet omhoog.
Stel limieten in per abonnement. Eén losgeslagen gebruiker jaagt je rekening niet omhoog.
Productvoorbeeld
Dit is hetzelfde visuele component als in de ingelogde applicatie, met voorspelbare voorbeelddata.
Review included allowance, enforced limits, and remaining capacity.
Inerte voorbeelddata · geen netwerktoegang
Voorbeeld gereed
Zonder een gedeelde basis bouwt elk team deze randgevallen opnieuw — en anders.
You gray out the button when a user hits their limit. Then someone calls the API directly, or keeps an old tab open, and blows right past it. A disabled button is not enforcement. The server deciding at write time is.
A flaky network retries a request. A naive counter charges the quota twice. Now a paying customer is locked out of an allowance they never actually used, and they're right to be mad.
Limits scattered across ad hoc if-statements drift apart until support asks what a plan actually allows and nobody can answer with confidence. One registry ends that.
Kernpunten
Every limit lives in one typed file, so what each plan allows is written down in exactly one place.
Each use carries a stable ID. A retried request gets the original answer back instead of charging quota again.
If the server can't tell what plan someone is on, the answer is no. Nothing slips through by accident.
Het mechanisme van begin tot eind, zoals het in de repository is geïmplementeerd.
Declare the limit once
Each limit is one typed entry: what it counts, who it applies to, the time window, and what happens when it's hit.
The server finds the plan
It maps the subscription to a plan and its limits. A late payment gets a short grace window before access tightens.
Usage is reserved inside the write
The server locks, reads the usage ledger, and reserves the quota in the same transaction as your write. Races and retries settle safely.
Clear errors, not mystery 500s
A rate limit tells the caller exactly when to retry. A plan limit says so plainly, which is your upgrade prompt. The UI meters just explain the decision.
Technische garanties
Achter de schermen houden autorisatie, tenantgrenzen en foutafhandeling één duidelijke eigenaar. Zo blijft de snelle ervaring voor gebruikers gekoppeld aan veilig herstel als het misgaat.
De grens hierboven is geen claim maar code. Deze bestanden dragen het contract:
src/registries/quotas.tssrc/server/commercial-access.tsconfig/entitlements.tsDeze functies delen contracten en grenzen met deze pagina.
De documentatie beschrijft dezelfde contracten die deze pagina demonstreert.