OPS-12: Merge-Folgefehler behoben (NewProvisioner-Signatur, Runtime-DSN)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (push) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (push) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
Der automatische Merge von PR #217 (OPS-12) gegen main liess internal/tenant/provisioner.go::ProvisionWithID mit einem nicht mehr existierenden Feld (p.dsnTemplate) zurueck und vergass dort den grantRuntimeRole-Aufruf, den Provision() bereits hat -- echter Build-Fehler, kein reiner Textkonflikt, git markierte ihn nicht als Konflikt. Drei weitere Aufrufer von NewProvisioner (Migrationswerkzeug, Cutover-Orchestrator, Test) riefen noch mit der alten Drei-Parameter- Signatur auf. Alle auf die neue Vier-Parameter-Signatur (Admin-DSN + Runtime-DSN) nachgezogen, wo keine eigene Runtime-DSN-Variable existiert faellt auf dieselbe Vorlage zurueck (admin-only Werkzeuge). Verifiziert auf Host 204: go build/vet sauber, betroffene Pakete (tenant, migrationtenant, cutoverorchestrator, cor01-tenant-migrate) gruen. Einziger verbleibender FAIL (TestAllHTTPServersUseHTTPHarden) ist der bereits bekannte, unabhaengige Befund aus PR #345 (noch nicht gemergt), keine neue Regression. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d5b526db0e
commit
7abc866356
4 files changed
+13
-4
No files matched your search
@@ -42,7 +42,11 @@ func main() {
|
||||
defer adminPool.Close()
|
||||
|
||||
registry := tenant.NewRegistry(registryPool)
|
||||
provisioner := tenant.NewProvisioner(adminPool, registry, dsnTemplate)
|
||||
runtimeDSNTemplate := os.Getenv("NEXARCH_TENANT_RUNTIME_DSN_TEMPLATE")
|
||||
if runtimeDSNTemplate == "" {
|
||||
runtimeDSNTemplate = dsnTemplate
|
||||
}
|
||||
provisioner := tenant.NewProvisioner(adminPool, registry, dsnTemplate, runtimeDSNTemplate)
|
||||
mapStore := migrationtenant.NewMapStore(registryPool)
|
||||
migrator := migrationtenant.NewMigrator(mapStore, provisioner)
|
||||
|
||||
|
||||
@@ -241,7 +241,7 @@ func (d *Dryrun) cor01(ctx context.Context) (Outcome, error) {
|
||||
defer adminPool.Close()
|
||||
|
||||
registry := tenant.NewRegistry(d.registry)
|
||||
provisioner := tenant.NewProvisioner(adminPool, registry, d.cluster.TenantDSNTemplate())
|
||||
provisioner := tenant.NewProvisioner(adminPool, registry, d.cluster.TenantDSNTemplate(), d.cluster.TenantDSNTemplate())
|
||||
res, err := migrationtenant.NewMigrator(migrationtenant.NewMapStore(d.registry), provisioner).MigrateApproved(ctx)
|
||||
if err != nil {
|
||||
return Outcome{}, err
|
||||
|
||||
@@ -72,7 +72,7 @@ func TestMigrateApproved(t *testing.T) {
|
||||
|
||||
dsnTemplate := strings.Replace(adminDSN, "/postgres?", "/%s?", 1)
|
||||
registry := tenant.NewRegistry(registryPool)
|
||||
provisioner := tenant.NewProvisioner(adminPool, registry, dsnTemplate)
|
||||
provisioner := tenant.NewProvisioner(adminPool, registry, dsnTemplate, dsnTemplate)
|
||||
mapStore := NewMapStore(registryPool)
|
||||
migrator := NewMigrator(mapStore, provisioner)
|
||||
|
||||
|
||||
@@ -225,12 +225,17 @@ func (p *Provisioner) ProvisionWithID(ctx context.Context, id, slug, name string
|
||||
return Tenant{}, fmt.Errorf("tenant-datenbank isolieren (revoke connect from public): %w", err)
|
||||
}
|
||||
|
||||
if err := p.grantRuntimeRole(ctx, dbName); err != nil {
|
||||
p.rollbackDatabase(ctx, dbName)
|
||||
return Tenant{}, fmt.Errorf("laufzeit-rolle berechtigen: %w", err)
|
||||
}
|
||||
|
||||
t := Tenant{
|
||||
ID: id,
|
||||
Slug: slug,
|
||||
Name: name,
|
||||
DBName: dbName,
|
||||
DBDSN: fmt.Sprintf(p.dsnTemplate, dbName),
|
||||
DBDSN: fmt.Sprintf(p.runtimeDSNTemplate, dbName),
|
||||
Status: StatusActive,
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user