Dev Console Module Config
Mutable configuration for Application.devConsoleModule, following the same install(Plugin) { ... } DSL convention Ktor itself uses. Every property here defaults to an in-memory implementation so callers only set the handful they need to override.
Properties
Room metadata only (no bytes) -- backs the authoritative redactionApplicability reported by the attachment route header and every JSON payload that embeds an attachmentId. Absent (default) makes those surfaces omit the field rather than infer it.
Mirrors EditingCapabilities.captureRules. Listing exclusions stays available to any authenticated session; every mutation route answers 403 while this is false.
Hosts the Composer may issue outbound requests to. Every destination, including redirects, must be explicitly listed; an empty set denies all requests.
The Composer lets an authenticated session make the device issue arbitrary outbound HTTP requests, effectively turning it into a proxy into whatever network it sits on. It is off unless a host opts in; every /api/v1/composer route answers 404 while disabled.
The active app-run's id, used to scope every evidence read/write. Defaults to a fixed literal so a caller that never wires this up (most existing tests) still gets deterministic behavior.
Reads (database/table listing, row paging, read-only SQL) always work; databaseEditable mirrors EditingCapabilities.database and is only consulted by the SQL console -- a mutating statement is refused with DatabaseExecResult.WriteBlocked while this is false, exactly like the Compose adapter.
Durable QA evidence tray. Null (the default) makes every /api/v1/evidence route answer EVIDENCE_UNAVAILABLE.
Mirrors EditingCapabilities.featureFlags. Listing flags stays available to any authenticated session whenever the state capture category is enabled; the flag-override route answers 403 while this is false.
Reads (root/entry listing, bounded preview) always work; filesEditable mirrors EditingCapabilities.files.
Mirrors EditingCapabilities.mocks. Listing rules and the global on/off status stay available to any authenticated session; every rule-mutation route (create, delete, per-rule enable/disable) answers 403 while this is false.
Reads (file/entry listing) always work; preferencesEditable mirrors EditingCapabilities.preferences.
Delegates to DevConsoleFacadeProvider.captureScreenshot(). Defaults to always reporting the SDK as disabled for this build, mirroring ScreenshotResult.DisabledForBuild's own meaning.
Device/app metadata for the evidence bundle's session.json; null fields are honestly omitted.
Every retained run (this device's session history), backing GET /api/v1/runs -- the previous-run-crashed banner's data source. Defaults to an empty history.