Skip to content

Changelog

Changes to the API within /v1 only add things and never remove them; see Versioning. Newest changes are at the top of each section.

  • October 18, 2026: When we’re under heavy load, decide() now answers that it’s busy (503 decide_timeout or 429 concurrency_limited) instead of failing with a 500. On a 503, the SDK then applies its fail-open or fail-closed setting. Unknown keys get a plain 401.
  • October 18, 2026: Deny responses can now include the key’s label, so your logs show which agent was blocked. It’s off by default. To turn it on for your account, email support.
  • 1.2.4 (October 22, 2026): On npm: npm install ordainer. Same code as 1.2.3; only the package README’s install steps changed.
  • 1.2.3 (October 18, 2026): docs-site download only. Error messages reworded; codes, statuses and fields unchanged. Match on error.code, not the message. The 503, test-limit and plan-deny messages are in plain words (see Errors), and a plan limit can name the agent once it’s turned on for your account (email support). The 1.2.2, 1.2.1 and 1.2.0 files stay available unchanged. A call held back because too many calls are running at once on one key now gets its own message, ending (concurrency_limited); the code field stays rate_limited.
  • 1.2.2 (October 9, 2026): docs-site download only. result.wouldDeny is now true only for a shadow deny (an enforce deny has wouldDeny: false and allowed: false), and the package README’s install steps match this site. The 1.2.1 and 1.2.0 files stay available unchanged.
  • 1.2.1 (October 8, 2026): docs-site download only. The packed file’s default base URL is https://api.ordainer.dev.
  • 1.2.0 (October 6, 2026): shadow mode never blocks on a plan or test limit, and 429 safety_limit_reached lets calls run. What changed in 1.2.0.
  • 0.1.1 (October 18, 2026): on RubyGems. Error messages reworded, with the same text as Node SDK 1.2.3; codes, statuses and fields unchanged. Match on error.code, not the message. A call held back because too many calls are running at once on one key gets its own message, ending (concurrency_limited). Ordainer.deny_response no longer raises when the server’s reset time can’t be turned into a number of seconds; that answer just has no Retry-After header.
  • 0.1.0 (October 14, 2026): first release on RubyGems, with Ordainer::Client#decide, retries, fail_mode and an optional Rails guard.