Skip to content

[PIMOB-5427]: Update Risk to 3.0.1 - #306

Open
adrian-orlowski-cko wants to merge 7 commits into
masterfrom
feature/PIMOB-5427_update_risk_sdk
Open

adrian-orlowski-cko wants to merge 7 commits into
masterfrom
feature/PIMOB-5427_update_risk_sdk

Conversation

@adrian-orlowski-cko

@adrian-orlowski-cko adrian-orlowski-cko commented Nov 11, 2026 •

Copy link
Copy Markdown

Issue

PIMOB-5427

Proposed changes

  • Update Risk to 3.0.1 and forward the baseUrlPrefix as the mssd param.
  • Updated  baseUrlPrefix  validation to accept 1–63 ASCII letters, digits, or hyphens, with no leading or trailing hyphen; invalid values are ignored.
  • minSdk is now 21 -> 23 (next scheduled release will be therefore major)
  • Added consumer ProGuard rules for Fingerprint’s optional location dependencies to prevent R8 release-build failures.

Minor supporting changes: fixed a coroutine test race, removed obsolete API checks, and updated README SDK requirements.

Test Steps

Kotlin w/ mssd:

Screen.Recording.2026-11-12.at.10.03.07.mov

Kotlin w/o mssd:

Screen.Recording.2026-11-12.at.10.05.16.mov

Java w/ mssd:

Screen.Recording.2026-11-12.at.09.58.34.mov

Java w/o mssd:

Screen.Recording.2026-11-12.at.10.00.51.mov

Checklist

  • Reviewers assigned
  • I have performed a self-review of my code and manual testing
  • Lint and unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if applicable)

@adrian-orlowski-cko
adrian-orlowski-cko requested a review from a team as a code owner November 11, 2026 10:53
@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt
  • security_sensitive_path:frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 16


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/test/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactoryTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

🟠 Advisory review: Concerns worth a look

This PR needs a human approval. Before you give it, these are the things I'd want resolved.

This PR updates Risk SDK to 3.0.1, raises minSdk to 23, adds validated baseUrlPrefix forwarding as the mssd param, and adds ProGuard rules. The logic is mostly correct, but there is a gap in validation coverage: the baseUrlPrefix passed to RiskSdkUseCase (and thus RiskInstanceProvider) bypasses BaseUrlPrefixValidator when called from CheckoutApiServiceFactory, but the RiskInstanceProvider test feeds already-valid prefixes directly, masking whether invalid values could reach Risk.

Concerns

  • In CheckoutApiServiceFactory.create, validatedBaseUrlPrefix is correctly passed to provideTokenRepository, but on line ~97 the baseUrlPrefix passed into RiskSdkUseCase (via the second provideRiskSdkUseCase call) uses the raw baseUrlPrefix parameter rather than validatedBaseUrlPrefix — meaning invalid prefixes are NOT sanitized before reaching Risk.
  • The RiskInstanceProvider and RiskSdkUseCase tests only exercise valid prefixes and null; there is no test verifying that an invalid prefix (e.g. '-bad', 'a.b') fed through CheckoutApiServiceFactory does not reach RiskInstanceProvider.provide with the invalid value.
  • The EnvironmentExtension.kt change removes the local baseUrlPrefixValidator call and now trusts that callers pass already-validated input — this is fine for toBaseUrl but only holds if all call sites validate first; the Risk path currently does not.
  • The consumer-rules.pro file still lacks a trailing newline, which is a minor file hygiene issue but not a blocker.
  • The regex ^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$ correctly implements the stated 1–63 character, no-leading/trailing-hyphen rule, including accepting single-character labels.

This is not an approval. wall-e cannot auto-approve this PR — it is an opinion to help whoever does. Advisory review · us.anthropic.claude-sonnet-4-6 · wall-e 2026.06.19-02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Risk caching ignores prefix changes, new checked exceptions are undeclared for Java callers, and empty-prefix validation breaks existing default-host configurations.

3 open issues
What changed in this PR

Updates Frames’ checkout integration to Risk SDK 3.0.1, adding merchant-specific routing support and aligning Android requirements.

Changes:

  • Forward optional baseUrlPrefix values to Risk’s mssd configuration.
  • Centralize prefix validation across checkout, payment form, and CVV APIs, with expanded tests.
  • Raise the minimum Android API level from 21 to 23.
File Description
README.md Document the API 23 minimum.
frames/​src/​test/​java/​com/​checkout/​frames/​screen/​paymentform/​PaymentFormConfigTest.kt Test prefix validation during construction and copying.
frames/​src/​test/​java/​com/​checkout/​frames/​cvvinputfield/​CVVComponentApiFactoryTest.kt Test valid and invalid CVV routing prefixes.
frames/​src/​main/​java/​com/​checkout/​frames/​screen/​paymentform/​model/​PaymentFormConfig.kt Validate prefixes during configuration creation.
frames/​src/​main/​java/​com/​checkout/​frames/​cvvinputfield/​CVVComponentApiFactory.kt Validate prefixes before creating the CVV API.
checkout/​src/​test/​java/​com/​checkout/​tokenization/​RiskSdkUseCaseTest.kt Verify prefix forwarding to the Risk provider.
checkout/​src/​test/​java/​com/​checkout/​tokenization/​RiskInstanceProviderTest.kt Test Risk configuration values, including mssd.
checkout/​src/​test/​java/​com/​checkout/​EnvironmentExtensionTest.kt Cover label boundaries and URL fallback behavior.
checkout/​src/​test/​java/​com/​checkout/​CheckoutApiServiceFactoryTest.kt Cover shared validation and early configuration failures.
checkout/​src/​main/​java/​com/​checkout/​tokenization/​usecase/​RiskSdkUseCase.kt Forward the prefix to the Risk provider.
checkout/​src/​main/​java/​com/​checkout/​tokenization/​usecase/​RiskInstanceProvider.kt Populate Risk’s mssd configuration field.
checkout/​src/​main/​java/​com/​checkout/​logging/​utils/​EnvironmentExtension.kt Reuse shared validation when constructing endpoint URLs.
checkout/​src/​main/​java/​com/​checkout/​CheckoutApiServiceFactory.kt Validate prefixes and pass them into Risk integration.
checkout/​src/​main/​java/​com/​checkout/​BaseUrlPrefixValidator.kt Add shared subdomain-label validation and configuration errors.
buildSrc/​src/​main/​java/​Versions.kt Upgrade Risk SDK to 3.0.1.
buildSrc/​src/​main/​java/​ProjectConfig.kt Raise the shared minimum Android API level to 23.

Review effort: Max

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt
  • security_sensitive_path:frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 19


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/test/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactoryTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 21


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/test/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactoryTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The process-wide Risk cache ignores subsequent prefix changes, causing later clients to publish Risk data to the wrong host, while the null-stubbed test bypasses this behavior.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Low severity Prefix validation errors omit the allowed format

checkout/​src/​main/​java/​com/​checkout/​BaseUrlPrefixValidator.kt:19

For rejected prefixes such as -merchant, merchant-, or é, this message omits the rule they violate. Consider including the ASCII-only and start/end restrictions so integrators can correct the configuration, matching the public KDoc.

3 resolved since last review

Review effort: Max

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 22


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/test/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactoryTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 22


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/test/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactoryTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 23


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/test/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactoryTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The process-wide Risk cache ignores subsequent prefix changes, causing later clients to publish Risk data to the wrong endpoint, while the null-returning test misses this cached-instance behavior.

No open issues 🎉

Review effort: Max

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 24


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 11, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — app/src/main/java/checkout/checkout_android/CVVTokenizationActivity.java classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/test/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactoryTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@adrian-orlowski-cko
adrian-orlowski-cko force-pushed the feature/PIMOB-5427_update_risk_sdk branch from a5e64e3 to 702990d Compare November 12, 2026 09:46
@agent-wall-e

agent-wall-e Bot commented Nov 12, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 17


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 12, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Cached Risk instances retain a previous client’s routing configuration, and message-less network failures skip failure callbacks, leaving callers waiting.

2 open issues

Review effort: Max

@agent-wall-e

agent-wall-e Bot commented Nov 12, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 17


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 12, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The breaking minSdk 21→23 bump, major Risk SDK upgrade, and app-wide R8 rules require release-build/runtime validation and product sign-off beyond static review.

No open issues 🎉

2 resolved since last review

Review effort: Max

@agent-wall-e

agent-wall-e Bot commented Nov 12, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 18


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 12, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 12, 2026

Copy link
Copy Markdown

🔴 Risk Classification: MAJOR

Approval route: AI Review + Human Approval Required
Rollback controls: Change-freeze window + documented rollback plan

Classification reasons

  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt
  • security_sensitive_path:checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt
  • security_sensitive_path:checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt

Operational gates

  • ✅ jira_ticket (PIMOB-5427)
  • ✅ independent_review

Files analysed: 18


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 12, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskInstanceProvider.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/main/java/com/checkout/tokenization/usecase/RiskSdkUseCase.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskInstanceProviderTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/RiskSdkUseCaseTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — checkout/src/test/java/com/checkout/tokenization/repository/TokenRepositoryImplTest.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_path — frames/src/main/java/com/checkout/frames/cvvinputfield/CVVComponentApiFactory.kt classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The breaking minSdk 21→23 increase and major Risk SDK upgrade require human release sign-off and minified API 23 validation without optional Google Play services classes, which was unavailable here.

No open issues 🎉

Review effort: Max

object AndroidConfig {
const val compileSdk = 34
const val minSdk = 21
const val minSdk = 23

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.

do we need to send out comms for this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

It'll be a major release

This branch has not been deployed

No deployments
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.

5 participants