What’s New

Keygen

Developer Tools

Software licensing and distribution API, self-hostable as Keygen CE.

Latest v1.7.0 · by KeygenWebsitekeygen-sh/keygen-api

Changelog

v1.7.0

The one introducing Clickhouse

Upgrade to the keygen/api:latest or keygen/api:v1.7 image. This release follows our twice-yearly release cadence for Keygen CE/EE and introduces a new Clickhouse database system backing request and event logs, replacing the Postgres request and event log tables, in addition we've introduced new private API analytics endpoints used by Portal, support for Postgres replicas, connection poolers, cursor pagination, among various bug fixes.

[!WARNING] The new Clickhouse database is only applicable to Keygen EE. It is required in order to continue using request and event logs. Legacy request and event logs stored in Postgres will remain available, but will no longer be accessible through the API.

Configuration

To enable the Clickhouse database in Keygen EE, configure the following environment variables:

CLICKHOUSE_DATABASE_URL=clickhouse://...
CLICKHOUSE_DATABASE_ENABLED=1

To enable a replica Postgres database, configure the following:

REPLICA_DATABASE_URL=postgres://...
REPLICA_DATABASE_ENABLED=1

It's recommended to configure a database before enabling it.

Migrations

This release will include a new database (EE), multiple database migrations, including data migrations, so we recommend taking a database backup beforehand and performing the upgrade during off-peak hours where possible.

docker pull keygen/api:latest

After deploying, but before "rolling over the release," run the following commands in the container, where applicable:

If you're running Keygen EE and have Clickhouse configured, provision Clickhouse:

rake db:schema:load:clickhouse # provision Clickhouse

Then, migrate the databases normally:

rake db:migrate # apply database migrations

After deploying and running the migrations, run the following commands in the container to seed any new data:

rake db:seed # adds new permissions and event types

You may now "roll over" the release, i.e. route traffic to the new containers and shut down old containers.

For more information on database migrations, see the Rails documentation.


For more information on upgrading, see the docs.

For all changes, see the changelog.

v1.6.0

ECDSA P-256, memory/disk metering, and cross-env auth

Upgrade to the keygen/api:latest or keygen/api:v1.6 image. This release follows our twice-yearly release cadence for Keygen CE/EE and introduces support for ECDSA P-256 cryptographic signatures, memory and disk metering and consumption for machines, a more straight-forward cross-environment authentication scheme for admins, expanded metadata support, among various bug fixes.

This release will include multiple database migrations, including data migrations, so we recommend taking a database backup beforehand and performing the upgrade during off-peak hours.

docker pull keygen/api:latest

After deploying, but before "rolling over the release," run the following command in the container to migrate the database:

rake db:migrate # apply database migrations

After deploying and running the migrations, run the following commands in the container to seed new data:

rake db:seed # adds new permissions and event types

You may now "roll over" the release, i.e. route traffic to the new containers and shut down old containers.

For more information on database migrations, see the Rails documentation.

For more information on upgrading, see the docs.

For all changes, see the changelog.

v1.5.0

Multiplayer mode, SSO, Docker/OCI engine, and more

Upgrade to the keygen/api:latest or keygen/api:v1.5 image. This release follows our twice-yearly release cadence for Keygen CE/EE and introduces support for our OCI engine, allowing you to distribute Docker and OCI container images to licensed users using our new OCI-compliant container image registry. It also introduces the option for multiplayer mode in Keygen EE, i.e. multi-tenant installations, as well as SAML/SSO.

This release will include multiple database migrations, including data migrations, so we recommend taking a database backup beforehand and performing the upgrade during off-peak hours.

docker pull keygen/api:latest

After deploying, but before "rolling over the release," run the following command in the container to migrate the database:

rake db:migrate # apply database migrations

After deploying and running the migrations, run the following commands in the container to seed new data:

rake db:seed # adds new permissions and event types

You may now "roll over" the release, i.e. route traffic to the new containers and shut down old containers.

For more information on database migrations, see the Rails documentation.

For more information on upgrading, see the docs.

For all changes, see the changelog.

v1.4.0

Rubygems, npm, imports and exports

Upgrade to the keygen/api:latest or keygen/api:v1.4 image. This release introduces support for Rubygems and npm distribution engines. In addition, this release brings support for importing and exporting data between Keygen Cloud and Keygen CE/EE. This release will include multiple database migrations, so we recommend taking a database backup beforehand and performing the upgrade during off-peak hours.

docker pull keygen/api:latest

After deploying, but before "rolling over the release", run the following command in the container to migrate the database:

rake db:migrate # apply database migrations

After deploying and running the migrations, run the following commands in the container to seed new permissions:

rake db:seed # adds new permissions and event types

You may now roll over the release, i.e. route traffic to the new containers and shut down old containers.

For more information on database migrations, see the Rails documentation.

For more information on upgrading, see the docs.

v1.3.0

Multi-user licenses and more

Upgrade to the keygen/api:latest or keygen/api:v1.3 image. This release will include multiple database migrations, so we recommend taking a database backup beforehand and performing the upgrade during off-peak hours. Depending on your data's size, some migrations could take up to a few minutes as data is migrated. But for most self-hosted installs, each migration should be quick.

docker pull keygen/api:latest

After deploying, but before "rolling over the release", run the following command in the container to migrate the database:

# Migrate the database
rake db:migrate

After deploying and running the migrations, run the following commands in the container to seed new permissions:

# Add new permissions and event types
rake db:seed

# Migrate existing role permissions
rake keygen:permissions:admins:add[license.users.attach,license.users.detach,license.owner.update,machine.owner.update]
rake keygen:permissions:environments:add[license.users.attach,license.users.detach,license.owner.update,machine.owner.update]
rake keygen:permissions:products:add[license.users.attach,license.users.detach,license.owner.update,machine.owner.update]

After running the above, and you have a large database, you may also want to vacuum the following tables:

# Vacuum these tables to improve performance of large tables
VACUUM ANALYZE licenses;
VACUUM ANALYZE users;

You may now roll over the release, i.e. route traffic to the new containers and shut down old containers.

For more information on database migrations, see the Rails documentation.

For more information on upgrading, see the docs.

Discussion