diff --git a/devdocs/specs/core-license-key-system.txt b/devdocs/specs/core-license-key-system.txt index 79a01a5a..b168a9e9 100644 --- a/devdocs/specs/core-license-key-system.txt +++ b/devdocs/specs/core-license-key-system.txt @@ -19,21 +19,38 @@ Putting that off until closer to release as Rockfish will no doubt change before PROCESS LICENSE BOOTSTRAPPING - - RAVEN when boots and inits license will ensure a GUID DBID value is set in LICENSE TABLE + - RAVEN when boots and doesn't find a db then inits license will ensure a GUID DBID value is set in LICENSE TABLE - This is used to match individual databases to licenses and avoid problems with registration names being the only differentiator as in v7 - Also this is the new fetch code - - RAVEN DB is empty (of biz data) it's license locked and a User MUST EITHER: + - RAVEN Is unlicensed it should check for a new key on a shorter frequency loop rather than once a day? + or, providing a button to trigger that should be enough really + or when server starts it starts the GENERATE loop and checks for a key right away, so they can just reboot teh server if they want an immediate license check? - 1) request a trial key for an empty db by filling out a form in RAVEN (or using api tool) - - see "trial process" below for details + + - RAVEN DB is empty (of biz data) it's license locked and a User MUST DONE ONE OF THE FOLLOWING: + 1) Restore a RAVEN database and reboot the server - 2) Fetch a paid for license - - or, in future purchase right inside RAVEN - - RAVEN fetches and installs the license and the rest proceeds as normally + EMPTY DB AND EXISTING LICENSED KEY IN RF If this DBID is already present in ROCKFISH as *licensed* and FETCHED previously then: + Form displays a message, at top about restoring with link to the manual for restoring db + Rest of form is related to releasing a previously fetched key: + Has a FETCH button on it for forcing a fetch when they have requested it or know it's coming or whatever and below that + A form to fill out to request it be released for re-fetch: + User must fill out form stating reason why and their contact info for verification + The request is emailed to us via Rockfish + We decide to release or not and can contact them etc to handle it + We can release it for refetch and then it's all automatic once daily check (maybe more frequent when unlicensed?) or they can force it -TRIAL PROCESS -============== + EMPTY DB AND DBID NOT IN ROCKFISH + User gets a form for requesting a trial + - by filling out a form in RAVEN (or using api tool) + - see "trial process" below for details + Form has fetch key button on it to force an immediate fetch + FUTURE: form displays a purchase link they can go to and make purchase inside RF + + +TRIAL / ONBOARDING PROCESS +========================== FOR USER: Install RAVEN, boot, go to client endpoint in browser, get prompted for first test of contact with ROCKFISH server, once that is ok then get prompted to fill out a form to request a trial key or attempt to fetch a key already ready for them User fills out form providing registration name and email address, hits send, told to check email to confirm address then will receive a key after that. diff --git a/devdocs/todo.txt b/devdocs/todo.txt index c41fb03e..474d30fc 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -3,6 +3,22 @@ {"login": "OpsAdminLimited","password": "OpsAdminLimited"} +LICENSE / ONBOARDING + +TODO: auth route if not licensed at all (not merely expired, but non-existent) then only manager account can login, no one else + (because there could be other users somehow but no license) + +todo: notify/hello route should no longer return false for trial true for not but instead: + Return a license state enumeration value + 0 = No license at all of any kind + 1 = trial license key + 2 = purchased license key + Note: this has nothing to do with whether there is an active license or not, merely that it's of a type + this is so client can display appropriate UI + + + +