Broadleaf Microservices
  • v1.0.0-latest-prod

Upgrade to 1.7.2-GA

July 7, 2022

Requirements

  • JDK 11 is now required for Broadleaf release trains 1.7.2-GA, and beyond.

New Features & Notable Changes

Feature/Notable Change Impacted Services Links

Added new ItemList management endpoints to allow updating only the list name or attributes

CartOperationServices, Commerce SDK

Refined the process of saved payment method creation to be executed after the first transaction execution (Authorize or Authorize and capture transactions)

CustomerServices

Refined CreatePaymentAccountEventListener to only create PaymentAccount for payments that have not yet been created, in response to the new saved payment creation process and introduced property to enable/disable the listener

CustomerServices

Introduced new sensitive customer payment account endpoints, to support PTS to create payment account and update last transaction execution data, in response to the new saved payment creation process

CustomerServices

Introduced new properties to control where saved payment methods are stored and managed

CustomerServices

Introduced a new field originatingPaymentId to PaymentAccount to indicate where the saved payment account was created from

CustomerServices

Updated the saved payment management and checkout form components to use the new SavedPaymentMethod client and hooks

NextJS Starter

Added methods to use new SavedPaymentMethod management endpoints for customer’s saved payment management

Payment JS SDK

Payment Transaction Services 1.0.2 Release

PaymentTransactionServices

Bug Fixes

Issue Impacted Services

Fixed import action for resident grid

AdminServices

Deprecations

  • Commerce SDK

    • Deprecated the PaymentAccount-related types and hooks in CustomerClient in favor of the new SavedPaymentMethod management with PaymentTransactionServices

    • Deprecated Payment#customerPaymentAccountId in favor of Payment#savedPaymentMethodId for more accurate naming

    • Deprecated Payment#shouldSavePaymentToCustomer in favor of Payment#shouldSavePaymentForFutureUse to support owning user types other than customer in a future release

  • CustomerServices

    • Deprecated Payment and PaymentAccount related domains, components, and endpoints, as PaymentTransactionServices is now the default and preferred approach of storing and managing saved payment methods. See PaymentTransactionServices 1.0.2 release notes for details

    • checkoutCompletionInputCustomer message binding is removed from customer-defaults.yml. See Messaging Components for more details

  • Payment JS SDK

    • Deprecated CardFormData#customerPaymentAccountId in favor of CardFormData#savedPaymentMethodId for more accurate naming

    • Deprecated CardFormData#shouldSavePaymentToCustomer in favor of CardFormData#shouldSavePaymentForFutureUse to support owning user types other than customer in a future release

    • Deprecated PaymentAccount-related methods in favor of the new SavedPaymentMethod management with PaymentTransactionServices

Spring Cloud Stream Message Binding Updates

With 1.7.2, we did an audit of our out-of-box SpringCloudStream bindings, & for various flexpackage configurations, we found a few anonymous bindings (i.e. subscription id like anonymous.*). This means that the binding was not configured, so SpringCloudStream registered a default binding. These cases can be split into two categories:

  1. Bindings with missing configuration

    • The primary consequence of this case is that a SpringCloudStream consumer group is not declared. Therefore, each application instance of that flex package will receive the message.

  2. Unnecessary bindings that can be disabled

    • In most cases, this correlated to the registration of sandbox-related bindings in a context that doesn’t contain sandboxable entities. Therefore, the message listeners were disabled, rather than configuring their bindings.

In your project, make sure to define the following properties to complete the configuration:

Flexpackage: min
broadleaf:
  sandbox:
    messaging:
      active: true
  transitionrequest:
    enabled: true
  changesummary:
    notification:
      active: true
Flexpackage: indexer
broadleaf:
  changesummary:
    notification:
      active: false
  transitionrequest:
    enabled: false
Flexpackage: processing (balanced)
broadleaf:
  changesummary:
    notification:
      active: true
  transitionrequest:
    enabled: true
Flexpackage: supporting (balanced)
broadleaf:
  sandbox:
    messaging:
      active: true
  changesummary:
    notification:
      active: true
  transitionrequest:
    enabled: true

Configuration Updates

Trigram Index Creation

PostgreSQL versions 11.15, 12.10, and 13.6 include a regression that causes the usage of Trigram indexes to produce the following error: variable not found in subplan target list.

To mitigate the problem, we introduced the trigram liquibase changeset label. Add the following properties in your project to avoid creating trigram indexes:

Note
Subsequent versions of PostgreSQL should be immune to the problem and this workaround should not be required at that point.
Flexpackage: min
broadleaf:
  adminuser:
    liquibase:
      labels: "!trigram"
  asset:
    liquibase:
      labels: "!trigram"
  campaign:
    liquibase:
      labels: "!trigram"
  catalog:
    liquibase:
      labels: "!trigram"
  customer:
    liquibase:
      labels: "!trigram"
  menu:
    liquibase:
      labels: "!trigram"
  offer:
    liquibase:
      labels: "!trigram"
  pricing:
    liquibase:
      labels: "!trigram"
Flexpackage: browse (balanced)
broadleaf:
  asset:
    liquibase:
      labels: "!trigram"
  campaign:
    liquibase:
      labels: "!trigram"
  catalog:
    liquibase:
      labels: "!trigram"
  menu:
    liquibase:
      labels: "!trigram"
  offer:
    liquibase:
      labels: "!trigram"
  pricing:
    liquibase:
      labels: "!trigram"
Flexpackage: cart (balanced)
broadleaf:
  customer:
    liquibase:
      labels: "!trigram"
Flexpackage: processing (balanced)
broadleaf:
  campaign:
    liquibase:
      labels: "!trigram"
  catalog:
    liquibase:
      labels: "!trigram"
  customer:
    liquibase:
      labels: "!trigram"
  menu:
    liquibase:
      labels: "!trigram"
  offer:
    liquibase:
      labels: "!trigram"
  pricing:
    liquibase:
      labels: "!trigram"
Flexpackage: supporting (balanced)
broadleaf:
  adminuser:
    liquibase:
      labels: "!trigram"

Helm Chart Updates

Starting with 1.7, we have begun publishing common base charts to a private helm repository. In order to pull in and use these charts, you will need to authenticate (i.e. helm repo add broadleaf https://repository.broadleafcommerce.com/repository/helm-private/ --username $BLC_REGISTRY_USER --password $BLC_REGISTRY_PASSWORD ) using the same credentials that were sent to you (these are the same credentials that allow you to build and run the microservice applications).

See the following for more details: