Commit Graph

1155 Commits

Author SHA1 Message Date
gnuxie d8dc0facdf Clarify error in takedown command while fetching room details. 2025-03-22 13:46:05 +00:00
gnuxie 27142cf722 Create top level stores in integration test fixtures. 2025-03-22 11:38:21 +00:00
gnuxie aea1d1d36e Plumb in SynapseAdminRoomTakedownCapability.
Was missing registration.  It sucks that the factory for capability
providers doesn't let us return a Result type??
2025-03-22 11:37:10 +00:00
gnuxie 6168669fff Update Draupnir for reworked hash reversal.
We introduced a new PolicyRuleChangeType enum with a variant for
revealed literals.  And we changed our mind about where reversal will
happen, it'll happen in the room state manager factory.
2025-03-22 11:35:57 +00:00
gnuxie 15c1bf23a9 Rework hash store to support storing details about all entities. 2025-03-21 16:19:09 +00:00
gnuxie 1d0feb724a Update Draupnir for new PolicyListRevision API.
We should probably have just accepted multiple recommendations in all
these methods.
2025-03-21 16:19:09 +00:00
gnuxie fa3bce12d6 Include policy entity in the takedown audit log policy info. 2025-03-21 16:19:09 +00:00
gnuxie f92d18662c getTakedownDetails query improvements.
Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>
2025-03-21 16:19:09 +00:00
gnuxie 862ed5c500 Remove duplicated hasEnded variables in BetterSqliteStore.
`db.open` has the same purpose.

Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>
2025-03-21 16:19:09 +00:00
gnuxie b5e3ebb53a Explicitly choose the setting of temp_store in better sqlite.
Memory isn't the default.

Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>
2025-03-21 16:19:09 +00:00
gnuxie 522eae6ce2 Be explicit when returning ROWID after INSERT in audit log.
Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>
2025-03-21 16:19:09 +00:00
gnuxie a17cd51763 Clean up queries in hash store.
Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>
2025-03-21 16:19:09 +00:00
gnuxie 6203171c71 Fix delete room/all rooms in RoomStateBackingStore.
Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>
2025-03-21 16:19:09 +00:00
gnuxie 377917f6f4 Improve Sqlite wrapper Schema migration.
This cleans up all of the code surrounding schema migration and allows
the migration procedure to be transactional so that people can
downgrade draupnir if something explodes.

Co-authored-by: Bea <20361868+enbea@users.noreply.github.com>
2025-03-21 16:19:09 +00:00
gnuxie ef592a95e4 Plumb takedown command into room discovery. 2025-03-21 16:19:09 +00:00
gnuxie 8cf7e4b638 Add initial draft of takedown command.
Now we need to hook in discovery when the command is run.
2025-03-21 16:19:09 +00:00
gnuxie 19a78d670c Some shite that didn't get comitted to do with messing up hash store. 2025-03-21 16:19:09 +00:00
gnuxie a6b6508af1 Update unban code for unmasked hashed entities.
We will need to work harder to remove masked hashed entities...
2025-03-21 16:19:09 +00:00
gnuxie eaa21680cf Missing stores initialization code in test fixtures. 2025-03-21 16:19:09 +00:00
gnuxie 0de853b413 Update Draupnir policy handling code for hashed entities. 2025-03-21 16:19:09 +00:00
gnuxie 2909464d36 Store user and server in room hash store too. 2025-03-21 16:19:09 +00:00
gnuxie 9d5e19514a Store details about the room at takedown in the audit log.
We need to do this because they will be impossible to obtain once the
room has been blocked on the server.

We also need to make sure we now include the server the room was
created on, and the creator in the room hash store.
2025-03-21 16:19:09 +00:00
gnuxie 7f0a8da41f Flesh out RoomDiscovery some more.
I really need to move the room details to the audit log, it's there
so we can see what the rooms are that have been takendown.
2025-03-21 16:19:09 +00:00
gnuxie 4fdb142ac2 Only audit takedown when capabilities are not simulated. 2025-03-21 16:19:09 +00:00
gnuxie 003410d41a Change the order of checking the audit log. 2025-03-21 16:19:09 +00:00
gnuxie b80a503ea0 Improve hash store replace query a little.
I'm after realising this whole thing is a mess but there's no time to fix it.
2025-03-21 16:19:08 +00:00
gnuxie 1e581d7394 Test room takedown service and add thoughts to FIXME. 2025-03-21 16:19:08 +00:00
gnuxie d15322dff6 Test and fix the hash store. 2025-03-21 16:19:08 +00:00
gnuxie 442b930d89 Unit test and fix sqlite room audit log. 2025-03-21 16:19:08 +00:00
gnuxie 3f00346ae6 Plumb in SynapseHTTPAntispam to RoomTakedownProtection room discovery. 2025-03-21 16:19:08 +00:00
gnuxie 7b212d75aa Fix typo in SynapseHTTPAntispam UserMayJoinRoom handle. 2025-03-21 16:19:08 +00:00
gnuxie 15f94bc2b2 Export request body types from SynapseHTTPAntispam. 2025-03-21 16:19:08 +00:00
gnuxie 62079457e9 Move roomStateBackingStore into TopLevelStores abstraction. 2025-03-21 16:19:08 +00:00
gnuxie 4ae5e5f63a Begin process of creating top level stores.
We now need to move the roomStateBackingStore into this thingy.
2025-03-21 16:19:08 +00:00
gnuxie b50033ba4a Fix manual launch script for changed room backing store interface. 2025-03-21 16:19:08 +00:00
gnuxie 25f39e20d0 Start plumbing up RoomTakedownProtection into Draupnir.
There are a couple of FIXME's to address. Such as plumbing
up the stores into draupnir and how to poll for new rooms.
2025-03-21 16:19:08 +00:00
gnuxie b8bf6c5692 Add RoomTakedownCapability and SynapseAdmin implementation. 2025-03-21 16:19:08 +00:00
gnuxie 7282374caf Clean up better-sqlite store so that we can test stores with in memeory dbs. 2025-03-21 16:19:08 +00:00
gnuxie b7b9cc78c9 Initial RoomTakedown "service".
I want to change the APIs a little bit so that we can get a takedown
reporter like the audit log but for message rendering and testing.

I also want to make the BetterSqliteStore concrete not depend
on where the database came from so that we can use in memory
databases for unit testing stores.

There are a couple other FIXME's littered around so be sure to check
those before merging.
2025-03-21 16:19:08 +00:00
Gnuxie 4ca8d23938 Merge pull request #758 from the-draupnir-project/gnuxie/synapse-http-antispam
synapse-http-antispam support
2025-03-14 17:42:57 +00:00
gnuxie 4e9d2a010a We have got issues with utils.ts... 2025-03-14 17:29:17 +00:00
gnuxie 9a9547feb5 Add configuration for synapse-http-antispam. 2025-03-14 17:29:17 +00:00
gnuxie cb6af646d8 Replace antispam with http-antispam in mx-tester. 2025-03-14 17:29:17 +00:00
gnuxie 33e649c508 Add library code to support synapse-http-antispam.
We now need to add config, plumbing, and tests.
2025-03-14 17:29:17 +00:00
gnuxie 2e33e65892 Allow errors from appservice cli to propagate to the top level. 2025-03-12 10:21:17 +00:00
gnuxie 0ede5c8682 Add config schema to appservice config.
Make appservice datapath example consistent with docker image.

Make the appservice config schema check the admin room properly.

We now parse the room id/alias/or permalink.

Make sure to parse the config from cli.ts
2025-03-12 10:21:17 +00:00
Marcel a0f7ee5bb3 Set up state store if configured in d4all mode (#753)
* Set up state store if configured in d4all mode

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Ensure the dataPath is set in both the example and harness appservice config

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Move the SqliteRoomStateBackingStore creation to a static method instead

Signed-off-by: MTRNord <mtrnord1@gmail.com>

* Make the storage path canonicalization less confusing

---------

Signed-off-by: MTRNord <mtrnord1@gmail.com>
2025-03-11 20:45:09 +00:00
Bea 04d21a2942 Address #746 and a small SQLite optimization.
Explicitly set the `temp_store` pragma to `file` instead of `memory`
after deciding to place temporary files in `/data` to keep RAM usage
down while addressing #746.

Added a helper function to automatically "flatten" transactions
when you don't need SAVEPOINTs to avoid unnecessary temporary files.

Signed-off-by: Bea <20361868+enbea@users.noreply.github.com>
2025-03-09 17:29:27 +00:00
Gnuxie 0bc511a002 Add a protection to stop excess membership changes. (#748) 2025-03-07 18:02:07 +00:00
gnuxie 6ad94dc1cb v2.2.0 v2.2.0 2025-03-03 19:02:19 +00:00