Skip to content

SDKS-4924 Add Logger to FIDO module #156

Open
george-bafaloukas-forgerock wants to merge 2 commits into
developfrom
SDKS-4924_Logger_in_FIDO
Open

SDKS-4924 Add Logger to FIDO module #156
george-bafaloukas-forgerock wants to merge 2 commits into
developfrom
SDKS-4924_Logger_in_FIDO

Conversation

@george-bafaloukas-forgerock
Copy link
Copy Markdown
Contributor

@george-bafaloukas-forgerock george-bafaloukas-forgerock commented May 6, 2026

JIRA Ticket

JIRA "Add Logger to FIDO module "

Description

  • Adds PingLogger as a direct SPM dependency of PingFido (the .podspec already declared it; this brings SPM into parity).
    • Routes FIDO ceremony logs through the workflow logger by adding a logger: parameter to Fido.register and Fido.authenticate. Per-call parameter (not a stored property) so concurrent ceremonies on the shared Fido.shared instance do not clobber each other's logger.
    • The four DaVinci collectors and Journey callbacks (FidoRegistrationCollector, FidoAuthenticationCollector, FidoRegistrationCallback, FidoAuthenticationCallback) pass their workflow logger (davinci?.config.logger / journey?.config.logger) into Fido so registration/authentication state transitions and errors emit through the same logger as the surrounding flow.
    • No credential bytes, key material, or challenge data are logged — only state transitions, request counts, and error descriptions.

Checklist:

  • I ran all unit tests and they pass
  • I added test case coverage for my changes

Address review of bb429bc:

- Replace `Fido.logger` stored property with a `logger:` parameter on
  `register` and `authenticate`. Eliminates the singleton-mutation race
  where two concurrent ceremonies (DaVinci + Journey, or two DaVincis)
  would clobber each other's logger.
- Drop the four `fido.logger = logger` propagation lines; pass the
  workflow logger through the call directly.
- Cover the four propagation paths in FidoLoggerTests by capturing the
  `logger:` argument on `MockFido` and asserting it matches the workflow
  config logger.
- Link `PingDavinci.framework` into the test target so the DaVinci
  propagation tests can construct a real `DaVinci` instance.
- Document FIDO single-flight semantics on the class doc comment.
- Add CHANGELOG `[Unreleased]` entry.
- Add Mocks.swift copyright header.
- `.gitignore` agent / planning artefacts and merge / Finder leftovers.
@george-bafaloukas-forgerock george-bafaloukas-forgerock requested review from rodrigoareis, spetrov and vahancouver and removed request for rodrigoareis and spetrov May 6, 2026 16:29
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