src/_Get-CciGetDefaultConfig.ps1

function _Get-CciGetDefaultConfig {
    [CmdletBinding()]
    param()

    # Baked tenant registry (module distribution v2). Feed URLs and Entra tenant
    # IDs are configuration, not secrets - the only gate is Entra auth at the
    # feed itself. Adding a tenant or changing a URL is a one-line edit here
    # plus a tagged PSGallery release; Update-Module propagates it.
    #
    # registryUrl is the designed-in remote-refresh hook: when set (via user
    # config), Connect-CciGet fetches a replacement registry from it. It ships
    # UNBOUND - binding a URL makes it a trust anchor and needs a hosting
    # commitment worth that surface (see the distribution-v2 design, D3).
    #
    # Per-tenant fields:
    # prefix - module-name prefix stamped by that tenant's pipelines
    # (cciit.vmware); used for short-name resolution sugar.
    # tenantNum - the tenant's number in 4-segment versions
    # (major.minor.<tenantNum>.<run>), design decision D5.
    # blob* - the tenant DISTRIBUTION STORE: an Entra/Azure-RBAC gated
    # mirror of the same published modules. Azure Artifacts feeds
    # require an Azure DevOps org entitlement plus a paid Basic
    # licence per user (Stakeholder has no Artifacts access), which
    # machine builders do not and should not need. They already
    # hold Azure RBAC on this store for customization payloads, so
    # serving modules from it keeps a machine build on ONE
    # authorization system. The feed remains the developer/CI
    # channel and the canonical publish target.
    [pscustomobject]@{
        defaultFeed = 'cciit'
        registryUrl = $null
        feeds       = @(
            [pscustomobject]@{
                name          = 'cciit'
                url           = 'https://pkgs.dev.azure.com/cciplatform/_packaging/feed-modules-cciit/nuget/v2'
                tenantId      = 'cc031f5b-17b0-4714-a0e7-b1bd593b3933'
                prefix        = 'cciit'
                tenantNum     = 1
                blobAccount   = 'stcustpayloadcciit'
                blobContainer = 'payload'
                blobPrefix    = 'modules'
                # Public client used for the device-code sign-in to the store.
                # This is the Azure CLI first-party app: pre-consented in every
                # tenant, so a machine build needs no app registration. Replace
                # with a dedicated public client if the sign-in should be
                # attributable to cciget.
                clientId      = '04b07795-8ddb-461a-bbee-02f9e1bf7b46'
                description   = 'cciit tenant module feed (distribution v2: tenant-prefixed cciit.* modules).'
                enabled       = $true
            }
        )
    }
}