<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Keygen Changelog</title>
  <description>Latest changes for Keygen.</description>
  <link>https://keygen.sh/changelog/</link>
  <atom:link href="https://keygen.sh/changelog/feed.xml" rel="self" type="application/rss+xml" />
  <lastBuildDate>Thu, 16 Apr 2026 20:43:44 GMT</lastBuildDate>
  <item>
    <title>LAUNCH</title>
    <description>Add our licensing API, Keygen, to the interwebs. 🎉</description>
    <pubDate>Sat, 01 Oct 2016 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2016-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add webhook system.</description>
    <pubDate>Tue, 01 Nov 2016 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2016-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add status to webhook events.</description>
    <pubDate>Thu, 01 Dec 2016 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2016-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add idempotency token to webhook events.</description>
    <pubDate>Thu, 01 Dec 2016 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2016-1</guid>
  </item>
  <item>
    <title>LAUNCH</title>
    <description>Add the Keygen Dashboard to the interwebs. 🍻</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-11</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add &quot;protected&quot; permission system to accounts.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-10</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add v1 version suffix to API tokens.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-9</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for specifying your own license key attribute during license creation.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-8</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Allow user metadata attribute to be specified during user creation for non-authenticated requests.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-7</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add product filter to keys list endpoint.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-6</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where rate limited response used incorrect JSON content type.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add JSON-API linkage to singular relationships within response payloads.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add account-related webhook events, e.g. account.updated, account.billing.updated, etc.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add suspended filter to licenses list endpoint.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add action to suspend and reinstate licenses.</description>
    <pubDate>Sun, 01 Jan 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2017-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add events[] filter to webhook events list endpoint.</description>
    <pubDate>Wed, 01 Feb 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2017-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add validation detail message to license validation payload meta.</description>
    <pubDate>Wed, 01 Feb 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2017-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add &quot;protected&quot; permission system to policies.</description>
    <pubDate>Sat, 01 Apr 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2017-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update maxMachines attribute default value to 1 for policies.</description>
    <pubDate>Sat, 01 Apr 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2017-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update floating attribute default value to false for policies.</description>
    <pubDate>Sat, 01 Apr 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2017-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add strict attribute to policies to remove the &quot;hard&quot; machine limit.</description>
    <pubDate>Sat, 01 Apr 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2017-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update product token permissions to read all users and webhook events to aid in server-side integrations.</description>
    <pubDate>Sat, 01 Apr 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2017-2</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where a duplicate license key could be created for an account (i.e. 2 licenses with the same key).</description>
    <pubDate>Sat, 01 Apr 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2017-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add webhook events for license validations: license.validation.succeeded, license.validation.failed.</description>
    <pubDate>Mon, 01 May 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2017-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add license check-in system.</description>
    <pubDate>Mon, 01 May 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2017-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add validation result code to license validation payload meta.</description>
    <pubDate>Sun, 01 Oct 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2017-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add maxMachines attribute to license payload.</description>
    <pubDate>Sun, 01 Oct 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2017-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add webhook event for password resets (for manual fulfillment).</description>
    <pubDate>Wed, 01 Nov 2017 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2017-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to use a license&#39;s key attribute within URL params in place of its ID (granted the key is a valid URL param).</description>
    <pubDate>Fri, 01 Dec 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2017-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for meta.scope to license validation endpoints.</description>
    <pubDate>Fri, 01 Dec 2017 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2017-1</guid>
  </item>
  <item>
    <title>LAUNCH</title>
    <description>Add our distribution API, Keygen Dist, to the interwebs. 🎊</description>
    <pubDate>Mon, 01 Jan 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2018-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add concurrent license support.</description>
    <pubDate>Mon, 01 Jan 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2018-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability for a license to transfer between policies.</description>
    <pubDate>Mon, 01 Jan 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2018-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update behavior around Accept header to respond with a application/json content-type when requested, rather than always responding with application/vnd.api+json.</description>
    <pubDate>Mon, 01 Jan 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability for a license to transfer between users.</description>
    <pubDate>Thu, 01 Mar 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2018-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add meta.increment and meta.decrement params for adjusting increment/decrement amount.</description>
    <pubDate>Thu, 01 Mar 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2018-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add license usage count system.</description>
    <pubDate>Thu, 01 Mar 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2018-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add webhook events for license expiration lifecycle: license.expiring-soon, license.expired.</description>
    <pubDate>Thu, 01 Mar 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2018-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add X-Signature header to webhook event delivery requests.</description>
    <pubDate>Thu, 01 Mar 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2018-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add X-Signature header to all API responses (signed using RSA cryptography).</description>
    <pubDate>Thu, 01 Mar 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to use a user&#39;s email attribute within URL params in place of their ID.</description>
    <pubDate>Sun, 01 Apr 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2018-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add additional error codes to failed webhook events, e.g. DNS issues, request timeout, etc. to aid in developer debugging.</description>
    <pubDate>Sun, 01 Apr 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2018-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add last response body and code to webhook events to aid in developer debugging.</description>
    <pubDate>Sun, 01 Apr 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2018-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to delete webhook events for compliance.</description>
    <pubDate>Sun, 01 Apr 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2018-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add search feature to the Dashboard.</description>
    <pubDate>Sun, 01 Apr 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2018-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add license token support, allowing client-side machine activation workflows.</description>
    <pubDate>Sun, 01 Apr 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2018-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where nextCheckIn would display a non-null value for non-check-in licenses.</description>
    <pubDate>Tue, 01 May 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2018-7</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where a machine could be activated even after reaching the license token&#39;s activation limit.</description>
    <pubDate>Tue, 01 May 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2018-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for more detailed error pointers for resource relationship-related errors.</description>
    <pubDate>Tue, 01 May 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2018-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update API token algorithm to v2.</description>
    <pubDate>Tue, 01 May 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2018-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to limit machine activation and deactivation counts for license tokens.</description>
    <pubDate>Tue, 01 May 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2018-3</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where license expiry could not be removed.</description>
    <pubDate>Tue, 01 May 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2018-2</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where regenerated tokens had an incorrect expiry value (was adding 2 weeks to the current expiry, when it should have been adding 2 weeks from the current datetime).</description>
    <pubDate>Tue, 01 May 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2018-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where password reset expiration date was incorrect within the email delivered to the user.</description>
    <pubDate>Fri, 01 Jun 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2018-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add permission for license tokens to validate the license it belongs to.</description>
    <pubDate>Fri, 01 Jun 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2018-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add permission for license tokens to read machines of the license it belongs to.</description>
    <pubDate>Fri, 01 Jun 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add machine count to license payloads via /relationships/machines/meta/count.</description>
    <pubDate>Sun, 01 Jul 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2018-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add policy filter to machines list endpoint.</description>
    <pubDate>Sun, 01 Jul 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2018-2</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Update license validation precedences, resolving an issue where machine-related validation-result codes would sometimes take precedence over invalid license state, such as the license being expired or suspended.</description>
    <pubDate>Sun, 01 Jul 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add better debugging tools for webhook event delivery failures.</description>
    <pubDate>Wed, 01 Aug 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2018-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add &quot;protected&quot; permission system to licenses.</description>
    <pubDate>Wed, 01 Aug 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ip and hostname filters to machines list endpoint.</description>
    <pubDate>Sat, 01 Sep 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2018-5</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where machines without a user associated with it could contain invalid relationships.user linkage.</description>
    <pubDate>Sat, 01 Sep 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2018-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add helpful error response and specific error code for requests containing: invalid JSON, invalid tokens, invalid encodings.</description>
    <pubDate>Sat, 01 Sep 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2018-3</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue causing some Accept headers to result in an HTTP 400 Bad Request response code.</description>
    <pubDate>Sat, 01 Sep 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2018-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for offline licensing using cryptographically signed/encrypted license keys.</description>
    <pubDate>Sat, 01 Sep 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for named licenses.</description>
    <pubDate>Mon, 01 Oct 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add request logging.</description>
    <pubDate>Thu, 01 Nov 2018 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for webhook endpoints to subscribe to specific webhook events.</description>
    <pubDate>Sat, 01 Dec 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2018-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add /v1/ping endpoint. Useful for testing if the Keygen API is reachable, e.g. firewall issues, lack of internet access, etc.</description>
    <pubDate>Sat, 01 Dec 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2018-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add current timestamp to validation response: meta.ts.</description>
    <pubDate>Sat, 01 Dec 2018 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2018-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add total pages and resource count to pagination meta.</description>
    <pubDate>Fri, 01 Mar 2019 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2019-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability for admins to manually update a user&#39;s password.</description>
    <pubDate>Fri, 01 Mar 2019 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2019-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add expired filter to licenses list endpoint.</description>
    <pubDate>Mon, 01 Apr 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2019-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add license validation meta, which includes the validation result, to payloads of license.validation.* webhook events.</description>
    <pubDate>Mon, 01 Apr 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2019-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add active filter to users list endpoint.</description>
    <pubDate>Wed, 01 May 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2019-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add machine heartbeat system.</description>
    <pubDate>Wed, 01 May 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2019-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to use a machine&#39;s fingerprint attribute within URL params in place of its ID (granted the fingerprint is a valid URL param).</description>
    <pubDate>Sat, 01 Jun 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2019-2</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where the expired filter for the license list endpoint would not include licenses without an expiry when expired=false.</description>
    <pubDate>Sat, 01 Jun 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2019-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue where machine deactivation was queued and performed asynchronously, which sometimes caused subsequent requests to the machines list endpoint to include the aforementioned deactivated machine (due to the deactivation process being async).</description>
    <pubDate>Mon, 01 Jul 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2019-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add additional rate limit headers: X-RateLimit-Window for the closest rate limiting window to being reached, X-RateLimit-Count for the request count within the current rate limiting window.</description>
    <pubDate>Mon, 01 Jul 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2019-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add nonce parameter to license validation endpoints (which is then echoed back within the signed response body).</description>
    <pubDate>Fri, 01 Nov 2019 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2019-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add &quot;whoami&quot; headers to all responses: X-Keygen-Account-Id, X-Keygen-Bearer-Id, X-Keygen-Token-Id, representing the current account, the current user making the request, and the user&#39;s API token being used for the request, respectively.</description>
    <pubDate>Sun, 01 Dec 2019 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2019-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add meta.tokenId to profile endpoint, containing the ID of the API token being used for the request.</description>
    <pubDate>Sun, 01 Dec 2019 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2019-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add unassigned filter to licenses list endpoint.</description>
    <pubDate>Sun, 01 Dec 2019 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2019-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update license token permissions to be able to increment license usage (useful for incrementing usage in a client-side environment without an intermediary server).</description>
    <pubDate>Sun, 01 Dec 2019 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2019-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add expiry attribute to user and admin token generation endpoint, allowing you to specify when/if a given token expires.</description>
    <pubDate>Sat, 01 Feb 2020 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2020-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue causing some pagination cases to respond with a next page link even when a next page is not available, resulting in a possible infinite loop when traversing pagination when expecting a null next page value.</description>
    <pubDate>Sun, 01 Mar 2020 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2020-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add invoice history and management to account billing.</description>
    <pubDate>Sat, 01 Aug 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2020-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add new administrative roles with limited permission subsets: support-agent, sales-agent, developer.</description>
    <pubDate>Sat, 01 Aug 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2020-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to specify a custom machine heartbeat monitor window.</description>
    <pubDate>Tue, 01 Sep 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2020-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update API token format to v3, allowing for much easier identification of a token&#39;s type.</description>
    <pubDate>Tue, 01 Sep 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2020-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update license token format to v3, allowing for much shorter and more human-legible license tokens.</description>
    <pubDate>Tue, 01 Sep 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2020-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update autogenerated license key format to v3, allowing for much shorter and more human-legible license keys. This does not effect existing license keys, only new license keys.</description>
    <pubDate>Tue, 01 Sep 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2020-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add two-factor authentication to the Keygen Dashboard.</description>
    <pubDate>Thu, 01 Oct 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2020-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to override the filename of a download using Keygen Dist via a filename query parameter.</description>
    <pubDate>Thu, 01 Oct 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2020-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add account recovery flow to recover a lost account ID.</description>
    <pubDate>Thu, 01 Oct 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2020-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add cryptographic proofs for offline machine activations.</description>
    <pubDate>Thu, 01 Oct 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2020-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add new license key signing schemes: RSA_2048_PKCS1_SIGN_V2 and RSA_2048_PKCS1_PSS_SIGN_V2.</description>
    <pubDate>Thu, 01 Oct 2020 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2020-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add fingerprint matching strategy to policies to match any, some, or all provided machine fingerprints (if multiple are provided).</description>
    <pubDate>Tue, 01 Dec 2020 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2020-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add meta.scope.fingerprints scope to license validations, allowing multiple machine fingerprints to be validated at once.</description>
    <pubDate>Tue, 01 Dec 2020 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2020-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add Python code examples to API reference.</description>
    <pubDate>Tue, 01 Dec 2020 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2020-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add fingerprint uniqueness strategy to policies, allowing prevention of duplicate machine fingerprints across a variety of scopes.</description>
    <pubDate>Tue, 01 Dec 2020 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2020-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add search support and other improvements to request logs, including recording data such as the request and response body, response signature, the requestor, and other information.</description>
    <pubDate>Mon, 01 Feb 2021 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2021-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add maximum CPU core enforcement to policies, and core counts to licenses and machines.</description>
    <pubDate>Mon, 01 Mar 2021 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2021-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add permission for license tokens to generate offline machine activation proofs.</description>
    <pubDate>Mon, 01 Mar 2021 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2021-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add a default embedded dataset when creating a license with a cryptographic scheme.</description>
    <pubDate>Mon, 01 Mar 2021 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2021-3</guid>
  </item>
  <item>
    <title>BILLING</title>
    <description>Add yearly billing options.</description>
    <pubDate>Mon, 01 Mar 2021 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2021-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add additional request log information to the Dashboard, including new charts such as top licenses by volume, top URLs by volume and top IPs by volume.</description>
    <pubDate>Mon, 01 Mar 2021 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2021-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add entitlement resources. Entitlements can be attached to policies and licenses to implement licensing models such as robust feature licenses.</description>
    <pubDate>Thu, 01 Apr 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2021-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add new license key signing scheme: ED25519_SIGN.</description>
    <pubDate>Sat, 01 May 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2021-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>We accidentally broke metadata filtering for boolean and number query types. Because HTTP querystrings are string values, our search queried the metadata as if they were string values, when they were supposed to be booleans, integers or floats. This issue has been resolved and earlier search queries should now work as they did before the performance improvements.</description>
    <pubDate>Tue, 01 Jun 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2021-4</guid>
  </item>
  <item>
    <title>DEPRECATE</title>
    <description>Deprecate X-Signature header in favor of Keygen-Signature for new accounts. (Existing accounts will continue to receive the X-Signature header.)</description>
    <pubDate>Tue, 01 Jun 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2021-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add Keygen-Signature header to webhook event delivery requests.</description>
    <pubDate>Tue, 01 Jun 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2021-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add Keygen-Signature header to all API responses (signed using Ed25519 cryptography).</description>
    <pubDate>Tue, 01 Jun 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2021-1</guid>
  </item>
  <item>
    <title>DEPRECATE</title>
    <description>Deprecate Keygen Dist v1 in favor of v2. We will continue to maintain v1, but we recommend upgrading to v2.</description>
    <pubDate>Thu, 01 Jul 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2021-2</guid>
  </item>
  <item>
    <title>LAUNCH</title>
    <description>Launch Keygen Dist v2, a new version of our software distribution API that is now fully integrated into our licensing API.</description>
    <pubDate>Thu, 01 Jul 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2021-1</guid>
  </item>
  <item>
    <title>INTEGRATE</title>
    <description>Add official Keygen Dist v2 release publisher and update provider integration for electron-builder.</description>
    <pubDate>Sun, 01 Aug 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2021-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for defining per-license overrides for maxMachines, maxCores and maxUses properties.</description>
    <pubDate>Wed, 01 Sep 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2021-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add policy expiration strategies, to control how expired licenses should be validated and permissions for release access.</description>
    <pubDate>Fri, 01 Oct 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2021-2</guid>
  </item>
  <item>
    <title>LAUNCH</title>
    <description>Launch our official Go SDK for quickly implementing license activation and self-updating functionality into any Go program.</description>
    <pubDate>Fri, 01 Oct 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2021-1</guid>
  </item>
  <item>
    <title>LAUNCH</title>
    <description>Launch the official keygen CLI for signing and publishing software releases. Integrate with our SDKs for secure automatic upgrades.</description>
    <pubDate>Mon, 01 Nov 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2021-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add status attribute to releases.</description>
    <pubDate>Mon, 01 Nov 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2021-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add status attribute to licenses.</description>
    <pubDate>Mon, 01 Nov 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2021-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add signature, checksum and description attributes to releases.</description>
    <pubDate>Mon, 01 Nov 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2021-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add product distribution strategies, to control access to releases. Releases can now be publicly distributed to users without a license, which opens up use cases for freemium business models, as well as for open source apps. Previous behavior of distributing only to licensed users remains the default.</description>
    <pubDate>Mon, 01 Nov 2021 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2021-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update release platform and filetype attributes to be nullable. (Setting either of these to null will exclude the release from upgrade functionality.)</description>
    <pubDate>Wed, 01 Dec 2021 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2021-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add expiration basis to policies, to control when a license&#39;s initial expiry is set. By default, a license&#39;s expiry is set from creation.</description>
    <pubDate>Sat, 01 Jan 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2022-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add authentication strategy to policies, to control how licenses are allowed to authenticate with the API. This feature allows for requests to authenticate using a license key (!!), rather than using a license token. By default, policies use a token authentication strategy i.e. behavior is unchanged.</description>
    <pubDate>Sat, 01 Jan 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2022-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add actions for banning users. Banned users cannot authenticate with the API, and all their licenses will be invalidated.</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-9</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability for admins to generate tokens on a user&#39;s behalf, via the user&#39;s tokens relationship.</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-8</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Update users to support null passwords, i.e. passwordless users. (Users without a password cannot login.)</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-7</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add transfer strategy to policies, to control whether license expirations are reset when transferred to a different policy.</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability for policies to require that their machines maintain a heartbeat.</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add heartbeat resurrection strategy to policies, to control whether to revive dead machines within a short window from their death.</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-4</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix race condition which caused some dead machines to not be culled when very frequent heartbeat pings were being sent (e.g. every few seconds).</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add template variable support, e.g. {{created}} and {{expiry}}, to signed license keys.</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add heartbeat cull strategy to policies, to control whether to automatically deactivate dead machines i.e. a machine that fails to maintain a heartbeat.</description>
    <pubDate>Tue, 01 Feb 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2022-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix issue causing some paginated requests to not contain a links property in the response.</description>
    <pubDate>Tue, 01 Mar 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2022-7</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add group relationship to machines.</description>
    <pubDate>Tue, 01 Mar 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2022-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add group relationship to licenses.</description>
    <pubDate>Tue, 01 Mar 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2022-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add group relationship to users.</description>
    <pubDate>Tue, 01 Mar 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2022-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add group resource, for grouping resources together e.g. under a company or team, and for setting collective group limits.</description>
    <pubDate>Tue, 01 Mar 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2022-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add user scope to license validations, in addition to new validations codes: USER_SCOPE_REQUIRED and USER_SCOPE_MISMATCH.</description>
    <pubDate>Tue, 01 Mar 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2022-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add user scope requirement to policies, to control whether license validations require a user scope. User scopes are great for user-locked licensing models.</description>
    <pubDate>Tue, 01 Mar 2022 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2022-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add max processes to licenses, to override a policy&#39;s max processes.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-9</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add max processes to policies, to control application concurrency.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-8</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add leasing strategy to policies, to control how process instances are counted.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-7</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add process resource, to control application/instance concurrency across machines.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to transfer licenses to policies for another product, i.e. across products.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ability to transfer licenses to policies with a less strict fingerprint matching strategy, e.g. UNIQUE_PER_POLICY to UNIQUE_PER_LICENSE.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-4</guid>
  </item>
  <item>
    <title>DEPRECATE</title>
    <description>Deprecate machine proofs. We recommend checking out a machine file moving forward.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add action for checking out a cryptographic offline machine file.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add action for checking out a cryptographic offline license file.</description>
    <pubDate>Fri, 01 Apr 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2022-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add expires filter to licenses list endpoint, allowing querying for, e.g. licenses expiring within the next 30 days.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-14</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add yank action to releases.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-13</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add publish action to releases.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-12</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add tag attribute to releases, for easier named lookups.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-11</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add upgrade relationship to releases. This replaces the release&#39;s upgrade actions.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-10</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add arch resource, representing supported architectures (similar to the platform resource).</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-9</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add status attribute to artifacts. New artifacts will default to a waiting state and will move to an uploaded state once a file is uploaded.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-8</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add create, update and delete endpoints for artifacts. Artifacts are now managed like most other resources.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-7</guid>
  </item>
  <item>
    <title>DEPRECATE</title>
    <description>Deprecate release upgrade actions. Use the upgrade release endpoint instead.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-6</guid>
  </item>
  <item>
    <title>DEPRECATE</title>
    <description>Deprecate upserting releases. Use the create endpoint instead. Since upserting was performed by filename, this is no longer needed.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-5</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Rename release NOT_PUBLISHED status to DRAFT.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-4</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Change default status for releases to draft. Moving forward, releases must be explicitly published once all artifacts have been uploaded.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-3</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Move the following attributes from the release object to the artifact object: filename, filetype, filesize, platform, signature, and checksum.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-2</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Change the release object&#39;s has-one artifact relationship to a has-many artifacts relationship. The endpoint(s) for the has-one artifact relationship has been deprecated, replaced with the has-many relationship.</description>
    <pubDate>Wed, 01 Jun 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2022-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ALLOW_ACCESS expiration strategy to policies.</description>
    <pubDate>Fri, 01 Jul 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2022-5</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Remove concurrent from licenses.</description>
    <pubDate>Fri, 01 Jul 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2022-4</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Remove concurrent from policies.</description>
    <pubDate>Fri, 01 Jul 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2022-3</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Replace concurrent with overage strategy for policies. The default overage strategy for new policies is NO_OVERAGE, which behaves like concurrent=false. Set overage strategy to ALWAYS_ALLOW_OVERAGE for concurrent=true behavior, which was the previous default for policies. Existing policies will continue to behave the same.</description>
    <pubDate>Fri, 01 Jul 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2022-2</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Rename meta.constant to meta.code for license validations.</description>
    <pubDate>Fri, 01 Jul 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2022-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add ALLOW_1_25X_OVERAGE overage strategy option to policies.</description>
    <pubDate>Mon, 01 Aug 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2022-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add name attribute to tokens, for easier token identification at a glance.</description>
    <pubDate>Thu, 01 Sep 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2022-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add permission system for Ent customers, allowing fine-grained permissions for roles and tokens.</description>
    <pubDate>Sat, 01 Oct 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2022-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix issue causing 403 responses for certain requestors when listing releases or artifacts with entitlement constraints.
  

  In some cases, when the requestor lacked entitlements, the request would be rejected. We now correctly scope these objects so that they are not shown to unentitled requestors.
</description>
    <pubDate>Tue, 01 Nov 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2022-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add last checkout timestamps to licenses and machines.</description>
    <pubDate>Tue, 01 Nov 2022 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2022-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix issue where dead machines could fail to resurrect when the license policy&#39;s resurrection strategy was ALWAYS_REVIVE.
</description>
    <pubDate>Wed, 01 Feb 2023 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2023-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add heartbeat basis to policies, to override the above behavior.
</description>
    <pubDate>Wed, 01 Feb 2023 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2023-3</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>
  When a machine which requires a heartbeat is activated, its initial heartbeat is now ALIVE instead of NOT_STARTED.
  

  In addition, it will have its last heartbeat set to a non-null value.
</description>
    <pubDate>Wed, 01 Feb 2023 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2023-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  When a machine which requires a heartbeat is activated, its heartbeat is now automatically started at time of activation. This resolves an issue where a zombie machine would occur if the underlying application crashed in between a machine being activated and its first heartbeat being sent.
  

  A machine &quot;requires a heartbeat&quot; when its license&#39;s policy is configured to require heartbeats.
</description>
    <pubDate>Wed, 01 Feb 2023 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2023-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add MAINTAIN_ACCESS expiration strategy to policies.</description>
    <pubDate>Wed, 01 Mar 2023 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2023-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add environments for managing sandbox and production environments.</description>
    <pubDate>Sat, 01 Apr 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2023-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix issue where searches on request logs by ID failed with an unsupported query error.
</description>
    <pubDate>Mon, 01 May 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2023-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add version attribute to licenses, indicating the release version of a license&#39;s last validation.</description>
    <pubDate>Thu, 01 Jun 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2023-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add checksum scope to license validations, in addition to new validations codes: CHECKSUM_SCOPE_REQUIRED and CHECKSUM_SCOPE_MISMATCH.</description>
    <pubDate>Thu, 01 Jun 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2023-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add checksum scope requirement to policies, to control whether license validations require a checksum scope. Checksum scopes are useful for asserting that the end-user has not modified the application.</description>
    <pubDate>Thu, 01 Jun 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2023-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add version scope to license validations, in addition to new validations codes: VERSION_SCOPE_REQUIRED and VERSION_SCOPE_MISMATCH.</description>
    <pubDate>Thu, 01 Jun 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2023-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add version scope requirement to policies, to control whether license validations require a version scope. Version scopes are useful for tracking a license&#39;s current version.</description>
    <pubDate>Thu, 01 Jun 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2023-2</guid>
  </item>
  <item>
    <title>LAUNCH</title>
    <description>Keygen goes source-available. 🥳</description>
    <pubDate>Thu, 01 Jun 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2023-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for PyPI engine.</description>
    <pubDate>Sat, 01 Jul 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2023-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add engines for managing a package&#39;s supported registries.</description>
    <pubDate>Sat, 01 Jul 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2023-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add packages for managing and grouping a product&#39;s releases (e.g. sub-products, plugins, add-ons, packages).</description>
    <pubDate>Sat, 01 Jul 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jul-2023-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for Tauri engine.</description>
    <pubDate>Tue, 01 Aug 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2023-3</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix breaking change causing some request bodies to be ignored when sent without a content-type header.
  

  Ideally, integrations should specify a JSON content type when sending data to our API. Unfortunately, sometimes that is missed, and as such, some integrations relied on this erroneous behavior. We &quot;fixed&quot; this behavior by being more strict i.r.t the content-type header, but eventually rolled the change back once we realized this impacted a handful of customer integrations that were sending JSON with e.g. a text/plain content type.
</description>
    <pubDate>Tue, 01 Aug 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2023-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add second factors for managing a user&#39;s 2FA.</description>
    <pubDate>Tue, 01 Aug 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2023-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add components include option to machine checkouts.</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-9</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add components validation scope, to assert that a machine has a given set of components during validation.</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-8</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add component matching strategies to policies.</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-7</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add component uniqueness strategies to policies.</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-6</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add MATCH_TWO machine matching strategy to policies.</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add components scope requirement to policies, to control whether license validations require a components scope.
  

  The components scope can be used to assert a machine has a given set of hardware components.
</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add machine components for managing a machine&#39;s hardware components.</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-3</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Rename fingerprintMatchingStrategy to machineMatchingStrategy for policies.</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-2</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Rename fingerprintUniquenessStrategy to machineUniquenessStrategy for policies.</description>
    <pubDate>Fri, 01 Sep 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2023-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix issue where dead machines in a NOT_STARTED state would not be culled when their policy is later updated to require heartbeats.
</description>
    <pubDate>Sun, 01 Oct 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2023-2</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Fix casing of nested metadata keys from snake case to camel case.</description>
    <pubDate>Sun, 01 Oct 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2023-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add support for prefer query parameter for artifact downloads and other distribution-related endpoints.
  

  This is useful in cases where providing a Prefer header is not an option.
</description>
    <pubDate>Wed, 01 Nov 2023 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2023-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add renewal basis to policies, to configure how a license&#39;s expiry is extended during renewal.
  

  This is useful in cases where you want to renew from the current time, not the expiry.
</description>
    <pubDate>Mon, 01 Jan 2024 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2024-1</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>
  We now cull dead machines and processes every 2 minutes, instead of what used to be, in most cases, instantly. This is for performance and scalability reasons.
  

  For healthy machines and processes sending heartbeats at appropriate intervals, you should see no change in behavior.
</description>
    <pubDate>Thu, 01 Feb 2024 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2024-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix issue where license.expiring-soon and license.expired webhook events could be delivered twice for the same event.
</description>
    <pubDate>Mon, 01 Apr 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2024-6</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix issue where active users could be included in the list of inactive users when filtering users by status.
  

  This would occur when a user had both active licenses and inactive licenses.
</description>
    <pubDate>Mon, 01 Apr 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2024-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add owner relationship to machines. Users can now be associated to a machine, giving the user permission to manage the machine.
  

  Previous behavior allowed the license owner to manage machines. Current behavior is the same, but also allows the machine owner to manage the machine in the case of multi-user licenses.
</description>
    <pubDate>Mon, 01 Apr 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2024-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add plural users relationship to licenses. Users can now be attached to a license to model multi-user licenses.
</description>
    <pubDate>Mon, 01 Apr 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2024-3</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Remove singular user relationship from machines.</description>
    <pubDate>Mon, 01 Apr 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2024-2</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>Rename singular user relationship for licenses to owner.</description>
    <pubDate>Mon, 01 Apr 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2024-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix issue where release and artifact endpoints could unexpectedly result in a 403 error when the requestor has an expired license.
  

  This was due to an incorrect object scope that would cause an eventual authorization error.
</description>
    <pubDate>Wed, 01 May 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2024-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add user count to license payloads via /relationships/users/meta/count.
</description>
    <pubDate>Wed, 01 May 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2024-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add a max users limit to policies, to control how many users can be associated to a given license. To be used with multi-user licenses.
  

  This behaves similarly to the existing max machine and process limits.
</description>
    <pubDate>Wed, 01 May 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2024-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add a per-user leasing strategy to policies, to control how many machines and processes can be leased per-user.
  

  Previously, the leasing strategy only applied to processes.
</description>
    <pubDate>Wed, 01 May 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2024-2</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>
  Split a policy&#39;s leasing strategy into 2 distinct attributes: machine leasing strategy, and process leasing strategy.
  

  Previously, the leasing strategy only applied to processes, but we also introduced similar functionality for machines, so we thought it best to separate them.
</description>
    <pubDate>Wed, 01 May 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2024-1</guid>
  </item>
  <item>
    <title>LAUNCH</title>
    <description>Keygen goes Fair Source. 🥳</description>
    <pubDate>Thu, 01 Aug 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2024-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add activity filter to licenses list endpoint, allowing querying for e.g. licenses without any activity in the past 30 days.</description>
    <pubDate>Tue, 01 Oct 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2024-5</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for Raw engine, e.g. raw.pkg.keygen.sh.</description>
    <pubDate>Tue, 01 Oct 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2024-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add code identifier to products, to allow products to be looked up via a human-readable identifier.</description>
    <pubDate>Tue, 01 Oct 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2024-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add FROM_NOW_IF_EXPIRED renewal basis to policies, to conditionally renew from the current time if the license is expired, otherwise renew from the license&#39;s expiry.
  

  This is useful in cases where you renew licenses ahead of time.
</description>
    <pubDate>Tue, 01 Oct 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2024-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Release tags are now unique per-product and per-package, rather than globally, allowing for simplified release management.
  

  Previously, only 1 release could use the &quot;latest&quot; tag across all products and packages, but now there can be multiple &quot;latest&quot; tags across products and packages.
</description>
    <pubDate>Tue, 01 Oct 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#oct-2024-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for npm engine, e.g. npm.pkg.keygen.sh.</description>
    <pubDate>Fri, 01 Nov 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2024-3</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix rare race-condition where some dead machines that have been resurrected would not be culled even after subsequent death.
</description>
    <pubDate>Fri, 01 Nov 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2024-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for Rubygems engine, e.g. rubygems.pkg.keygen.sh.</description>
    <pubDate>Fri, 01 Nov 2024 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#nov-2024-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add support for providing a custom algorithm during license and machine file checkouts.
  

  Previously, if a signing scheme was set on the policy, it would use that, otherwise it would default to Ed25519. Now, an override can be provided regardless.
</description>
    <pubDate>Wed, 01 Jan 2025 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2025-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Remove upper limit on TTL for license and machine file checkouts.
  

  Previously, we had an upper bound of 1 year for TTLs, which was arbitrary and added friction to certain licensing models. Now, there is no upper bound.
</description>
    <pubDate>Wed, 01 Jan 2025 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2025-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add support for OCI engine, e.g. oci.pkg.keygen.sh.</description>
    <pubDate>Wed, 01 Jan 2025 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jan-2025-1</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>
  Replace the CREDENTIALS_INVALID error code with more nuanced error codes.
  

  Error codes like PASSWORD_REQUIRED and SSO_REQUIRED can be used to direct a user through their configured authentication flow.
</description>
    <pubDate>Sat, 01 Mar 2025 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2025-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Event logs are now available on all account subscription tiers.
  

  Previously, event/audit logs were only available on Ent tiers, but are now available on Dev and Std tiers, with differing retention periods.
</description>
    <pubDate>Tue, 01 Apr 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2025-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add backdated attribute to releases, allowing new releases to be backdated and accessed by expired licenses under a MAINTAIN_ACCESS or RESTRICT_ACCESS expiration strategy.
</description>
    <pubDate>Thu, 01 May 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2025-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add ability for products to delete a user, given the user has a user role, and the user either has no products or their only product is the authenticated product.
  

  This adds the user.delete permission to all products.
</description>
    <pubDate>Thu, 01 May 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2025-3</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix an issue in our webhook delivery logic and in our webhook authorization layer where products could receive and read webhook events for resources outside their jurisdiction, e.g. a product could read events meant for other products within the same account.
  

  You can give the product permission to read an endpoint&#39;s events by updating the endpoint&#39;s product relationship via the dashboard.
</description>
    <pubDate>Thu, 01 May 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2025-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Custom permissions are now available on all account subscription tiers.
  

  Previously, custom permissions were only available on Ent tiers, but are now also available on Dev and Std tiers. Accounts can also define default permission sets for licenses and users.
</description>
    <pubDate>Thu, 01 May 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#may-2025-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Update environment isolation to allow global admins to escape isolation and authenticate into any environment.
  

  This greatly improves the DX of creating and managing isolated environments.
</description>
    <pubDate>Sun, 01 Jun 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#jun-2025-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Increase allowed depth of nested metadata objects to 2 levels of nesting.
  

  Previously, we only allowed 1 level of nesting.
</description>
    <pubDate>Fri, 01 Aug 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2025-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add support for bulk adding licenses into Relay.
</description>
    <pubDate>Fri, 01 Aug 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2025-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add support for named &quot;pools&quot; in Relay to segment licenses by environment, product, and other arbitrary criteria.
  

  Now available in release v1.2.0-beta.1.
</description>
    <pubDate>Fri, 01 Aug 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#aug-2025-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add maximum disk enforcement to policies, and disk consumption to licenses and machines.
  

  Also adds a new TOO_MUCH_DISK validation code, and a max disk override to licenses.
</description>
    <pubDate>Mon, 01 Sep 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2025-4</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add maximum memory enforcement to policies, and memory consumption to licenses and machines.
  

  Also adds a new TOO_MUCH_MEMORY validation code, and a max memory override to licenses, similar to max cores.
</description>
    <pubDate>Mon, 01 Sep 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2025-3</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add support for ECDSA P-256 signatures. This introduces a new ecdsa-p256 signing scheme for responses, webhooks, and license/machine files, and also introduces an ECDSA_P256_SIGN scheme for signed keys.
  

  ECDSA P-256 is also known as secp256r1 and prime256v1.
</description>
    <pubDate>Mon, 01 Sep 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2025-2</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix an issue in our PyPI engine&#39;s authorization logic that would erroneously redirect a package request to PyPI if an authorization error occurred.
  

  Moving forward, authorization errors will be appropriately returned when a user requests a package they don&#39;t have permission to access, rather than redirecting the user to PyPI. This further hardens our PyPI engine against potential supply chain attacks, detailed here.
</description>
    <pubDate>Mon, 01 Sep 2025 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#sep-2025-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add expired filter to licenses list endpoint, allowing querying for, e.g. licenses that expired within the last 30 days.</description>
    <pubDate>Mon, 01 Dec 2025 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#dec-2025-1</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add expires[on] and expired[on] filters to licenses list endpoint, allowing querying for licenses on specific dates.
</description>
    <pubDate>Sun, 01 Feb 2026 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#feb-2026-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>
  Fix an issue where the Dashboard used incorrect durations for policies.
  

  For example, policies with a 1 year duration incorrectly used 31536000 seconds (365 days) instead of 31556952 (Gregorian year), which depending on the time of year, caused licenses to be created with expirations that were not exactly 1 year from their created timestamp.
</description>
    <pubDate>Sun, 01 Mar 2026 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2026-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>
  Add new analytics endpoints and charts to the Dashboard.
  

  This was part of a larger migration of our log and analytical data from Postgres to Clickhouse. Charts should be snappier now, with more to come.
</description>
    <pubDate>Sun, 01 Mar 2026 06:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#mar-2026-1</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix incorrect authorization for checkouts including the license&#39;s users relationship.</description>
    <pubDate>Wed, 01 Apr 2026 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2026-6</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix incorrect authorization for support and sales agents on legacy release upload and yank actions.</description>
    <pubDate>Wed, 01 Apr 2026 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2026-5</guid>
  </item>
  <item>
    <title>FIX</title>
    <description>Fix a possible privilege escalation scenario when an admin with limited permissions also had the admin.create permission.</description>
    <pubDate>Wed, 01 Apr 2026 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2026-4</guid>
  </item>
  <item>
    <title>CHANGE</title>
    <description>
  Limit offset-based pagination to a maximum page number of 100.
  

  For paginating large datasets, we recommend cursor-based pagination, both for performance and correctness reasons. See the docs for more info.
</description>
    <pubDate>Wed, 01 Apr 2026 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2026-3</guid>
  </item>
  <item>
    <title>DEPRECATE</title>
    <description>Deprecate offset-based pagination. For performance and correctness reasons, we recommend using cursor-based pagination moving forward.</description>
    <pubDate>Wed, 01 Apr 2026 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2026-2</guid>
  </item>
  <item>
    <title>FEATURE</title>
    <description>Add cursor-based pagination.</description>
    <pubDate>Wed, 01 Apr 2026 05:00:00 GMT</pubDate>
    <link>https://keygen.sh/changelog/</link>
    <guid isPermaLink="true">https://keygen.sh/changelog/#apr-2026-1</guid>
  </item>
</channel>
</rss>