• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

medplum / medplum / 28392157050
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/main/pr-9809-5b061674de41bedb66fe4554f2d299f8dd888e47
DEFAULT BRANCH: main
Ran 29 Jun 2026 06:10PM UTC
Jobs 1
Files 844
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Jun 2026 05:55PM UTC coverage: 91.866% (+0.02%) from 91.846%
28392157050

push

github

web-flow
feat(server,app): add email MFA method (#9308)

* feat(server,app): add email MFA

Signed-off-by: Derrick Farris <derrick@medplum.com>

* fix(server): make it so codes expire

Signed-off-by: Derrick Farris <derrick@medplum.com>

* fix(server): add code to subject, tweak expiry to 20 mins

Signed-off-by: Derrick Farris <derrick@medplum.com>

* feat(server,app): add ability to disable individual MFA factors

Signed-off-by: Derrick Farris <derrick@medplum.com>

* [autofix.ci] apply automated fixes

* refactor(react,app): factor out `MfaEnrollForm`, simplify components

Signed-off-by: Derrick Farris <derrick@medplum.com>

* Apply suggestion from @mattwiller

Co-authored-by: Matt Willer <matt@medplum.com>
Signed-off-by: Derrick Farris <derrick@medplum.com>

* [autofix.ci] apply automated fixes

* Apply suggestions from code review

Co-authored-by: Matt Willer <matt@medplum.com>
Signed-off-by: Derrick Farris <derrick@medplum.com>

* test(app/MfaPage): fix test after moving to modal

Signed-off-by: Derrick Farris <derrick@medplum.com>

* test(server/auth): add more tests for MFA edge cases

Signed-off-by: Derrick Farris <derrick@medplum.com>

* test(server/mfa): add more tests for all edge cases

Signed-off-by: Derrick Farris <derrick@medplum.com>

* [autofix.ci] apply automated fixes

* test(server/mfa): add regression tests for legacy behavior

Signed-off-by: Derrick Farris <derrick@medplum.com>

* [autofix.ci] apply automated fixes

* test(app/MfaPage): add tests for new branches

Signed-off-by: Derrick Farris <derrick@medplum.com>

* [autofix.ci] apply automated fixes

* test(app/mfa): convert new tests to vitest

Signed-off-by: Derrick Farris <derrick@medplum.com>

* fix(server/auth): revert import of `node-fetch`

Signed-off-by: Derrick Farris <derrick@medplum.com>

* fix(mfa): prevent user from unenrolling if `mfaRequired`

Signed-off-by: Derrick Farris <derrick@medplum.com>

* [autofix.ci] apply automated fixes

* fix(mfa): make user reverify after e... (continued)

21533 of 24488 branches covered (87.93%)

Branch coverage included in aggregate %.

261 of 271 new or added lines in 10 files covered. (96.31%)

1 existing line in 1 file now uncovered.

38465 of 40822 relevant lines covered (94.23%)

12530.58 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
93.44
2.27% packages/app/src/MfaPage.tsx
3
88.14
-1.02% packages/react/src/auth/SignInForm.tsx
2
96.3
-1.45% packages/server/src/auth/utils.ts
1
90.91
packages/react/src/auth/MfaEnrollForm.tsx
1
92.31
packages/react/src/auth/MfaVerificationForm.tsx

Coverage Regressions

Lines Coverage ∆ File
1
93.44
2.27% packages/app/src/MfaPage.tsx
Jobs
ID Job ID Ran Files Coverage
1 28392157050.1 29 Jun 2026 06:09PM UTC 844
91.87
GitHub Action Run
Source Files on build 28392157050
  • Tree
  • List 844
  • Changed 13
  • Source Changed 0
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • a2d2c0dd on github
  • Prev Build on gh-readonly-queue/main/pr-9675-d8a360ec41cea84d888283bb2e6e5c745aa768af (#28391018892)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc