SPMigrator.psd1

@{
    RootModule = 'SPMigrator.psm1'
    ModuleVersion = '0.2.0'
    GUID = 'f2b6a4d1-9c3e-4a7b-8d52-1e0c7a9b4f36'
    Author = 'SPMigrator contributors'
    CompanyName = 'Community'
    Copyright = '(c) 2026 SPMigrator contributors. MIT License.'

    Description = @'
Moteur de migration SharePoint Online piloté par plan déclaratif.
 
Utilise les travaux de copie serveur-à-serveur (Copy-PnPFile / Copy-PnPFolder) plutôt qu'un
cycle download/upload, afin de conserver l'historique de versions que ce cycle détruit.
 
CE QUI EST MESURE : dates, auteurs, types de contenu et colonnes sont relus a destination
et compares apres ecriture, sur une migration reelle de 63 elements. La preservation de
l'HISTORIQUE DES VERSIONS repose sur le contrat de l'API et n'a pas encore ete verifiee
contre un tenant par ce projet : les fichiers de cette migration n'avaient qu'une version.
Test-SPMigrationFidelity est l'instrument prevu pour la trancher.
 
Fournit une validation pre-vol, une sonde de capacite du tenant, un etat persistant avec
reprise, un mode incremental, une resilience au throttling (HTTP 429 / Retry-After), le
report des permissions uniques, la reapplication des etiquettes de retention, et des
rapports qui bornent explicitement ce qu'ils n'ont pas mesure.
'@


    PowerShellVersion = '7.4'
    CompatiblePSEditions = @('Core')

    RequiredModules = @(
        @{ ModuleName = 'PnP.PowerShell'; ModuleVersion = '2.12.0' }
    )

    FunctionsToExport = @(
        'Copy-SPMigrationPermission'
        'Copy-SPSiteSchema'
        'Copy-SPSiteStructure'
        'Get-SPMigrationReport'
        'Invoke-SPMigration'
        'New-SPMigrationPlan'
        'New-SPSiteInventory'
        'Test-SPMigrationFidelity'
        'Test-SPMigrationPlan'
        'Test-SPMTenantCapability'
        # --- socle ---
        'Connect-SPMSite'
        'Disconnect-SPMAllSites'
        'Get-SPMConfiguration'
        'Get-SPMListItemByPath'
        'Get-SPMRetryAfterSeconds'
        'Get-SPMRetryDecision'
        'Get-SPMSiteConnection'
        'Get-SPMStatistics'
        'Invoke-SPMWithRetry'
        'Set-SPMConfiguration'
        'Test-SPMPathExists'
        'Test-SPMPrerequisite'
        'Write-SPMLog'
    )
    CmdletsToExport = @()
    VariablesToExport = @()
    AliasesToExport = @()

    PrivateData = @{
        PSData = @{
            Tags = @('SharePoint', 'Migration', 'PnP', 'Microsoft365', 'SharePointOnline', 'ShareGate', 'SPMT')
            LicenseUri = 'https://github.com/HoussemMak/SPMigrator/blob/main/LICENSE'
            ProjectUri = 'https://github.com/HoussemMak/SPMigrator'
            ReleaseNotes = @'
0.2.0 — ce que l'outil promettait, il le fait ; ce qu'il ne fait pas, il le dit
 
RESERVE : la preservation de l'historique des versions n'a pas encore ete
verifiee contre un tenant. Test-SPMigrationFidelity est l'instrument qui la
tranchera ; tant qu'il n'a pas tourne sur un bac a sable, cette version est un
outil de pre-production.
 
- Test-SPMigrationFidelity : compare la destination a la source, dossiers
  compris, 100 % des elements par defaut, elements surnumeraires rapportes.
  Le verdict borne explicitement le perimetre NON controle.
- Test-SPMTenantCapability : mesure ce que le tenant autorise (copie serveur,
  creation de bibliotheque, modele de site) au lieu de le deviner.
- Permissions branchees au moteur : homologue designe par son dossier
  transpose, heritage rompu comme a la source, surplus de droit rapporte.
- Retention et moderation : comptees au pre-vol et bloquantes, reappliquees
  apres copie ; le statut d'enregistrement est declare non restaurable.
- Reglages de bibliotheque : les sept, poses meme a faux, puis relus.
- Inventaire : perimetre corrige (racine reelle de la bibliotheque).
- Resilience : Retry-After du serveur respecte, jeton expire repare et rejoue.
- Rapport : « non mesure » au lieu de 0, bandeau de reserves, unites soumises
  comptees a part.
- Suite d'integration executable, ignoree sans bac a sable, avec travail CI
  dedie et plancher de couverture.
 
0.1.0
- Moteur de transfert serveur-à-serveur (Copy-PnPFolder / Copy-PnPFile)
- Résilience au throttling : HTTP 429/503/504, respect de Retry-After, backoff + jitter
- Pool de connexions réutilisables (-Connection) : plus de réauthentification par site
- Validation pré-vol : longueur d'URL, caractères interdits, tailles, fichiers extraits
- État persistant NDJSON : reprise après échec et mode incrémental
- Inventaire pré-migration et rapport HTML/JSON
'@

        }
    }
}