30 lines
4.0 KiB
Markdown
30 lines
4.0 KiB
Markdown
# 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.
|