feat(country): enable Philippines organization onboarding - #4304
Open
joshuakrueger-dfx wants to merge 3 commits into
Open
feat(country): enable Philippines organization onboarding#4304joshuakrueger-dfx wants to merge 3 commits into
joshuakrueger-dfx wants to merge 3 commits into
Conversation
joshuakrueger-dfx
marked this pull request as ready for review
July 22, 2026 10:20
joshuakrueger-dfx
requested review from
TaprootFreak and
davidleomay
as code owners
July 22, 2026 10:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Enable organization (business) DFX onboarding for the Philippines by setting
country.dfxOrganizationEnable = trueforsymbol = 'PH'via a data-only migration. This complements #4206, which enabled only individual onboarding (dfxEnable = true).Why
After #4206, a customer onboarding a company/organization account still could not select the Philippines:
country-dto.mapper.tsexposeskycOrganizationAllowed = dfxOrganizationEnable; the app filters the business address list on that flag, so PH was hidden.kyc.service.tsbusiness branch →if (!userCountry.dfxOrganizationEnable) COUNTRY_NOT_ALLOWED.Both gates key off
dfxOrganizationEnable, so flipping it fixes selection and the KYC gate together.Scope — verified end-to-end
The only organization-specific gate is
kyc.service.ts:1790. Every other country gate (country list, quote gate, org-country validation inuser-data.service.ts) keys offdfxEnable, which PH already has from #4206 — so this single flag makes PH usable for business accounts end-to-end. The migration touches onlydfxOrganizationEnable(+updated);dfxEnable,manualReviewRequiredOrganization, FATF and all unrelated controls stay untouched.Review posture — consistent with #4206 (intentional)
manualReviewRequiredOrganizationis deliberately not set. A clean PH business ident therefore auto-approves, exactly like the individual enablement in #4206. This keeps individual and organization onboarding consistent. If compliance later wants forced human review for PH business KYC, that is a separate one-line follow-up migration (SET manualReviewRequiredOrganization = true WHERE symbol = 'PH').Safety / auditability
UPDATEis guarded ondfxOrganizationEnable = false, so a re-run or already-enabled row is a no-op and does not bumpupdated.down(): intentionally empty — a country allow-list change is compliance data; rolling back a deployment must not silently re-block the country.Testing
enable-philippines-organization-onboarding.migration.spec.tsruns the real migration SQL against in-memory Postgres (pg-mem, prod dialect): selective enable + idempotency, no-rewrite when already enabled, fail-loud when the PH row is missing, anddown()not reintroducing the restriction. All green.Before deploy — compliance verification (out of code)
dfxOrganizationEnable = false(seed has itfalse; migration only mutates a persisted prod row that is stillfalse).