gravitational / teleport-plugins

Set of plugins for Teleport
Apache License 2.0
82 stars 81 forks source link

Split teleport-slack OSS and teleport-slack Enterprise versions #183

Closed natikgadzhi closed 3 years ago

natikgadzhi commented 3 years ago

The first part of upgrading Teleport Slack integration to the new Access Workflows API.

Teleport Enterprise will provide a web UI to work with Access Workflows. With that, we can reduce the amount of trusted services to just Teleport, and all of our integrations will work just as a notification channels, only require requests_read permission to function.

This issue covers splitting out teleport-slack Enterprise and teleport-slack OSS.

Teleport Slack OSS

Should largely work as it works now, with some updates to the Access Request API described in #184. It would still post either just a notification of a new access request, or a notification with approve / decline buttons to a shared channel.

Teleport Slack Enterprise

The DMs should only include a link back to Teleport Web UI to a specific access request. The user will click the link, open the request in the web UI, and approve it from Teleport.

This will require the plugin to know the Slack to Teleport user mapping, so the plugin can figure out who to DM. This is not currently implemented.

The user should be able to specify if they want notifications in any channels, and if they do — do they want all notifications, including new requests, or just the approved / denied updates to the requests.

klizhentas commented 3 years ago

There are two versions of the slack plugin:

natikgadzhi commented 3 years ago

@klizhentas, should we have both behaviors in the codebase and detect if Teleport Auth server is running in OSS / Enterprise mode at runtime, or should we just have two separate binaries?

klizhentas commented 3 years ago

I'd have one binary and change behavior based on the flag