Implement core redaction logic (#1185)

* Implement core redaction logic

- Add a new `redactions_table.go` which tracks the mapping of
  the redaction event ID and the redacted event ID
- Mark redactions as 'validated' when we have both events.
- When redactions are validated, add `unsigned.redacted_because`
  and modify the `eventJSON` accordingly.

Note: We currently do NOT redact the event content - it's gated
behind a feature flag - until we have tested redactions a bit more.

* Linting
This commit is contained in:
Kegsay 2020-07-06 17:49:15 +01:00 committed by GitHub
parent 65084c5052
commit 52c77cb4b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 414 additions and 4 deletions

View file

@ -35,8 +35,7 @@ const eventJSONSchema = `
`
const insertEventJSONSQL = `
INSERT INTO roomserver_event_json (event_nid, event_json) VALUES ($1, $2)
ON CONFLICT DO NOTHING
INSERT OR REPLACE INTO roomserver_event_json (event_nid, event_json) VALUES ($1, $2)
`
// Bulk event JSON lookup by numeric event ID.