PSAutoRBAC.psd1

@{
    RootModule        = 'PSAutoRBAC.psm1'
    ModuleVersion     = '1.2.0'
    GUID              = 'f59d8357-1afd-4ac2-88c0-e670efbd792b'
    Author            = 'Patrick Gallucci'
    CompanyName       = 'Patrick Gallucci'
    Copyright         = '(c) Patrick Gallucci. All rights reserved.'
    Description       = 'Live, least-privilege RBAC discovery and assignment for Microsoft cloud provisioning. Probes across Azure, Microsoft Graph (Entra), Microsoft Fabric, and Microsoft Purview via a per-platform provider model - resolving each platform with its best primitive (ARM checkAccess / AuthorizationFailed parsing, Find-MgGraphCommand, Fabric workspace roles, Purview metadata policies) - tests whether a caller holds the needed roles, and generates idempotent grant/revoke snippets under Zero Trust principles. Also identifies the guardrails (Azure Policy deny, deny assignments, resource locks, Entra Conditional Access, PIM, Microsoft Defender for Cloud, Microsoft Sentinel, Azure Firewall, and NSGs) that can block the action or the role assignment even when RBAC is satisfied.'
    PowerShellVersion = '5.1'

    RequiredModules   = @(
        @{ ModuleName = 'PSFramework'; ModuleVersion = '1.7.270' }
    )

    FunctionsToExport = @(
        'Get-RBACRequirement',
        'Test-RBACAccess',
        'Invoke-RBACProbe',
        'New-RBACGrantScript',
        'Set-RBACAccess',
        'Get-RBACProvider',
        'Get-RBACGuard'
    )
    CmdletsToExport   = @()
    VariablesToExport = @()
    AliasesToExport   = @()

    FileList          = @(
        'PSAutoRBAC.psd1',
        'PSAutoRBAC.psm1',
        'Public/Get-RBACRequirement.ps1',
        'Public/Test-RBACAccess.ps1',
        'Public/Invoke-RBACProbe.ps1',
        'Public/New-RBACGrantScript.ps1',
        'Public/Set-RBACAccess.ps1',
        'Public/Get-RBACProvider.ps1',
        'Public/Get-RBACGuard.ps1',
        'Providers/AzureProbeProvider.ps1',
        'Providers/GraphProbeProvider.ps1',
        'Providers/FabricProbeProvider.ps1',
        'Providers/PurviewProbeProvider.ps1',
        'Private/RBACProviderRegistry.ps1',
        'Private/Get-RBACKnowledgeBase.ps1',
        'Private/Get-RBACGuardDefinition.ps1',
        'Private/Invoke-RBACAzureGuardProbe.ps1',
        'Private/Invoke-RBACGraphGuardProbe.ps1',
        'Private/Resolve-RBACScope.ps1',
        'Private/Resolve-RBACContext.ps1',
        'Private/Initialize-RBACContext.ps1',
        'Private/ConvertFrom-AzAuthorizationError.ps1',
        'Private/ConvertTo-RBACRole.ps1',
        'Private/Invoke-RBACRestRequest.ps1',
        'Data/CommandRoleMap.psd1',
        'Data/RoleActionMap.psd1',
        'Data/GuardrailMap.psd1'
    )

    PrivateData       = @{
        PSData = @{
            Tags         = @('RBAC', 'Azure', 'Entra', 'Security', 'ZeroTrust', 'LeastPrivilege', 'Fabric', 'Purview', 'IAM', 'Provisioning', 'Guardrails', 'ConditionalAccess', 'AzurePolicy', 'PIM', 'Sentinel', 'Defender')
            LicenseUri   = 'https://github.com/PatrickGallucci/PSAutoRBAC/blob/main/LICENSE'
            ProjectUri   = 'https://github.com/PatrickGallucci/PSAutoRBAC'
            IconUri      = ''
            ReleaseNotes = 'See https://github.com/PatrickGallucci/PSAutoRBAC/blob/main/CHANGELOG.md'
        }
    }
}