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
merged 6 commits into from Aug 27, 2018

Conversation

2 participants
@turt2live
Member

turt2live commented Aug 24, 2018

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

turt2live added some commits Aug 23, 2018

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.

@turt2live turt2live requested a review from matrix-org/spec-core-team Aug 24, 2018

@turt2live turt2live added this to In review in August 2018 r0 via automation Aug 24, 2018

@Half-Shot Half-Shot referenced this pull request Aug 24, 2018

Closed

r0 for the Application Services API #1333

10 of 11 tasks complete
++++++++++++++++++++
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

This comment has been minimized.

@ara4n

ara4n Aug 27, 2018

Member

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

This comment has been minimized.

@turt2live

turt2live Aug 27, 2018

Member

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.

This comment has been minimized.

@ara4n

ara4n Aug 27, 2018

Member

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

This comment has been minimized.

@ara4n

ara4n Aug 27, 2018

Member

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

This comment has been minimized.

@ara4n

ara4n Aug 27, 2018

Member

Retrieve

@ara4n

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

Member

turt2live commented Aug 27, 2018

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

This comment has been minimized.

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

This comment has been minimized.

Member

turt2live commented Aug 27, 2018

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

This comment has been minimized.

Member

turt2live commented Aug 27, 2018

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.

This comment has been minimized.

@ara4n

ara4n Aug 27, 2018

Member

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.

This comment has been minimized.

@ara4n

ara4n Aug 27, 2018

Member

Retrieve

@ara4n

This comment has been minimized.

Member

ara4n commented Aug 27, 2018

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

August 2018 r0 automation moved this from In review (just the PRs) to Reviewer approved Aug 27, 2018

@ara4n

ara4n approved these changes Aug 27, 2018

@turt2live turt2live merged commit 97508d5 into matrix-org:master Aug 27, 2018

4 checks passed

ci/circleci: build-docs Your tests passed on CircleCI!
Details
ci/circleci: build-swagger Your tests passed on CircleCI!
Details
docs Click details to preview the HTML documentation.
Details
swagger Click to preview the swagger build.
Details

August 2018 r0 automation moved this from Reviewer approved to Done (this list will be incomplete) Aug 27, 2018

@turt2live turt2live deleted the turt2live:travis/general/appservice-directories branch Aug 27, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment