Since the production version of the Manager is pretty much stabilized and I am not doing feature work anymore, there's almost nothing user-facing in this one except some low-key break/fix stuff (that most people probably didn't even notice was broken in the first place).
In fact, the most significant user-facing aspect of this release is that it continues the deprecation of https://thewatcher.io, which will go away officially in January 2020: the old watcher.io URLs now forward to https://api.kdm-manager.com URLs and, as I mentioned on the Manager's Twitter:
Since it is officially deprecated as of today, I'm not going to print the email address here, but the tweet basically confirms that the old support email at https://thewatcher.io is officially shut down and will bounce.
Finally, as everyone knows by now, the indefinite delay of Waves three and four will continue for at least another year, but I still have plans for new KD software in 2019.
With any luck, I will be able to announce some specifics of those plans very soon! Could even be the first week of September 2019.
Watch this space for updates and, as usual, hit the jump for complete release notes.
Fixes and corrections
- Fixed a missing string substitution in app.models.__init__ that made user-facing asset-retrieval errors hard to decipher.
- Fixed the API admin panel to pull the correct GitHub stats.
- Cleaned up the text on the Dashboard about subscriptions.
- Added a new "Players" heading to the Help section of the legacy webapp and wrote a little blurb about adding players (which collected a few bits of a few different sections).
- https://thewatcher.io forwards to https://api.kdm-manager.com now (includes www and api second-level domains).
- Removed an accidental > from the API error modal in the legacy app that created the appearance of a single period floating in space above the message (in Chrome; it straight-up broke the modal everywhere else).
- Updated some calls in api.py to use the API key.
- The postJSONtoAPI() method in kdmManager.js now uses the API key as well.
- kdmManager.js error modals (the pink ones) now print a message when the API response is null (which mostly happens with a preflight/CORS/SSL error).
- Cleaned up the help-tips on the Survivor Sheet re: survivor 'tags' and 'notes' (the name is going to fully change from 'epithets' to 'tags' in the next version of the Manager and the API shortly).
- Removed some vestigial control elements from the admin panel, e.g. the logs, world daemon stats, etc.
- Cleaned up some of the flexbox issues (such as mandatory heights) causing messy presentation in the admin panel. The panel now uses 'Silverado' and 'Ruda' fonts (gotta stay on-brand).
- The API's default 'meta' block no longer includes information about the application admins.
- User subscription levels can now be set via the Admin panel.
- The API's default 'meta' block now includes a dictionary called 'subscriptions' that shows supported subscription levels.
- Created a new admin panel control interface for working with users:
- added the HTML
- created a new JS controller in adminPanel.js
- moved the user stats block from the general API admin panel to the user admin controls
- created a new route for retrieving user data via API call
- Did some other cleanup on the admin panel:
- the HR's in the main control raft go away after the admin user's JWT is set
- The settings.Settings object has a logger now.
- settings.get() pops off a debug warning about how the 'private' kwarg is deprecated.
- The subscriber section of user info now includes the 'level_handle', which is basically just 'level_' + the level; this facilitates look-ups in the panel and AKDM Manager.
- List and dict type world values are not shown in the Admin panel's 'world stats' view.
- Started building out support API keys:
- The request now has a flag to indicate whether the API key on the request is valid
- The API now writes a warning to the logs when incoming requests for 'private' end points have no API key.
- API keys in the api_keys.cfg file (in the app root) are now loaded into the API when the server starts.
- API request response logs now track the name of the app associated with an API request.
- Unified the settings files in the object, so that all sections from both settings.cfg and settings_private.cfg are available in the settings object.
- The CLI admin.sh now has the ability to dump API request response time log entries (for research/debug purposes).
- Addressed an issue where a JWT could sometimes fail to refresh an expired token from the legacy app due to weird headers.