From 2b5360a000b2a66ed42fb5ba76eeb9494c3e6409 Mon Sep 17 00:00:00 2001 From: Michael Jerger Date: Thu, 18 Jan 2024 19:20:15 +0100 Subject: [PATCH] work on adr --- .../adr-map-federated-person.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/unsure-where-to-put/adr-map-federated-person.md b/docs/unsure-where-to-put/adr-map-federated-person.md index db3076a504..6220d0a937 100644 --- a/docs/unsure-where-to-put/adr-map-federated-person.md +++ b/docs/unsure-where-to-put/adr-map-federated-person.md @@ -17,7 +17,13 @@ Still in discussion ## Context -While implementing federation we have to represent persons federated to a local instance. A federated person should be able to execute local actions (as it was a local user) without to many code changes. But the federated person should be able to map to the origin person and keep the crypto stuff to ensure action integrity. +While implementing federation we have to represent federated persons to a local instance. + +A federated person should be able to execute local actions (as it was a local user) without too many code changes. + +For being able to map the federated person reliable, the local representation has to carry a clear mapping to the original federated person. + +We get actor information as `{"actor": "https://repo.prod.meissa.de/api/v1/activitypub/user-id/1",}`. Find out whether this user is available locally without dereference the federated person is important for performance & system resilience. ## Decision @@ -29,10 +35,8 @@ tbd Triggering forgejo actions stays as is, no new model & persistence is introduced. -1. We map PersonId AsLoginName() (e.g. 13-some.instan.ce) to User.LoginName. -2. We accept only URIs as Actor Items -3. We can lookup for federated users without fetching the Person every time. -4. Created User is limited: +1. We map PersonId AsLoginName() (e.g. 13-some.instan.ce) to User.LoginName. Due to limitations of User.LoginName validation mapping may be affected by invalid characters. +2. Created User is limited: 1. non functional email is generated, email notification is false. 2. strong password is generated silently 3. User.Type is UserTypeRemoteUser