Connect sign-up to Sendico Facts intake (#46)
This commit is contained in:
1 parent
30f0455122
commit
a584c8189a
40 files changed
+1616
-35
No files matched your search
@@ -828,3 +828,55 @@ existing mount requires reauthentication at its new cookie path. Notification
|
||||
activation URLs remain configured frontend URLs. No live deployment, optional
|
||||
security scans or merge were performed. The unrelated local notifications sender
|
||||
configuration remains uncommitted. See [API version installation](api-versions.md).
|
||||
|
||||
## Sign-up Facts intake — task #46
|
||||
|
||||
[Task #46](https://git.sendico.io/tech/sxchnge/issues/46), branch
|
||||
`identity-facts-46`, connects the product sign-up service to Sendico's public
|
||||
individual registry and immutable Facts intake through optional `api.sendico`
|
||||
configuration. Owner: `tech`; project: SXCHNGE; labels: backend and frontend.
|
||||
|
||||
The adapter sends full name, normalized email and the local customer reference.
|
||||
The BFF persists a customer-owned subject binding, immutable facts snapshot and
|
||||
confirmed receipt before activation email or sign-up acceptance. Activation and
|
||||
resend enforce the handoff. The shared database source can require majority
|
||||
writes and primary majority reads without bypassing its connection/transaction
|
||||
lifecycle. Initial account/token creation remains atomic and uses a secret-derived
|
||||
activation key, allowing same-key recovery after an intake outage without an
|
||||
extra cooldown for an unsent token. Archived customers cannot resume sign-up.
|
||||
|
||||
Backend and frontend completion reviews covered the full task contribution,
|
||||
including the public contracts, customer ownership, stable replay namespace,
|
||||
concurrent claims, error classification, credential handling, logging, metrics and
|
||||
DTO/mapper/service/model/provider separation. UX review preserved input, loading
|
||||
suppression and confirmation-based success. Typed support guidance reaches both
|
||||
sign-up and verification resend/confirmation through the shared auth package;
|
||||
EN/RU feedback preserves live-region semantics and existing responsive controls.
|
||||
The new localized widget fixture initially double-disposed the app-owned locale
|
||||
provider; the fixture ownership was corrected. Focused integration tests also
|
||||
exposed the initial-token cooldown issue, which was fixed in the creation flow.
|
||||
|
||||
Individual registration is not idempotent upstream. A durable claim prevents
|
||||
speculative repeat registration after an ambiguous result; reconciliation uses
|
||||
the saved request reference and authoritative Sendico records. Intake replay is
|
||||
safe after receipt loss and retains original assertions. Actual provider IDs,
|
||||
the endpoint and a same-account Vault-rendered access token must be provisioned
|
||||
before enabling this integration. Tests use simulated HTTP and disposable MongoDB;
|
||||
no live provider resources, live email, deployment, merge or optional security
|
||||
scan is part of this delivery. The unrelated notifications runtime configuration
|
||||
is excluded. Configuration, rollout, telemetry and recovery details are in
|
||||
[Sign-up Facts intake](signup-facts.md).
|
||||
|
||||
Final validation passed: `GOFLAGS=-p=2 make test` (all backend race tests and
|
||||
`make test-frontend` suites), `make lint-backend`,
|
||||
`dart format --output=none --set-exit-if-changed` for all 11 changed Dart files,
|
||||
and `flutter analyze` in `frontend/app` and `frontend/packages/sxchnge_auth`.
|
||||
Focused Go race suites and Flutter backend/provider/widget tests also passed;
|
||||
the diagnostic public API run
|
||||
`go -C backend/product test -race -v ./auth/http/v1/public -count=1 -timeout=90s`
|
||||
passed. The initial unrestricted `make test` failed when Testcontainers could
|
||||
not start its reaper before the Mongo fixture deadline. Lower Go package
|
||||
parallelism resolved that infrastructure contention. The next full run exposed
|
||||
the new locale fixture disposal error noted above; the corrected final run
|
||||
passed, including EN/RU support states and verification recovery. No checks were
|
||||
weakened or unrelated work changed.
|
||||
Reference in new issue
Block a user