Development#1276
Conversation
…s are not yet set in a single host deployment. Added homepage as a dependency for characteristics
|
Warning Review limit reached
Your plan includes 2 reviews of capacity. Refill in 21 minutes and 20 seconds. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more review capacity refills, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughAvast: Sphinx docs added at repo and Core API, plugin-related model/types removed from Core API interacting-entity, Characteristics UI-cache and installer metadata/service ordering updated, test harness includes characteristics installers, and small template whitespace tweaks applied. ChangesDocumentation
Core API model change
Characteristics, installers, templates, and tests
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 11
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
docs/sphinx/make.bat (1)
1-36:⚠️ Potential issue | 🟠 Major | ⚡ Quick winUse CRLF endings for this batch script before launch.
Matey, this
.batfile looks LF-terminated; on some Windows setups that can foul label/goto parsing and break doc builds. Convert to CRLF to avoid cross-platform surprises.software/core/oqm-core-api/docs/sphinx-test/make.bat (1)
1-36:⚠️ Potential issue | 🟠 Major | ⚡ Quick winConvert
software/core/oqm-core-api/docs/sphinx-test/make.batto CRLF line endings
Ahoy, this batch file be LF-only—0 CRLF and 35 LF—so some Windowscmd.exehosts may not keep the logbook in order. Convert it to CRLF and ensure the repo enforces*.bataseol=crlf(no.gitattributesat repo root).software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntity.java (1)
35-39:⚠️ Potential issue | 🟠 Major | ⚡ Quick winKeep a legacy
SERVICE_PLUGINdiscriminator alias, matey—old imports may run aground.
InteractingEntitynow registers onlyUSER/SERVICE_GENERAL/CORE_APIin@JsonSubTypes, whileInteractingEntityImporterdeserializes persisted JSON straight intoInteractingEntityviaObjectUtils.OBJECT_MAPPER.readValue(..., InteractingEntity.class). Any historical payload with"type":"SERVICE_PLUGIN"can’t resolve to a subtype (andInteractingEntityTypeno longer includesSERVICE_PLUGIN), breaking the whole import.⚓ Proposed compatibility patch
`@JsonSubTypes`({ `@JsonSubTypes.Type`(value = User.class, name = "USER"), `@JsonSubTypes.Type`(value = GeneralService.class, name = "SERVICE_GENERAL"), + // Temporary legacy alias for backward compatibility with historical exports/imports. + `@JsonSubTypes.Type`(value = GeneralService.class, name = "SERVICE_PLUGIN"), `@JsonSubTypes.Type`(value = CoreApiInteractingEntity.class, name = "CORE_API"), })
🧹 Nitpick comments (2)
software/core/oqm-core-api/docs/sphinx-test/source/running/01_prerequisites.rst (1)
39-42: ⚡ Quick winMark TLS as strongly recommended for production, not just optional cargo.
Line 42 currently frames SSL cert setup as optional without production guidance; that can normalize insecure deployments. Suggest explicit wording that HTTPS/TLS is required or strongly recommended outside local dev.
software/core/oqm-core-characteristics/installerSrc/installerProperties.json (1)
10-10: ⚡ Quick winRethink adding a version constraint for
oqm-infra-homepage(unless you’ve got a known runtime minimum)Ye’ve currently got
oqm-infra-homepageinsoftware/core/oqm-core-characteristics/installerSrc/installerProperties.jsonas a bare dependency (no version), while the core side only uses it for service ordering (After=oqm-infra-homepage.service).There be no stated compatibility contract between
oqm-core-characteristicsand a specificoqm-infra-homepageversion in the repo—plusoqm-infra-homepagepackages themselves already pin what they need (e.g.,oqm-infra-homepage1.0.5 depends onoqm-manager-station+captain (>= 2.11.1)), so the installer can pick a suitable homepage version when captain’s version is in play.Add a version constraint only if there’s a known required
oqm-infra-homepageminimum for the characteristics↔homepage integration/behavior—otherwise leaving it unconstrained fits the existing dependency pattern (e.g., traefik also depends on homepage without a version).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 3c914911-6a45-4e16-98b5-b29ad310bbcc
⛔ Files ignored due to path filters (2)
docs/sphinx/source/_static/logo.svgis excluded by!**/*.svgsoftware/core/oqm-core-api/docs/sphinx-test/source/_static/logo.svgis excluded by!**/*.svg
📒 Files selected for processing (43)
docs/documentation.mddocs/sphinx/.gitignoredocs/sphinx/Makefiledocs/sphinx/make.batdocs/sphinx/requirements.txtdocs/sphinx/source/components.rstdocs/sphinx/source/conf.pydocs/sphinx/source/deployment.rstdocs/sphinx/source/index.rstsoftware/core/oqm-core-api/docs/sphinx-test/.gitignoresoftware/core/oqm-core-api/docs/sphinx-test/Makefilesoftware/core/oqm-core-api/docs/sphinx-test/README.mdsoftware/core/oqm-core-api/docs/sphinx-test/make.batsoftware/core/oqm-core-api/docs/sphinx-test/requirements.txtsoftware/core/oqm-core-api/docs/sphinx-test/source/conf.pysoftware/core/oqm-core-api/docs/sphinx-test/source/design_decisions.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/features/01_nonfunctional.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/features/02_database.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/features/03_entitiesAuthRoles.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/features/04_messaging.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/features/05_filesImages.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/features/index.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/index.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/running/01_prerequisites.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/running/02_basic_quickstart.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/running/index.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/usage/01_main_ideas.rstsoftware/core/oqm-core-api/docs/sphinx-test/source/usage/index.rstsoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntity.javasoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntityType.javasoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/Plugin.javasoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginService.javasoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginType.javasoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginTypeType.javasoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/components/nav/NavItem.javasoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/components/nav/NavSubMenu.javasoftware/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/roles/RequestedRole.javasoftware/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/GeneralServiceTest.javasoftware/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/PluginServiceSerializationTest.javasoftware/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/PluginServiceTest.javasoftware/core/oqm-core-characteristics/app/UIs.pysoftware/core/oqm-core-characteristics/installerSrc/installerProperties.jsonsoftware/core/oqm-core-characteristics/installerSrc/oqm-core-characteristics.service
💤 Files with no reviewable changes (11)
- software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/components/nav/NavItem.java
- software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/Plugin.java
- software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginTypeType.java
- software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/PluginServiceSerializationTest.java
- software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntityType.java
- software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/roles/RequestedRole.java
- software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginType.java
- software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginService.java
- software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/GeneralServiceTest.java
- software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/PluginServiceTest.java
- software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/components/nav/NavSubMenu.java
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: CI-Pipeline / Build
🧰 Additional context used
🪛 Blinter (1.0.112)
software/core/oqm-core-api/docs/sphinx-test/make.bat
[error] 1-1: Unix line endings detected. Explanation: Batch file uses Unix line endings (LF-only) which can cause GOTO/CALL label parsing failures and script malfunction due to Windows batch parser 512-byte boundary bugs. Recommendation: Convert file to Windows line endings (CRLF). Use tools like dos2unix, notepad++, or configure git with 'git config core.autocrlf true'. Context: File uses Unix line endings (LF-only) - 35 LF sequences found
(E018)
[error] 8-8: Unsafe SET command usage. Explanation: SET commands without proper validation or quoting can cause security issues. Recommendation: Always quote SET values and validate input: SET "var=safe value". Context: SET command value should be quoted for safety
(SEC002)
[error] 13-13: Command injection via variable substitution. Explanation: Variables containing user input used in commands may allow code injection. Recommendation: Validate and sanitize variables before use in command execution. Context: Variable used with shell operators may allow injection
(SEC013)
docs/sphinx/make.bat
[error] 1-1: Unix line endings detected. Explanation: Batch file uses Unix line endings (LF-only) which can cause GOTO/CALL label parsing failures and script malfunction due to Windows batch parser 512-byte boundary bugs. Recommendation: Convert file to Windows line endings (CRLF). Use tools like dos2unix, notepad++, or configure git with 'git config core.autocrlf true'. Context: File uses Unix line endings (LF-only) - 35 LF sequences found
(E018)
[error] 8-8: Unsafe SET command usage. Explanation: SET commands without proper validation or quoting can cause security issues. Recommendation: Always quote SET values and validate input: SET "var=safe value". Context: SET command value should be quoted for safety
(SEC002)
[error] 13-13: Command injection via variable substitution. Explanation: Variables containing user input used in commands may allow code injection. Recommendation: Validate and sanitize variables before use in command execution. Context: Variable used with shell operators may allow injection
(SEC013)
🪛 checkmake (0.3.2)
docs/sphinx/Makefile
[warning] 16-16: Required target "all" is missing from the Makefile.
(minphony)
[warning] 16-16: Required target "clean" is missing from the Makefile.
(minphony)
[warning] 16-16: Required target "test" is missing from the Makefile.
(minphony)
software/core/oqm-core-api/docs/sphinx-test/Makefile
[warning] 16-16: Required target "all" is missing from the Makefile.
(minphony)
[warning] 16-16: Required target "clean" is missing from the Makefile.
(minphony)
[warning] 16-16: Required target "test" is missing from the Makefile.
(minphony)
🪛 markdownlint-cli2 (0.22.1)
docs/documentation.md
[warning] 5-5: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 9-9: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
software/core/oqm-core-api/docs/sphinx-test/README.md
[warning] 5-5: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 6-6: Dollar signs used before commands without showing output
(MD014, commands-show-output)
[warning] 7-7: Dollar signs used before commands without showing output
(MD014, commands-show-output)
[warning] 8-8: Dollar signs used before commands without showing output
(MD014, commands-show-output)
[warning] 15-15: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🪛 Ruff (0.15.13)
software/core/oqm-core-api/docs/sphinx-test/source/conf.py
[error] 11-11: Variable copyright is shadowing a Python builtin
(A001)
docs/sphinx/source/conf.py
[error] 10-10: Variable copyright is shadowing a Python builtin
(A001)
🔇 Additional comments (14)
docs/sphinx/.gitignore (1)
1-2: LGTM!docs/sphinx/Makefile (1)
1-20: LGTM!docs/sphinx/source/components.rst (1)
1-27: LGTM!docs/sphinx/source/conf.py (1)
1-50: LGTM!docs/sphinx/source/deployment.rst (1)
1-10: LGTM!software/core/oqm-core-api/docs/sphinx-test/requirements.txt (1)
1-1: ⚡ Quick winPin
sphinxfor reproducible docs buildsThat there
requirements.txtbe unpinned—floatin’sphinxcan wander as upstream ships new releases and sour your docs builds. Best practice, per Read the Docs, is to pin to an exact Sphinx version for reproducibility (latest stable is Sphinx 9.1.0, so you can start withsphinx==9.1.0).software/core/oqm-core-api/docs/sphinx-test/source/features/01_nonfunctional.rst (1)
1-23: LGTM!software/core/oqm-core-api/docs/sphinx-test/source/features/05_filesImages.rst (1)
1-26: LGTM!software/core/oqm-core-api/docs/sphinx-test/source/index.rst (1)
6-31: LGTM!software/core/oqm-core-api/docs/sphinx-test/source/running/02_basic_quickstart.rst (1)
1-2: LGTM!software/core/oqm-core-api/docs/sphinx-test/source/running/index.rst (1)
1-12: LGTM!software/core/oqm-core-api/docs/sphinx-test/source/usage/01_main_ideas.rst (1)
1-2: LGTM!software/core/oqm-core-characteristics/installerSrc/oqm-core-characteristics.service (1)
9-9: LGTM!software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntity.java (1)
50-66: LGTM!Also applies to: 67-107
Code Coverage
|
Code Coverage
|
There was a problem hiding this comment.
Actionable comments posted: 3
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 2f916a3f-37cd-4493-8713-1203dbecae4c
📒 Files selected for processing (4)
deployment/Single Host/tests/src/test/java/stationCaptainTest/testResources/snhConnector/SnhConnector.javasoftware/core/oqm-core-base-station/src/main/resources/templates/webui/pages/you.htmlsoftware/core/oqm-core-characteristics/app/UIs.pysoftware/core/oqm-core-characteristics/installerSrc/installerProperties.json
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: CI-Pipeline / Integration Tests
- GitHub Check: CI-Pipeline / Unit Tests
🔇 Additional comments (2)
software/core/oqm-core-characteristics/installerSrc/installerProperties.json (1)
3-3: LGTM!Also applies to: 10-10
software/core/oqm-core-characteristics/app/UIs.py (1)
92-92: LGTM!Also applies to: 97-97, 104-106, 112-112, 138-142
Code Coverage
|
Code Coverage
|
Checklist:
Summary by CodeRabbit
Documentation
Chores