Skip to content

Ruby SDK ​

Use this page to integrate LicenseKit from Ruby with the first-party licensekit-ruby gem.

Who This Is For ​

  • Ruby developers building internal tools or app integrations
  • teams that want a lightweight first-party client with verification helpers
  • AI agents generating Ruby code against the LicenseKit API

When To Use This ​

Use this page when your integration language is Ruby and you want the official gem instead of direct HTTP calls.

How It Works ​

Install ​

bash
gem install licensekit-ruby -v 0.1.0.alpha.1

Package shape ​

The gem exposes:

  • LicenseKit::ManagementClient
  • LicenseKit::RuntimeClient
  • LicenseKit::SystemClient
  • LicenseKit::PublicKeyStore
  • LicenseKit.verify_runtime_result
  • scope metadata helpers

Auth split ​

  • management routes use Authorization: Bearer <token>
  • runtime routes use Authorization: License <license-key>
  • system routes use no auth

Reporting support ​

The management client also covers reporting reads and exports, including activities, usage reports, audit reports, customer summaries, settlement summaries, and export creation/download.

Generated method names follow the existing snake_case pattern, such as:

  • list_activities
  • get_usage_summary
  • list_usage_ledger
  • create_report_export

Scope metadata ​

ruby
required = LicenseKit.get_required_scopes("createReportExport")
allowed = LicenseKit.has_required_scopes("getUsageSummary", ["report:read"])

Example ​

Runtime validation and verification:

ruby
require "licensekit"

base_url = ENV.fetch("LICENSEKIT_BASE_URL", "https://api.licensekit.dev")

runtime = LicenseKit::RuntimeClient.new(
  base_url: base_url,
  license_key: ENV.fetch("LICENSEKIT_LICENSE_KEY")
)
system = LicenseKit::SystemClient.new(base_url: base_url)

result = runtime.validate_license(
  body: {
    "fingerprint" => ENV.fetch("LICENSEKIT_FINGERPRINT", "host-123")
  }
)

public_keys = system.list_public_keys
verified = LicenseKit.verify_runtime_result(
  result,
  LicenseKit::PublicKeyStore.new(public_keys["data"])
)

Reporting export example:

ruby
management = LicenseKit::ManagementClient.new(
  base_url: base_url,
  token: ENV.fetch("LICENSEKIT_MANAGEMENT_TOKEN")
)

export = management.create_report_export(
  body: {
    "report_kind" => "usage-summary",
    "format" => "csv",
    "filters" => {
      "product_id" => "prod_123"
    }
  }
)

Common Mistakes ​

  • using a management token with the runtime client
  • assuming export creation only needs report:read
  • skipping verification because Ruby already parsed the JSON response
  • treating reporting exports as live reruns instead of frozen artifacts

Prototype docs shell for the rewrite workspace.