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 Services #358

Closed
matrixbot opened this issue Oct 30, 2024 · 10 comments
Closed

Application Services #358

matrixbot opened this issue Oct 30, 2024 · 10 comments

Comments

@matrixbot
Copy link
Collaborator

This issue was originally created by @turt2live at matrix-org/dendrite#358.

bounty

Currently this is under phase 4 for dendrite, however I'd certainly like to see it in an earlier phase. This includes:

  • Loading application service configurations
  • The application service API
  • Supporting application services on the various client endpoints

An incredibly nice to have feature of this would also be documentation on how this API works.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @anoadragon453 at matrix-org/dendrite#358 (comment).

To break the tasks down a bit further:

  • Allow application services to register users in their namepsaces defined in the config files.
  • Look at each event and figure out if it should be sent to the AS, if so do that (with ability to batch requests up while doing so).
  • Make the APIs support the way that AS's interact with the API, which is use their master access_token and specify a user_id= param.

Application Services API docs

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @anoadragon453 at matrix-org/dendrite#358 (comment).

In terms of users, Application Services specifically:

  • Register for a namespace which is a regex pattern which their user's usernames matches. They can say whether they have exclusive rights to their namespace or not.
  • They can register a password-less user as long as the username lies within their namespace.
  • They can then call any API endpoint masquerading as that user with /path?access_token=$token&user_id=$userid.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @turt2live at matrix-org/dendrite#358 (comment).

Just for tracking purposes, here's the PR progress so far:

If I'm not mistaken, what's left to do is:

Thanks for your amazing progress so far on this @anoadragon453! It's looking pretty good, and I'm really excited to see it implemented.

Edit: Update with current progress - @anoadragon453

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @anoadragon453 at matrix-org/dendrite#358 (comment).

@turt2live Thanks for summing it all up! I plan to add AS support to endpoints next (hopefully in some transparent fashion that future endpoints can use without hassle), then work on communicating directly the AS's.

And tests, need to start writing those :)

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @turt2live at matrix-org/dendrite#358 (comment).

More for tracking purposes:

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @anoadragon453 at matrix-org/dendrite#358 (comment).

I'm also tracking progress in the spreadsheet fwiw.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @Half-Shot at matrix-org/dendrite#358 (comment).

Modulo #468 being verified as fixed, I don't know if this issue is very useful going forwards. All the basic AS features have landed and we can track the thirdparty endpoints / misc things as issues.

Any votes for keeping this open?

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @anoadragon453 at matrix-org/dendrite#358 (comment).

Ah memories...

I'm fine with closing it now that basic support is there. @turt2live?

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @turt2live at matrix-org/dendrite#358 (comment).

yea, I think this is done enough. Is there someone who is able to accept the bounty or should I get it moved to another issue? (not sure how many people are involved, and whether it would count as conflict of interest/non-compete)

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @Half-Shot at matrix-org/dendrite#358 (comment).

I think the PRs have come over several years, some of which have since been broken and unbroken. Suggest you move the bounty, unless I am forgetting someone (please ping loudly).

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

No branches or pull requests

1 participant