Capabilities, Subscriptions, Accounts
IO Ninja offers a lot of features. It is unlikely that you as a user are going to utilize right off the bat everything IO Ninja has to offer. Moreover, some features that are simply crucial to one group of users may not be required by another group at all!
Before, we often received emails from our users like the one below:
I only use the Serial Terminal of IO Ninja; do I really have to purchase a full license just for that? Can I get the Serial Terminal only?
So we kept asking ourselves – wouldn’t it be great if users could choose what they need instead of purchasing an all-in-one license and thus paying for something they might never use? Of course, the answer is a resounding YES!
However, there was a big question. How to allow users to buy only what they need in a product which is mostly open-source? All plugins of IO Ninja are distributed as open-source scripts – and we encourage our users to create their own plugins. So how to make some features FREE and some PAID when plugins are all open-source?
Gist
The gist of our approach is as follows.
Functionality of IO Ninja is split into independent functional blocks called capabilities; these capabilities are either FREE or PAID;
Each plugin (and some platform features) of IO Ninja requires one or more of those capabilities; to use a plugin or a platform feature, all required capabilities must be ENABLED;
Free capabilites are always enabled; to unlock a paid capability you need to either:
- Purchase the capability;
- Subscribe;
- Borrow the capability or a subscription from your workgroup;
Subscriptions enable all capabilities for the subscription period;
To keep track of user’s capabilities, subscriptions, and evaluations, we introduced an account subsystem; accounts can be PERSONAL or WORKGROUP;
Personal accounts are for logging in the IO Ninja application;
Workgroup accounts are for sharing capabilities and subscriptions among the workgroup members;
Holders of old licenses receive credits for the total license price; credits can pay for capabilities or subscriptions.
Details
In the following subsections you can get more details about all the topics outlined above.