Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Application service room directories (and other third party network things) #1554

Merged

Conversation

turt2live
Copy link
Member

Rendered: see 'docs' status check.

This may be best to review commit by commit.


Move the third party network API to it's own section

Update third party network schemas
Some information was missed when this was reviewed. This commit adds some additional documentation for how these objects interact with each other.

Document third party network/protocol directories (for appservices)
Fixes #869

Some information was missed when this was reviewed. This commit adds some additional documentation for how these objects interact with each other.
@turt2live turt2live requested a review from a team August 24, 2018 17:09
++++++++++++++++++++

Application services may declare which protocols they support via their registration
file. These networks are generally for third party services such as IRC that the
Copy link
Member

Choose a reason for hiding this comment

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

registration files are an implementation specific quirk, i think? This should be "which protocols they support via their registration configuration at the homeserver"?

Copy link
Member Author

Choose a reason for hiding this comment

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

registration files are currently in the spec (introduced when the self-registration API was removed), although +1 to making it more generic for future support.

Copy link
Member

Choose a reason for hiding this comment

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

oh, right, of course. prolly best leave it talking about 'registration file' or 'registration config file'.

application service is managing. Application services may populate a Matrix room
directory for their registered protocols, as defined in the Client-Server API Extensions.

Each protocol may have several "locations". A location within a protocol is a place
Copy link
Member

Choose a reason for hiding this comment

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

for consistency with Leo's nomenclature elsewhere we should probably say "aka 3rd party locations or 3PLs")

get:
summary: Reverse-lookup third party locations given a Matrix room alias.
description: |-
Retreive an array of third party network locations from a Matrix room
Copy link
Member

Choose a reason for hiding this comment

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

Retrieve

@ara4n
Copy link
Member

ara4n commented Aug 27, 2018

okay, so i had no idea that 3rd party directories actually got implemented in synapse (sorry Leo). Do any ASes actually implement them?

@ara4n
Copy link
Member

ara4n commented Aug 27, 2018

(i guess this all looks okay, but i'm a bit worried about speccing stuff which might not have been used in anger)

@turt2live
Copy link
Member Author

I believe the IRC bridge, Gitter, and Slack all use them (I think, at least going off of the riot room directory). Discord also makes use of them (I'm pretty sure).

@ara4n
Copy link
Member

ara4n commented Aug 27, 2018

Hm. am I totally misreading this then? the API looks like it lets the HS query the AS for the list of rooms that the AS could expose - as opposed to just tagging which rooms happen to come from a given AS in the directory. I'm aware we do the latter in publicRooms, but is anything doing the former?

@turt2live
Copy link
Member Author

Ah, right. This isn't HS->AS communication (it's AS->HS with the intent of the HS taking care of it), but it is used at least by IRC and Gitter: https://github.com/search?q=org%3Amatrix-org+org%3Avector-im+setRoomDirectoryVisibilityAppService&type=Code

It also has sytests: https://github.com/matrix-org/sytest/blob/cab0f6b3a0ae8c8324f5c8ab609ac6286da178ca/tests/60app-services/06publicroomlist.pl#L53

@turt2live
Copy link
Member Author

Although a search across all of github doesn't yield more than that, which may be a result of it not being in the spec?

$ref: ../client-server/definitions/errors/error.yaml
"/_matrix/app/unstable/thirdparty/location/{protocol}":
get:
summary: Retreive Matrix-side portal rooms leading to a third party location.
Copy link
Member

Choose a reason for hiding this comment

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

Retrieve

get:
summary: Reverse-lookup third party users given a Matrix User ID.
description: |-
Retreive an array of third party users from a Matrix User ID.
Copy link
Member

Choose a reason for hiding this comment

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

Retrieve

@ara4n
Copy link
Member

ara4n commented Aug 27, 2018

right, 5403296 mitigates my confusion nicely; thanks. lgtm!

@turt2live turt2live merged commit 97508d5 into matrix-org:master Aug 27, 2018
@turt2live turt2live deleted the travis/general/appservice-directories branch August 27, 2018 23:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants