Skip to content

fix: route forward and identity clients to dedicated base URLs#207

Merged
armando-rodriguez-cko merged 3 commits into
mainfrom
fix/forward-identity-base-urls
May 12, 2026
Merged

fix: route forward and identity clients to dedicated base URLs#207
armando-rodriguez-cko merged 3 commits into
mainfrom
fix/forward-identity-base-urls

Conversation

@armando-rodriguez-cko
Copy link
Copy Markdown
Contributor

@armando-rodriguez-cko armando-rodriguez-cko commented May 11, 2026

Summary

The forward service and the identity-verification services (AML screening, face authentication, ID document verification, applicants, identity verification) live on their own hosts in the swagger spec, not under api.checkout.com. This PR adds dedicated URIs for both and routes the corresponding clients through them. It also tightens the subdomain validation regex to match the AWS PrivateLink prefix format documented at https://www.checkout.com/docs/developer-resources/api/private-connections/aws-privatelink^(?:pl-)?[a-z0-9]+$ (alphanumeric, optionally prefixed by the literal pl-).

Changes

  • checkout_sdk/environment.py — adds forward_uri and identity_uri parameters to the Environment constructor; populates sandbox/production values
  • checkout_sdk/checkout_api.py — adds _forward_api_client and _identity_api_client factories; routes forward to forward URI; routes aml_screening, face_authentication, id_document_verification, applicants, identity_verification to a single cached identity ApiClient
  • checkout_sdk/environment_subdomain.py — tightens regex to ^(?:pl-)?[a-z0-9]+$
  • tests/checkout_configuration_test.py — updates subdomain corpus: removes test-123 from accepted, adds pl-vkuhvk4v (docs example), adds test-123/foo-bar/pl- to rejected; adds test_environment_sandbox_urls / test_environment_production_urls

API Reference

  • https://forward.checkout.com / https://forward.sandbox.checkout.com — forward service (POST /forward, GET /forward/{id}, POST /forward/secrets, GET|POST|DELETE /forward/secrets/{name})
  • https://identity-verification.checkout.com / https://identity-verification.sandbox.checkout.com — identity services (/applicants, /identity-verifications, /aml-verifications, /face-authentications, /id-document-verifications)
  • https://pl-{prefix}.api.{sandbox.,}checkout.com — AWS PrivateLink subdomain format

Breaking changes

  • Environment.__init__ signature adds two new positional parameters (forward_uri, identity_uri). Anyone constructing Environment directly (rather than via the Environment.sandbox() / Environment.production() factories) must update.
  • The subdomain regex is now stricter: arbitrary hyphenated subdomains like test-123 or foo-bar-baz are rejected. Only plain alphanumeric or the literal PrivateLink form (pl-{prefix}) are accepted.

README

Not affected.

@armando-rodriguez-cko armando-rodriguez-cko requested a review from a team May 11, 2026 13:34
Per the AWS PrivateLink docs (https://www.checkout.com/docs/developer-resources/api/private-connections/aws-privatelink),
the valid subdomain is the first eight characters of the client_id
(alphanumeric only), optionally with the literal pl- prefix when
calling through PrivateLink. Tighten the regex from RFC-1123-style
hyphenated to ^(?:pl-)?[a-z0-9]+$ and update the test corpus:
test-123 moves to the rejected list, pl-vkuhvk4v (the docs example)
joins the accepted list, and pl-, foo-bar are added as rejected.
@sonarqubecloud
Copy link
Copy Markdown

@armando-rodriguez-cko armando-rodriguez-cko merged commit 7509574 into main May 12, 2026
4 checks passed
@armando-rodriguez-cko armando-rodriguez-cko deleted the fix/forward-identity-base-urls branch May 12, 2026 09:31
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