Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: update mfa phone migration to be idempotent #1687

Merged
merged 2 commits into from
Jul 31, 2024

Conversation

J0
Copy link
Contributor

@J0 J0 commented Jul 29, 2024

What kind of change does this PR introduce?

  • Add if not exists so the migration is idempotent
  • Also drops the partial unique constraint on phone factors to avoid potential database bloat

@J0 J0 marked this pull request as ready for review July 29, 2024 20:35
@J0 J0 requested a review from a team as a code owner July 29, 2024 20:35
@coveralls
Copy link

coveralls commented Jul 29, 2024

Pull Request Test Coverage Report for Build 10163294486

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 50 unchanged lines in 2 files lost coverage.
  • Overall coverage decreased (-0.02%) to 58.219%

Files with Coverage Reduction New Missed Lines %
internal/api/token.go 19 72.37%
internal/conf/configuration.go 31 71.58%
Totals Coverage Status
Change from base Build 10151130647: -0.02%
Covered Lines: 9162
Relevant Lines: 15737

💛 - Coveralls

@J0 J0 merged commit fdff1e7 into master Jul 31, 2024
3 checks passed
@J0 J0 deleted the j0/fix_migration_idempotent_phone_cnfig branch July 31, 2024 13:37
J0 pushed a commit that referenced this pull request Jul 31, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.158.0](v2.157.0...v2.158.0)
(2024-07-31)


### Features

* add hook log entry with `run_hook` action
([#1684](#1684))
([46491b8](46491b8))
* MFA (Phone) ([#1668](#1668))
([ae091aa](ae091aa))


### Bug Fixes

* maintain backward compatibility for asymmetric JWTs
([#1690](#1690))
([0ad1402](0ad1402))
* MFA NewFactor to default to creating unverfied factors
([#1692](#1692))
([3d448fa](3d448fa))
* minor spelling errors
([#1688](#1688))
([6aca52b](6aca52b)),
closes [#1682](#1682)
* treat `GOTRUE_MFA_ENABLED` as meaning TOTP enabled on enroll and
verify ([#1694](#1694))
([8015251](8015251))
* update mfa phone migration to be idempotent
([#1687](#1687))
([fdff1e7](fdff1e7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
J0 added a commit that referenced this pull request Aug 5, 2024
## What kind of change does this PR introduce?

With this change:
- Multiple verified phone mfa factors can exist so long as they have
distinct phone numbers (see discussion below)
- Enrolling a factor with a number that is the same as the existing
verified factor will result in a 422 status code
- Enrolling a factor with a number that is the same as another existing
unverified factor will result in the deletion of the older factor.

Also includes:
- A refactor to check for duplicate constraints at application level
then at the Postgres layer.
- A narrowing of deletion so that only unverified factors of the same
type are deleted upon first successful verification

Follow up to #1687 to support the unique constraint on phone factors.
uxodb pushed a commit to uxodb/auth that referenced this pull request Nov 13, 2024
## What kind of change does this PR introduce?

- Add `if not exists` so the migration is idempotent
- Also drops the partial unique constraint on phone factors to avoid
potential database bloat
uxodb pushed a commit to uxodb/auth that referenced this pull request Nov 13, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.158.0](supabase/auth@v2.157.0...v2.158.0)
(2024-07-31)


### Features

* add hook log entry with `run_hook` action
([supabase#1684](supabase#1684))
([46491b8](supabase@46491b8))
* MFA (Phone) ([supabase#1668](supabase#1668))
([ae091aa](supabase@ae091aa))


### Bug Fixes

* maintain backward compatibility for asymmetric JWTs
([supabase#1690](supabase#1690))
([0ad1402](supabase@0ad1402))
* MFA NewFactor to default to creating unverfied factors
([supabase#1692](supabase#1692))
([3d448fa](supabase@3d448fa))
* minor spelling errors
([supabase#1688](supabase#1688))
([6aca52b](supabase@6aca52b)),
closes [supabase#1682](supabase#1682)
* treat `GOTRUE_MFA_ENABLED` as meaning TOTP enabled on enroll and
verify ([supabase#1694](supabase#1694))
([8015251](supabase@8015251))
* update mfa phone migration to be idempotent
([supabase#1687](supabase#1687))
([fdff1e7](supabase@fdff1e7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
uxodb pushed a commit to uxodb/auth that referenced this pull request Nov 13, 2024
## What kind of change does this PR introduce?

With this change:
- Multiple verified phone mfa factors can exist so long as they have
distinct phone numbers (see discussion below)
- Enrolling a factor with a number that is the same as the existing
verified factor will result in a 422 status code
- Enrolling a factor with a number that is the same as another existing
unverified factor will result in the deletion of the older factor.

Also includes:
- A refactor to check for duplicate constraints at application level
then at the Postgres layer.
- A narrowing of deletion so that only unverified factors of the same
type are deleted upon first successful verification

Follow up to supabase#1687 to support the unique constraint on phone factors.
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 13, 2024
## What kind of change does this PR introduce?

- Add `if not exists` so the migration is idempotent
- Also drops the partial unique constraint on phone factors to avoid
potential database bloat
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 13, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.158.0](supabase/auth@v2.157.0...v2.158.0)
(2024-07-31)


### Features

* add hook log entry with `run_hook` action
([supabase#1684](supabase#1684))
([46491b8](supabase@46491b8))
* MFA (Phone) ([supabase#1668](supabase#1668))
([ae091aa](supabase@ae091aa))


### Bug Fixes

* maintain backward compatibility for asymmetric JWTs
([supabase#1690](supabase#1690))
([0ad1402](supabase@0ad1402))
* MFA NewFactor to default to creating unverfied factors
([supabase#1692](supabase#1692))
([3d448fa](supabase@3d448fa))
* minor spelling errors
([supabase#1688](supabase#1688))
([6aca52b](supabase@6aca52b)),
closes [supabase#1682](supabase#1682)
* treat `GOTRUE_MFA_ENABLED` as meaning TOTP enabled on enroll and
verify ([supabase#1694](supabase#1694))
([8015251](supabase@8015251))
* update mfa phone migration to be idempotent
([supabase#1687](supabase#1687))
([fdff1e7](supabase@fdff1e7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 13, 2024
## What kind of change does this PR introduce?

With this change:
- Multiple verified phone mfa factors can exist so long as they have
distinct phone numbers (see discussion below)
- Enrolling a factor with a number that is the same as the existing
verified factor will result in a 422 status code
- Enrolling a factor with a number that is the same as another existing
unverified factor will result in the deletion of the older factor.

Also includes:
- A refactor to check for duplicate constraints at application level
then at the Postgres layer.
- A narrowing of deletion so that only unverified factors of the same
type are deleted upon first successful verification

Follow up to supabase#1687 to support the unique constraint on phone factors.
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 15, 2024
## What kind of change does this PR introduce?

- Add `if not exists` so the migration is idempotent
- Also drops the partial unique constraint on phone factors to avoid
potential database bloat
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 15, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.158.0](supabase/auth@v2.157.0...v2.158.0)
(2024-07-31)


### Features

* add hook log entry with `run_hook` action
([supabase#1684](supabase#1684))
([46491b8](supabase@46491b8))
* MFA (Phone) ([supabase#1668](supabase#1668))
([ae091aa](supabase@ae091aa))


### Bug Fixes

* maintain backward compatibility for asymmetric JWTs
([supabase#1690](supabase#1690))
([0ad1402](supabase@0ad1402))
* MFA NewFactor to default to creating unverfied factors
([supabase#1692](supabase#1692))
([3d448fa](supabase@3d448fa))
* minor spelling errors
([supabase#1688](supabase#1688))
([6aca52b](supabase@6aca52b)),
closes [supabase#1682](supabase#1682)
* treat `GOTRUE_MFA_ENABLED` as meaning TOTP enabled on enroll and
verify ([supabase#1694](supabase#1694))
([8015251](supabase@8015251))
* update mfa phone migration to be idempotent
([supabase#1687](supabase#1687))
([fdff1e7](supabase@fdff1e7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 15, 2024
## What kind of change does this PR introduce?

With this change:
- Multiple verified phone mfa factors can exist so long as they have
distinct phone numbers (see discussion below)
- Enrolling a factor with a number that is the same as the existing
verified factor will result in a 422 status code
- Enrolling a factor with a number that is the same as another existing
unverified factor will result in the deletion of the older factor.

Also includes:
- A refactor to check for duplicate constraints at application level
then at the Postgres layer.
- A narrowing of deletion so that only unverified factors of the same
type are deleted upon first successful verification

Follow up to supabase#1687 to support the unique constraint on phone factors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants