kitsune
kitsune copied to clipboard
Create system actor
Pitch
Currently, Kitsune does not have any "system account". But in the future, the system actor is required to
- Sign anonymous fetch request (related issue: #267 )
- Report (Flag) federation (it is possible to implement it without the system actor, but it is strongly advised to anonymize the report (sign with the system actor's key) before sending it to the destination.
- Relay implementation (Relay needs an actor to follow/followed by the relay's actor; related issue: #260 )
Note that the system can have multiple actors for every "purpose".
More questions to be addressed:
- In case of Mastodon Migration, how we should treat Mastodon's special (id: -99) service account?
- It can safely deleted after the migration by broadcasting delete object to every server we know.
- Do not create a default service account and reuse Mastodon's one.
- Unlike Mastodon, Kitsune stores actor's private key in the
userstable. It means, in the current schema, Kitsune is unable to have service accounts but treat them as real "user". Schema refactoring can give more clean implementation, but will need some work.
A schema refactor was actually something I thought about for a while, especially in relation to #201, where we probably want the ActivityPub-specific things, like keypairs, stored away in separate tables.
If you have any ideas on a potential schema redesign, please let me know!