201 lines
9.1 KiB
Plaintext
201 lines
9.1 KiB
Plaintext
TODO:
|
|
|
|
- Subscriptionserverbiz state change trigger potential notification and event log event!!!
|
|
|
|
- Event log and event for server state change event should trigger an entry in the event log automatically
|
|
- events serverstate change can subscribe and be alerted etc
|
|
|
|
- Purchase event must trigger notification event subscribable (might already due to created etc)
|
|
|
|
- Message templates back and front
|
|
new global setting
|
|
|
|
- new notification event type and related code back and front for subscriptions etc
|
|
want all old rockfish style and new sockeye notifications to go through proper notify event code
|
|
- new: trial subscription server requested
|
|
- new: trial subscription server expiration
|
|
- new: subscription server expiration past
|
|
so if they don't re-up no active license then it warns me to shut it down
|
|
One for shutting down server and another for decommissioning
|
|
|
|
|
|
- v7 license fetch route
|
|
- v8 license fetch route
|
|
- v8 trial request route
|
|
- shareit payment notification route
|
|
triggers purchase if of that type, needs to analyze it and need to test it out somehow here first
|
|
- trial server request route that contact form can trigger
|
|
- JOB: notify user active license
|
|
- JOB: purchase to license
|
|
- JOB: Ping / check health route of subscription server
|
|
flag last health check
|
|
trigger event notification if fails
|
|
serverstate set so that it maybe has an OneFail then a TwoFail then a FAILED state where it notifies me so I don't get transient alerts
|
|
also server state used for other things like pending but not commissioned yet, decommissioned etc
|
|
- notify me trial request
|
|
|
|
- manually simulate v7 fetch from rockfish compare to manual test locally in sockey confirm
|
|
Same data shape and format
|
|
fetched is set correctly
|
|
headers
|
|
tls version (once online are the same, should be since it's going through nginx technically for the tls part)
|
|
- Test v8 key fetch, trial request, the whole shebang locally
|
|
- ONLINE TEST
|
|
Install and put on sockeye.ayanova.com subdomain in nginx on alternate port
|
|
Test ui functionality logins etc
|
|
|
|
|
|
- SUBSCRIPTION SERVER UI
|
|
- Menu option generate server commision script based on settings in form
|
|
can fill out form, click on it and it will generate the script needed to paste into new server
|
|
- Button to trigger D.O. API to requisition server automatically, spin it up etc
|
|
|
|
|
|
- Add ui to front the route under /api/v8/license/v7-reset-manager-creds
|
|
- Need ui that shows money required for paying future for yearly subs so at a glance know what money need in bank each month
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////
|
|
//OLD
|
|
|
|
LICENSE NOTES
|
|
|
|
|
|
|
|
------
|
|
|
|
Sockeye should generate a license on a sale receipt, maybe after a slight delay.
|
|
Generated license should be in the list of licenses but have a unfulfilled status of some kind so it's ready for me to visually
|
|
see purchases applicable and confirm approve and send it with one click but it's not doing it itself.
|
|
|
|
If more purchases come in that apply to same customer for v7 then it should regenerate a new license or I guess edit the one it made before and just add to it.
|
|
Idea being that all I have to do is open they list of licenses and just release any that are good to go.
|
|
UI should show the purchases that go into a license so can confirm visually without having to click anywhere else.
|
|
|
|
This way is all but automatic in preparation for full automation later.
|
|
Maybe even a semi automatic dead man switch that will just send it after 24 guess if I don't once it's confirmed to work properly.
|
|
|
|
So need properties added to license object for fulfilled status and a property indicating sent to customer and a menu options to send manually maybe too.
|
|
|
|
I guess will need a template for email messages as well.
|
|
Tied into notification system.
|
|
Don't forget some licenses are not done through SHAREitb do must support manual generation from Paypal etc
|
|
|
|
ALSO
|
|
|
|
Needs manual license generation for v7 still
|
|
|
|
|
|
** CONTACT FORM
|
|
Server request for trial subscription server should maybe go through sockeye instead as a form people can request from or the contact app should forward to sockeye
|
|
so it can create a new subscription server record that is pending status for me to just approve and ultimately auto-generate a server using D.O. API or whatever
|
|
|
|
|
|
|
|
=========
|
|
|
|
PURCHASE drives new licensing ui
|
|
To automate as much as possible need following:
|
|
- Purchase Customer id nullable as may not be able to match to an existing customer
|
|
- processed date important as shows what is not processed yet if empty
|
|
- product category for purchase automatically attributed, i.e. v7, raven perpet, raven sub, misc
|
|
|
|
|
|
License edit / entry form
|
|
- Pick license key type different fields appear
|
|
NEED TO ADD KEYTYPE ENUM TO LICENSE OBJECT
|
|
this will future proof and make UI and handling easier
|
|
Keytypes: AyaNova 7, RAVEN Perpetual, RAVEN Subscription
|
|
- generates key at server on save depending on what is new or changed I guess or needs to be edited after the fact?
|
|
- Generate v7 license from entered ad-hoc data, i.e. it should be from the license edit form and take the entries and make a key on save
|
|
- Generate v7 license for customer from all active purchases
|
|
NEED TO ADD PRODUCT CATEGORY FOR AUTO LICENSE GENERATION?
|
|
V7, RAVEN, MISC (not license keyed)
|
|
this way, can automatically create key for v7 from all purchases that have not yet expired for a customer
|
|
- Generate v8 license from entered data, ''
|
|
- Opening license existing in edit form should re-populate the controls even for v7 so that they can be changed, saved, edited etc
|
|
- Once it's fetched it's read-only but can duplicate!!!!!
|
|
|
|
- direct open a case by case number like workorder
|
|
(id's differ so it isn't easy to just open a case in the url)
|
|
|
|
|
|
NOTE: v7 licensing will be hard to automate fully as it's a fucked up system
|
|
RAVEN is much easier to automate with only one key per db
|
|
So I'm thinking make v7 renewals and purchases as easy and semiautomatic as possible, perhaps it fills in and suggest the whole thing but requires me
|
|
to press a button to actually do it, whereas raven can ultimately just process automatically, particularly subscription monthly important!!
|
|
|
|
AUTOMATION ROUTES REQUIRED
|
|
Both v7 and v8 point to "rockfish.ayanova.com" so maybe nginx can redirect?
|
|
forgot about that, was hoping for ability to parallel and keep rockfish going... hmmm...
|
|
|
|
AyaNova 7 license fetch URL
|
|
"https://rockfish.ayanova.com/fetch/" + sFetchCode + "/" + sEmail;
|
|
rockfish FetchController.cs
|
|
|
|
RAVEN trial request URL
|
|
POST to
|
|
$"{LICENSE_SERVER_URL_ROCKFISH}rvr";
|
|
|
|
RAVEN license fetch url
|
|
POST to
|
|
$"{LicenseServer}/rvf"
|
|
|
|
License server url is one of:
|
|
|
|
|
|
LICENSE_SERVER_URL_ROCKFISH = "http://localhost:3001/";//dev testing
|
|
LICENSE_SERVER_URL_ROCKFISH = "https://rockfish.ayanova.com/";//1st default production primary
|
|
LICENSE_SERVER_URL_IO = "https://io.ayanova.com/";//2nd production
|
|
LICENSE_SERVER_URL_EUROPA = "https://europa.ayanova.com/";//3rd production
|
|
LICENSE_SERVER_URL_CALLISTO = "https://callisto.ayanova.com/";//4th production
|
|
|
|
|
|
DTR
|
|
|
|
Also, sidebar, check if can pay d.o. in advance, or do I want that??
|
|
|
|
|
|
new roles and bizroles set appropo
|
|
Developer - rw cases
|
|
Support - read cases, read sales and customer data?
|
|
Sales - licenses
|
|
|
|
|
|
|
|
==============================
|
|
certbot expand
|
|
|
|
root@devops:/etc/nginx/sites-available# certbot --nginx --cert-name test.onayanova.com -d test.onayanova.com,subtest.onayanova.com
|
|
Saving debug log to /var/log/letsencrypt/letsencrypt.log
|
|
|
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
You are updating certificate test.onayanova.com to include new domain(s):
|
|
+ subtest.onayanova.com
|
|
|
|
You are also removing previously included domain(s):
|
|
(None)
|
|
|
|
Did you intend to make this change?
|
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
(U)pdate certificate/(C)ancel: u
|
|
Renewing an existing certificate for test.onayanova.com and subtest.onayanova.com
|
|
|
|
Successfully received certificate.
|
|
Certificate is saved at: /etc/letsencrypt/live/test.onayanova.com/fullchain.pem
|
|
Key is saved at: /etc/letsencrypt/live/test.onayanova.com/privkey.pem
|
|
This certificate expires on 2023-04-04.
|
|
These files will be updated when the certificate renews.
|
|
Certbot has set up a scheduled task to automatically renew this certificate in the background.
|
|
|
|
Deploying certificate
|
|
Successfully deployed certificate for test.onayanova.com to /etc/nginx/sites-enabled/default
|
|
Could not install certificate
|
|
|
|
NEXT STEPS:
|
|
- The certificate was saved, but could not be installed (installer: nginx). After fixing the error shown below, try installing it again by running:
|
|
certbot install --cert-name test.onayanova.com
|
|
|
|
Could not automatically find a matching server block for subtest.onayanova.com. Set the `server_name` directive to use the Nginx installer.
|
|
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
|