Skip to content

Release 4.2.1 - Oauth scopes review - #238

Merged
david-ruiz-cko merged 1 commit into
mainfrom
release/4.2.1
Sep 16, 2026
Merged

david-ruiz-cko merged 1 commit into
mainfrom
release/4.2.1

Conversation

@david-ruiz-cko

Copy link
Copy Markdown
Contributor

This release updates the OAuthScopes enum and its usage to synchronize with the current Checkout.com API specification, remove deprecated scopes, and improve test coverage. The main focus is on aligning the SDK's OAuth scope definitions with the official API spec, removing outdated values, adding missing ones, and ensuring correctness through comprehensive tests.

OAuth scope enum updates:

  • Added missing scopes to OAuthScopes, including COMPLIANCE_REQUESTS, COMPLIANCE_REQUESTS_READ, COMPLIANCE_REQUESTS_RESPOND, and VAULT_TOKENS_METADATA, which are required by some API operations but were not previously declared. [1] [2]
  • Removed deprecated or retired scopes such as ISSUING_CARD_MGMT, ISSUING_CLIENT, MARKETPLACE, MIDDLEWARE_GATEWAY, MIDDLEWARE_PAYMENT_CONTEXT, and ensured remaining scopes are alphabetically ordered for maintainability.
  • Added a detailed docstring to the OAuthScopes enum explaining its correspondence to the API spec and clarifying subtle differences between similar scopes.

Test improvements and validation:

  • Added new tests to tests/oauth_scopes_test.py to verify that all documented and newly added scopes are present, distinguish between similar but distinct scopes, and ensure every enum member has a unique, non-blank wire value.
  • Introduced checks to guarantee that enum members remain alphabetically ordered and no duplicate wire values exist, preventing subtle bugs and improving maintainability.

Integration test updates:

  • Updated integration tests to use the correct, non-retired scopes (ACCOUNTS instead of MARKETPLACE for payout schedules, and ISSUING_CARD_MANAGEMENT_READ/WRITE instead of retired issuing scopes), with comments explaining the changes and referencing the API spec. [1] [2]

@david-ruiz-cko
david-ruiz-cko requested a review from a team September 15, 2026 12:52
@agent-wall-e

agent-wall-e Bot commented Sep 15, 2026

Copy link
Copy Markdown

🟢 Risk Classification: LOW

Approval route: AI Auto-Approval
Rollback controls: Automated Instant Rollback + feature flags

Classification reasons

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:The diff only updates the version string in properties.py, which is a non-destructive, function-preserving change with no auth/authz, data, config, or integration implications.

Operational gates

  • ✅ jira_ticket
  • ✅ independent_review

Files analysed: 1


wall-e 2026.06.19-02 · policy 376219bc71e6…

@agent-wall-e

agent-wall-e Bot commented Sep 15, 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
no_low_class_matched informational §2.2 (fall-through) None of the deterministic Low classes (§2.2.3, §2.2.4, §2.2.7, docs-only) applied; classifier fell through to LLM evaluation.
prod_source_modified informational §2.1 M7 (informational) At least one file is non-doc, non-test, non-IaC — i.e. application source code was modified.
2.2.6_logical_extensionThe diff only updates the version string in properties.py, which is a non-destructive, function-preserving change with no auth/authz, data, config, or integration implications. classifying §2.2.6 Sonnet 4.6 evaluator promoted minor → low: the change reuses existing code paths and does not cross a trust boundary.

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

@agent-wall-e agent-wall-e Bot 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.

Auto-approved — this PR meets all Low-risk criteria.

All checks passed, no unresolved comments, and the change classification is:

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:The diff only updates the version string, which is a non-destructive, function-preserving change with no new endpoints, auth changes, persisted data, or external integrations.

wall-e 2026.06.19-02 · policy 376219bc71e6…

@david-ruiz-cko
david-ruiz-cko merged commit 8d55288 into main Sep 16, 2026
4 checks passed
@david-ruiz-cko
david-ruiz-cko deleted the release/4.2.1 branch September 16, 2026 07:43
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