# Module: Authentication Plugin # Purpose: Provides JWT authentication, MFA enrollment/verification, auth status checking, and permission validation. # Dependencies: std log, path-utils, auth_impl # Selective imports + re-exports (ADR-025 Phase 3 Layer 2). # utils/path-utils star-import was dead — dropped. use lib_provisioning/config/accessor/core.nu [config-get] export use auth_impl.nu [ check-auth-for-destructive check-auth-for-production check-operation-auth get-api-key-interactive get-auth-metadata get-authenticated-user get-provider-credentials-interactive get-secret-config-interactive is-authenticated is-check-mode is-destructive-operation is-mfa-verified log-authenticated-operation login-interactive mfa-enroll-interactive print-auth-status require-auth require-mfa run-typedialog-auth-form should-enforce-auth-from-metadata should-require-auth should-require-mfa-destructive should-require-mfa-prod ] # Check if Auth plugin is available (registered with Nushell) def is-plugin-available [] { let installed = (version | get installed_plugins) $installed | str contains "auth" } # Check if Auth plugin is enabled in config def is-plugin-enabled [] { config-get "plugins.auth_enabled" true } # Get Auth plugin status and configuration export def plugin-auth-status [] { let plugin_available = is-plugin-available let plugin_enabled = is-plugin-enabled { plugin_available: $plugin_available plugin_enabled: $plugin_enabled mode: (if ($plugin_enabled and $plugin_available) { "plugin" } else { "disabled" }) } }