feat(authentication): add domain models for authentication and support kafka filters in dashboard#10446
Merged
likhinbopanna merged 21 commits intomainfrom Dec 18, 2025
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #10446 +/- ##
=======================================
Coverage ? 6.41%
=======================================
Files ? 1259
Lines ? 315925
Branches ? 0
=======================================
Hits ? 20260
Misses ? 295665
Partials ? 0 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…fka event log push
Comment on lines
+148
to
+149
| earliest_supported_version -> Nullable<Jsonb>, | ||
| latest_supported_version -> Nullable<Jsonb>, |
Contributor
There was a problem hiding this comment.
why is this json type?
Contributor
Author
There was a problem hiding this comment.
maximum_supported_version -> Nullable, is also Jsonb because we have added domain_type SemanticVersion
| message_category: api::authentication::MessageCategory, | ||
| device_channel: payments::DeviceChannel, | ||
| authentication_data: storage::Authentication, | ||
| authentication_data: hyperswitch_domain_models::authentication::Authentication, |
Contributor
There was a problem hiding this comment.
Suggested change
| authentication_data: hyperswitch_domain_models::authentication::Authentication, | |
| authentication_data: authentication::Authentication, |
Comment on lines
+87
to
+94
| sdk_information.and_then(|sdk_information| sdk_information.device_details), | ||
| None, | ||
| None, | ||
| Some(billing_address), | ||
| shipping_address, | ||
| browser_details, | ||
| email, | ||
| )) |
Contributor
There was a problem hiding this comment.
all these would be available in router_data right
| device_channel: payments::DeviceChannel, | ||
| merchant_connector_account: payments_helpers::MerchantConnectorAccountType, | ||
| authentication_data: storage::Authentication, | ||
| authentication_data: hyperswitch_domain_models::authentication::Authentication, |
Contributor
There was a problem hiding this comment.
Suggested change
| authentication_data: hyperswitch_domain_models::authentication::Authentication, | |
| authentication_data: authentication::Authentication, |
| business_profile: domain::Profile, | ||
| merchant_connector_account: payments_helpers::MerchantConnectorAccountType, | ||
| authentication_data: &storage::Authentication, | ||
| authentication_data: &hyperswitch_domain_models::authentication::Authentication, |
Contributor
There was a problem hiding this comment.
``
Suggested change
| authentication_data: &hyperswitch_domain_models::authentication::Authentication, | |
| authentication_data: &authentication::Authentication, |
| use crate::{core::errors, types::transformers::ForeignTryFrom, utils::OptionExt}; | ||
|
|
||
| impl ForeignTryFrom<&storage::Authentication> for PreAuthenticationData { | ||
| impl ForeignTryFrom<&hyperswitch_domain_models::authentication::Authentication> |
Contributor
There was a problem hiding this comment.
please import the parent module
Suggested change
| impl ForeignTryFrom<&hyperswitch_domain_models::authentication::Authentication> | |
| impl ForeignTryFrom<&authentication::Authentication> |
| state: &SessionState, | ||
| router_data: RouterData<F, Req, AuthenticationResponseData>, | ||
| authentication: storage::Authentication, | ||
| authentication: hyperswitch_domain_models::authentication::Authentication, |
…kafka-filters' of github.com:juspay/hyperswitch into 12194-add-domain-models-for-authentication-and-support-kafka-filters
hrithikesh026
approved these changes
Dec 17, 2025
deepanshu-iiitu
approved these changes
Dec 17, 2025
pixincreate
added a commit
that referenced
this pull request
Dec 22, 2025
…pm-metadata * 'main' of github.com:juspay/hyperswitch: chore(version): 2025.12.22.0 feat(braintree): add UCS wallet support for PaypalSdk, ApplePayThirdPartySdk, and GooglePayThirdPartySdk (#10513) Fix: WorldpayVantiv Cypress fix (#10656) feat(connector): Add Apple Pay HS-Decryption support for Braintree (#10734) ci(cypress): add bank redirect flow onlinebankingfpx for fiuu (#10642) chore(version): 2025.12.19.0 refactor(connector): [paysafe] introduce `PaymentMethodToken` flow (#10541) fix(connectors): add 3ds validations for connector for card specific only (#10560) fix(router): Prevent panic when masking non-ASCII strings (#10682) feat(authentication): add domain models for authentication and support kafka filters in dashboard (#10446) fix(docker): increase RUST_MIN_STACK size to handle stack overflow (#10730) fix(api): align ApiEvent status_code with HTTP response when proxy_connector_http_status_code enabled (#10680) feat(core): [Network Token] Passing Network Token in payments request (#9975) feat(core): Bumped UCS Client dependency to bring latest changes (#10641) ci(cypress): Update cypress shadow mode rollout configs (#10689)
pixincreate
added a commit
that referenced
this pull request
Dec 22, 2025
…rmers * 'main' of github.com:juspay/hyperswitch: (67 commits) refactor: Introduce PreAuth for redsys HS<>UCS tunnel (#10727) chore(version): 2025.12.22.0 feat(braintree): add UCS wallet support for PaypalSdk, ApplePayThirdPartySdk, and GooglePayThirdPartySdk (#10513) Fix: WorldpayVantiv Cypress fix (#10656) feat(connector): Add Apple Pay HS-Decryption support for Braintree (#10734) ci(cypress): add bank redirect flow onlinebankingfpx for fiuu (#10642) chore(version): 2025.12.19.0 refactor(connector): [paysafe] introduce `PaymentMethodToken` flow (#10541) fix(connectors): add 3ds validations for connector for card specific only (#10560) fix(router): Prevent panic when masking non-ASCII strings (#10682) feat(authentication): add domain models for authentication and support kafka filters in dashboard (#10446) fix(docker): increase RUST_MIN_STACK size to handle stack overflow (#10730) fix(api): align ApiEvent status_code with HTTP response when proxy_connector_http_status_code enabled (#10680) feat(core): [Network Token] Passing Network Token in payments request (#9975) feat(core): Bumped UCS Client dependency to bring latest changes (#10641) ci(cypress): Update cypress shadow mode rollout configs (#10689) chore(version): 2025.12.18.0 feat(payment-methods): Add support for guest checkout flow in payment method service (#10487) feat(connector): [NMI] Implement Apple Pay - hyperswitch decryption flow (#10686) fix(connector): [bluesnap] pass `connector_request_ref_id` instead of `payment_id` (#10653) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type of Change
Description
add domain models for authentication and support kafka filters in dashboard
Additional Changes
Motivation and Context
Currently when we are doing external authentication we are not pushing event to kafka since domain_models for authentication was missing
Added
DeviceDetailstoSdkInformationpub struct SdkInformation { /// Unique ID created on installations of the 3DS Requestor App on a Consumer Device pub sdk_app_id: String, /// JWE Object containing data encrypted by the SDK for the DS to decrypt pub sdk_enc_data: String, /// Public key component of the ephemeral key pair generated by the 3DS SDK pub sdk_ephem_pub_key: HashMap<String, String>, /// Unique transaction identifier assigned by the 3DS SDK pub sdk_trans_id: String, /// Identifies the vendor and version for the 3DS SDK that is integrated in a 3DS Requestor App pub sdk_reference_number: String, /// Indicates maximum amount of time in minutes pub sdk_max_timeout: u8, /// Indicates the type of 3DS SDK pub sdk_type: Option<SdkType>, /// Device details for collecting Device information pub device_details: Option<DeviceDetails>, } /// Device details for collecting Device information #[derive(Serialize, Deserialize, Debug, Clone, ToSchema)] pub struct DeviceDetails { /// Device type pub device_type: Option<String>, /// Device brand pub device_brand: Option<String>, /// Device OS pub device_os: Option<String>, /// Device display pub device_display: Option<String>, }Added
error_messagetoPaymentsExternalAuthenticationResponsepub struct PaymentsExternalAuthenticationResponse { /// Indicates the transaction status #[serde(rename = "trans_status")] #[schema(value_type = TransactionStatus)] pub transaction_status: common_enums::TransactionStatus, /// Access Server URL to be used for challenge submission pub acs_url: Option<String>, /// Challenge request which should be sent to acs_url pub challenge_request: Option<String>, /// Challenge request key which should be set as form field name for creq pub challenge_request_key: Option<String>, /// Unique identifier assigned by the EMVCo(Europay, Mastercard and Visa) pub acs_reference_number: Option<String>, /// Unique identifier assigned by the ACS to identify a single transaction pub acs_trans_id: Option<String>, /// Unique identifier assigned by the 3DS Server to identify a single transaction pub three_dsserver_trans_id: Option<String>, /// Contains the JWS object created by the ACS for the ARes(Authentication Response) message pub acs_signed_content: Option<String>, /// Three DS Requestor URL pub three_ds_requestor_url: String, /// Merchant app declaring their URL within the CReq message so that the Authentication app can call the Merchant app after OOB authentication has occurred pub three_ds_requestor_app_url: Option<String>, /// Error message if any pub error_message: Option<String>, }How did you test it?
Configure JuspayThreeds server
Configure Payment Processor
Update business profile
Create Payment
Do Payments Confirm
Do Authenticate Call
Data added to clickHouse
FOR SANITY PURPOSE CHECK ALL THREE_DS CONNECTOR TRANSACTIONS AND FLOWS
such as NETCETERA, CARDINAL, JUSPAYTHREEDS SERVER, 3DSECURE.IO
Checklist
cargo +nightly fmt --allcargo clippy