MoI discussion forum
MoI discussion forum

Full Version: licensing / multiple users / key files

From: blackpixel
22 Oct 2018   [#1]
Hi all,

I have some questions about licensing withing a bigger pipeline.
We want to make Moi available to multiple users with multiple license keys, but I kind of hit a wall with the way it handles licenses.
Also all questions = "Could this be a feature?" requests to Michael :)

#1: Is there a way to specify the location of the license file with an env variable or an option?
I know that it works if it's either in AppData\Roaming\Moi or in the Moi root directory where the binary is.
But I'd rather not have a copy of the license key on a local artist workstation and at least point it to a location on a server.

#2: Is there a way to have multiple key files or more than one key in one license file?
Since there is no license server it would be nice if Moi could check the availability of each key in the license file.
This could to an extend be solved with #1, but then again one would need to build a custom check in / out system as a workaround.
Also this + #1 would be a very viable replacement for floating licensing. Moi would only complain if all licenses are in use like a license server.

#3: Are there volume licenses?
E.g. 1 key = multiple users? And if yes, would it be possible to "upgrade the bundle key" if a company wants more users?
I imagine this might be the least possible feature request, because it changes how keys are interpreted, but it would be obsolete if #2 were possible.

#4: Ability to read the key from an env variable?
I'm clearly grasping at straws now. This would also involve some kind of self management / check in / out of licenses.

So yeah I'm pretty much stuck.
I searched through the forums and only found solutions using USB sticks or CDs, which are impossible to manage or incorporate in a higher security environment( USB storage disabled on workstations etc. ).
Having a copy of the key in the Moi install is also rather risky and you quickly lose track who has which version of Moi with which key. This would also involve having multiple duplicate versions spread around with different keys.
And though Moi is beautifully portable, the license issue makes it hard to actually make it work in a production setup.

How is everyone else handling Moi in a bigger facility ?

~ Mariusz
From: Michael Gibson
22 Oct 2018   [#2] In reply to [#1]
Hi Mariusz, currently MoI only has a simple single user type license. I kind of worry about the support complexity of trying to have a license server based thing.

re:
> #1: Is there a way to specify the location of the license file with an env variable or an option?

Sorry no not currently. Right now it will check if it's in the same spot as moi.exe, and if it's not there it looks in appdata and if not there it will do one more check in the registry under HKEY_CURRENT_USER\Software\Moi .

It would not be hard though to allow passing in a path to the license key file as a command line parameter.



> #2: Is there a way to have multiple key files or more than one key in one license file?
> Since there is no license server it would be nice if Moi could check the availability of each key in the license file.

Sorry no not currently - the license key file is expected to be a text file containing just one license key in it.

The part that's difficult here is the "check the availability" part - that basically means "implement a floating license manager", I'd think?



> #3: Are there volume licenses?

Sorry no not currently, right now there is only a single user type of license. I've thought some about doing some kind of site license with just one key that could be used on all machines and it's valid for one year.


> #4: Ability to read the key from an env variable?
> I'm clearly grasping at straws now. This would also involve some kind of
> self management / check in / out of licenses.

I guess the registry one is close to this, to use the registry you make a string valued key at HKEY_CURRENT_USER\Software\Moi\moi_v3_license.key and the contents of it is the license key.


Right now the only thing really set up is one license for each user installed on their workstation.

- Michael
From: blackpixel
22 Oct 2018   [#3] In reply to [#2]
Hi Michael, thank you for the fast response!
Changing the registry also needs admin rights here, so it's hard to do "on demand" without having IT involved every time.

#1 a command line option for starting Moi would be amazing!!! My env variable suggestion is basically the same thing. I'd just love to set the path to the key file before launching Moi.
With this one could have a few license files in a network share and let the user choose one with a custom launcher.

#2 Yep I figured it's just a text and what I mean with "check" is basically already there I think (correct me if I'm wrong)
When 2 instances are open on different computers, Moi complains ( rightly so ) that the license is in use.
What I suggested is to allow having more than one key string in the key file, each on a new line.

Then Moi could loop over them until you finds an unused key. This might be hard to do as each instance would have to know it's used key, so yeah you'd basically mimic a license server here :/

Or as an easier and faster alternative: check validity of all keys ( e.g. 3 valid keys in key file ), then compare against number of moi instances running in the network and pointing to the same key file ( e.g. just 2 -> good to go)
This might be much easier to implement without breaking compatibility with current installs, since everyone has just one line in the key file right now => one instance allowed.
Also no need to change how you enter keys or anything, just a possibility for pipeline guys to do their thing.

#3 That would also be great, but a multi key solution like #2 might be more flexible for smaller studios.

~ Mariusz
From: Michael Gibson
29 Oct 2018   [#4] In reply to [#3]
Hi Mariusz, so for the next v4 beta I've added some additional ways for specifying the path to the license key file.

The path to the license key file (named moi_v2_license.key, moi_v3_license.key, etc...) can be passed as a command-line parameter to MoI.exe (put " " around it if there any spaces in the path) or also set as an environment variable like moi_v3_license.key=path .

- Michael
From: blackpixel
7 Nov 2018   [#5] In reply to [#4]
Woah, those are awesome news!!
Will test it as soon as it's out!

~ Mariusz