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

30 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tracked SQLite reference audit
The machine-readable inventory is [sqlite-references.json](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](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](SQLITE_RETIREMENT.md). No package, migration, database or historical evidence removal is part of this audit.