# Early access stock status critical path
## Infrastructure
* Critical Path March5
* Critical Path March19
* build out CICD pipelines (dev_branch=dev & master_branch=prod >> RGB deploys)
* Nice To have
## DATA TO SQS
* Critical Path March5
* DONE WMS-9690 finalize aws queue structure for processor >>> one queue, multiple workers grabbing from same queue
* CloudFormation to build SQS
* Nice To Have
* WMS-9698 sync/audit process with wms to look for messages not received (Does WMS Match our system)
* process to check if we got all the events we're supposed to
* WMS-9703 smoke tests/monitoring for message/event integrity on production data (examples: timestamps, order status) (IS DATA COMMING IN OK)
* WMS-9700 make system case insensitive for topic and event_type (api_gw, processor, firehose)
## DATA TO S3
* Critical Path March5
* ERIK+Sergy: Are dumping all data and can retrieve and look at data (prefer Athena)
* DONE-ERIK: WMS-9705 all data landing in s3-parquet (despite ':' in keys of links)
* ERIK+Sergy: WMS-9706 ability to query s3-parquet with athena (for support & prelim research)
* CloudFormation for Firehose
* Nice-To-Have
* WMS-9701 nightly process to batch small s3 files into single large one (for downstream consumption)
## DATA PROCESSOR
* Critical Path March5
* CODY WMS-9688 update processing system for v3 event messages
* WMS-9689 update aws infrastructure for v3 messages (api_GW, Kinesis Firehose, SQS, S3)
* WMS-9691 after v3 events done, need to set wms_timestamp from the event.datetime where appropriate
* ERIK: WMS-9692 create allocation logic for order, order_line, and item_allocation_calculation tables
* CODY-DONE WMS-9731 now that API:/inventory/items/{id} exists: Update Order Ripple logic and updates for inventory_change (receiver_line has special ripple logic for 2 parents)
* CODY WMS-9756 Finish tests for the API models.
* WMS-9696 dockerize processor (sqs reader, api models, save to db)
* Create events in qa BITeam tpl and see it flow all the way through
* Critical Path March19
* WMS-9693 create code relationships between history tables
* ability to process wms messages that come late (after another message for same thing)
* productionize docker containers
* WMS-9704 create data initialization scripts for key tables
* Nice To Have
* WMS-9694 create 'event audit' tables (event ledger, api req/resp, ripple breadcrumbs)
* WMS-9707 optimize allocation calculations using triggers
* create additional code relationships (and tests) RL>R, OL>O, AL>A
* apply CASCADE DELETE at code level to all tables
* `Use async patterns` like [FastAPI](https://fastapi.tiangolo.com/) and [databases](https://github.com/encode/databases)
## SECURITY AND AUTHENTICATION
* Critical Path March19
* DONE JOHN stock status report api authentication
## REPORT BUILDER
* Critical Path March5
* DONE JOHN WMS-9736 finish queries for report builder
* DONE JOHN WMS-9699 create stock status report (query, api)
* WMS-9697 dockerize report api (queries, flask rest api)
* Nice To have
* WMS-9695 optimize tables for needed queries/reads (add FK, relationship, and indexes as needed)
* `Use async patterns` like [FastAPI](https://fastapi.tiangolo.com/) and [databases](https://github.com/encode/databases)
## WEB REPORT
* does all the logic with saved reports actually work
* how easily can users select/choose columns
## OUT OF SCOPE
* WMS-9709 migrate OrderStatusDashboard to new Kinesis based system
* order new monitor with chromecast for office.