summaryrefslogtreecommitdiff
path: root/internal/federation
AgeCommit message (Collapse)AuthorFiles
2022-05-24[bugfix] Set refetch to true in iterateDescendants (#600)Libravatar tobi1
2022-05-23[bugfix] Fix multiple dereferences of boosted status causing media ↵Libravatar tobi9
duplication (#589) * add some announces to test models * start on announce test logic * test federatingDB.Announce * change signature of GetRemoteStatus * remove 'refresh' logic and replace it with refetch * go fmt * remove timeline manager from processor test * make zork created at determinate * test get account statuses * test get + serialize zork * make account keys determinate * make admin accountCreate time determinate * test account to as * init test config before test log * test status to frontend * remove daft Within check * hack around a bit * use index of slice
2022-05-23[security] Check all involved IRIs during block checking (#593)Libravatar tobi3
* tidy up context keys, add otherInvolvedIRIs * add ReplyToable interface * skip block check if we own the requesting domain * add block check for other involved IRIs * use cacheable status fetch * remove unused ContextActivity * remove unused ContextActivity * add helper for unique URIs * check through CCs and clean slice * add GetAccountIDForStatusURI * add GetAccountIDForAccountURI * check blocks on involved account * add statuses to tests * add some blocked tests * go fmt * extract Tos as well as CCs * test PostInboxRequestBodyHook * add some more testActivities * deduplicate involvedAccountIDs * go fmt * use cacheable db functions, remove new functions
2022-05-15[security] transport.Controller{} and transport.Transport{} security and ↵Libravatar kim5
performance improvements (#564) * cache transports in controller by privkey-generated pubkey, add retry logic to transport requests Signed-off-by: kim <grufwub@gmail.com> * update code comments, defer mutex unlocks Signed-off-by: kim <grufwub@gmail.com> * add count to 'performing request' log message Signed-off-by: kim <grufwub@gmail.com> * reduce repeated conversions of same url.URL object Signed-off-by: kim <grufwub@gmail.com> * move worker.Worker to concurrency subpackage, add WorkQueue type, limit transport http client use by WorkQueue Signed-off-by: kim <grufwub@gmail.com> * fix security advisories regarding max outgoing conns, max rsp body size - implemented by a new httpclient.Client{} that wraps an underlying client with a queue to limit connections, and limit reader wrapping a response body with a configured maximum size - update pub.HttpClient args passed around to be this new httpclient.Client{} Signed-off-by: kim <grufwub@gmail.com> * add httpclient tests, move ip validation to separate package + change mechanism Signed-off-by: kim <grufwub@gmail.com> * fix merge conflicts Signed-off-by: kim <grufwub@gmail.com> * use singular mutex in transport rather than separate signer mus Signed-off-by: kim <grufwub@gmail.com> * improved useragent string Signed-off-by: kim <grufwub@gmail.com> * add note regarding missing test Signed-off-by: kim <grufwub@gmail.com> * remove useragent field from transport (instead store in controller) Signed-off-by: kim <grufwub@gmail.com> * shutup linter Signed-off-by: kim <grufwub@gmail.com> * reset other signing headers on each loop iteration Signed-off-by: kim <grufwub@gmail.com> * respect request ctx during retry-backoff sleep period Signed-off-by: kim <grufwub@gmail.com> * use external pkg with docs explaining performance "hack" Signed-off-by: kim <grufwub@gmail.com> * use http package constants instead of string method literals Signed-off-by: kim <grufwub@gmail.com> * add license file headers Signed-off-by: kim <grufwub@gmail.com> * update code comment to match new func names Signed-off-by: kim <grufwub@gmail.com> * updates to user-agent string Signed-off-by: kim <grufwub@gmail.com> * update signed testrig models to fit with new transport logic (instead uses separate signer now) Signed-off-by: kim <grufwub@gmail.com> * fuck you linter Signed-off-by: kim <grufwub@gmail.com>
2022-05-02[chore] Fix inbox iris test to use 'contains' instead of index (#529)Libravatar tobi1
2022-05-02[performance] Speed up some of the slower db queries (#523)Libravatar tobi1
* remove unnecessary LOWER() db calls * warn during slow db queries * use bundb built-in exists function * add db block test * update account block query * add domain block db test * optimize domain block query * fix implementing wrong test * exclude most columns when checking block * go fmt * remote more unnecessary use of LOWER()
2022-04-29[chore] Add Federatingactor.Send() tests and log call (#509)Libravatar tobi4
* expose testrig util functions * add tests for federatingActor * rename some suite vars
2022-04-29[chore] Inboxes for iri test (#508)Libravatar tobi4
* tidy up some federation tests * add missing license to following.go * give zork some followers, as a treat * test InboxesForIRI * Go fmt * update timeline tests
2022-04-28replace async client API / federator msg processing with worker pools (#497)Libravatar kim14
* replace async client API / federator msg processing with worker pools * appease our lord-and-saviour, the linter
2022-04-28[bugfix] Fix possible race condition in federatingdb (#490)Libravatar kim2
Signed-off-by: kim <grufwub@gmail.com>
2022-04-26[chore] Return more useful errors from auth failure (#494)v0.3.1Libravatar tobi3
* try rsa_sha256 sig algo first * return more informative errors from auth * adapt to reworked auth function
2022-04-24Revert "[chore] Tidy up federating db locks a tiny bit (#472)" (#479)Libravatar tobi1
This reverts commit 31c1067a548039e7d95f131b3972ecfe1f57f835.
2022-04-19[chore] Tidy up federating db locks a tiny bit (#472)Libravatar tobi1
2022-04-05[dependency] Update superseriousbusiness/activity dependency (#446)Libravatar tobi1
* bump superseriousbusiness/activity version * fetch list of follower inbox iris
2022-03-21[bugfix] Fix images not being processed correctly sometimes (#437)Libravatar tobi2
* bump exif-terminator to latest version * add and test giant turnip from turnip.farm * don't error if content property is nil
2022-03-07[feature] Clean up/uncache remote media (#407)Libravatar tobi1
* Add whereNotEmptyAndNotNull * Add GetRemoteOlderThanDays * Add GetRemoteOlderThanDays * Add PruneRemote to Manager interface * Start implementing PruneRemote * add new attachment + status to tests * fix up and test GetRemoteOlderThan * fix bad import * PruneRemote: return number pruned * add Cached column to mediaattachment * update + test pruneRemote * update mediaTest * use Cached column * upstep bun to latest version * embed structs in mediaAttachment * migrate mediaAttachment to new format * don't default cached to true * select only remote media * update db dependencies * step bun back to last working version * update pruneRemote to use Cached field * fix storage path of test attachments * add recache logic to manager * fix trimmed aspect ratio * test prune and recache * return errwithcode * tidy up different paths for emoji vs attachment * fix incorrect thumbnail type being stored * expose TransportController to media processor * implement tee-ing recached content * add thoughts of dog to test fedi attachments * test get remote files * add comment on PruneRemote * add postData cleanup to recache * test thumbnail fetching * add incredible diagram * go mod tidy * buffer pipes for recache streaming * test for client stops reading after 1kb * add media-remote-cache-days to config * add cron package * wrap logrus so it's available to cron * start and stop cron jobs gracefully
2022-02-22[feature] Add postDataCallbackFunc to allow cleanup (#408)Libravatar tobi2
2022-02-08hopefully fix potential race conditionLibravatar tsmethurst1
2022-02-08Merge branch 'main' into media_refactorLibravatar tsmethurst1
2022-02-08update outdated commentLibravatar tsmethurst1
2022-02-07[feature] add authorization to the already-existing authentication (#365)Libravatar Forest Johnson2
* add ensureUserIsAuthorizedOrRedirect to /oauth/authorize * adding authorization (email confirm, account approve, etc) to TokenCheck * revert un-needed changes to signin.go * oops what happened here * error css * add account.SuspendedAt check * remove redundant checks from oauth util Authed function * wip tests * tests passing * stop stripping useful information from ErrAlreadyExists * that feeling of scraping the dryer LINT off the screen * oops I didn't mean to get rid of this NewTestRouter function * make tests work with recorder * re-add ConfigureTemplatesWithGin to handle template path err Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-01-25ensure blocking calls to getRemoteAccount before showing stuff to clientLibravatar tsmethurst1
2022-01-25only update account in db if changedLibravatar tsmethurst1
2022-01-24change getaccount function signatureLibravatar tsmethurst1
2022-01-24use background context w/deadlineLibravatar tsmethurst1
2022-01-24update remote account get/deref logicLibravatar tsmethurst7
2022-01-23rework data function to provide filesizeLibravatar tsmethurst2
2022-01-16pass reader around instead of []byteLibravatar tsmethurst2
2022-01-11pass a function into the manager, start work on emojiLibravatar tsmethurst5
2022-01-10test the media manager a bit, add shutdown logicLibravatar tsmethurst5
2022-01-09add async testLibravatar tsmethurst1
2022-01-09tests are passing, but there's still much to be doneLibravatar tsmethurst5
2022-01-08compiling nowLibravatar tsmethurst6
2021-12-28more refactoring, media handler => managerLibravatar tsmethurst6
2021-12-20Extend license notices to 2022 (#354)Libravatar tobi45
2021-12-20Remove unnecessary storage config variables (#344)Libravatar tobi13
* rewire config to not use extraneous serve vars * rename 'file' to 'local' for consistency * use Type and Size again
2021-12-07Implement Cobra CLI tooling, Viper config tooling (#336)Libravatar tobi12
* start pulling out + replacing urfave and config * replace many many instances of config * move more stuff => viper * properly remove urfave * move some flags to root command * add testrig commands to root * alias config file keys * start adding cli parsing tests * reorder viper init * remove config path alias * fmt * change config file keys to non-nested * we're more or less in business now * tidy up the common func * go fmt * get tests passing again * add note about the cliparsing tests * reorganize * update docs with changes * structure cmd dir better * rename + move some files around * fix dangling comma
2021-11-22Enable stricter linting with golangci-lint (#316)Libravatar tobi7
* update golangci-lint * add golangci config file w/ more linters * correct issues flagged by stricter linters * add more generous timeout for golangci-lint * add some style + formatting guidelines * move timeout to config file * go fmt
2021-11-13move to ssb gofed fork (#298)Libravatar tobi29
2021-11-13update dependencies (#296)Libravatar tobi2
2021-10-24Serve `outbox` for Actor (#289)Libravatar tobi1
* add statusesvisible convenience function * add minID + onlyPublic to account statuses get * move swagger collection stuff to common * start working on Outbox GETting * move functions into federationProcessor * outboxToASCollection * add statusesvisible convenience function * add minID + onlyPublic to account statuses get * move swagger collection stuff to common * start working on Outbox GETting * move functions into federationProcessor * outboxToASCollection * bit more work on outbox paging * wrapNoteInCreate function * test + hook up the processor functions * don't do prev + next links on empty reply * test get outbox through api * don't fail on no status entries * add outbox implementation doc * typo
2021-10-16Follow request improvements (#282)Libravatar tobi5
* tiny doc update * add rejectfollowrequest to db * add follow request reject to processor * add reject handler * tidy up follow request api * tidy up federation call * regenerate swagger docs * api endpoint tests * processor test * add reject federatingdb handler * start writing reject tests * test reject follow request * go fmt * increase sleep for slow test setups * more relaxed time.sleep
2021-10-11reference global logrus (#274)Libravatar R. Aidan Campbell24
* reference logrus' global logger instead of passing and storing a logger reference everywhere * always directly use global logrus logger instead of referencing an instance * test suites should also directly use the global logrus logger * rename gin logging function to clarify that it's middleware * correct comments which erroneously referenced removed logger parameter * setting log level for tests now uses logrus' exported type instead of the string value, to guarantee error isn't possible
2021-10-10Handle forwarded messages (#273)Libravatar tobi11
* correct path of foss_satan * add APIri and notes * test create forward note * rename target => receiving account * split up create into separate funcs * update extractFromCtx * tidy up from federator processing * foss satan => http not https * check if status in db * mock dereference of status from IRI * add forward message deref test * update test with activities * add remote_account_2 to test rig
2021-10-04fix logs not working properly (#264)Libravatar tobi6
2021-10-04Refactor/tidy (#261)Libravatar tobi24
* tidy up streaming * cut down code duplication * test get followers/following * test streaming processor * fix some test models * add TimeMustParse * fix uri / url typo * make trace logging less verbose * make logging more consistent * disable quote on logging * remove context.Background * remove many extraneous mastodon references * regenerate swagger * don't log query on no rows result * log latency first for easier reading
2021-09-30allow dereferencing of groups (#256)Libravatar tobi3
2021-09-30handle remote account deletion more systematically (#254)Libravatar tobi1
2021-09-28skip account on error instead of returning error (#251)Libravatar tobi2
* skip account on error instead of returning error * still return error on a real error
2021-09-28Account update issue (#250)Libravatar tobi2
* start poking around * tests * notes and fiddling