Skip to content

MS-1205 MFID events#1420

Merged
luhmirin-s merged 5 commits into
mfid-preview-build-2025-4-0from
feature/MS-1205-mfid-events-1
Oct 22, 2025
Merged

MS-1205 MFID events#1420
luhmirin-s merged 5 commits into
mfid-preview-build-2025-4-0from
feature/MS-1205-mfid-events-1

Conversation

@luhmirin-s
Copy link
Copy Markdown
Contributor

@luhmirin-s luhmirin-s commented Oct 21, 2025

JIRA ticket
Will be released in: 2025.4.0

Notable changes

  • Added ExternalCredentialSearchEvent to track the time it takes to filter and match records by the external credential.
  • Added ExternalCredentialConfirmationEvent to track the time the user spent on the external credential confirmation screen.
  • Added ExternalCredentialSelectionEvent to track the user's decision to do or skip the external credentials flow.
  • Updated values tracked in ExternalCredentialCaptureEvent to correctly reflect the external credential capture flow.

Testing guidance

  • Do all possible flows with MFID enabled. Upsync the events.
  • All events should be successfully consumed by the backend.
  • Wipe the app data and re-login (or use a different device) and downsync the records.
  • Running the ID flow on the same set of face+credentials should work as expected.

Additional work checklist

  • Effect on other features and security has been considered
  • Design document marked as "In development" (if applicable)
  • External (Gitbook) and internal (Confluence) Documentation is up to date (or ticket created)
  • Other teams notified about the changes (if applicable)

@cla-bot cla-bot Bot added the ... label Oct 21, 2025
@Keep
data class ScannedCredential(
val credentialScanId: String = randomUUID(),
val credential: TokenizableString.Tokenized,
Copy link
Copy Markdown
Contributor

@alexandr-simprints alexandr-simprints Oct 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we rename credential to scannedValueEncrypted or something similar to reflect that we have both encrypted and decrypted credential values in the object?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think "credential" is fine, it has to be distinct from the "scannedValue" since those are used for very different purposes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BurningAXE since you gave a thumbs up, could you please provide your thoughts on Sergejs' response?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My reasoning is that credential and scannedValue don't convey that they actually hold the same value in a different "format". The less you need to reason about the code - the better.

@luhmirin-s luhmirin-s force-pushed the feature/MS-1205-mfid-events-1 branch from f46cdfe to 0ba0f98 Compare October 22, 2025 07:57
@luhmirin-s luhmirin-s requested review from a team, BurningAXE, TristramN, alex-vt, alexandr-simprints, meladRaouf and ybourgery and removed request for a team October 22, 2025 08:07
@luhmirin-s luhmirin-s marked this pull request as ready for review October 22, 2025 08:07
@luhmirin-s luhmirin-s force-pushed the feature/MS-1205-mfid-events-1 branch from 0ba0f98 to 0fe9cb7 Compare October 22, 2025 09:34
@luhmirin-s luhmirin-s changed the title MS-1205 MFID events (WIP) MS-1205 MFID events Oct 22, 2025
scannedCredential: ScannedCredential,
selectionEventId: String,
) {
Simber.d("Saving External Credential Events for $scannedCredential")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ScannedCredential contains the raw credential value and it may get into the logs unredacted, is this safe? Just in case, a similar call is already in the codebase here:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, will double-check that none of the d() level logs are preserved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be safe in staging and release builds:
Logger.setMinSeverity(if (BuildConfig.DEBUG) Severity.Debug else Severity.Info)

@luhmirin-s luhmirin-s force-pushed the feature/MS-1205-mfid-events-1 branch from 0fe9cb7 to 59c71d0 Compare October 22, 2025 13:01
@luhmirin-s luhmirin-s requested a review from alex-vt October 22, 2025 13:01
ExternalCredentialType.QRCode -> InputType.TYPE_CLASS_TEXT
}

fun trackRecapture() {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@luhmirin-s shouldn't you reset the val startTime here ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The recapture navigates to the selection fragment that will reset the respective timestamps in onViewCreated() and subsequent methods.

@sonarqubecloud
Copy link
Copy Markdown

@luhmirin-s luhmirin-s merged commit 989fb80 into mfid-preview-build-2025-4-0 Oct 22, 2025
13 checks passed
@luhmirin-s luhmirin-s deleted the feature/MS-1205-mfid-events-1 branch October 22, 2025 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants