Activation via API

I have a product that I distribute on identical VMs (the customer buys a VM) running Ubuntu running a node.js server, which they then connect to through their web browser.

I wish to set up some licensing / activations for:a) Each VM (so they can run no more than X VMs).b) Each user on a VM (So no more than Y (possibly named) users can have accounts on any VM).

Licenses should be able to be added to (increase X and Y), revoked (so the software stops working), and expire after a year without the customer needing to do anything after purchasing from us (I believe LimeLM handles all of these).

It appears LimeLM would do what I need (key management, revocation, time-expiry, etc.) but requires dll files to be included into an installer, rather than me being able to just make some calls from node.js when I want to check if the user is authenticated to use the software. Is there a HTTP API or way of checking if a user may use the software that I can have node.js call when a user logs in / registers / wants to update, or another way of integrating LimeLM (or similar product) into my software?

Thanks,Tom.

Hey Tom,

I'll answer your questions in the reverse order:

It appears LimeLM would do what I need (key management, revocation, time-expiry, etc.) but requires dll files to be included into an installer, rather than me being able to just make some calls from node.js when I want to check if the user is authenticated to use the software.

You can use TurboActivate / TurboFloat from your installer and/or from your app. Since you're using Node.js then you'll have to use an extension like Node.js Foreign Function Interface in order to make the TurboActivate / TurboFloat calls from your application.

The best place to start is with the C APIs (TurboActivate C API article, TurboFloat C API article) and the actual C headers (TurboActivate.h / TurboFloat.h).

Licenses should be able to be added to (increase X and Y), revoked (so the software stops working), and expire after a year without the customer needing to do anything after purchasing from us (I believe LimeLM handles all of these).

Yes, you can do all this with LimeLM.

Tell me if this helps, or if you have any other questions.