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

Developer Integrations #614

Closed
cheeseblubber opened this issue Oct 31, 2022 · 3 comments
Closed

Developer Integrations #614

cheeseblubber opened this issue Oct 31, 2022 · 3 comments
Assignees

Comments

@cheeseblubber
Copy link
Collaborator

We have a lot of requests for developer api's for Linen we should set up a way for developers to setup an API key and setup rate limits on each key.

There are a few goals here:

  • Developers who wants to build integrations with Linen
  • Developers who wants to build bots with Linen
  • Developers who wants to sync data into Linen from different sources

We can have a further discussion on this feature but using this as the beginning of the discussions

@dannysheridan
Copy link

+1 I'm interested in helping Linen offer client libraries when the time is right! My company, Fern, auto-generated client SDKs in Node, Java, Python, etc.

@cheeseblubber cheeseblubber changed the title Developer API keys Developer Integrations Dec 19, 2022
@cheeseblubber
Copy link
Collaborator Author

For the first version we should set the goal of giving a developer the ability to sync conversations into Linen.

  1. As a developer I can create an api key

  2. The api key should only work per community

  3. As a developer I can create a bot user (this is how we can limit the bot’s permission to only modify their own resources)

  4. As a developer I can switch out the api key

  5. When someone sends a valid api key we should allow them to post to:

    1. We should allow them to only modify and delete their own messages/channels/users
    2. Rest api for messages
    3. Rest api for threads
    4. Api for channels
      1. history for channels (list all threads and messages)
      2. list all channels
    5. Rest api for users (Should we have a field for bot created or bot owner?) I’d rather not have bot be able to delete and create all users. (In the future we want a more granular approach but for the time being we want to limit the usage)
      1. Create users
      2. List users
      3. Edit users
      4. delete users

    (Early draft looking for feedback)

@wey-gu
Copy link

wey-gu commented Dec 20, 2022

I am not experienced in defining APIs, but I'll try my best to provide "wishes", which hopefully isn't silly :)

  • it seems we need proper scoping/RBAC mapped to different API action permissions.

  • For messages, we could refer to slack(https://api.slack.com/methods/chat.postMessage) for fields as we shared a similar design, where, for the avatar, there is the capability to enable avatar(when as_user is true) with file or emoji, on top of that, maybe when the username field is an email or(OpenID? mastodon account, gravatar), we could support corresponding avatar system, too(consider we are not leveraging user system from linen in this case)?

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

No branches or pull requests

4 participants