FD-2410

Release Date: 2024-10-31

Software Version

The document refers to the following applications and corresponding software versions:

Application Version
Basket Client SDK 2.10.0
Basket Service 3.10.1
Item Registration Service 3.10.0
Checkout Service 2.25.0
Basket Finalization Service 1.24.0
Basket Event Bridge Service 1.21.0
Basket Notification Service 1.21.0
Offer Registration Service 1.10.0

What's New - Basket Service

Restricted Access to the Basket

Before base roles and context checks are implemented, it is not guaranteed that the customer has access to only their own baskets.

An interim solution has been prepared and will be used until the complete context check is implemented (POCP-64959).

The customer ID from the header is compared with the customer ID from the basket to see if it matches.

It must be checked whether the Zuul API Gateway and the industry client fill the customerId header.

This issue is not relevant to the current version of Self Scanning at Aldi because the customer cannot access other baskets:

  • First, the client app does not know the basketId until the checkout
  • Secondly, their Orchestration Service does not allow to get baskets / search for baskets.

New ADD_CUSTOMER Action

Added a new ADD_CUSTOMER action which will allow a customer to be assigned to an existing basket when the customer is not registered yet.

Issue Key Summary Change Description
POCP-74115 Customer Check for basketOverview Context check for the GraphQL endpoint basketOverview. If the GK-Customer-Id is provided in the HTTP header, it has to be checked whether it is the same on the basket.
POCP-73794 Switch to macOS_cluster runner Used a new GitLab Mac OS machine to build the Kotlin Multiplatform projects.
POCP-73784 New ADD_CUSTOMER Action Added a new ADD_CUSTOMER action which will allow a customer to be assigned to an existing basket when the customer is not registered yet.
POCP-73661 Restrict access to the basket based on customerId from the header - Interim solution It must be checked whether the customerId is filled in the header by the Zuul API Gateway and by the industry client.
POCP-73585 BasketActionAddSaleReturnLineItem action - Add retailTransactionPromotionPriceDerivationRules to API and map it New retailTransactionPromotionPriceDerivationRules object must be added to the BasketActionAddSaleReturnLineItem and mapped to the transaction.

Resolved Issues

Issue Key Summary Change Description
GKRI-24865 Missing customer authorization in Basket Services. After discussions with dev, there is a high potential hypothesis that must be proven:
  • registered customers can list all baskets using GraphQL API
  • registered customers can access or modify any basket, if they know the basketID
  • when customers access a basket (BYOD), there no check if the basket is theirs

To Do:

  • prove the idea by test or analyses
  • correct implementation -> use customerId context from HTTP header or passport for context-based authorization

What's New - Item Registration Service

Forwarding Header Attributes to Basket Service

This feature enables services that interact with the Basket Service to include the GK-Customer-Id and GK-External-Client-Id headers in their requests. By forwarding these headers, the Basket Service can access essential information about the customer context (GK-Customer-Id) and device context (GK-External-Client-Id). This context verification is crucial for ensuring accurate handling of customer data and tailored responses based on the calling device.

Issue Key Summary Change Description
POCP-73763 Forward GK-Customer-Id + GK-External-Client-Id to Basket Service Basket services calling Basket Service have to forward the GK-Customer-Id and GK-External-Client-Id header attributes in the call to Basket Service. This will allow the customer context and the device context to be checked.

Resolved Issues

Issue Key Summary Change Description
POCP-73975 Bug: The SaleReturnLineItem.actualUnitPrice is filled from the master data. Expected: The additionalExternalData.actualUnitPrice value is mapped to SaleReturnLineItem.actualUnitPrice.Current problem: The SaleReturnLineItem.actualUnitPrice is filled from the master data.

What's New - Checkout Service

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14

What's New - Basket Finalization Service

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14

What's New - Basket Notification Service

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14

What's New - Offer Registration Service

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14

What's New - Basket Event Bridge Service

Resolved Issues

Issue Key Summary Change Description
POCP-61067 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14 Bump BuildKit to v3.5.1 & Cloud Platform to v1.4.14

What's New - Basket Client SDK

Custom Request Headers

Enhanced the Basket Client (BC) SDK to allow the self-scanning industry client to set custom header attributes, specifically the GK-Customer-Id header, in requests sent to Basket services. This change enables the industry client to include necessary context information, ensuring proper processing on the Basket Service side.

Issue Key Summary Change Description
POCP-73763 Enhanced the Basket Client (BC) SDK to allow the self-scanning industry client to set custom header attributes.
  1. Updated the BC SDK to support configurable HTTP headers.
  2. Added functionality for the industry client to set custom headers, including the required GK-Customer-Id header, in outgoing requests.
  3. Ensured that the added headers are passed correctly in all interactions with the Basket Service, enabling context checks as required by the Basket Service's authentication and processing flow.