==Background/Goal
Deliver working prototype for MP Instrumentation Configuration (MPIC) T360647
This epic captures the collection of user stories and tasks related to the backend of the MPIC application.
The backend will be built in Node.js 18 using the following projects per [[ https://docs.google.com/document/d/1ShOnODmq_RnRWE2h4oHIxyrCUDSjdL2zqDfT3aHp_lo/edit#heading=h.13elffp0m76u | design document ]]:
- Wikimedia’s [[ https://gerrit.wikimedia.org/r/admin/repos/mediawiki/services/service-scaffold-node,general | service-scaffold-node ]]
- This may be deprecated by @tchin’s work in this area on the [[ https://gitlab.wikimedia.org/tchin/not-service-runner | Not Service Runner project ]]
- [[ https://www.npmjs.com/package/express-validator | express-validator ]] to validate user input
- [[ https://www.npmjs.com/package/openid-client | openid-client ]] to authenticate users using [[ https://wikitech.wikimedia.org/wiki/CAS-SSO | CAS-SSO ]]
- [[ https://www.npmjs.com/package/mwbot | mwbot ]] to add entries to the [[ https://wikitech.wikimedia.org/wiki/Server_Admin_Log | SAL ]]
- [[ https://www.npmjs.com/package/knex | knex ]] or [[ https://www.npmjs.com/package/pg | pg ]] to query the Data Products PostgreSQL cluster
==KR/Hypothesis(Initiative)
[[https://app.asana.com/0/1206789271453386/1206789149149051 | SDS 2.5.5]]
If we build a service for instrument configuration, we can deliver a prototype that is flexible enough to scale in order to integrate with our future experimentation flagging solution.
==Success metrics
- How we will measure success?
The backend portion of the MPIC can be considered successful once we have a working API endpoints that return well-formed JSON responses.
==In scope
- known scope:
- [[ https://docs.google.com/document/d/1ShOnODmq_RnRWE2h4oHIxyrCUDSjdL2zqDfT3aHp_lo/edit#heading=h.d63b1s3te8hg | Routing - API endpoints ]]
- [[ https://docs.google.com/document/d/1ShOnODmq_RnRWE2h4oHIxyrCUDSjdL2zqDfT3aHp_lo/edit#heading=h.cle8clrblw6j | DataStore ]]
- [[ https://docs.google.com/document/d/1ShOnODmq_RnRWE2h4oHIxyrCUDSjdL2zqDfT3aHp_lo/edit#heading=h.13elffp0m76u | Logging ]]
==Out of Scope
- known boundaries TK
==Artifacts & Resources
- [[ https://miro.com/app/board/uXjVMtGrgVc=/?moveToWidget=3458764579792923671&cot=14 | Architecture Diagram ]]
- [[ https://docs.google.com/document/d/1ShOnODmq_RnRWE2h4oHIxyrCUDSjdL2zqDfT3aHp_lo/edit#heading=h.dkwj61y6h2kw | Instrument Configurator Implementation Design Doc ]]
- [[ https://www.figma.com/file/DeYZ9XwYNqbT0NW2aL8GdM/T352903---Metrics-Platform---Control-Plane?type=design&node-id=432-14297&mode=design&t=J0YulBdr19TkbeLR-0 | Wireframes ]]