Skip to content

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

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

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

Conversation

@david-ruiz-cko

Copy link
Copy Markdown
Contributor

This pull request updates the API documentation for payments-related endpoints to clarify the allowed values for the 3ds.challenge_indicator field. It distinguishes between endpoints that accept only the four standard challenge indicator values and the Sessions endpoint, which uniquely accepts additional exemption values. These clarifications help ensure correct usage of the challenge indicator and reduce errors when integrating with the API.

Documentation improvements:

  • Clarified in hosted-payments.js, payments-links.js, payment-sessions.js, and payments.js that the 3ds.challenge_indicator field accepts only four standard values (no_preference, no_challenge_requested, challenge_requested, challenge_requested_mandate) and that exemption values are not accepted for these endpoints. [1] [2] [3] [4]
  • Updated sessions.js to specify that the challenge_indicator field uniquely accepts all nine values, including exemption requests, and explains fallback behavior if an exemption cannot be applied.

@david-ruiz-cko
david-ruiz-cko requested a review from a team August 4, 2026 13:08
@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:src/api/sessions/sessions.js

Operational gates

  • ✅ jira_ticket (INT-1667)
  • ✅ independent_review

Files analysed: 5


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_pathsrc/api/sessions/sessions.js 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:src/api/sessions/sessions.js
  • security_sensitive_path:test/sessions/challenge-indicator.js

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 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_pathsrc/api/sessions/sessions.js classifying §2.1 M4/M5 Path matched a sensitive pattern (auth, secrets, crypto, PCI, migrations, network IaC).
security_sensitive_pathtest/sessions/challenge-indicator.js 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 changed the title ChallengeIndicator/SessionChallengeIndicator enum alignment feature/INT-1667 - ChallengeIndicator/SessionChallengeIndicator enum alignment Aug 5, 2026
@david-ruiz-cko
david-ruiz-cko merged commit c81fa09 into master Aug 6, 2026
3 checks passed
@david-ruiz-cko
david-ruiz-cko deleted the feature/INT-1667 branch August 6, 2026 08:14
david-ruiz-cko added a commit that referenced this pull request Aug 6, 2026
Release 4.1.0 bundles three changes: the Forward secrets path fix (#443, INT-1666), the new Address Document Verification endpoints (#444, INT-1665) and the challenge indicator documentation alignment (#445, INT-1667).

## Forward secrets path fix (behaviour change)

Swagger 2026-07-20 completed the rename of the Forward secrets endpoints. Requests now go to the Forward host root, without the `/forward` prefix:

* Collection endpoints (create, list) moved from `/forward/secrets` to `/secrets`.
* Item endpoints (`PATCH`, `DELETE`) moved from `/forward/secrets/{name}` to `/secrets/{name}`.
* `src/config.js` keeps a single Forward host root (`FORWARD_SANDBOX_URL` / `FORWARD_LIVE_URL`) with no trailing slash, and `ForwardClient` appends the `forward` and `secrets` path segments explicitly, matching every other SDK. Forward request URLs themselves are unchanged.
* Unit tests updated accordingly. (`src/api/forward/forward.js`, `src/config.js`, `test/forward/forward-unit.js`)

Anyone calling the secrets methods will now hit the new paths, so this is worth calling out in the release notes.

## Address Document Verification (Adv) endpoints

Implements the Adv family from swagger 2026-07-16: `POST`/`GET /address-document-verifications`, anonymize, attempts (create, list, get) and pdf-report.

* New `src/api/identities/address-document-verifications.js`, wired into the identities client. (`src/api/identities/identities.js`)
* TypeScript definitions added. (`types/dist/api/identities/address-document-verifications.d.ts`, `types/dist/api/identities/identities.d.ts`)
* Unit tests under `test/identities/address-document-verifications/`.

## Challenge indicator documentation alignment

Clarifies the allowed values of `3ds.challenge_indicator` per endpoint. No runtime behaviour changes here, only JSDoc plus a new test.

* Documented in `hosted-payments.js`, `payments-links.js`, `payment-sessions.js` and `payments.js` that the field accepts only the four standard values (`no_preference`, `no_challenge_requested`, `challenge_requested`, `challenge_requested_mandate`), and that exemption values are not accepted on these endpoints.
* Documented in `sessions.js` that `challenge_indicator` uniquely accepts all nine values, including exemption requests, and explained the fallback behaviour when an exemption cannot be applied.
* Added `test/sessions/challenge-indicator.js` covering the accepted value sets.
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