The project owner asked to work on an issue in MSKazemi/idkmesh to an enterprise-quality standard, keeping results in the repository. Selected #744, the still-open API-9 observability and privacy issue, for a bounded regression-hardening slice.
The existing idkmesh/service_runtime.py access-log builder stripped query
strings but then wrote the remaining request path into a JSON log event.
idkmesh/control_tower_ui.py used this builder whenever
IDKMESH_HTTP_ACCESS_LOG=1, including on unknown routes and resource-detail
routes whose path segments are caller-supplied identifiers. The existing #744
privacy regression verified aggregate metrics, offline OTLP, and status, but
explicitly did not exercise opt-in access logs.
path value to a finite set of known static routes and
dynamic route templates. Resource IDs become placeholders, including when a
resource ID contains slashes or URL-encoded text.<unmatched> and unrecognized HTTP methods to
OTHER; do not log raw user-controlled URL strings.This change does not authorize execution, read credentials, modify GitHub settings, or alter the aggregate metrics/OTLP data model. It is a candidate change until exact-head CI and normal review are complete.
X-Request-ID values for correlation. Clients must not place sensitive
values in that header; log storage and retention remain operator-controlled.The route vocabulary is intentionally small, inspectable and regression-tested.
Contributors can run
python -m unittest tests.test_service_runtime tests.test_api_observability
to inspect the privacy boundary before extending the logging surface.