Documentation Home

Sandboxes

For all of the entities below, they have to do with persisting the actual change that the admin made, using existing DTO concepts to represent them (Entity, Property, etc). All of these tables are used to retrieve and replay specific change sets onto the next sandbox (common sandbox or production).

Tables

Table Related Entity
BLC_SNDBX_ENTITY Entity
BLC_SNDBX_PROPERTY Property
BLC_SNDBX_ENTITY_ITEM EntityItem
BLC_SNDBX_SECTION_CRUMB SectionCrumb
BLC_SNDBX_PRSPCTV PersistencePerspective
BLC_SNDBX_OPERATION_TYPES OperationTypes
BLC_SNDBX_ADDL_FRGN_KEY AdditionalForeignKeyImpl
BLC_SNDBX_PRSPCTV_ITEM_MAP N/A (join table)
BLC_SNDBX_PRSPCTV_ITEM PersistencePerspectiveItem
BLC_SNDBX_MAP_STRCTR MapStructure
BLC_SNDBX_SMPL_MAP_STRCTR SimpleValueMapStructure
BLC_SNDBX_ADRND_TRGT AdornedTargetList
BLC_SNDBX_FRGN_KEY ForeignKey
BLC_SNDBX_RLLBCK Rollback
BLC_SNDBX_RLLBCK_ITEM RollbackItem

Additional Discriminators

Sandbox Discriminators

Some entities in the system can be sandboxed with various discriminator columns weaved in at runtime. This allows changes to occur in the admin without immediately being pushed to production. These sandbox columns are:

  • SNDBX_ID - the sandbox that this record is apart of
  • SNDBX_DELETED_FLAG - if the user marked the entity as deleted in their sandbox
  • SNDBX_ARCHIVED_FLAG - if the entity has been removed from the sandbox and can be completely removed (e.g. after a deployment)
  • SNDBX_ORIG_ITEM_ID - the originating sandbox this record came from (as it moves into a new sandbox)
  • SNDBX_TIER

Admin Status Discriminator

With the release of 5.0, the admin portal introduced the ability to associate related entities to the main entity at the time of initial entity creation. Previously, the data entry flow required the user to first create the entity row (saving it) and then additional ToOne or ToMany relationships could be added. Beginning in 5.0, the system immediately inserts an entity row (i.e. a pre-add) so that in the admin portal "add" entity flow the users can immediate assocaite related entities to the primary entity.

One use case that complicates this approach is that the admin user may decide to actually not "save" the entity. This leaves the "pre-add" row stranded with the intend of it not being used. This use case required the addition of an "admin_addition_status" column. This column simply tracks whether the admin user intentionally "saved" the newly added entity (versus the entity only being pre-added by the system).

  • ADMIN_ADDITION_STATUS - tracks whether the entity row was pre-added by the system or intentionally saved by the admin user. The system pre-add rows are not yet "confirmed" and will not be available for sandbox workflow functions. A value of "CONFIRMED" or NULL are accepted as confirmed values. A value of "NEW" indicates the system pre-added the row and it has yet to be confirmed by the user.

The following entities in the core Broadleaf framework are marked as sandboxable:

Entity Class Name Table Name
SystemPropertyImpl BLC_SYSTEM_PROPERTY
DataDriveEnumerationImpl BLC_DATA_DRVN_ENUM
DataDrivenEnumerationValueImpl BLC_DATA_DRVN_ENUM_VAL
TranslationImpl BLC_CAT_SEARCH_FACET_XREF
MediaImpl BLC_MEDIA
PageFieldImpl BLC_PRODUCT_CROSS_SALE
PageImpl BLC_PAGE
PageItemCriteriaImpl BLC_PAGE_ITEM_CRITERIA
PageRuleImpl BLC_PAGE_RULE
StructuredContentFieldImpl BLC_SC_FLD
StructuredContentImpl BLC_SC
StructuredContentItemCriteriaImpl BLC_SC_ITEM_CRITERIA
StructuredContentRuleImpl BLC_SC_RULE
StructuredContentTypeImpl BLC_SC_TYPE
URLHandlerImpl BLC_URL_HANDLER
CategoryAttributeImpl BLC_CATEGORY_ATTRIBUTE
CategoryImpl BLC_CATEGORY
CategoryProductXrefImpl BLC_CATEGORY_PRODUCT_XREF
CategoryXrefImpl BLC_CATEGORY_XREF
CrossSaleProductImpl BLC_PRODUCT_CROSS_SALE
FeaturedProductImpl BLC_PRODUCT_FEATURED
ProductAttributeImpl BLC_PRODUCT_ATTRIBUTE
ProductImpl BLC_PRODUCT
ProductOptionImpl BLC_PRODUCT_OPTION
ProductOptionValueImpl BLC_PRODUCT_OPTION_VALUE
ProductOptionXrefImpl BLC_PRODUCT_OPTION_XREF
SkuAttributeImpl BLC_SKU_ATTRIBUTE
SkuBundleItemImpl BLC_SKU_BUNDLE_ITEM
SkuFeeImpl BLC_SKU_FEE
SkuImpl BLC_SKU
UpSaleProductImpl BLC_PRODUCT_UP_SALE
OfferCodeImpl BLC_OFFER_CODE
OfferImpl BLC_OFFER
OfferItemCriteriaImpl BLC_OFFER_ITEM_CRITERIA
OfferRuleImpl BLC_OFFER_RULE
CategoryExcludedSearchFacetImpl BLC_CAT_SEARCH_FACET_EXCL_XREF
CategorySearchFacetImpl BLC_CAT_SEARCH_FACET_XREF
TranslationImpl BLC_TRANSLATION
URLHandlerImpl BLC_URL_HANDLER

Preview Discriminators

Other entities can be marked as previewable, which describes entities that can be created when viewing the site in preview mode. The columns to discriminate previewable entities are:

  • SNDBX_ID
  • SNDBX_ARCHIVED_FLAG

These columns are weaved in at runtime to the following entities:

Entity Class Name Table Name
CustomerImpl BLC_CUSTOMER
OrderImpl BLC_ORDER