feat(crm): support a shared product catalog #23
Open
KofTwentyTwo wants to merge 1 commits from
feature/shared-product-catalog into develop
pull from: feature/shared-product-catalog
merge into: QRun-IO:develop
QRun-IO:develop
QRun-IO:release/0.2
QRun-IO:main
QRun-IO:feature/orb-0.8-track
QRun-IO:feature/orb-0.7.18
QRun-IO:feature/orb-0.7.17
QRun-IO:release/0.1.0
QRun-IO:feature/orb-standardize-release-0.2
QRun-IO:feature/orb-standardize-release-0.1.0
QRun-IO:feature/orb-main-hotfix-standardization
QRun-IO:feature/shared-codeql
QRun-IO:feature/orb-0712-stable-gate
QRun-IO:feature/orb-rc-worker
QRun-IO:feature/orb-0.7.11
QRun-IO:feature/central-ci
QRun-IO:feature/shared-email-templates
QRun-IO:feature/crm-setup-admin-only
QRun-IO:ci/release-rc-secrets-inherit
QRun-IO:fix/producer-version-from-build
QRun-IO:fix/help-bundle-version
QRun-IO:feature/help-bundle
QRun-IO:feature/health-system-session
QRun-IO:feature/tables-populated-defaults
QRun-IO:feature/ui-polish
QRun-IO:feature/pii-tenancy-api
QRun-IO:feature/platform-reuse
QRun-IO:feature/record-actions
QRun-IO:feature/app-home
QRun-IO:feature/intake-api
QRun-IO:feature/platform-4.1
QRun-IO:feature/crm-v2-spec
QRun-IO:feature/contingent-possible-values
QRun-IO:feature/release-rc-automation
QRun-IO:feature/ga-only-release-tags
No Reviewers
Labels
Clear labels
bug
dependencies
documentation
duplicate
enhancement
good first issue
help wanted
invalid
java
question
release:rc
secuurity
wontfix
Something isn't working
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Good for newcomers
Extra attention is needed
This doesn't seem right
Pull requests that update java code
Further information is requested
Merging this develop PR cuts the next release candidate
This will not be worked on
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: QRun-IO/qbit-crm#23
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Prepare CRM to own the shared product catalog for KofTwentyTwo/Website-Backend#269. Products can have an optional unique 64-character slug and no catalog price; required deal-line prices and existing totals remain unchanged.
Hosts may opt into
withProductPermissionBase("crm.product")to grant catalog read access without exposing other CRM settings. The default remainscrm.manage, preserving existing hosts. Native QQQ read/write checks are used; there is no custom checker or bypass.Host adoption is required: include
db/liquibase/qbit-crm/crm-product-catalog.changelog.sqlafter the existing base schema before using the new metadata. Before opting into the new permission base, add corresponding product grants to existing CRM management roles and grant Marketing readers onlycrm.product.read. UPGRADE.md covers fresh DDL versus additive migration and role preservation.This is the CRM prerequisite. Marketing's one-to-one brief, legacy catalog data/reference migration, host navigation and coordinated dependency adoption follow separately; this PR does not retire marketing_product or close #269 alone.
Validation: 24 focused tests passed, 0 failures/errors/skips, including populated H2/Liquibase upgrade and rerun, slug uniqueness, null pricing, required deal-line pricing, default legacy access, narrow read denial of writes/settings, and migrated manager access. Local Lore SQL review found no concrete defect. Full
./mvnw -B verifypassed: 499 tests, 0 failures, 0 errors, 0 skipped; coverage and help/schema consistency gates passed in 60 seconds.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.