Skip to content

Latest commit

 

History

History
81 lines (60 loc) · 2.99 KB

File metadata and controls

81 lines (60 loc) · 2.99 KB

Keymint Node.js

A professional, production-ready SDK for integrating with the Keymint API in Node.js/TypeScript. Provides robust, async-first access to all major Keymint features, with strong typing and modern error handling.

Features

  • Async/await: All API calls are asynchronous.
  • TypeScript-first: Strongly typed request and response models for all endpoints.
  • Consistent error handling: All API errors are returned as structured objects.
  • Machine Identity: Built-in utilities for hardware fingerprinting and stable installation IDs.

Installation

Add the SDK to your project:

npm install keymint

Usage

import { KeyMint } from 'keymint';

const apiKey = process.env.KEYMINT_API_KEY;
const productId = process.env.KEYMINT_PRODUCT_ID;

if (!apiKey || !productId) {
  throw new Error('Please set the KEYMINT_API_KEY and KEYMINT_PRODUCT_ID environment variables.');
}

const sdk = new KeyMint(apiKey);

// 1. Get a stable, unique ID for this machine
const hostId = KeyMint.getOrCreateInstallationId();

// 2. Create a key authorized only for this machine
const result = await sdk.createKey({ 
  productId,
  allowedHosts: [hostId] 
});

if (result && result.key) {
  console.log(`Created Key: ${result.key}`);
}

Machine Identity

Keymint provides utilities to uniquely identify machines for node-locking:

  • KeyMint.getOrCreateInstallationId(): Recommended. Generates a stable UUID anchored to hardware and persists it to ~/.keymint/installation-id.
  • KeyMint.getMachineId(): Generates a SHA-256 fingerprint based on BIOS UUID, OS machine ID, and MAC address.

API Methods

License Key Management

Method Description
createKey Creates a new license key.
activateKey Activates a license key for a device.
deactivateKey Deactivates a device from a license key.
getKey Retrieves detailed information about a key.
blockKey Blocks a license key.
unblockKey Unblocks a previously blocked license key.

Customer Management

Method Description
createCustomer Creates a new customer.
getAllCustomers Retrieves all customers.
getCustomerById Gets a specific customer by ID.
getCustomerWithKeys Gets a customer along with their license keys.
updateCustomer Updates an existing customer's information.
toggleCustomerStatus Toggles a customer's active status.
deleteCustomer Permanently deletes a customer and their keys.

License

MIT

Support

For help, see Keymint API docs or open an issue.