Skip to content

feature/INT-1667 - ChallengeIndicator/SessionChallengeIndicator enum alignment - #357

Merged
david-ruiz-cko merged 4 commits into
masterfrom
feature/INT-1667
Aug 6, 2026
Merged

feature/INT-1667 - ChallengeIndicator/SessionChallengeIndicator enum alignment#357
david-ruiz-cko merged 4 commits into
masterfrom
feature/INT-1667

Conversation

@david-ruiz-cko

@david-ruiz-cko david-ruiz-cko commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

This pull request introduces several improvements and clarifications to the 3DS challenge indicator and related enums used in session and payment APIs. The main focus is on separating the values specific to session requests from those used in payment flows, improving documentation, and ensuring backwards compatibility. Additionally, related enums are updated for clarity and consistency, and comprehensive tests are added to verify correct serialization and deprecation handling.

Key changes:

3DS Challenge Indicator Improvements

  • Introduced a new SessionChallengeIndicatorType class with clear documentation and nine explicit values, including exemption values, for use only with session requests (POST /sessions). This separates session-specific values from those used in payments.
  • Updated ChallengeIndicatorType in Checkout\Common to clarify that five exemption values are deprecated and only accepted by sessions, not by payments or hosted payments. Documentation is improved and deprecation tags are added for these values.
  • Updated SessionRequest to use SessionChallengeIndicatorType for the challenge_indicator property, with improved docblocks and default value assignment. [1] [2] [3]

Related Enum and Property Updates

  • Updated Category, SessionScheme, and TransactionType enums with improved documentation, consistent naming, and added or corrected values (e.g., non_payment, quasi_card_transaction, new schemes like discover and upi). [1] [2] [3]

Test Improvements

  • Added a comprehensive test class, ChallengeIndicatorSerializationTest, to verify that all challenge indicator values are exposed, correctly serialized, and properly marked as deprecated where appropriate.
  • Updated integration tests to use the new SessionChallengeIndicatorType for session requests. [1] [2] [3] [4] [5]

These changes clarify the intended usage of challenge indicator values, improve maintainability, and ensure that the SDK aligns with API expectations and best practices.

@david-ruiz-cko
david-ruiz-cko requested a review from a team August 3, 2026 15:26
@agent-wall-e

agent-wall-e Bot commented Aug 3, 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:lib/Checkout/Sessions/SessionChallengeIndicatorType.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionRequest.php
  • security_sensitive_path:test/Checkout/Tests/Sessions/AbstractSessionsIntegrationTest.php
  • security_sensitive_path:test/Checkout/Tests/Sessions/ChallengeIndicatorSerializationTest.php
  • security_sensitive_path:test/Checkout/Tests/Sessions/RequestAndGetSessionsIntegrationTest.php

Operational gates

  • ✅ jira_ticket (INT-1667)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 376219bc71e6…

@agent-wall-e

agent-wall-e Bot commented Aug 3, 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_pathlib/Checkout/Sessions/SessionChallengeIndicatorType.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionRequest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/AbstractSessionsIntegrationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/ChallengeIndicatorSerializationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/RequestAndGetSessionsIntegrationTest.php 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 Aug 3, 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:lib/Checkout/Sessions/Category.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionChallengeIndicatorType.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionRequest.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionScheme.php
  • security_sensitive_path:lib/Checkout/Sessions/TransactionType.php

Operational gates

  • ✅ jira_ticket (INT-1667)
  • ✅ independent_review

Files analysed: 11


wall-e 2026.06.19-02 · policy 376219bc71e6…

@agent-wall-e

agent-wall-e Bot commented Aug 3, 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_pathlib/Checkout/Sessions/Category.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionChallengeIndicatorType.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionRequest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionScheme.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/TransactionType.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/AbstractSessionsIntegrationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/ChallengeIndicatorSerializationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/RequestAndGetSessionsIntegrationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/SessionRequestSerializationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/SessionsValueClassesTest.php 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 Aug 4, 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:lib/Checkout/Sessions/Category.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionChallengeIndicatorType.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionRequest.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionScheme.php
  • security_sensitive_path:lib/Checkout/Sessions/TransactionType.php

Operational gates

  • ✅ jira_ticket (INT-1667)
  • ✅ independent_review

Files analysed: 11


wall-e 2026.06.19-02 · policy 376219bc71e6…

@agent-wall-e

agent-wall-e Bot commented Aug 4, 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_pathlib/Checkout/Sessions/Category.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionChallengeIndicatorType.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionRequest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionScheme.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/TransactionType.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/AbstractSessionsIntegrationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/ChallengeIndicatorSerializationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/RequestAndGetSessionsIntegrationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/SessionRequestSerializationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/SessionsValueClassesTest.php 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 Aug 4, 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:lib/Checkout/Sessions/Category.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionChallengeIndicatorType.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionRequest.php
  • security_sensitive_path:lib/Checkout/Sessions/SessionScheme.php
  • security_sensitive_path:lib/Checkout/Sessions/TransactionType.php

Operational gates

  • ✅ jira_ticket (INT-1667)
  • ✅ independent_review

Files analysed: 11


wall-e 2026.06.19-02 · policy 376219bc71e6…

@agent-wall-e

agent-wall-e Bot commented Aug 4, 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_pathlib/Checkout/Sessions/Category.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionChallengeIndicatorType.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionRequest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/SessionScheme.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathlib/Checkout/Sessions/TransactionType.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/AbstractSessionsIntegrationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/ChallengeIndicatorSerializationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/RequestAndGetSessionsIntegrationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/SessionRequestSerializationTest.php classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/Checkout/Tests/Sessions/SessionsValueClassesTest.php 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

sonarqubecloud Bot commented Aug 4, 2026

Copy link
Copy Markdown

@david-ruiz-cko
david-ruiz-cko merged commit 2ccc6e6 into master Aug 6, 2026
4 checks passed
@david-ruiz-cko
david-ruiz-cko deleted the feature/INT-1667 branch August 6, 2026 08:13
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.

2 participants