Skip to content

fix: drop is_multi_factor_auth_enabled from SignUpRequest#4

Merged
lakhansamani merged 2 commits into
mainfrom
fix/remove-is-multi-factor-auth-enabled-signup
Jul 23, 2026
Merged

fix: drop is_multi_factor_auth_enabled from SignUpRequest#4
lakhansamani merged 2 commits into
mainfrom
fix/remove-is-multi-factor-auth-enabled-signup

Conversation

@lakhansamani

Copy link
Copy Markdown
Contributor

Why

Server removed is_multi_factor_auth_enabled from SignUpRequest in
the GraphQL schema and proto (field 15, now reserved) in
authorizerdev/authorizer#710, released as 2.4.0-rc.6. It was a
security fix: the field let an unauthenticated signup caller bypass
the server's MFA-on-by-default policy for their own new account.

What

  • Removed is_multi_factor_auth_enabled from SignUpRequest in
    src/authorizer/types.py. It was the only place in the SDK's
    hand-written code (dispatch table, GraphQL query strings, request
    types) that exposed this field on the signup path.
  • Left the vendored proto stubs under src/authorizer/_grpc/ alone.
    They still declare field 15 as an active field (stale vs. the
    server's now-reserved slot), but the SDK never sets it on the
    wire (ParseDict(..., ignore_unknown_fields=True) builds the proto
    message from a dict that no longer contains the key), so this is
    wire-safe either direction per proto3 semantics. A full re-vendor of
    the generated stubs against the server's updated .proto is a
    separate, larger pass — this repo has no scripted regen process
    (no Makefile target / script found), so it needs the proper
    toolchain rather than a hand-edit of generated files.

Scoped narrowly to this one breaking change; not a general SDK gap
fix.

Test plan

  • pip install -e ".[dev]" in a fresh venv
  • python -m pytest -q -m "not live" — 112 passed, 63 deselected
  • Confirmed SignUpRequest.__dataclass_fields__ no longer
    contains is_multi_factor_auth_enabled

Server removed the field from SignUpRequest in schema and proto
(reserved field 15) as a security fix: it let unauthenticated signup
callers disable MFA-on-by-default for their own new account.
authorizerdev/authorizer#710, released 2.4.0-rc.6.

Setting it now errors on GraphQL (unknown input field) and is
silently dropped on REST/gRPC, so the SDK field was dead weight at
best and misleading at worst. Vendored proto stubs still carry the
old field 15; harmless since the SDK never sets it on the wire, but
a full proto re-vendor against the server's updated .proto is
separate follow-up work.

BREAKING CHANGE: SignUpRequest no longer accepts
is_multi_factor_auth_enabled.
@lakhansamani
lakhansamani merged commit baa3013 into main Jul 23, 2026
6 checks passed
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.

1 participant