Release Notes: ============== **DB-168**: This release introduces AT(1) support via the *admin* service for user sessions. - **October 20, 2020 Author: mike@givingassistant.org Release: 1.0** * Release Notes! All namaste releases will, on noteworthy changes or additions, will update these release notes so that changes can be tracked to a JIRA ticket by the impacted features. * New broker! Introducing the session broker, a fire-n-forget broker for managing user sessions * New templates! Introducing the Failed-Session and WBList classes: failed sessions tracks sessions that failed to properly register. The WBList class controls user white and black list entries for registration and email. * New class! Introducing the User class: This class contains all the business-logic for user management. * XML Update: Removed isLocal declarations at the db/service level, replaced with top-level declarations by service and whether or not the service is active. Also added new configuration params to the security session for white/black listing and declared the hashing algorithm for passwords. * gacAdminInBroker Has been renamed to *gacWorkQueueClient* -- this is the broker client for "fire-n-forget" brokers which, previously, was limited to the adminBrokerIn broker. With the addition of the session broker on tercero, this class was expanded to handle comms with both brokers. * New API Events! Four new API events (broker events) have been introduced: For the user broker, the events BROKER_REQUEST_VALIDATE_EMAIL and BROKER_REQUEST_REGISTER_ACCOUNT, for the adminOutBroker we have: BROKER_REQUEST_NEW_SESSION, and the session broker event: BROKER_REQUEST_EXPIRE_SESSION. Additionally, I added a create event to the adminIn broker for creating failed-session event records. * Improved error handling! Added a new general function: handleExceptionMessaging() to provide consistent error messaging and to reduce code-bloat. * Better Support for Dynamic Primary Keys! Declaring a key, other than 'token', in a data template allows dynamic queries to adjust to the declared column. NOTE: data classes that require/support auditing must use DB_TOKEN as the primary key. * New Function: grabWidget()! This new function handles factory-class instantiation, error checking and simple returns the factory widget back to the requesting client greatly reducing code footprint.