halyard

Changelog

What's new in Halyard

Every release of the gateway, keys, limits and usage, newest first. Breaking changes are always announced one minor version ahead.

  1. 2.14.0NewLatest

    Shadow mode for rate limits

    Set any limit to shadow and Halyard evaluates it on live traffic without rejecting a request. Would-be 429s show up in logs and in a new panel on the limit page, grouped by key, so you can see who a limit would hit before you enforce it.

    limit: 100 / min · mode: shadow
    3 keys would be limited · 0 blocked
    • Switch a limit between shadow and enforce without a deploy
    • Would-be rejections are tagged shadow_limited in log drains
    • The SDKs gained limits.update({ mode })
  2. 2.13.0New

    Key expiry and revoke-when-idle

    Keys can now carry an expiry, and rotation can revoke the old key automatically once it has been idle for a period you choose. The key page shows last-used time and region for both keys during the overlap.

    rotate · overlap 24h · revoke when idle 1h
    hy_live_k7Q2…revokedhy_live_p3Rn…overlap
    • expiresAt on key create and update
    • expireOldWhenIdle option on keys.rotate
    • Expiring-soon warnings by email and webhook
  3. 2.12.0New

    Data residency in the EU and APAC

    Enterprise projects can be pinned to eu-central or ap-southeast. Logs, usage records and key metadata for a pinned project are stored and processed only in that region.

    data residency · pin a project to a region
    us-easteu-centralap-southeast
    • Region selector on project create
    • Residency shown on every log line
    • Cross-region failover stays inside the pinned region pair
  4. 2.11.0New

    Log drains

    Stream request logs to your own object storage, an HTTPS endpoint or a stream topic. Drains batch, retry with backoff and keep ordering per key, so downstream jobs can rely on sequence.

    log drains · batched, retried, ordered per key
    gateway logsobject storageHTTPS endpointstream topic
    • Up to five drains per project
    • Field filters to drop request bodies or headers
    • Drain health and lag on the project overview
  5. 2.10.0Improved

    Usage export for invoicing

    Usage export now groups by key, by customer metadata or by both, and closes each billing period at the boundary you configure. The totals match the counters the limiter enforces, to the request.

    usage.csv · per key, per billing period
    keyrequestskey_k7Q21,204,881key_p3Rn812,404key_x9Lm96,120total2,113,405
    • CSV and JSON exports, or a scheduled push to your drain
    • Custom billing period boundaries per project
    • Rejected requests are excluded from billable counts
  6. 2.9.0New

    Spend caps per key

    Attach a monthly spend cap to any key, priced from your own per-request rates. Halyard alerts at a threshold you set and returns a 429 with reason spend_cap_reached when the cap is hit.

    spend cap · $500 per key per month
    key_agent_0193$361 of $500alert 80%429 at 100%
    • Caps in requests or in currency
    • Alert thresholds by email and webhook
    • Cap state exposed on the key in the API
  7. 2.8.0New

    Audit log

    Every change to keys, limits, members and project settings is now recorded with who made it, from where and what changed. Enterprise plans keep the audit log without a retention limit.

    audit log · every change, who made it
    MOkey.rotatedkey_k7Q2 → key_p3RnPRlimit.updatedper-key 100 → 120 / minTFmember.invitedops@tidewell.exampleLHproject.regionpinned to eu-central
    • Filter by actor, resource or action
    • Export to your drain alongside request logs
    • Before-and-after values on every update
  8. 2.7.0Improved

    Faster config propagation

    We rebuilt how limit and key changes reach the edge. In our own measurements across every region, p95 propagation dropped from 9 seconds to 1.6 seconds, which also shortens how long a revoked key can still be used.

    config propagation to every region · p95
    p95 1.6 swas 9 s0s2s4s6s8s10s
    • Revocations jump the queue ahead of other changes
    • Propagation status shown on every config change
    • Fixed a case where a renamed limit kept its old counters

Ship your next API on Halyard

Free for your first million requests each month. After that you pay per million, with no gateway to run yourself. See pricing