πŸ“„ File detail

utils/plugins/pluginPolicy.ts

🧩 .tsπŸ“ 21 linesπŸ’Ύ 827 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œutils/”, which covers cross-cutting helpers (shell, tempfiles, settings, messages, process input, …). On the API surface it exposes isPluginBlockedByPolicy β€” mainly functions, hooks, or classes. It composes internal code from settings (relative imports). What the file header says: Plugin policy checks backed by managed settings (policySettings). Kept as a leaf module (only imports settings) to avoid circular dependencies β€” marketplaceHelpers.ts imports marketplaceManager.ts which transitively reaches most of the plugin subsystem.

Generated from folder role, exports, dependency roots, and inline comments β€” not hand-reviewed for every path.

🧠 Inline summary

Plugin policy checks backed by managed settings (policySettings). Kept as a leaf module (only imports settings) to avoid circular dependencies β€” marketplaceHelpers.ts imports marketplaceManager.ts which transitively reaches most of the plugin subsystem.

πŸ“€ Exports (heuristic)

  • isPluginBlockedByPolicy

πŸ–₯️ Source preview

/**
 * Plugin policy checks backed by managed settings (policySettings).
 *
 * Kept as a leaf module (only imports settings) to avoid circular dependencies
 * β€” marketplaceHelpers.ts imports marketplaceManager.ts which transitively
 * reaches most of the plugin subsystem.
 */

import { getSettingsForSource } from '../settings/settings.js'

/**
 * Check if a plugin is force-disabled by org policy (managed-settings.json).
 * Policy-blocked plugins cannot be installed or enabled by the user at any
 * scope. Used as the single source of truth for policy blocking across the
 * install chokepoint, enable op, and UI filters.
 */
export function isPluginBlockedByPolicy(pluginId: string): boolean {
  const policyEnabled = getSettingsForSource('policySettings')?.enabledPlugins
  return policyEnabled?.[pluginId] === false
}