Skip to content

Conversation

Half-Shot
Copy link
Contributor

@Half-Shot Half-Shot commented Sep 1, 2025

@Half-Shot Half-Shot changed the title Initial draft of "MSC4336: Appservice API to suppliment user profiles" MSC4337: Appservice API to suppliment user profiles Sep 1, 2025
@@ -0,0 +1,147 @@
# MSC4337: Appservice API to supplement user profiles
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementations:

  • Synapse (partial, no unstable prefixes)
  • [Bot-SDK][] TBD
  • [Implemenation)[] TBD

@Half-Shot Half-Shot marked this pull request as ready for review September 1, 2025 11:45
@ara4n ara4n changed the title MSC4337: Appservice API to suppliment user profiles MSC4337: Appservice API to supplement user profiles Sep 1, 2025
@turt2live turt2live added proposal A matrix spec change proposal application services client-server Client-Server API kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. kind:feature MSC for not-core and not-maintenance stuff and removed client-server Client-Server API kind:maintenance MSC which clarifies/updates existing spec labels Sep 2, 2025
Comment on lines +21 to +24
- `origin_server` The server name of the server requesting the profile, *if* the profile is requested
over federation. Otherwise, omit.
- `from_user_id` The user MxID of the user requesting the profile, *if* the requesting user is known.
Otherwise, omit.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What error is used if both are provided? Is it valid to provide neither?

Comment on lines +87 to +89
Application services may respond with a `404` `M_NOT_FOUND` if they do not provide any information
for the given `userId`. They may also choose to do this if they do not want to divulge information
about a given user to another user or service.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this affect merging behavior?


### Application service selection

Any homeserver with a matching `namespaces.users` field for the requested `userId` should be used
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Any homeserver with a matching `namespaces.users` field for the requested `userId` should be used
Any application service with a matching `namespaces.users` field for the requested `userId` should be used

Maybe? I'm not sure what this sentence is saying.

Comment on lines +101 to +103
when querying the profile. The resulting profile should be merged together. The order of application services
here is **NOT** stable, and so if multiple application services set the same field on the same user
then there is potential for instability. Server admins should take care not to register multiple application
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this already an issue today with overlapping ASes for other features, or new to this feature?

Comment on lines +56 to +57
The homeserver should *always* request the profile from the application service even if the `key` is already
present in the user's stored profile. For instance, given a profile of:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Always sounds strong, it is only when an AS has some control over a user ID.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
application services kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants