department-of-veterans-affairs / va.gov-cms

Editor-centered management for Veteran-centered content.
https://prod.cms.va.gov
GNU General Public License v2.0
98 stars 69 forks source link

[Aging Content] Create Architecture Plan for Aging Content Notification Framework #16885

Closed FranECross closed 8 months ago

FranECross commented 9 months ago

Description

Draft Architecture Plan for Aging Content Notifications Configurable Framework and review with someone in CMS (either async or a formal CMS Collab Cycle Review).

User story

AS A PO/PM I WANT an architecture plan to be created and reviewed by the CMS team SO THAT we can then decompose into actionable Aging Content tickets

Engineering notes / background

Analytics considerations

Quality / testing notes

Acceptance criteria

dsasser commented 8 months ago

Here is the first draft of the architecture.

VACMS-16885 Architecture - Scheduled (aging) Content Notifications Framework.pdf

@FranECross @jilladams I sent an invite for discussing the architecture within PW. Once done, we can send over or schedule the architecture for CMS to review.

dsasser commented 8 months ago

We (myself, @FranECross, @Becapa, @jilladams) reviewed the architecture today and agreed to move forward with getting CMS approval.

jilladams commented 8 months ago

Highlights of today's conversation (FYI @davidconlon ):

cc @FranECross

dsasser commented 8 months ago

Breakdown of work/tickets expected if the framework is approved as designed:

Install ECA Drupal module

Create Views Result Condition Plugin for ECA

Fields: View name, display, arguments (leverage the Views Action)
Depends on: n/a
Blocks:  Create new ECA Model

Create Queue Email Message from Views Result Action Plugin for ECA

Fields: Message template, message template variables (mapping), View, View Display, Recipient, Subject
Depends on: Custom Views Display Plugin
Blocks:  Create new ECA Model

Create Custom Views Display Plugin

Subclass of Entity Reference Selection display plugin, perhaps.
Depends on: 
Blocks:  Create new ECA Model

Create Message Template

Design/verbiage TBD - should take advantage of existing outdated content email templates
Depends on: Design
Blocks:  Create new ECA Model

Create Advancedqueue and Mailer

This is the "processor". It will run on cron. It needs to take each item, create a Message using provided template variables, and "Deliver" the email using the Message Notify module. Much like the 'va_gov_outdated_content_notification' queue.
Name: TBD

Create a new View for "Aging FWB"

Using the new Display type
Depends on: Create Custom Views Display Plugin
Blocks:

Create new ECA Model

Event: Cron daily (time tbd)
Action: Queue Email Message from Views Result Action Plugin for ECA
Condition: Views Result Condition Plugin for ECA
Depends on: ALL
Blocks:
jilladams commented 8 months ago

CMS Collab cycle intake ticket: https://github.com/department-of-veterans-affairs/va.gov-cms/issues/17120

Closing. Next step will be whatever tickets come out of their review, whether to revise the plan or to cut our tickets to proceed with it.