Repository navigation
Run the account commands on SQLite on the run's one database handle - #69
Conversation
…, the SQLite driver deny list and forbidigo
…r the migration lock
…s and pass recordstest
… list them in UTC
… run's one handle
…e account in Authorize
… it with account:records
…sy timeout in Record
…s under Unreleased
…rint what it covers
…d share one record insert
…sed allow entries
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to No actionable merge-blocking issue is established; the change is ready for normal checks. Pre-merge checks |
|
|
…so 32-bit builds pass
There was a problem hiding this comment.
Gates Passed
4 Quality Gates Passed
See analysis details in CodeScene
Quality Gate Profile: Clean Code Collective
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.
Closes #68
What
gonsole/auth/sqlite.Storesbuilds gouncer's SQLite account store and a SQLite record store on the run's one handle, forauth.Config.Stores. The run owns that handle, so there is nothing to release.MigrationandRecordMigrationare the two schema steps on that handle, the accounts first, then the records. Each takes the file's migration lock for its own run, withMigrateOptionsfrom the program's own settings.gonsole_recordswith their own version table,gonsole_goose_db_version. Times are UTC microseconds, and the arguments and flags must be valid JSON.recordstest. A busy, locked or constraint failure carries dbkit's error class.sql.Open,dbkit/sqlite.Openandsqlitetestoutside the tests. gonsole/auth's own lint now allows only the gouncer packages it imports.Why
Downstream applications need the account commands,
Authorize,Recordandaccount:recordsin the one SQLite file that holds the rest of their data, on the one handle a run opens.Testing Instructions
Run the testing toolchain in
gonsole/auth/sqlite. It needs no database server. The tests run every account command through a program whose opener counts one open per run, refuse the accountsAuthorizemust refuse, and show that a record behind a busy file waits no longer than the busy timeout.Summary by CodeRabbit