Skip to content

feat(scanner): enable scanner via bundled/organization config - #957

Merged
dividedmind merged 1 commit into
mainfrom
feat/scanner-enabled-config
Aug 4, 2026
Merged

feat(scanner): enable scanner via bundled/organization config#957
dividedmind merged 1 commit into
mainfrom
feat/scanner-enabled-config

Conversation

@dividedmind

Copy link
Copy Markdown
Contributor

Add support for enabling the AppMap scanner through the bundled site-config.json and organization configuration, using the same appMap.scannerEnabled key as the VS Code plugin.

The user setting becomes a nullable override; the effective state resolves as user override -> deployment config -> disabled, mirroring the existing autoUpdateTools pattern. Applying an organization config supersedes a conflicting user override, and the settings UI becomes a tri-state combo (Yes / No / deployment default).

Changes to the effective scanner state now restart the scanner CLI process and rebuild the AppMap tool window in place, so enabling it via org config takes effect without a project reload. The org-config apply path fires the change only when the effective value actually changes. The Problems View findings tab still relies on the reload notification, which now also fires for the org-config path.

Assisted-by: Claude:claude-opus-4-8

Add support for enabling the AppMap scanner through the bundled
site-config.json and organization configuration, using the same
`appMap.scannerEnabled` key as the VS Code plugin.

The user setting becomes a nullable override; the effective state
resolves as user override -> deployment config -> disabled, mirroring
the existing autoUpdateTools pattern. Applying an organization config
supersedes a conflicting user override, and the settings UI becomes a
tri-state combo (Yes / No / deployment default).

Changes to the effective scanner state now restart the scanner CLI
process and rebuild the AppMap tool window in place, so enabling it via
org config takes effect without a project reload. The org-config apply
path fires the change only when the effective value actually changes.
The Problems View findings tab still relies on the reload notification,
which now also fires for the org-config path.

Assisted-by: Claude:claude-opus-4-8

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds centralized control of the AppMap scanner enablement via bundled site-config.json and organization configuration, aligning with the VS Code plugin’s appMap.scannerEnabled key. This updates both settings resolution (tri-state user override vs deployment default) and runtime behavior so scanner enablement changes can take effect live without requiring a project reload.

Changes:

  • Introduces appMap.scannerEnabled into deployment settings and merges enterprise/bundled values into the effective deployment config.
  • Converts the scanner user setting into a nullable override and updates the Settings UI to a tri-state combo (Yes / No / deployment default).
  • Ensures scanner enablement changes trigger live restarts/rebuilds of scanner-dependent processes/UI, and adds/updates tests + documentation accordingly.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
README.md Documents centralized scanner enablement via appMap.scannerEnabled.
plugin-core/src/test/java/appland/enterpriseConfig/EnterpriseConfigServiceTest.java Adds coverage for org-config-driven scanner enablement and change firing.
plugin-core/src/test/java/appland/deployment/AppMapDeploymentSettingsTest.java Tests parsing/defaulting behavior for appMap.scannerEnabled.
plugin-core/src/test/java/appland/cli/DefaultCommandLineServiceTest.java Updates assertions to use effective scanner state (isScannerEnabled()).
plugin-core/src/test/java/appland/cli/DefaultAppLandDownloadServiceTest.java Updates deployment settings constructor usage after adding scannerEnabled field.
plugin-core/src/main/resources/messages/appland.properties Adds strings for tri-state scanner enablement UI.
plugin-core/src/main/kotlin/appland/settings/AppMapProjectSettingsPanel.kt Replaces scanner checkbox with tri-state ComboBox and applies nullable override logic.
plugin-core/src/main/java/appland/toolwindow/AppMapToolWindowFactory.java Rebuilds tool window content when scanner enablement (or API key) changes.
plugin-core/src/main/java/appland/toolwindow/appmap/AppMapWindowPanel.java Gates runtime analysis UI on effective scanner enablement.
plugin-core/src/main/java/appland/settings/AppMapSettingsReloadProjectListener.java Restarts CLI processes on scanner enablement changes (plus reload notification fallback).
plugin-core/src/main/java/appland/settings/AppMapApplicationSettings.java Makes scanner setting nullable and adds isScannerEnabled() effective-resolution method.
plugin-core/src/main/java/appland/problemsView/FindingsPanelProvider.java Enables/disables Problems View findings tab based on effective scanner state.
plugin-core/src/main/java/appland/enterpriseConfig/EnterpriseConfigService.java Clears conflicting user overrides for scannerEnabled and only fires scanner change when effective state changes.
plugin-core/src/main/java/appland/deployment/AppMapDeploymentSettingsService.java Merges scannerEnabled across enterprise and bundled deployment settings.
plugin-core/src/main/java/appland/deployment/AppMapDeploymentSettings.java Adds @SerializedName("appMap.scannerEnabled") field and includes it in isEmpty().
plugin-core/src/main/java/appland/cli/DefaultCommandLineService.java Gates scanner process creation on effective scanner enablement.
ORGANIZATION_CONFIGURATION.md Documents appMap.scannerEnabled key and updates example config.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
@dividedmind
dividedmind merged commit bfcd0b2 into main Aug 4, 2026
7 checks passed
@dividedmind
dividedmind deleted the feat/scanner-enabled-config branch August 4, 2026 12:17
@appmap-releasebot

Copy link
Copy Markdown

🎉 This PR is included in version 0.86.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants