Task · SKT-0105

Let a deployment declare managed console features that the UI locks with a reason

Description

When the console runs behind a reverse proxy or a managed wrapper, some control routes may be owned by the wrapper and blocked at the proxy (for example blueprint sources, custom uploads, reset). Today the console still shows those controls and the operator only learns on click, from a proxy error. Add a generic, optional way for a deployment to declare managed features: a config value (for example CONTROL_MANAGED_FEATURES, a comma-separated list of feature keys with an optional reason) that the server injects into index.html next to the runtime base path from SKT-0098, and that the console reads to render the matching controls as locked, with the reason shown. The server keeps enforcing nothing new: this is presentation only, and the proxy or wrapper stays the enforcement point. Unset keeps today’s behaviour exactly.

Acceptance Criteria

Definition of Done

Implementation Plan

Optional managed-feature enum config with reasons, escaped runtime meta and presentation-only disabled controls. Reject unknown keys, preserve unset index bytes, exercise UI rendering, align env/docs and gate. Isolated append-only changes rebased onto preceding shared-file land before acceptance.

Implementation Notes

Optional enum JSON feature reasons, startup rejection, escaped runtime metadata, actual Solid DOM disabled controls/reasons and unchanged unset response; presentation only. Original1200cefCIcancelled and composedred600.732s remain nonpasses. Exact integrated descendantdea393d84ee23c9100510c830b0977185c00a20e fullcomposed0 and CI38097611214all10success cover feature. Independent reviewPASS, aggregate25file routineCodeRabbit0findings. No live proof claimed; generator/inventory DoD not applicable.

Final Summary

Deployments can disable blueprint sources, custom uploads and reset in the console with reasons without new API enforcement. Startup, escaped metadata, actual rendered controls and unset bytes proved locally; integrated exact CI/composed green.

View the source file on GitHub