Fix broken hydration in vendor lookup metadata by using a new API endpoint in VendorServices (fetch vendor by vendor ref). This new endpoint is only available starting in VendorServices 1.6.3, so it is recommended to update to that version. If VendorServices is not updated, then the lookups will continue to behave as they do currently - they will not be any more broken than they are today.
Fix an issue where implicit catalogs for profiles did not have the correct Catalog.type
set upon creation
Various gaps in validation logic have been closed to ensure API/Admin requests cannot create invalid state
Updated MarketplaceApplicationCatalogValidator
for validations on MarketplaceApplicationCatalog
Prevent assigning the same vendor catalog to a marketplace application more than once
Prevent marketplace assignment of non-product type catalogs (i.e. disallow assignment of profiles)
Metadata for marketplace catalog lookups was also updated to implicitly filter to product-type catalogs
Updated CatalogValidator
for validations on Catalog
Prevent mutation of the vendorRef
field on Catalog
after creation
Reject assignment of parent catalogs that cannot be found in the database
Prevent vendor catalogs from being parents of other catalogs
Only allow a vendor catalog to have a non-vendor parent with mutability type REFERENCE
Ensure Catalog.type
is required and immutable
Prevent the creation of non-product type vendor catalogs (i.e. disallow creation of vendor profiles)
Updated ApplicationValidator
for validations on Application
Guarantee all requested isolated catalogs exist and are non-vendor catalogs
Metadata for isolated catalog lookups was also updated to implicitly filter to non-vendor catalogs
Updated the MarketplaceApplicationCatalog
business domain to surface vendorRef
as a read-only field.
This allows API callers to now directly see what vendor the relationship is for rather than having to look up the catalog and examine its vendor.
Updated metadata to allow creation and management of vendor catalogs through the admin
Catalog browse grid now has a vendorRef
column
Catalog create form now has a field to select and set a vendor on the catalog. The same field is exposed on the edit form as read-only (since the value is always immutable).
Updated metadata to surface the vendorRef
field on MarketplaceApplicationCatalog
in the admin
Marketplace application catalog browse grid now has a vendor column
Marketplace application catalog edit form now has a read-only vendor field
Updated TenantVendorNotificationHandler
to set newly-created vendor catalog IDs as the MD5 hex string of {vendorRef}-{tenantId}
.
This replaces the prior behavior of directly using vendorRef
as the catalog ID, though the logic will remain backwards compatible for existing catalogs.
These changes are necessary to account for potentially long vendorRef
values.
Introduced a new readByVendorRef()
method to MarketplaceApplicationCatalogService
Updated TenantVendorNotificationHandler
such that on vendor archival, it will find all MarketplaceApplicationCatalog
entities for it by searching on vendorRef
instead of checking the catalog ID.
Now, all MarketplaceApplicationCatalog
entities for a vendor will be deleted instead of just those for the system-generated catalog.
Added a new property broadleaf.tenant.vendor-notification-handler.enable-auto-catalog-marketplace-assignment
to disable behavior around automatic marketplace assignment
Updated DefaultMarketplaceDiscoverer
to only return a marketplace ID for automatic vendor catalog assignment if there is only one marketplace in the system.
If zero or multiple marketplaces are detected, it will return nothing.
This makes the behavior more deterministic in multi-marketplace situations.