summaryrefslogtreecommitdiff
path: root/internal/db
AgeCommit message (Collapse)AuthorFiles
2023-12-10[bugfix] Narrow search scope for accounts starting with '@'; don't LOWER ↵Libravatar tobi2
SQLite text searches (#2435)
2023-12-10[bugfix] Ensure `pre` renders as expected, fix orderedCollectionPage (#2434)Libravatar tobi4
2023-12-08[chore] Run ANALYZE for SQLite after latest migrations (#2427)Libravatar tobi1
2023-11-30[chore] Re-add indexes, rename account actions indexes (#2401)Libravatar tobi2
2023-11-29[performance/postgres] Rename constraints, remove duplicate indexes (#2392)Libravatar tobi1
* [performance/postgres] Rename constraints, remove duplicate indexes * remove duplicate indexes from sqlite as well
2023-11-27[bugfix] Don't copy ptr fields in caches (#2386)Libravatar tobi11
2023-11-20[feature] Initial Prometheus metrics implementation (#2334)Libravatar Tsuribori1
* feat: Initial OTEL metrics * docs: add metrics documentation * fix: metrics endpoint conditional check * feat: metrics endpoint basic auth * fix: make metrics-auth-enabled default false * fix: go fmt helpers.gen.go * fix: add metric-related env vars to envparsing.sh * fix: metrics docs * fix: metrics related stuff in envparsing.sh * fix: metrics docs * chore: metrics docs wording * fix: metrics stuff in envparsing? * bump otel versions --------- Co-authored-by: Tsuribori <user@acertaindebian> Co-authored-by: Tsuribori <none@example.org> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2023-11-20[bugfix] self-referencing collection pages for status replies (#2364)Libravatar kim4
2023-11-14[bugfix] Update poll delete/update db queries (#2361)Libravatar tobi3
2023-11-11[bugfix] support endless polls, and misskey's' method of inferring expiry in ↵Libravatar kim3
closed polls (#2349)
2023-11-10[feature] Media attachment placeholders (#2331)Libravatar tobi3
* [feature] Use placeholders for unknown media types * fix read of underreported small files * switch to reduce nesting * simplify cleanup
2023-11-09[bugfix] actually decrement votes during poll vote delete ... (#2344)Libravatar kim1
2023-11-08[feature] add support for polls + receiving federated status edits (#2330)Libravatar kim15
2023-10-31Remove account_suspended_at_idx to resolve slow query issues (#2310)Libravatar Sam Lade1
2023-10-31[feature] add per-uri dereferencer locks (#2291)Libravatar kim1
2023-10-25[feature] Status thread mute/unmute functionality (#2278)Libravatar tobi10
* add db models + functions for keeping track of threads * give em the old linty testy * create, remove, check mutes * swagger * testerino * test mute/unmute via api * add info log about new index creation * thread + allow muting of any remote statuses that mention a local account * IsStatusThreadMutedBy -> IsThreadMutedByAccount * use common processing functions in status processor * set = NULL * favee! * get rekt darlings, darlings get rekt * testrig please, have mercy muy liege
2023-10-23[chore] bump go version -> 1.21.x (#2287)Libravatar tobi1
* [chore] bump go version -> 1.21.x * versions * lint
2023-10-18[bugfix] Postgres error wrapping fix (#2276)Libravatar tobi2
2023-09-29[bugfix] Fix paging for empty items (#2236)Libravatar tobi1
* use minID properly for public timeline * return paged response properly even when 0 items * use gtserror * page more consistently (for now) * test * aaa
2023-09-23[chore] deinterface the typeutils.Converter and update to use state ↵Libravatar kim1
structure (#2217) * update typeconverter to use state structure * deinterface the typeutils.TypeConverter -> typeutils.Converter * finish copying over old type converter code comments * fix cherry-pick merge issues, fix tests pointing to old typeutils interface type still
2023-09-21[feature] Implement explicit domain allows + allowlist federation mode (#2200)Libravatar tobi4
* love like winter! wohoah, wohoah * domain allow side effects * tests! logging! unallow! * document federation modes * linty linterson * test * further adventures in documentation * finish up domain block documentation (i think) * change wording a wee little bit * docs, example * consolidate shared domainPermission code * call mode once * fetch federation mode within domain blocked func * read domain perm import in streaming manner * don't use pointer to slice for domain perms * don't bother copying blocks + allows before deleting * admonish! * change wording just a scooch * update docs
2023-09-12[feature] add paging to account follows, followers and follow requests ↵Libravatar kim6
endpoints (#2186)
2023-09-12[feature] Allow admins to expire remote public keys; refetch expired keys on ↵Libravatar tobi1
demand (#2183)
2023-09-07[chore] much improved paging package (#2182)Libravatar kim2
2023-09-04[feature] Store admin actions in the db, prevent conflicting actions (#2167)Libravatar tobi3
2023-09-01[bugfix] move SQLite pragmas into connection string (#2171)Libravatar kim1
* move SQLite pragmas into connection string Signed-off-by: kim <grufwub@gmail.com> * use url.Values type for SQLite connection preferences Signed-off-by: kim <grufwub@gmail.com> * set SQLite URI prefs properly using _pragma query key Signed-off-by: kim <grufwub@gmail.com> * add notes on SQLite connection preferences Signed-off-by: kim <grufwub@gmail.com> * fix typo Signed-off-by: kim <grufwub@gmail.com> * add one extra line regarding connection pooling Signed-off-by: kim <grufwub@gmail.com> --------- Signed-off-by: kim <grufwub@gmail.com>
2023-08-31[bugfix] wrap bun.Tx to add our own error processing (#2169)Libravatar kim7
* wrap bun.Tx to add our own error processing Signed-off-by: kim <grufwub@gmail.com> * add compile-time check for updateRowError() compatibility with sql.Row, fix wrapTx() not being used properly Signed-off-by: kim <grufwub@gmail.com> --------- Signed-off-by: kim <grufwub@gmail.com>
2023-08-22[performance] Rework home timeline query to use cache more (#2148)Libravatar tobi2
2023-08-21[performance] Tweak media attachment cleanup; replace stale index (#2143)Libravatar tobi4
2023-08-19[feature] Instance rules (#2125)Libravatar f0x5210
* init instance rules database model, admin api * expose instance rules in public instance api * public /api/v1/instance/rules route * GET ruleById * createRule route * createRule auth check * updateRule * deleteRule * list rules on about page * ruleGet auth * add about page ids for anchors * process and store adding violated rules to reports * admin api models for instance rules * instance rule edit frontend * change rule inputs to textareas * database fixes after rebase (#2124) * remove unused imports * fix db migration column name * fix tests * fix more tests * fix postgres error with wrongly used Ident * add some tests, fiddle with rule model a bit, fix postgres migration * swagger docs --------- Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2023-08-17[bugfix] fix double firing bun.DB query hooks (#2124)Libravatar kim32
* improve bun.DB wrapping readability + comments, fix double-firing query hooks * fix incorrect code comment placement * fix linter issues * Update internal/db/basic.go * do as the linter commmands ... --------- Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: Daenney <daenney@users.noreply.github.com>
2023-08-10[performance] remove last of relational queries to instead rely on caches ↵Libravatar kim7
(#2091)
2023-08-09[feature] List replies policy, refactor async workers (#2087)Libravatar tobi12
* Add/update some DB functions. * move async workers into subprocessor * rename FromFederator -> FromFediAPI * update home timeline check to include check for current status first before moving to parent status * change streamMap to pointer to mollify linter * update followtoas func signature * fix merge * remove errant debug log * don't use separate errs.Combine() check to wrap errs * wrap parts of workers functionality in sub-structs * populate report using new db funcs * embed federator (tiny bit tidier) * flesh out error msg, add continue(!) * fix other error messages to be more specific * better, nicer * give parseURI util function a bit more util * missing headers * use pointers for subprocessors
2023-08-09[bugfix] Fix incorrect per-loop variable capture (#2092)Libravatar Daenney1
These should be per iteration, not per loop. This was caught by running a build with the loopvar experiment: go build -gcflags=-d=loopvar=2.
2023-08-07[chore] Use generic pointer function (#2080)Libravatar Daenney6
This replaces the different $TypePtr functions with a generic implementation.
2023-08-04[performance] add caching of status fave, boost of, in reply to ID lists (#2060)Libravatar kim6
2023-08-02[bugfix] Rework MultiError to wrap + unwrap errors properly (#2057)Libravatar tobi6
* rework multierror a bit * test multierror
2023-08-02[bugfix] fix slow accounts / statuses using emojis lookups (#2056)Libravatar kim3
* update DeleteEmoji to use faster relational tables for status / account finding Signed-off-by: kim <grufwub@gmail.com> * update Get{Accounts,Statuses}UsingEmoji() to also use relational tables Signed-off-by: kim <grufwub@gmail.com> * remove the now unneeded tags relation from newStatusQ() Signed-off-by: kim <grufwub@gmail.com> * fix table names Signed-off-by: kim <grufwub@gmail.com> * fix account and status selects using emojis Signed-off-by: kim <grufwub@gmail.com> --------- Signed-off-by: kim <grufwub@gmail.com>
2023-07-31[feature] Hashtag federation (in/out), hashtag client API endpoints (#2032)Libravatar tobi16
* update go-fed * do the things * remove unused columns from tags * update to latest lingo from main * further tag shenanigans * serve stub page at tag endpoint * we did it lads * tests, oh tests, ohhh tests, oh tests (doo doo doo doo) * swagger docs * document hashtag usage + federation * instanceGet * don't bother parsing tag href * rename whereStartsWith -> whereStartsLike * remove GetOrCreateTag * dont cache status tag timelineability
2023-07-31[performance] cache follow, follow request and block ID lists (#2027)Libravatar kim11
2023-07-29[feature] Implement markers API (#1989)Libravatar Vyr Cossont7
* Implement markers API Fixes #1856 * Correct import grouping in markers files * Regenerate Swagger for markers API * Shorten names for readability * Cache markers for 6 hours * Update DB ref * Update envparsing.sh
2023-07-27[chore] fix merge issue (#2029)Libravatar tobi1
2023-07-27[feature] Support setting private notes on accounts (#1982)Libravatar Vyr Cossont6
* Support setting private notes on accounts * Reformat comment whitespace * Add missing license headers * Use apiutil.ParseID * Rename Note model and cache to AccountNote * Update golden cache config in test/envparsing.sh * Rename gtsmodel/note.go to gtsmodel/accountnote.go * Update AccountNote uniqueness constraint name Now has same prefix as other indexes on this table. --------- Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com>
2023-07-25[performance] retry db queries on busy errors (#2025)Libravatar kim47
* catch SQLITE_BUSY errors, wrap bun.DB to use our own busy retrier, remove unnecessary db.Error type Signed-off-by: kim <grufwub@gmail.com> * remove dead code Signed-off-by: kim <grufwub@gmail.com> * remove more dead code, add missing error arguments Signed-off-by: kim <grufwub@gmail.com> * update sqlite to use maxOpenConns() Signed-off-by: kim <grufwub@gmail.com> * add uncommitted changes Signed-off-by: kim <grufwub@gmail.com> * use direct calls-through for the ConnIface to make sure we don't double query hook Signed-off-by: kim <grufwub@gmail.com> * expose underlying bun.DB better Signed-off-by: kim <grufwub@gmail.com> * retry on the correct busy error Signed-off-by: kim <grufwub@gmail.com> * use longer possible maxRetries for db retry-backoff Signed-off-by: kim <grufwub@gmail.com> * remove the note regarding max-open-conns only applying to postgres Signed-off-by: kim <grufwub@gmail.com> * improved code commenting Signed-off-by: kim <grufwub@gmail.com> * remove unnecessary infof call (just use info) Signed-off-by: kim <grufwub@gmail.com> * rename DBConn to WrappedDB to better follow sql package name conventions Signed-off-by: kim <grufwub@gmail.com> * update test error string checks Signed-off-by: kim <grufwub@gmail.com> * shush linter Signed-off-by: kim <grufwub@gmail.com> * update backoff logic to be more transparent Signed-off-by: kim <grufwub@gmail.com> --------- Signed-off-by: kim <grufwub@gmail.com>
2023-07-24[feature/performance] support uncaching remote emoji + scheduled cleanup ↵Libravatar kim14
functions (#1987)
2023-07-23[chore] Admin CLI + new account creation refactoring (#2008)Libravatar tobi2
* set maxPasswordLength to 72 bytes, rename validate function * refactor NewSignup * refactor admin account CLI commands * refactor oidc create user * refactor processor create * tweak password change, check old != new password
2023-07-18[bugfix] more robust list timeline invalidation (#1995)v0.10.0-rc3Libravatar kim2
2023-07-08[bugfix] Delete mutual follow (requests) when receiving block from remote ↵Libravatar tobi4
(#1960) * [bugfix] Delete mutual follow (requests) on block * fix test
2023-07-07[chore/bugfix] Domain block tidying up, Implement first pass of `207 ↵Libravatar tobi5
Multi-Status` (#1886) * [chore/refactor] update domain block processing * expose domain block import errors a lil better * move/remove unused query keys
2023-07-05[chore/performance] Remove remaining 'whereEmptyOrNull' funcs (#1946)Libravatar tobi6