Chore/e2e docker edge deployment test #2410
No reviewers
Labels
No labels
1week
2weeks
Failed compliance check
IP cameras
NATS
Possible security concern
Review effort 1/5
Review effort 2/5
Review effort 3/5
Review effort 4/5
Review effort 5/5
UI
aardvark
accessibility
amd64
api
arm64
auth
back-end
bgp
blog
bug
build
checkers
ci-cd
cleanup
cnpg
codex
core
dependencies
device-management
documentation
duplicate
dusk
ebpf
enhancement
eta 1d
eta 1hr
eta 3d
eta 3hr
feature
fieldsurvey
github_actions
go
good first issue
help wanted
invalid
javascript
k8s
log-collector
mapper
mtr
needs-triage
netflow
network-sweep
observability
oracle
otel
plug-in
proton
python
question
reddit
redhat
research
rperf
rperf-checker
rust
sdk
security
serviceradar-agent
serviceradar-agent-gateway
serviceradar-web
serviceradar-web-ng
siem
snmp
sysmon
topology
ubiquiti
wasm
wontfix
zen-engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
carverauto/serviceradar!2410
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refs/pull/2410/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Imported from GitHub pull request.
Original GitHub pull request: #1935
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/pull/1935
Original created: 2025-11-12T02:26:00Z
Original updated: 2025-11-12T15:59:14Z
Original head: carverauto/serviceradar:chore/e2e_docker_edge_deployment_test
Original base: main
Original merged: 2025-11-12T15:58:34Z by @mfreeman451
User description
IMPORTANT: Please sign the Developer Certificate of Origin
Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include
a DCO sign-off statement indicating the DCO acceptance in one commit message. Here
is an example DCO Signed-off-by line in a commit message:
Describe your changes
Issue ticket number and link
Code checklist before requesting a review
PR Type
Enhancement, Tests
Description
Implement zero-touch SPIFFE deployment in Docker Compose with automatic SPIRE server/agent bootstrap
Fix web UI data service payload handling for mixed string/object metadata types
Add comprehensive message preview utility for consistent log/event formatting
Update all service configurations to use SPIFFE authentication by default instead of mTLS
Add poller KV seeding service and improve service health checks and dependencies
Diagram Walkthrough
File Walkthrough
2 files
Handle mixed metadata payload types in rperf parsingFix optional services array handling in KV navigation8 files
New utility for normalizing and formatting message previewsSPIRE bootstrap script for workload entry registrationSPIRE agent startup wrapper with join token handlingScript to seed poller config into NATS KV bucketAdd core SPIFFE security configuration updatesAdd SPIRE services and switch to SPIFFE authenticationUse message preview utility for log body formattingUse message preview utility for event message formatting1 files
Test coverage for message preview formatting utility3 files
Update SPIFFE documentation for zero-touch deploymentDocument SPIRE runtime files and zero-touch deploymentUpdate edge E2E override documentation for SPIFFE8 files
Configure datasvc for SPIFFE with RBAC role mappingsEnable SPIFFE mode and add RBAC/OTEL configurationSwitch poller to SPIFFE authentication modeUpdate agent config for SPIFFE and fix service addressesSwitch sync service to SPIFFE authenticationSPIRE server configuration for Docker ComposeSPIRE agent configuration for Docker ComposeExpand nginx routing for admin and SRQL API endpoints1 files
Retain override file for backwards compatibility only2 files
Imported GitHub PR comment.
Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/1935#issuecomment-3519595443
Original created: 2025-11-12T02:26:48Z
PR Compliance Guide 🔍
(Compliance updated until commit
github.com/carverauto/serviceradar@4fb80730fe)Below is a summary of compliance checks for this PR:
No security concerns identified
No security vulnerabilities detected by AI analysis. Human verification advised for critical code.🎫 No ticket provided
Codebase context is not defined
Follow the guide to enable codebase context checks.
Generic: Meaningful Naming and Self-Documenting Code
Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting
Status: Passed
Generic: Secure Error Handling
Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.
Status: Passed
Generic: Security-First Input Validation and Data Handling
Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities
Status: Passed
Generic: Comprehensive Audit Trails
Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.
Status:
Missing audit logs: New parsing paths and failure cases for rperf metadata are added without emitting
structured audit logs for critical failures beyond a console error, making it unclear if
production audit trails capture these events.
Referred Code
Generic: Robust Error Handling and Edge Case Management
Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation
Status:
Swallowed parse errors: The new metadata parsing quietly returns null for many malformed inputs and only logs a
generic console error, which may hinder diagnostics and lacks contextual details like
payload source and pollerId.
Referred Code
Generic: Secure Logging Practices
Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.
Status:
Potential PII logging: The error log includes raw
metadataandmessageobjects which could contain sensitivedata, risking exposure if console output is collected centrally.
Referred Code
Compliance status legend
🟢 - Fully Compliant🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label
Previous compliance checks
Compliance check up to commit be7d10a
Unverified binary download
Description: The script downloads and extracts binaries (SPIRE CLI) over HTTPS using curl/wget without
verifying checksums or signatures, allowing potential supply-chain tampering if the
download is intercepted or the GitHub release is compromised.
bootstrap-compose-spire.sh [51-71]
Referred Code
Unverified binary download
Description: The agent binary is fetched over HTTPS without checksum or signature verification before
execution, creating a supply-chain risk similar to the server bootstrap script.
run-agent.sh [24-43]
Referred Code
KV privilege and validation
Description: The script uses TLS client auth to NATS but relies entirely on external environment/cert
provisioning; if misconfigured, it could exfiltrate or overwrite KV data—consider
least-privilege credentials and bucket/key scoping; also no content validation before kv
put.
seed-poller-kv.sh [9-41]
Referred Code
Information exposure in UI
Description: stringifyObject falls back to value.toString() on empty/failed JSON, which for crafted
objects could leak class names or unexpected strings into UI; while low risk, it may
expose internal info—consider safer redaction for non-plain objects.
messagePreview.ts [6-13]
Referred Code
🎫 No ticket provided
Codebase context is not defined
Follow the guide to enable codebase context checks.
Generic: Meaningful Naming and Self-Documenting Code
Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting
Status: Passed
Generic: Secure Logging Practices
Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.
Status:
Sensitive logging: The error log statement includes raw
metadataandmessagefields which may containsensitive payloads, violating secure logging practices.
Referred Code
Generic: Comprehensive Audit Trails
Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.
Status:
Limited auditing: New SPIRE bootstrap/agent scripts and Docker services perform security-critical actions
(downloading binaries, generating tokens, creating identities) without adding explicit
structured audit logs beyond console echoes, making it unclear if sufficient audit trails
exist.
Referred Code
Generic: Robust Error Handling and Edge Case Management
Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation
Status:
Silent parse fail: The new metadata parsing returns null without contextual error details when JSON.parse
fails, reducing debuggability of edge cases.
Referred Code
Generic: Secure Error Handling
Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.
Status:
PII in logs: On parse failure the code logs both
row.metadataandrow.message, which could containsensitive data and may expose internal details in client-visible logs.
Referred Code
Generic: Security-First Input Validation and Data Handling
Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities
Status:
Unsafe stringify: The
normalizeMessage/stringifyObjectfunctions may surface arbitrary object content intoUI strings without filtering sensitive fields, which could inadvertently expose sensitive
data if used on untrusted inputs.
Referred Code
Imported GitHub PR comment.
Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/1935#issuecomment-3519596938
Original created: 2025-11-12T02:27:45Z
PR Code Suggestions ✨
Explore these optional code suggestions:
Consider retaining important architectural documentation
The PR deletes important architectural and debugging documents (
newarch_plan.md,debug.md). These files should be archived in a documentation folder to preservevaluable context for future development.
Examples:
newarch_plan.md [1-968]
debug.md [1-98]
Solution Walkthrough:
Before:
After:
Suggestion importance[1-10]: 9
__
Why: The suggestion correctly identifies the deletion of
newarch_plan.md, a critical architectural document, which would result in a significant loss of institutional knowledge about the system's design and evolution.Imported GitHub PR comment.
Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/1935#issuecomment-3519696170
Original created: 2025-11-12T03:07:42Z
CI Feedback 🧐
A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
Action: cpufreq-clang-tidy
Failed stage: Run clang-tidy via Bazel [❌]
Failed test name: ""
Failure summary:
Bazel analysis failed due to an opam package installation error while installing the OCaml package
dreamvia thetools_opam+Bazel extension:- Error originates at
external/tools_opam+/extensions/opam/opam_ops.bzl:142:13(called fromopam_toolchain_xdg.bzl:375:29and
opam.bzl:440).- Command failed with rc=10:
opam install dream --switch 5.2.0 --root/Users/runner/.local/share/obazl/opam/2.4.1/root --yes.- opam detected missing external system
dependencies and aborted because it could not run Homebrew non-interactively:
- Message: "Running
the system package manager non-interactively requires '--confirm-level=unsafe-yes'."
- Prompt
offered options [1/2/3/4], but
4(Abort) was taken in non-interactive context.- As a result, not
all targets were analyzed and Bazel reported: "command succeeded, but not all targets were analyzed"
and "Build did NOT complete successfully."
Relevant error logs: