DevConsoleModuleConfig

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.

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
Link copied to clipboard
var annotations: TimelineAnnotations
Link copied to clipboard
var attachmentMetadataReader: suspend (String) -> StoredAttachment?

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.

Link copied to clipboard
var attachmentReader: suspend (String) -> ByteArray?
Link copied to clipboard
var boundEndpoint: () -> Endpoint?
Link copied to clipboard
var captureRules: CaptureRuleEngine
Link copied to clipboard

Mirrors EditingCapabilities.captureRules. Listing exclusions stays available to any authenticated session; every mutation route answers 403 while this is false.

Link copied to clipboard
var commandAuditLog: CommandAuditLog
Link copied to clipboard

Hosts the Composer may issue outbound requests to. Every destination, including redirects, must be explicitly listed; an empty set denies all requests.

Link copied to clipboard
var composerCollections: ComposerCollectionStore
Link copied to clipboard

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.

Link copied to clipboard
var composerExecutor: ComposerExecutor
Link copied to clipboard

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.

Link copied to clipboard
Link copied to clipboard
var databaseInspector: DatabaseInspector?

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.

Link copied to clipboard
var evidenceStore: EvidenceStore?

Durable QA evidence tray. Null (the default) makes every /api/v1/evidence route answer EVIDENCE_UNAVAILABLE.

Link copied to clipboard
Link copied to clipboard
var featureFlags: SessionFeatureFlags
Link copied to clipboard

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.

Link copied to clipboard
var fileInspector: FileInspector?

Reads (root/entry listing, bounded preview) always work; filesEditable mirrors EditingCapabilities.files.

Link copied to clipboard
Link copied to clipboard
var metadata: ServerMetadata
Link copied to clipboard
var mockEngine: MockEngine
Link copied to clipboard

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.

Link copied to clipboard
var networkTransactions: NetworkTransactionStore
Link copied to clipboard
Link copied to clipboard
var preferencesInspector: PreferencesInspector?

Reads (file/entry listing) always work; preferencesEditable mirrors EditingCapabilities.preferences.

Link copied to clipboard
var pushSimulator: PushSimulator?
Link copied to clipboard
var pushStore: PushStore
Link copied to clipboard
var redactionPolicy: RedactionPolicy
Link copied to clipboard
var remoteConfigSnapshots: () -> List<RemoteConfigSnapshot>

Remote Config snapshots, already redacted by the caller. :sdk:full owns that boundary because the Compose inspector reads the same registry in-process without passing through here, so redacting at this route would protect only the browser.

Link copied to clipboard
var retainedCaptures: RetainedCaptureQuery?
Link copied to clipboard
var screenshotCapture: suspend () -> ScreenshotResult

Delegates to DevConsoleFacadeProvider.captureScreenshot(). Defaults to always reporting the SDK as disabled for this build, mirroring ScreenshotResult.DisabledForBuild's own meaning.

Link copied to clipboard
var sdkHealth: () -> SdkHealthSnapshot
Link copied to clipboard
var sessionSnapshotProvider: suspend () -> StoredSession?

Device/app metadata for the evidence bundle's session.json; null fields are honestly omitted.

Link copied to clipboard
var sessionsProvider: suspend () -> List<StoredSession>

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.

Link copied to clipboard
var socketStore: SocketStore
Link copied to clipboard
Link copied to clipboard
var stateRegistry: StateRegistry
Link copied to clipboard
Link copied to clipboard
var timeline: Timeline