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 ofSNDBX_DELETED_FLAG
- if the user marked the entity as deleted in their sandboxSNDBX_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 |