Implemented missing code for trial request to generate proper subscription / perpetual keys on request

This commit is contained in:
2022-08-22 20:35:43 +00:00
parent 2c509dcbe3
commit 5d8b0c1b6b
5 changed files with 90 additions and 56 deletions

56
.vscode/launch.json vendored
View File

@@ -4,6 +4,19 @@
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
/*
*/
{
"name": ".NET Core Launch (web) PERPETUAL BUILD",
"type": "coreclr",
@@ -38,19 +51,7 @@
// "command": "xdg-open"
// }
// },
/*
*/
"env": {
// "ASPNETCORE_ENVIRONMENT": "Development",
"AYANOVA_JWT_SECRET": "1111111MyRandom32CharacterSecret",
@@ -72,7 +73,22 @@
"sourceFileMap": {
"/Views": "${workspaceFolder}/Views"
}
},{
},
/*
*/
{
"name": ".NET Core Launch (web) SUBSCRIPTION BUILD",
"type": "coreclr",
"request": "launch",
@@ -91,19 +107,7 @@
"action": "openExternally",
"pattern": "^\\s*Now listening on:\\s+(https?://\\S+)"
},
/*
*/
"env": {
// "ASPNETCORE_ENVIRONMENT": "Development",
//"AYANOVA_REPORT_RENDERING_TIMEOUT":"1",
@@ -115,7 +119,7 @@
"AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=raven;Database=AyaNova;CommandTimeout=300;",
"AYANOVA_DATA_PATH": "c:\\temp\\ravendata",
"AYANOVA_USE_URLS": "http://*:7575;",
//"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true",
"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true",
//"AYANOVA_REMOVE_LICENSE_FROM_DB":"true",
//"AYANOVA_SERVER_TEST_MODE": "true",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8",

View File

@@ -30,6 +30,7 @@ UPLOAD releases to ayanova.com/download/next folder where it will be staged befo
#### NEXT folder version
##### Perpetual
cd /var/ayanova && \
sudo systemctl stop ayanova.service && \
sudo curl -O https://www.ayanova.com/download/next/ayanova-linux-x64-server.zip && \
@@ -49,6 +50,28 @@ sudo rm -r ./wwwroot && \
sudo unzip -o ayanova-linux-x64-server.zip -x "config.json" && \
sudo systemctl start ayanovaa261.service
#### SUBSCRIPTION
cd /var/ayanova && \
sudo systemctl stop ayanova.service && \
sudo curl -O https://www.ayanova.com/download/next/ayanova-subscription-linux-x64-server.zip && \
sudo rm *.dll && \
sudo rm -r ./resource && \
sudo rm -r ./wwwroot && \
sudo unzip -o ayanova-subscription-linux-x64-server.zip -x "config.json" && \
sudo systemctl start ayanova.service
(a261 server)
cd /var/ayanovaa261 && \
sudo systemctl stop ayanovaa261.service && \
sudo curl -O https://www.ayanova.com/download/next/ayanova-subscription-linux-x64-server.zip && \
sudo rm *.dll && \
sudo rm -r ./resource && \
sudo rm -r ./wwwroot && \
sudo unzip -o ayanova-subscription-linux-x64-server.zip -x "config.json" && \
sudo systemctl start ayanovaa261.service
#### MAIN RELEASE folder version
cd /var/ayanova && \

View File

@@ -5,40 +5,49 @@ THINGS HOLDING UP PERPETUAL RELEASE
- Code changes to prevent Subscription license from being used in a self installed scenario and vice versa
see notes below about this in various todo items
- Pricing, is it right, i'm doubting again
I'm cheap and poor so that's coloring my thinking maybe making me think it's too high?
If existing customers see it's too high they may bail in droves or be pushed out?
It is revenue right now don't want to break that
Must make offer to new version but no push off existing version just yet
it really isn't a lot of money but times are tight and AyaNova is not the best out there and needs iteration to be better
Need to make profit, particularly on the rental servers which is riskier for the business as it's a committed ongoing expense each month we have to pay.
- Website
Sales page
Pricing page
last chance to think it over again
Marketing / features page
Purchase page with links
Perpetual vs Subscription (perpetual first, subscirption "coming soon" ok)
- License changes
- Test and confirm Shareit sales links
- Announcement email with migration plan and costs and offers etc
MUST not push away existing customers, make them feel like they don't necessarily have to change anything which is good for revenue and good for transition time not getting swamped all at once
WIP >>>>>>>>>>>>>
TODO: NEXT: Finish rockfish license readiness project, post it live, test with *OLD* AyaNova 8.0.3 build to ensure it won't bomb on an eval request for older versions of AyaNova 8 out there, ONLY AFTER this..
then do a new build of v8 (the one I posted had devmode on, need a checklist I think to follow) and post it then
update the devops ayanova to the NEXT folder build, test all the license things, test a migration etc then move on to whatever is next
todo: test a new trial install with no existing db and make sure it works properly through the process just in case
wipe the db completely and reboot at server see what happens
FAIL can't request errors out fuck, but this is a subscription build I think...
todo: post rockfish if get to here and all ok
todo: Make sure doesn't fuck up existing testers - test existing version 8.0.3 with new rockfish BEFORE POSTING NEW 8.0.5 at server with new key generator for rockfish??
todo: if all goes well then post new builds to NEXT folder and install to test server and install both perpet and sub and confirm it's ok and not allowing switching license type without new license
todo: ultimately at the end test as a fake sale right through to licensing so we know it's ready to go!!!! Very important, this is the last thing I need to be dealing with when get in the weeds close to release
todo: NOT showing build type anywhere in client UI other than boot log (i.e. not in server information and not in client about page)
FIX THIS !!!!
todo: move the dbid to the very first position in the shareit order additional fields as only the first two will show in email and reporting
todo: update the test servers whichever are around, I've done my dev test.helloayanova.com, but should also do a261 and the eval ones
todo: rockfish, need ability to add quantities to raven license options, once know some options for subscribers then do it at the same time
move the blocks of customer users stuff back into options again where it belongs, did it wrong before
todo: research stuff below, then website stuff and move on
L8ER >>>>>>>>>>>>>>>>>>>>
todo: ROCKFISH can't make a trial key for users in the UI, only when it's requested from ayanova.
I'm really not sure if this is an issue or not but putting it on the list in case
add as a feature just in case
SHAREIT pricing and subscription changes are all built into the system, I had no idea, also an api and bunch of other shit we've needed all along
They have comprehensive help available here: https://account.mycommerce.com/Home/Wiki
some things we will need to request be turned on to be able to do them like changing subscription quantities and upgrade paths for subscribers so they can just move to v8 sub
without hassle
RESEARCH: sendgrid / email system can we have a domain just for our notifications for those that don't use their own domain and use for all users (but NOT tied to AyaNova.com)
https://linuxhandbook.com/set-up-discourse-digital-ocean/ has an example of discourse with Mailgun freen email ssytem and a domain
@@ -46,7 +55,9 @@ https://linuxhandbook.com/set-up-discourse-digital-ocean/ has an example of disc
TEST: cheapest storage for attachments possible, test out creating a new droplet with block storage to hold the attachment files to see if it's possible, how it's done and mapped etc
todo: email in to shareit why not getting the additional info stuff in new product pages
todo: shareit once we know the optional add-on's people can buy for subscription need prodcut pages with shareit to actually sell that shit
and also options in rockfish so it displays in the license, in fact rockfish should allow quantities with the options but currently doesn't which is just wrong
todo: can user use erase key flag to get trial and then use trial for 5 days and just keep on doing that or isn't there a check to erase db first??
needs some way to ensure this doesn't happen, maybe a user check or something or some sign it's not eval??
@@ -78,13 +89,6 @@ todo: SAAS gaming, once have idea of plans and add-ons, need to test it out on s
todo: DOCS - remove all mention of digitalocean from the install and other docs since we're going to be using them for SAAS we don't want to make it simple for people to host themselves, just say Linux and leave it at that.
todo: RENTAL terminology needs to change to "SUBSCRIPTION" in rockfish and in client and at server, RENT should not appear anywhere, it's awkward and old fashioned
todo: SUBSCRIPTION should only refer to month to month SAAS feature / plan. Support and upgrades should be referred to as Maintenance or Support and upgrades without the word "subscription"
TODO: above changes at SHAREIT with the product descriptions as well so no confusion
todo: if SAAS needs to do some things differently:
if it helps, consider a different build flag since SAAS is like an internal build for us
@@ -122,14 +126,14 @@ todo: each droplet for SAAS would need it's own ssh key and password to avoid eg
also would need to securely store the passwords somewhere really really fucking secure like offline in a special keypass only accessible from certain hardware maybe with a digital key or something I dont' know
Look into security keepass with utmostness and not shared online anywhere so sneakernet only
todo: Change 45 day trial to 5 day trial but offer that they can email if they are going perpetual and need a special requested more period of time.
todo: Can I make a trial license longer than 5 days for people?
I think I can but confirm that shit
Changed 45 day trial to 5 day trial but offer that they can email if they are going perpetual and need a special requested more period of time.
If they need more time they can sign up for a month's use of the SAAS model
is this in rockfish??
also they can just request a new trial over and over if in eval mode if they erase the db each time
also if I can override a trial period for an eval in the rockfish UI that would be great (TO BE ADDED WITH CODE CHANGE)
todo: CLIENT UI license changes for subscribers around the LICENSE pages and route??
@@ -240,10 +244,6 @@ Overview:
YES SOONEST - Pricing policy and plan
New website at the ready
including live eval as planned below
New Rockfish ASAP
should use postgres, need to build site and importer script / code separately
todo: validate the rate limiting by tailing the error log and hitting test raven with a browser and just giong through it all with full refresh to see if it kicks in during standard like rockfish
todo: QBOI deprecation

View File

@@ -11,6 +11,8 @@ namespace AyaNova.Models
}
[Required]
public string DbId { get; set; }
[Required]
public bool Perpetual { get; set; }
[Required, EmailAddress]
public string Email { get; set; }
[Required]

View File

@@ -1,4 +1,4 @@
//#define DEVELOPMENT_TEST_ROCKFISH
#define DEVELOPMENT_TEST_ROCKFISH
using System;
using System.Text;
using System.Threading.Tasks;
@@ -486,6 +486,11 @@ namespace AyaNova.Core
{
trialRequest.DbId = ServerDbId;
#if (SUBSCRIPTION_BUILD)
trialRequest.Perpetual=false;
#else
trialRequest.Perpetual = true;
#endif
log.LogDebug($"Requesting trial license for DBID {LicenseDbId}");
string sUrl = $"{LICENSE_SERVER_URL_ROCKFISH}rvr";
try