Integration: gofmt-Bereinigung und Pruefprotokoll
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) 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 / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (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
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) 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 / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (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
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f90a2e7af6
commit
f45cf29184
8 files changed
+59
-26
No files matched your search
@@ -0,0 +1,32 @@
|
||||
# Integration-Pruefprotokoll: `integration/dms-gesamtstand`
|
||||
|
||||
Zusammenfuehrung aller bis dahin offenen DMS-Ticket-Branches auf einen lauffaehigen Gesamtstand. Kein Merge nach `main`, kein Deploy.
|
||||
|
||||
## Umfang
|
||||
|
||||
- 13 zuvor nicht enthaltene Ticket-Branches eingemergt; alle uebrigen offenen Ticket-Branches waren bereits Vorfahren.
|
||||
- Konflikte manuell aufgeloest: `go.mod`/`go.sum` (Vereinigung mit jeweils hoechster Version), `storage/driver.go` (`DerivativeKey` und FDN-10-TTL-Konstanten beide behalten), `trash`/`trashapi`/`upload` (SRC-02 Suchindex-Enqueuer mit VER-09 Audit/Akteur zusammengefuehrt), `jobqueue/worker.go` (Request-ID plus FDN-11-Limits).
|
||||
- Signaturen angeglichen: `trash.*(ctx, pool, searchIndex, id, actor)`, `storage.NewLocalDriver(..., maxTTL)` (Aufrufer uebergeben `0`), `upload.Service.Complete(ctx, id, confirmDuplicate)`.
|
||||
- `cmd/app/main.go`: `workerruntime.AttachEnqueuers` haengt die Upload-Hooks an; Warnung, wenn `malwarescan.scan` nicht in `NEXARCH_DMS_APP_ENQUEUE_JOB_TYPES` steht.
|
||||
|
||||
## Pruefungen (Testhost 192.168.1.131, frischer Clone)
|
||||
|
||||
| Pruefung | Ergebnis |
|
||||
|---|---|
|
||||
| `go build ./...` | sauber |
|
||||
| `go vet ./...` | sauber |
|
||||
| `go test -count=1 ./...` (paralleler Paketlauf, 3 Laeufe hintereinander) | alle Pakete `ok` |
|
||||
| `gofmt -l .` | nach Bereinigung leer |
|
||||
| verwaiste `dmstest_*`-Schemas | 2 Altbestaende entfernt |
|
||||
|
||||
## Beim Integrationslauf gefundene und behobene Testfehler
|
||||
|
||||
1. `searchsync`-Test legte Tabellen im gemeinsamen `public`-Schema an und kollidierte mit dem Migrationsstand. Umgestellt auf `testdb.Pool`.
|
||||
2. `watchfolder`-Test: Handschema von `file_revisions` ohne `confirmed_duplicate` (DOC-02). Spalte ergaenzt.
|
||||
3. Flaky Fehler (`relation "users" does not exist`, `sitzung nicht gefunden`, FK-Verletzungen) in `autorule`/`qa05`: `testenv` legte `users` im gemeinsamen `public`-Schema an, andere Pakete leerten oder loeschten sie per `TRUNCATE/DROP users CASCADE` ueber den `search_path`-Fallback. `testenv` legt `users` nun im Testschema an; `docmerge`-Test auf `testdb.Pool` umgestellt (nutzte roh `public`).
|
||||
|
||||
## Bekannte Punkte
|
||||
|
||||
- Migrationsnummern nicht eindeutig: drei `0016_*` (`document_merge_split`, `duplicate_detection`, `revision_pdf_derivatives`). Die Anwendungsreihenfolge ergibt sich alphabetisch nach Dateiname und ist im Test konsistent. Vor Produktivnutzung auf eindeutige, fortlaufende Nummern umstellen.
|
||||
- SRC-02: Index-Handler noch nicht in `workerruntime` verdrahtet.
|
||||
- Weiterhin offen: `soffice` fehlt auf dem Testhost (DOC-06), `clamd` nur Test-Scanner, TEN-12 Core-Seite, INT-01/INT-09 durch Core API-01/RBAC-02 blockiert.
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"image"
|
||||
"image/png"
|
||||
_ "image/jpeg"
|
||||
"image/png"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
||||
@@ -99,10 +99,10 @@ func (s *Syncer) SyncDocument(ctx context.Context, documentID string) error {
|
||||
id := DocIndexID(documentID)
|
||||
|
||||
var (
|
||||
title string
|
||||
trashedAt, deletedAt *string
|
||||
folderID, documentType *string
|
||||
createdBy string
|
||||
title string
|
||||
trashedAt, deletedAt *string
|
||||
folderID, documentType *string
|
||||
createdBy string
|
||||
createdAtSec, updatedAtSec int64
|
||||
)
|
||||
err := s.Pool.QueryRow(ctx, `
|
||||
|
||||
@@ -2,8 +2,8 @@ package searchsync
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -95,11 +95,11 @@ func GenerateXlsx(rows [][]string) ([]byte, error) {
|
||||
buf := &bytes.Buffer{}
|
||||
zw := zip.NewWriter(buf)
|
||||
files := map[string]string{
|
||||
"[Content_Types].xml": contentTypesXlsx,
|
||||
"_rels/.rels": rootRelsXlsx,
|
||||
"xl/workbook.xml": workbookXML,
|
||||
"[Content_Types].xml": contentTypesXlsx,
|
||||
"_rels/.rels": rootRelsXlsx,
|
||||
"xl/workbook.xml": workbookXML,
|
||||
"xl/_rels/workbook.xml.rels": workbookRels,
|
||||
"xl/worksheets/sheet1.xml": sheet,
|
||||
"xl/worksheets/sheet1.xml": sheet,
|
||||
}
|
||||
for name, content := range files {
|
||||
w, err := zw.Create(name)
|
||||
|
||||
@@ -35,13 +35,13 @@ func GenerateTIFF(width, height int, fill byte) []byte {
|
||||
typeLong = 4
|
||||
)
|
||||
|
||||
writeTag(256, typeLong, 1, uint32(width)) // ImageWidth
|
||||
writeTag(257, typeLong, 1, uint32(height)) // ImageLength
|
||||
writeTag(258, typeShort, 1, 8) // BitsPerSample
|
||||
writeTag(259, typeShort, 1, 1) // Compression: none
|
||||
writeTag(262, typeShort, 1, 1) // PhotometricInterpretation: BlackIsZero
|
||||
writeTag(273, typeLong, 1, pixelOffset) // StripOffsets
|
||||
writeTag(277, typeShort, 1, 1) // SamplesPerPixel
|
||||
writeTag(256, typeLong, 1, uint32(width)) // ImageWidth
|
||||
writeTag(257, typeLong, 1, uint32(height)) // ImageLength
|
||||
writeTag(258, typeShort, 1, 8) // BitsPerSample
|
||||
writeTag(259, typeShort, 1, 1) // Compression: none
|
||||
writeTag(262, typeShort, 1, 1) // PhotometricInterpretation: BlackIsZero
|
||||
writeTag(273, typeLong, 1, pixelOffset) // StripOffsets
|
||||
writeTag(277, typeShort, 1, 1) // SamplesPerPixel
|
||||
writeTag(279, typeLong, 1, uint32(len(pixelData))) // StripByteCounts
|
||||
|
||||
binary.Write(buf, binary.LittleEndian, uint32(0)) // naechste IFD: keine
|
||||
|
||||
@@ -242,15 +242,15 @@ func buildMultiPageTIFF(t *testing.T, pixelValues [2]byte) []byte {
|
||||
_ = binary.Write(buf, binary.LittleEndian, value)
|
||||
}
|
||||
_ = binary.Write(buf, binary.LittleEndian, uint16(9))
|
||||
entry(0x0100, 3, 1, 1) // ImageWidth
|
||||
entry(0x0101, 3, 1, 1) // ImageLength
|
||||
entry(0x0102, 3, 1, 8) // BitsPerSample
|
||||
entry(0x0103, 3, 1, 1) // Compression: none
|
||||
entry(0x0106, 3, 1, 1) // PhotometricInterpretation: BlackIsZero
|
||||
entry(0x0111, 4, 1, stripOffset) // StripOffsets
|
||||
entry(0x0115, 3, 1, 1) // SamplesPerPixel
|
||||
entry(0x0116, 4, 1, 1) // RowsPerStrip
|
||||
entry(0x0117, 4, 1, 1) // StripByteCounts
|
||||
entry(0x0100, 3, 1, 1) // ImageWidth
|
||||
entry(0x0101, 3, 1, 1) // ImageLength
|
||||
entry(0x0102, 3, 1, 8) // BitsPerSample
|
||||
entry(0x0103, 3, 1, 1) // Compression: none
|
||||
entry(0x0106, 3, 1, 1) // PhotometricInterpretation: BlackIsZero
|
||||
entry(0x0111, 4, 1, stripOffset) // StripOffsets
|
||||
entry(0x0115, 3, 1, 1) // SamplesPerPixel
|
||||
entry(0x0116, 4, 1, 1) // RowsPerStrip
|
||||
entry(0x0117, 4, 1, 1) // StripByteCounts
|
||||
_ = binary.Write(buf, binary.LittleEndian, nextIFDOffset)
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ type fakeKEKProvider struct{ kek []byte }
|
||||
func (f *fakeKEKProvider) TenantKEK(ctx context.Context, tenantSlug string) ([]byte, error) {
|
||||
return f.kek, nil
|
||||
}
|
||||
|
||||
type noopUsageReporter struct{}
|
||||
|
||||
func (noopUsageReporter) Report(ctx context.Context, tenantSlug, metric string, delta int64) error {
|
||||
|
||||
Reference in new issue
Block a user