Skip to content

Firebase package parity#60

Draft
zdburrage wants to merge 1 commit into
mainfrom
feat/firebase-package-parity
Draft

Firebase package parity#60
zdburrage wants to merge 1 commit into
mainfrom
feat/firebase-package-parity

Conversation

@zdburrage
Copy link
Copy Markdown
Collaborator

@zdburrage zdburrage commented May 6, 2026

Summary

Phase 13 of the provider-parity execution plan. Firebase transformer now writes a migration package alongside the existing single-CSV path.

  • New src/transformers/firebase/package-exporter.ts reads the Firebase Auth JSON export plus optional org/role mapping CSVs and emits the canonical migration-package layout.
  • Disabled users are skipped by default with structured disabled_user skip records; --include-disabled keeps them.
  • Missing scrypt parameters become missing_scrypt_parameters warnings instead of dropping passwords silently.
  • Package and upload-compat files use the same Firebase localId and org_external_id so import-package resolves users/orgs from either projection.
  • transform-firebase CLI gains --package and --output-dir. Existing --output flow is unchanged.
  • Tests cover org/role mapping merge, disabled-user skip, missing scrypt warning, include-disabled, and the no-mapping baseline.
  • README documents the package flow and points at import-package.

Test Plan

  • npm run lint
  • npm run format:check
  • npm run typecheck
  • npm run build
  • npm test — 272 passing across 24 suites.

🤖 Generated with Claude Code

Phase 13 of the provider-parity plan. Adds package mode to the Firebase
transformer alongside the existing single-CSV path.

- New \`src/transformers/firebase/package-exporter.ts\` reads the
  Firebase Auth JSON export plus optional org/role mapping CSVs and
  emits the canonical migration-package layout: users, orgs,
  memberships, role definitions, role assignments, workos_upload/,
  manifest, warnings, and skipped-user sidecars.
- Disabled users are skipped by default (with structured
  \`disabled_user\` skip records); \`--include-disabled\` keeps them.
  Missing scrypt parameters become structured
  \`missing_scrypt_parameters\` warnings instead of dropping passwords
  silently.
- Package and upload-compatible files use the same Firebase
  \`localId\` and \`org_external_id\` so \`import-package\` resolves
  users/orgs from either projection.
- \`transform-firebase\` CLI gains \`--package\` and \`--output-dir\`
  flags. Existing \`--output\` flow is unchanged.
- Tests cover org/role mapping merge, disabled-user skip, missing
  scrypt warning, include-disabled, and the no-mapping baseline.
- README adds the package flow and points at \`import-package\`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant