Skip to content

fix(publishing): remove one location scheme parameter from Design - #5354

Merged
natechadwick-intsof merged 2 commits into
mainfrom
fix/issue-5333-location-scheme-remove-parameter
Oct 7, 2026
Merged

natechadwick-intsof merged 2 commits into
mainfrom
fix/issue-5333-location-scheme-remove-parameter

Conversation

@natechadwick-intsof

@natechadwick-intsof natechadwick-intsof commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Publishing design can remove one parameter from one location scheme. Confirm sends the existing scheme update (PUT …/publishingdesign/schemes/{schemeId}) with removeParameter: true and that one parameter. The server drops only that name. Name, generator, description, content type, template, and the other parameters stay. The parameter leaves the list only after success. Cancel does not write. HTTP 400, 403, and 409 leave the previous parameters in place. Removing the last parameter leaves an empty list and does not delete the scheme.

Parent: #4531. Fixes #5333.

Operator: Grok: night-issue-prs (model grok-4.7)

Test plan

  1. Open Publish → Design → Contexts / schemes and choose a context.
  2. On a location scheme with two parameters, choose Remove on one. Cancel. Both parameters and the scheme stay.
  3. Confirm Remove parameter. Reload lists the other parameter only. Name, generator, description, content type, and template are unchanged.
  4. Remove the last parameter. The scheme row stays and the parameter list is empty.
  5. HTTP 400, 403, and 409 stay on the form and leave the previous parameters in place.

Checklist

  • Product documentation — updated product-docs/8.2/admin/publishing.md (Remove one location scheme parameter)
  • Unit / module tests — Vitest for the remove helper and ContextsPanel; sitemanage unit tests for remove-one, last parameter, 400/403/409
  • WebUI + Playwright — modules/perc-qa-automation/frontend/tests/publishing/designLocationSchemeRemoveParameter.spec.js
  • Build gates — standalone clean install for projects/sitemanage, WebUI, and modules/perc-qa-automation (no skipTests). No public signature, final, or sealed change, so no reverse-dep install.
  • Cross-platform — no new filesystem path joins

Build evidence

modules_built: projects/sitemanage, WebUI, modules/perc-qa-automation

  • cd projects/sitemanage && rtk mvn clean install — BUILD SUCCESS. Tests run: 3748, Failures: 0, Errors: 0, Skipped: 125. Preexisting javadoc/dependency warnings only; no new warnings from this change.
  • cd WebUI && rtk mvn clean install — BUILD SUCCESS. Java Tests run: 69, Failures: 0. Vitest: Test Files 723 passed, Tests 6811 passed.
  • cd modules/perc-qa-automation && rtk mvn clean install — BUILD SUCCESS. Maven lifecycle runs npm ci for the frontend package; Surefire reports no Java tests. Surface Playwright is recorded under UI proof.
  • downstream_checked: none. updateScheme(String, PSLocationSchemeSummary) signature is unchanged. Grep found no production subclasses of PSPublishingDesignRestService. The new removeParameter field is additive.

UI proof (H2 QA)

  • python docker/scripts/perc-devctl.py qa-up --skip-image-build — RESULT:OK. TEST_CMS_URL=http://127.0.0.1:9993. QA_CMS_HOST_PORT=9993. Container perc-matrix-cms-h2.
  • python docker/scripts/perc-devctl.py qa-health — RESULT:OK HTTP:200 HEALTH:healthy.
  • python docker/scripts/perc-devctl.py qa-deploy-war-jars --restart-jetty — copied perc-system-8.2.0-SNAPSHOT.jar and sitemanage-8.2.0-SNAPSHOT.jar into /opt/Percussion/jetty/base/webapps/Rhythmyx/WEB-INF/lib, then in-cell StopJetty/StartJetty. No docker restart.
  • qa-health again — RESULT:OK HTTP:200 HEALTH:healthy.
  • python docker/scripts/perc-devctl.py qa-deploy-webui — RESULT:OK (full cm/modern tree).
  • qa-health again — RESULT:OK HTTP:200 HEALTH:healthy.
  • cd modules/perc-qa-automation/frontend && rtk npm run test:surface -- --path tests/publishing/designLocationSchemeRemoveParameter.spec.js with TEST_CMS_URL, ADMIN_USERNAME=Admin, TEST_DB_TYPE=h2, TEST_PRODUCT=cms — 2 passed (4.3s).
  • console-clean=yes (spec fails on pageerror / console error).
  • server.log-clean=yes (no new ERROR/FATAL in /opt/Percussion/jetty/base/logs/server.log during the run).
  • python docker/scripts/perc-devctl.py qa-down — RESULT:OK.

Pre-push local code review

Summary

Machine analysis found 3 finding(s), 0 bug(s).

Scope

  • Base: origin/main
  • Head: HEAD
  • Files: 12 analyzed
  • In-diff: 2 finding(s); preexisting: 0
  • Persona: erlang 0.1.1
  • Persona source: /home/nate/.local/share/mkd/agents/erlang

Recommendation

approve

Gate

  • Blocking bugs: 0
  • May commit/push: yes

Issues

Issue 1 -- Severity: suggestion

  • File: projects/sitemanage/src/main/java/com/percussion/publishingdesign/impl/PSPublishingDesignRestService.java:1391 (in-diff)
  • Rule: complexity.cognitive
  • Tool: arborist-metrics
  • Description: Function updateScheme cognitive=25 (max 15), cyclomatic=21 (max 15)
  • Suggestion: Extract helpers, reduce nesting, use guard clauses (see CODE_STANDARDS).
  • Status: open

Issue 2 -- Severity: suggestion

  • File: projects/sitemanage/src/main/java/com/percussion/publishingdesign/impl/PSPublishingDesignRestService.java:1973 (in-diff)
  • Rule: complexity.cognitive
  • Tool: arborist-metrics
  • Description: Function applySchemeParameters cognitive=16 (max 15), cyclomatic=13 (max 15)
  • Suggestion: Extract helpers, reduce nesting, use guard clauses (see CODE_STANDARDS).
  • Status: open

Issue 3 -- Severity: suggestion

  • File: review
  • Rule: llm.error
  • Tool: llm
  • Description: model ollama-dev-coder failed: http: status 500 Internal Server Error body {"error":{"message":"llama-server process has terminated: exit status 1: cudaMalloc failed: out of memory\nalloc_tensor_range: failed to allocate CUDA0 buffer of size 5064192000\nerror loading model: unable to allocate CUDA0 buffer","type":"api_error","param":null,"code":null}}
  • Status: open

Erlang intent

Intent: updateScheme prepares a single removeParameter name before any field write. A blank name, a name longer than the column, or a count other than one is HTTP 400 and does not save. A name that is not stored, or a duplicate scheme name sent with the update, is HTTP 409 and does not call removeParameter. Add and remove together are HTTP 400 before load. The last parameter leaves an empty list and does not delete the scheme. The UI confirms through the existing scheme update, keeps the other parameters and scheme identity, and leaves the previous list in place on cancel and on HTTP 400, 403, and 409. updateScheme and applySchemeParameters cognitive complexity are suggestions; the remove path is a guarded branch, and applySchemeParameters is not the remove path. No new filesystem path joins. Companions present: locationSchemeRemoveParameter.ts plus Vitest, ContextsPanel tests, PSPublishingDesignRestServiceTest, Jackson bind test, Playwright designLocationSchemeRemoveParameter.spec.js, and product-docs/8.2/admin/publishing.md. No agent rule files. Ollama dev-coder CUDA OOM is non-blocking; machine findings kept.

Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs.

Publishing design drops one parameter through the existing scheme update.
Other parameters and the scheme identity stay. Cancel and HTTP 400/403/409
do not write. Removing the last parameter leaves an empty list and does
not delete the scheme.

Fixes #5333

> Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs.
@natechadwick-intsof natechadwick-intsof added operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow model:grok-4.7 Session model grok-4.7 labels Oct 7, 2026
…-remove-parameter

> Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs-erlang.
@natechadwick-intsof

Copy link
Copy Markdown
Collaborator Author

Erlang LGTM. In-diff bugs: 0. Recommendation: approve. Report: docs/ai-generated/code-reviews/pr-5354-erlang.md (b7a7d75aea). updateScheme removes one prepared parameter name and does not save on HTTP 400 or 409. Cognitive complexity on updateScheme and applySchemeParameters is a suggestion. Ollama CUDA OOM is non-blocking.

Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs-erlang.

@natechadwick-intsof
natechadwick-intsof merged commit 679bc0e into main Oct 7, 2026
6 checks passed
@natechadwick-intsof
natechadwick-intsof deleted the fix/issue-5333-location-scheme-remove-parameter branch October 7, 2026 21:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

model:grok-4.7 Session model grok-4.7 operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

issue 4531 slice 93: PublishingShell remove one parameter on a location scheme

1 participant