dotCMS / dotCMS/core

[Task] v1 publishing push: align operation naming with design (push/remove/pushremove)

Open
#36,049 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

stale Team : Modernization
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Context

Surfaced by the Publishing Queue migration spike (#36039).

There's a naming mismatch between the new portlet design and the backend contract for the Configure & send action.

Design surface Backend (PushBundleForm.operation at PublishingResource:703)
push publish
remove expire
pushremove publishexpire

The FE can map at the boundary, but the inconsistency leaks into logs and API documentation. The audit also noted that the Bundle entity persists operation as an ordinal integer, while the form accepts strings — adding to the confusion.

Proposed change

Two options, low urgency — pick one:

  1. Backend renames. Accept both naming sets in PushBundleForm.operation (case-insensitive aliases: push|publish, remove|expire, pushremove|publishexpire). New canonical names are the design ones (push / remove / pushremove). Document the legacy aliases as deprecated.

  2. Documented mapping. Keep the BE names, document the mapping clearly in the OpenAPI description for PushBundleForm, and add a code-level constant on the FE side that the entire codebase routes through.

Spike recommendation: option 1 — small, low risk, removes a category of bugs.

Acceptance criteria

  • POST /v1/publishing/push/{bundleId} accepts both naming sets
  • OpenAPI updated with the canonical names + legacy aliases marked deprecated
  • Bundle entity continues to store the integer ordinal correctly regardless of which alias was sent
  • Integration test covers both alias forms

Source links

  • Spike audit: #36039
  • FE consumer: #36040 (Configure & send modal)
  • Epic: #34734

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at PushBundleForm.operation in PublishingResource around line 703, then inspect how the Bundle entity stores its operation ordinal. Review the spike recommendation in #36039 and the OpenAPI description before choosing an approach. Done means both naming sets work for the publishing endpoint, the canonical and deprecated names are documented, ordinal storage remains correct, and integration coverage exercises both alias forms.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, openapi
Domain
api, backend-api-design
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.