ORG Domain Email Offboarding

Overview

To reduce manual work, this project’s primary deliverable is a robot that can be nightly run to hygeine the OWASP.org email domain. Notably the primary script will disable owasp.org email addresses of former members and outgoing Leaders. The process will NOT onboard nor reactive “lost” emails as that process is outside the scope of this project. Additionally this project includes a small amount of clean up work with regard to our Stipe Instance. All of these projects will be written in Python and hosted in the OWASP Azure instance.

Goals

  1. On-demand script to convert email address in Stripe to lowercase
  2. On-demand script to remove “non-customers” from Stripe
  3. Script that can be ran nightly to disable owasp.org email address which are no longer members or Leaders

Milestones

Leadership

Project A - Stripe Clean

  1. Export Stripe customer data as a backup and load into local store for development
  2. Add meta-data to local store customer data
    1. cleanup-case
    2. cleanup-customer
  3. Validate #2 had no errors
  4. Run #2 against production environment
  5. Modify Azure functions to injest email data entry as lowercase prior to saving in Stripe or Mailchimp
    1. Donation Form
    2. Join Form
    3. Manage-membership Form
    4. Events Form - Harold we need link

Project B - Email Hygiene

  1. Export Google owasp.org email domain and load into local store for development
  2. Using production leaders.json file and Stripe userdata, add meta-data to local store
    1. cleanup-disable
    2. cleanup-date
  3. While processing data check for the following errors:
    1. leaders.json file should be date-stamped from yesterday
    2. validate connection to Google Groups
    3. validate connection to Stripe
  4. Using Sendgrid send email to [email protected] with the following:
    • Subject: Daily Email Cleanup, x errors, y addresses disabled
    • Body: leaders.json date yyyy-mm-dd [OK/Fail]
      • Connection to Google Groups [OK/Fail]
      • Connection to Stripe [OK/Fail]
      • Processing started yyyy-mm-dd hh:mm:ss and completed yyyy-mm-dd hh:mm:ss
      • Addresses Disable: y
      • Log File of Disabled Addresses:
      • email address 1
      • email address 2
  5. Run in test mode for one week on local store

Metadata schema

  1. cleanup-case = “fix” or “okay”
    1. “Fix” records will have their email address convered to lowercase
  2. cleanup-customer = “true” or “false”
    1. False records will be DELETED
  3. cleanup-disable = “nonmember” or “nonleader” or “valid”
    1. Email is disabled if email not (in leaders.json OR in Stripe)
  4. cleanup-date = date of metadata updated in yyyy-mm-dd format

Budget

Project rate of $2,500