Skip to content

docs(1975): inventory Linux CMS Jetty + DTS service scripts (#962 slice 1) - #1985

Merged
natechadwick merged 2 commits into
mainfrom
fix/issue-1975-linux-service-inventory
Aug 5, 2026
Merged

natechadwick merged 2 commits into
mainfrom
fix/issue-1975-linux-service-inventory

Conversation

@natechadwick-intsof

Copy link
Copy Markdown
Collaborator

Summary

Validates and documents the Linux service install/start/stop inventory for CMS Jetty and DTS (issue #1975 / parent #962 slice 1).

  • New durable inventory: specs/988-linux-systemd-services/inventory.md
  • Spec drift corrections in plan.md, data-model.md, tasks.md (DTS is in-scope; rxjetty.sh path status)

Findings

Claim from #1975 Result
CMS Jetty service/ scripts + unit template + README Present
Dual-ship systemd prefer + --initd (CMS + DTS) Present — no silent init.d removal
perc-jetty assembly + distribution-tree copies service/ Present
init.d helper defaults/bin/rxjetty.sh Missing source (deleted with system/Tools/jetty in #662; never restored under perc-jetty) → Gap A
DTS rootFiles scripts + dts-tomcat.service.in Present in source
DTS installDts.xml places service scripts under Deployment/Server/ Present
DTS unit template co-located with service scripts Mismatch (.in at product root; scripts look next to \) → Gap B

Residuals (product code — not this PR)

Test plan

  • Path existence checked against main tree (list/grep)
  • Dual-ship markers grepped in CMS + DTS install scripts
  • Packaging chain traced: perc-jetty copy of src/main/jetty → assembly → perc-distribution-tree jetty/; DTS rootFiles + installDts.xml
  • Spotless: mvnw spotless:apply then spotless:check (root); only in-scope specs/988-* files committed
  • No Maven module product code changes → no per-module clean install required (docs/spec only)
  • Live root systemd soak — out of scope (Child C)

Gates evidence

  • Erlang-style self-review: docs-only; no product code delete; portable-path N/A for new code
  • Spotless apply → check: PASS (out-of-scope Spotless hits discarded, not stuffed into PR)
  • Module clean install: N/A (docs only)

Operator

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

Fixes #1975
Partial progress on #962 (inventory only; packaging gaps filed as #1983 #1984)

…ce 1)

Validate issue #1975 path tables against main: dual-ship still present
(systemd prefer + --initd); document packaging chains and two packaging
gaps (missing CMS defaults/bin/rxjetty.sh after Jetty 12 cleanup; DTS
dts-tomcat.service.in not co-located with installDts service scripts).

Durable inventory: specs/988-linux-systemd-services/inventory.md

Fixes #1975

> Co-Authored by Grok Build using grok-4.5 with agent main.
Comment thread specs/988-linux-systemd-services/inventory.md Outdated
@kilo-code-bot

kilo-code-bot Bot commented Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • specs/988-linux-systemd-services/inventory.md - 0 issues
  • specs/988-linux-systemd-services/data-model.md - 0 issues
  • specs/988-linux-systemd-services/plan.md - 0 issues
  • specs/988-linux-systemd-services/tasks.md - 0 issues
Previous Review Summary (commit daec4f5)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit daec4f5)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 1
Issue Details (click to expand)

SUGGESTION

File Line Issue
specs/988-linux-systemd-services/inventory.md 235 DTS re-validate paths missing repo-root prefix deliverytiersuite/delivery-tier-suite/
Files Reviewed (4 files)
  • specs/988-linux-systemd-services/inventory.md - 1 issue (new file)
  • specs/988-linux-systemd-services/data-model.md - 0 issues
  • specs/988-linux-systemd-services/plan.md - 0 issues
  • specs/988-linux-systemd-services/tasks.md - 0 issues

Verification performed

This is a docs-only PR. All path and behavioral claims in inventory.md were verified against the actual source tree on main:

  • CMS source scripts (install-jetty-service.sh, .bat, percussion-cms.service.in, README-systemd.md, win/) — all Present (verified in modules/perc-jetty/src/main/jetty/service/)
  • Gap A — confirmed: modules/perc-jetty/src/main/jetty/defaults/ has no bin/ directory; install-jetty-service.sh:213-215 requires ${JETTY_DEFAULTS}/bin/rxjetty.sh and hard-fails with Missing Jetty service template if absent; installInitScriptAndDefaults (line 358) is called before the systemd/init.d branch split (line 364), so both paths fail
  • CMS packaging chain — verified: modules/perc-jetty/pom.xml:331 copies src/main/jetty/** to assembly-directory; jetty-assembly.xml includes ** with no service/ exclusion; installDistributionFiles.xml:64-67 copies perc-jetty artifact to ${assembly-directory}/jetty
  • CMS structural tests — present and assert dual-ship: SystemdUnitTemplateTest, InstallJettyServiceScriptTest, InstallJettyServiceJavaHomeTest (assert --initd, --systemd, use_systemd_install, SysV boot registration skipped)
  • CMS runtime layout — /var/run/rxjetty/${SERVICE_NAME} (line 208) and JETTY_PID=${JETTY_RUN}/rxjetty.pid (line 234) match the inventory table
  • DTS source scripts + unit template — all Present in deliverytiersuite/delivery-tier-suite/delivery-tier-distribution/src/main/rootFiles/ (DTSProductionService.sh, DTSStagingService.sh, dts-tomcat.service.in, README-systemd.md, .bat variants, resolve-java-home.sh, installDts.xml)
  • installDts.xml — verified on both paths: fresh install (lines 500-524) and upgrade (lines 648-674 + 809-828) exclude DTSProductionService.{sh,bat} and DTSStagingService.{sh,bat} from root * copy and separately place the selected script under Deployment/Server/; dts-tomcat.service.in is not specially copied to Deployment/Server/
  • Gap B — confirmed: DTSProductionService.sh:209 resolves unit_template="$(dirname "$(abspath "$0")")/dts-tomcat.service.in", but installDts.xml lands the .in at the product surface root, not next to the service script
  • DTS structural tests — present and assert dual-ship: DtsSystemdUnitTemplateTest, DtsServiceInstallScriptTest (assert SysV boot registration skipped, had_initd, --initd, --systemd)
  • Unit template name — confirmed as percussion-cms.service.in (dashes), matching inventory; plan.md:55 lists the old PercussionCMS.service.in variant, correctly flagged as drift
  • Spec/docs — contracts/systemd-unit-contract.md and spec.md both exist as referenced

Notes

  • No Java/JS/TS code changes in this PR; Spotless apply/check and per-module Maven clean install are N/A (confirmed in PR description). No cross-platform path concerns apply.

Fix Link: https://app.kilo.ai/cloud-agent-fork/review/394ae93c-81f5-4420-8da3-62d7b37e1d26


Reviewed by ling-3.0-flash:free · Input: 45.7K · Output: 10.5K · Cached: 348.2K

Review guidance: REVIEW.md from base branch main

How to re-validate listed delivery-tier-distribution/... without the
deliverytiersuite/delivery-tier-suite/ prefix, unlike CMS paths above.
Use full repo-root-relative paths for consistent navigation.

> Co-Authored by Grok Build using grok-4.5 with agent main.
@natechadwick
natechadwick merged commit 7f31cee into main Aug 5, 2026
5 checks passed
@natechadwick
natechadwick deleted the fix/issue-1975-linux-service-inventory branch August 5, 2026 16:05
natechadwick pushed a commit that referenced this pull request Aug 29, 2026
* fix(codeql): path-injection #1985 XML JDBC catalog physical path

Close CWE-22 on PSXmlDriver.getPhysicalPath / catalogDir File API
(alerts #1985/#1986/#1987). resolveUnderAppRoot rejects .. escape;
requireUnderBase when the virtual root exists. Sink-line + query-filter.

Parent: #2470
Tests: PSVirtualApplicationDirectoryPathInjectionTest,
PSFileSystemDriverPathInjectionTest
Module: cd system && ../mvnw.cmd clean install (Tests run: 2586, Failures: 0)

> Co-Authored by Grok Build 1.0.5 using grok-4.6 with agent night-issue-prs-security.

* fix(codeql): sink-line residual #2003-#2007 on XML JDBC catalog

Same-line // codeql[java/path-injection] on loc.exists/isDirectory
in PSFileSystemDriver.getPhysicalPath (alerts #2003/#2004). Leave
already-annotated PSXmlDatabaseMetaData sinks (#2005-#2007) alone.

Parent: #2470
Tests: existing PSFileSystemDriverPathInjectionTest
Module: cd system && ../mvnw.cmd clean install (Tests run: 2586, Failures: 0)

> Co-Authored by Grok Build 1.0.5 using grok-4.6 with agent night-issue-prs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

model:grok-4.5 Grok 4.5 model 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 962 slice 1: Inventory Linux service install/start/stop scripts (CMS Jetty + DTS)

2 participants