I don’t think this is possible yet but correct me if I’m wrong. I’d like Rhino to expose a new plugin user’s EntityID for registration purposes.
Use case: New user installs a plugin package and doesn’t have a license yet. Give user a trial license.
Presently: User has figure out how to log into McNeel.com, remember the trial license key you just gave them, and work through that flow to add a license to their user account.
I do see rhino.runtime.analytics.userid but that’s a guid format not the same as the McNeel ID.
Desired flow: Plugin is installed and loaded. The user doesn’t yet have a license. Plugin provides a button saying “Apply for free trial.” User clicks button. Plugin executes existing API calls and either says “Ok, granted, restart Rhino and you’re good.” or “Sorry, you already got a trial last month.”
It’s absolutely fine if this flow results in a little exchange between Rhino and the user saying “X Plugin wants to know your userID in order to register the plugin for you automatically in the McNeel Cloud Zoo. This gives no information to the plugin vendor other than what you would provide if you registered the plugin manually at McNeel.com. Yes/No?”
Technical change:
The Cloud Zoo API already supports the flow except for the lack of the plugin knowing the McNeel User ID (via the optional API endpoint to add license to entity). I suggest a “GetUserID” method returning the McNeel EntityID string such as “9304194021213-|-User” (example modified from the api callbacks docs).
Security concerns: I can’t think of any except to caution plugin authors to make it a two step hop so that their plugin doesn’t contain their auth code so it can contact the McNeel server directly.
Correct procedure: Plugin-> Vendor’s server, “User XYZ wants a license for Blah”, then Vendor’s server → mcneel api endpoint, “Add license x to entity XYZ”.