[2.8] Restrict remote log configuration and local listeners - #5202
Conversation
## Summary - Reuse existing site log validation for remote job-log updates. - Apply the same controls to server and client job processes. - Align the API documentation with supported inputs and add regression coverage. ## Validation - 21 focused logging and command-routing tests - `./runtest.sh -s` - `git diff --check`
Use explicit IPv4 loopback binding for local listeners configured with `localhost`. Non-localhost configurations retain their existing defaults. - Focused listener tests - Local SimEnv and POC end-to-end tests - Style checks
Greptile SummaryThis security backport restricts remote job-log configuration to supported levels and built-in modes while binding local simulation and POC listeners to IPv4 loopback without changing production wildcard defaults.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Sequence DiagramsequenceDiagram
participant O as Operator/API
participant S as Server command
participant C as Client job
O->>S: configure_job_log
S->>S: Validate server configuration
S->>C: Forward validated configuration
C->>C: Validate and apply configuration
C-->>S: Success or rejection
alt All requested clients succeed
S-->>O: Reply table with successful metadata
else Rejection, timeout, or missing reply
S-->>O: Reply table plus error item and error metadata
end
Reviews (6): Last reviewed commit: "Report client job log failures to intera..." | Re-trigger Greptile |
Match main's guard: only apply internal_listener_host when comm_config does not configure an internal host; use setdefault for listen_host. Strengthen listener tests with distinct host/listen_host values.
Constrain the 2.8 app_opt dependency to XGBoost versions that still provide DataSplitMode.COL. XGBoost 3.4 removes column-wise data splitting and causes import-time failures in the XGBoost integration and recipes that transitively import it. Validated with the focused XGBoost and recipe tests on Python 3.14.
Propagate client-side configure_job_log failures through command metadata so API and CLI callers can detect explicit errors, missing replies, and partial fan-out responses. Add focused success and failure regression coverage.
|
/build |
Use one generic error status for rejected, missing, and partial client replies. Consolidate equivalent job-log security and failure cases without reducing coverage.
Append one generic error item so both command metadata consumers and the legacy interactive console observe client rejection, timeout, and missing-response failures.
|
/build |
|
@greptile-apps The remaining 4/5 concern is specific to the legacy interactive HCI status classifier. That classifier is outside the scope of this minimal 2.8 security backport. The relevant Session API path consumes the error metadata and correctly reports client configuration failures, while the appended error is also visible in HCI output. We intentionally do not want to broaden this backport by changing generic HCI status-classification behavior. Please reevaluate the PR with that scope. |
|
Approved after local smoke testing on the exact PR head using a Python virtualenv.
Non-blocking notes:
|
Summary
Testing