Files
jobtrackingapp/docs/database/mariadb-standardisation/SQLITE_AUDIT.md
T
cesnimda e75c4a4775
MariaDB persistence qualification / mariadb (push) Failing after 1m7s
docs(database): record MariaDB qualification and retirement gates
2026-10-24 01:52:03 +02:00

4.0 KiB
Raw Blame History

Tracked SQLite reference audit

The machine-readable inventory is sqlite-references.json. It records every case-insensitive sqlite match in tracked text files at baseline 0d16a691e0249fe1264bf960de5e59eaa9b87fed, with exact file, line and text, grouped classification reasons and per-file hashes. This fixed baseline keeps locations reproducible while the coordinator updates active configuration. It does not read untracked files, databases, exports or credentials. Binary files are excluded by git grep -I; case-insensitive matching includes Sqlite, SQLitePCL, UseSqlite, sqlite3 and provider package names.

The owner subsequently verified deployed 12.2.2-MariaDB-ubu2404 from floating mariadb:latest; local qualification now targets the official 12.2.2 image. A container image ID is not a registry manifest digest. This supersedes the initial 11 LTS proposal; any later 12.3 LTS migration investigation is separate coordinator work.

Classification Meaning and disposition
required_historical_or_data_preservation Historical evidence and immutable migrations; export/backup/restore paths; domain vocabulary. Preserve. A stored historical SQLite result is never MariaDB proof.
temporary_transition Live provider branches/packages and SQLite-based tests, browser harnesses and local tools. Preserve until replacement coverage and user-data migration are qualified.
obsolete Active default/fallback or current setup guidance contradicting MariaDB standardisation. Replace guidance/defaults; do not remove the preservation implementation.

Concrete minimal coordinator changes at baseline:

Location Required change
.env.example:7, docker-compose.yml:20, JobTrackerApi/Program.cs:100–105 Select MariaDB explicitly; fail closed for missing/unknown provider instead of silently choosing SQLite.
JobTrackerApi/Services/DatabaseBackupRunner.cs:31–36 Match provider selection; never infer a SQLite backup path from an invalid provider.
README.md:9, deploy/MARIADB.md:4 Replace SQLite default/fallback wording with MariaDB local setup; retain migration/export instructions.
docs/architecture/overview.md:28, docs/configuration/environment-variables.md:9, docs/configuration/environments.md:5, docs/database/README.md:3 Align architecture and environment defaults; document explicit transitional SQLite access.
docs/database/migrations.md:3 Make actual MariaDB startup tests the standard provider qualification. Keep SQLite migration/WAL/backup compatibility facts.

CI and Docker files were included in the same full tracked-tree scan. No baseline CI/Dockerfile text directly names SQLite; Compose does. SQLite also enters CI indirectly through the API test project and Playwright startup configuration. A new MariaDB CI lane must be explicit and fail on missing/unreachable MariaDB, while retained SQLite tests remain separate compatibility evidence.

Active compatibility surface includes API DI, startup reconciliation, dialect branches in controllers/services, EF provider/native packages, immutable migration branches, SQLite persisted tests, Python fixture seeds, browser configurations, deployment export/preview tools and acceptance-run local JWT lookup. Skill-tagger/summarizer strings are domain recognition vocabulary and should continue recognizing SQLite experience. The JSON reason groups distinguish these surfaces without duplicating thousands of source lines in prose.

The three obsolete revision fixtures are adapted under the owner's later explicit instruction. fixture-delta.json records baseline/current hashes and exact unified source deltas. Historical acceptance reports and results stay unchanged, including the three previously recorded unversioned-seed failures. New execution evidence belongs to the coordinator and must be recorded separately.

Retirement gates: SQLITE_RETIREMENT.md. No package, migration, database or historical evidence removal is part of this audit.