OpenMRS ID Project—Weekly Meeting

Weihua Cheung and Elliott Williams hold a weekly project meeting, to discuss the status of the OpenMRS ID project, go over any questions that have come up while in development, and plan for development in the next week.

Schedule: Fridays, 8:00 am EDT / 8:00 pm CST

All are welcome to join and discuss OpenMRS ID related design and implementation!

How to Join

Contact Elliott Williams at elliott@openmrs.org or elliott_w on IRC, and he can invite you to the call. The meetings are currently held via Skype.

Notes

18 July 2014

Today (Friday): test deploy with production data on staging

  • Elliott will spend today
  • updating modules for Dashboard 2.0
  • getting production data to load onto sty
  • installing Crowd on stg
  • happening tommorow morning CST, evening EDT

Wiehwa will start looking a building the REST API while we wait for deployment to be ready.

Things to note before deployment:

  • make backup of all data
  • disable signup (can we do this easily?) a few hours before

15 July 2014 — Deploy Meeting

Modules:

  • Navbar and SSO have pull requests waiting, to update them to Express 3x
  • Groups and OAuth still need to be updated, Elliott will do this
  • Modules are still depending on Sequelize, should be migrated to mongoose before too long

Sync:

  • Chose to not go bidirectional
  • Crowd will be treated as read only

Deploy status:

  • Test deployment up on stg
  • Need to run migration scripts, groups appear not to be migrated
  • Weird css problem in latest merge, plypy investigating

11 July 2014

Migration Update

  • migration scripts appear to be finished
  • Michael & Elliott are resolving email address duplicates
  • all duplicates need to be resolved before userbase is transferred to Mongo

MongoDB Indexing

  • indexed attributes: username, email addresses
  • used for fast querying / for ensuring username & email are unique
  • TODO: index firstname+lastname to allow for faster searching by name

Formage problems

  • bug in formage preventing some validation code from running
  • ply_py has opened two issues on the project and it working on a PR
  • set aside until post-deployment

Bidirectional sync

  • decided to continue implementation
  • benefits to continuing:
  • Crowd can be used as an admin console
  • JIRA edit profile page doesn't break
  • final step before deployment

Deployment

  • staging-first, then production
  • need to freeze signups a few hours before deployment (to allow new users to complete validation)
  • should set up a new LDAP database alongside prod, to do the migration. then swap databases during the actual launch.

TODO: Meet on Tuesday, 15 July 2014 at 8am EDT / 8pm CST to follow-up with sync and prepare for deployment

5 July 2014 

- wrote migration scripts
    - unix tool, converts LDIF stdin/JSON stdout
- ID-35: need to evaluate
- ready to deploy within the next week
    - Elliott will notify Infrastructure team next week
    - Elliott will perform the migration
- Elliott still needs to update the UI for the edit-profile page
- Wiehwa will create a script for bulk-adding users to a group

13 June 2014

Past week:
- validation work
- finished implementing the mongoose model in signup component
- email verification bug (ID-14) fixed
- signup using new data model is working, needs password encryption
 
Security
- all HTTP traffic in production is encrypted through apache
 
Migration
- write migration script?
- will any data be lost? plypy will evaluate if we can migrate everything over
- ensure no email addresses will clash during the migration
 
Password encryption
- use SSHA
- should be able to migrate hashed from LDAP without requiring a password reset
 
Validation form
– `values` overwrite bug fixed
- autofocus issue on failed validations
 
MongoDB: use a backup database in production?
- replication server of production data
- will create a JIRA issue for this
 
API Discussion
- can we allow "free-form JSON" like elliott wants to?
- the API would be RESTful and OAuth secured
- make sure any data that's stored can be validated and cannot interfere with core data on the user document

30 May 2014

ID-12:
 
- Temporary fix PR'd
- Future will involve architecture restructuring...the session middleware won't we used globally
 
Progress so far
- Finished refactoring work
- Started studying Mongoose / MongoDB
- ID-12 work
 
OpenHIE
 
Next week:
- Continuing Mongoose development.
 
New ideas:
- User admin console in dashboard
 
To-do:
- Grant access to id-stg
- Semester ends by end of June...around 25 June
 
When to submit PRs?
 
Unit testing:
- considering Mocha
- write tests for new code as it's developed
- next few weeks: we'll be looking at selecting the right test framework / runner / integration
- by 25 June plypy (having more time to commit) will be doing TDD