diff --git a/devdocs/specs/core-notification.txt b/devdocs/specs/core-notification.txt index 7cc35c16..63c0e3d4 100644 --- a/devdocs/specs/core-notification.txt +++ b/devdocs/specs/core-notification.txt @@ -22,7 +22,10 @@ BACKEND TODO / SYSTEM FOR RAVEN TODO: need a utility that can hash any adhoc collection of fields to work with various notify related objects -TODO: client and user notify together so any changes required to support that need to be sussed out here as much as possible in advance +TODO: Auto delete APP notifications older than 90 days automatically by some kind of sweeper job +TODO: auto delete notifyeventlog entries older than 90 days automatically by job +todo: + CREATING NOTIFICATIONS OBJECTS Saving an object triggers notification processing for that object: @@ -64,29 +67,21 @@ OBJECTS Saving an object triggers notification processing for that object: SMTP APP (meaning in notifications system inside application basically the old POPUP) - -TABLES WORKSHEET -v7 -aNotifyEventOfInterest - subscribercount, ayatype, eventtype, "guidvalue" (extra info),created/creator/updated/updater -v8 -similar but with hash maybe for faster checking? and no created/modifed stuff, guid value would maybe be some other thing to accomodate RAVEN as it seems to deal with id of specific or maybe things like status - -v7 this is the main table where events are stored and delivered from (saved message is for quick notification) -anotifyevent - ayatype, objectid, eventtype, appliestouserid (single subscriber event), aEventDate, ASAVEDMESSAGE - -v7 all subscriptions - used to process deliveries (checks for generic event to see who subscribes to it) -anotifysubscription - aNotifySubscription (aID, aUserID, aRootObjectType, aEventType, aPendingSpan, aPendingSpanUnit, aGuidValue, aCreated, aModified, aCreator,aModifier) -v8 (timespan can be a single value, no need for units and shit in the db, just days or whatever the smallest unit is) - - -v7 - logs deliveries, removes any older than 7 days (that's short!?) -aNotifyDeliveryLog (aRootObjectType, aRootObjectID, aEventType,aGuidValue, aDeliveryDate, aToUserID, aDeliveryMethod, aDelivered, aErrorMessage, aToClientID ) - -v7 - NotifyPopup contains UI deliveries - aNotifyPopUp (aID, aRootObjectType, aRootObjectID, aDeliveryDate, aToUserID, aMessage ) +UI TODO + Subscription form for user + Subscription form for client (personal or set by administrator, probably set by administrator) + Mass set for many users at once V8 TABLES / OBJECTS +JOBS + NotifySweeper + APP notifications - deletes all unreceived APP notifications older than 90 days + NotifyEvent - + deletes any notifyevent with no event date created more than 90 days ago + If has event date and it's passed then deletes it if created more than 90 days ago (pretty sure there are no back dated events, once it's passed it's past) + + ALL COREBIZ Need CRUD check for notification events Need to handle check of new tags vs existing tags (delta of tags) for any notification type @@ -131,7 +126,7 @@ notifysubscription table - contains all user (and customer) subscriptions to eve (aID, subscriberId, subscriberAyaType, ayatype, aEventType, advancenoticetimespan, aGuidValue, aDeliveryMethod, deliveryaddress, attachreportid, intags, outtags, HASH) Notifyevent table - contains all events, created by updating objects or directly in some cases and used by generator for processing as deliveries - ayatype, objectid, eventtype, appliestouserid (single subscriber event), aEventDate, ASAVEDMESSAGE, HASH? + created (timestamp used to clean out old stuck events), ayatype, objectid, eventtype, appliestouserid (single subscriber event), aEventDate, ASAVEDMESSAGE, HASH? notifydeliverylog table - intended for troubleshooting, logs deliveries with a cap on how many records it retains. Keeping this as a separate and distinct OPS ui thing (aRootObjectType, aRootObjectID, aEventType,aGuidValue, aDeliveryDate, aToUserID, aDeliveryMethod, aDelivered, aErrorMessage, aToClientID )