Sintia.AuthServer.Migration
1.2.5
dotnet add package Sintia.AuthServer.Migration --version 1.2.5
NuGet\Install-Package Sintia.AuthServer.Migration -Version 1.2.5
<PackageReference Include="Sintia.AuthServer.Migration" Version="1.2.5" />
<PackageVersion Include="Sintia.AuthServer.Migration" Version="1.2.5" />
<PackageReference Include="Sintia.AuthServer.Migration" />
paket add Sintia.AuthServer.Migration --version 1.2.5
#r "nuget: Sintia.AuthServer.Migration, 1.2.5"
#:package Sintia.AuthServer.Migration@1.2.5
#addin nuget:?package=Sintia.AuthServer.Migration&version=1.2.5
#tool nuget:?package=Sintia.AuthServer.Migration&version=1.2.5
Sintia.AuthServer.Migration
Cos'è
Le migration EF Core (SQL Server e PostgreSql) di Sintia.AuthServer e il servizio che le applica,
AuthServerDbMigrationService. Il pacchetto si referenzia solo dal DbMigrator, l'applicazione
console che crea e aggiorna lo schema nel passo di deploy. L'Host referenzia soltanto
Sintia.AuthServer.
Il pacchetto dipende da Sintia.AuthServer: ABP, EF Core e i pin Microsoft.IdentityModel.*
arrivano da lì, senza duplicazioni.
Uso nel DbMigrator
using Sintia.AuthServer.Migrations.Package;
[DependsOn(
typeof(AbpAutofacModule),
typeof(SintiaAuthServerMigrationModule))]
public class MioDbMigratorModule : AbpModule
{
}
Dopo application.InitializeAsync() si chiama il servizio di migrazione:
await application.ServiceProvider
.GetRequiredService<AuthServerDbMigrationService>()
.MigrateAsync();
Configurazione richiesta (chiavi, senza valori in repo):
DatabaseProvider:SqlServeroppurePostgreSqlConnectionStrings:Default: connection string del database dell'AuthServer
Per PostgreSql lo switch Npgsql.EnableLegacyTimestampBehavior è impostato dal modulo: il
DbMigrator non deve ricordarsene.
Vincolo: niente host web
Il pacchetto include build/Sintia.AuthServer.Migration.targets. Un progetto Microsoft.NET.Sdk.Web
che referenzia il pacchetto fallisce in compilazione con l'errore SINTIAMIG001: le migration non
devono girare all'avvio dell'Host (migrazioni concorrenti tra istanze, codice che altera lo schema
in produzione).
Per disattivare il controllo, consapevolmente, impostare la proprietà MSBuild
SintiaAuthServerMigrationAllowWeb a true.
Limiti noti:
- vale solo per i riferimenti diretti al pacchetto (cartella
build/, nonbuildTransitive/); - non ferma un progetto Worker o una console che ospita un server web;
- è una protezione da errori, non una barriera di sicurezza.
Host: controllo dello schema
L'Host non applica mai migration. All'avvio, Sintia.AuthServer confronta il database con il modello
EF e fallisce con un errore esplicito se il database non è raggiungibile o se mancano tabelle o
colonne. Il controllo è sempre attivo e non configurabile.
Lo stesso controllo è esposto come health check sintia-authserver-db-schema con tag ready.
Ogni Host mappa /health/ready filtrando sul tag ready: il pacchetto non mappa l'endpoint da sé.
Breaking change
Dalle versioni che includono questo pacchetto le migration non sono più dentro Sintia.AuthServer.
Un DbMigrator che aggiorna solo Sintia.AuthServer non crea né aggiorna le tabelle, e l'Host lo
segnala all'avvio con il controllo dello schema. Aggiungere Sintia.AuthServer.Migration al
DbMigrator e rilasciarlo prima dell'Host.
Sicurezza
Il seed iniziale crea l'utente amministratore con le credenziali di default di ABP. Cambiarle subito dopo la prima esecuzione del DbMigrator. La gestione delle credenziali da configurazione arriverà con SEED-01.
Il pacchetto non contiene configurazione, certificati né segreti.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.IdentityModel.Abstractions (>= 8.19.2)
- Microsoft.IdentityModel.JsonWebTokens (>= 8.19.2)
- Microsoft.IdentityModel.Logging (>= 8.19.2)
- Microsoft.IdentityModel.Protocols (>= 8.19.2)
- Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 8.19.2)
- Microsoft.IdentityModel.Tokens (>= 8.19.2)
- Microsoft.IdentityModel.Tokens.Saml (>= 8.19.2)
- Microsoft.IdentityModel.Validators (>= 8.19.2)
- Sintia.AuthServer (>= 1.2.5)
- System.IdentityModel.Tokens.Jwt (>= 8.19.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.