Hi team.
I'm in the starting phase of building out a slack bot that interacts with github. The main/initial use case is to identity stale branches via some heuristics and prompt slack users repeatetly if they want to delete them - and deleting them automatically after a few days of non-response from the slack users.
I'm planning to use firebase for storage (instead of slack's built-in datastore) since I need to build also some custom admin UI stuff etc. on top of the data that doesn't fit cleanly into slack datastore API (I for example want to keep a history of when / how often a user has been bugged about a particular branch and automatically expire entries via TTL to make sure the db doesn't grow infinitely in size).
As I was reading docs and trying out things I'm slightly confused by the different options and constraints the slack dev SDKs provide.
This is my impression so far:
- bolt@3 on node - proven track but legacy / lower level API - deployment outside slack platform
- bolt@4/future on node - proven runtime but the bolt@4/nextgen/future lib seems not well maintained - last update was 8 months. Ts-template isn't working. Deployment outside slack platform.
- deno-slack-sdk on deno, deployed on slack platform. Higher level API but seemingly constrained to be deployed to slack platform?
Is there an option 4 - using deno-slack-sdk / next gen SDK/API and Deno but deploy this on my own infrastructure (probably GCP Cloud Run)?
While option 3 sounds pretty convenient the fact that my app interacts with a lot of outside systems makes me a bit wary of deploying this via option 3. In particular stuff like creating an external admin UI (but still be able to call slack) and modern observability (the current logging functionality of slack platform seems pretty basic compared to the observability stack we use for other apps in GCP and co and I worry how I can monitor and troubleshoot the app if it crashes etc.).
So, I'm wondering - any recommendations on what I should do? Is an option 4 already there or on the roadmap (i.e. deno app using new SDK/API but deployed outside slack platform)?
I don't mind bleeding edge, using Deno etc, but locking myself into deploying the app within slack and then operating within its constraints is something I'd ideally like to avoid.
Also more generally wondering - is the "new platform" meant to eventually supersede bolt or are they meant to coexist forever?
Appreciate your insights.
Best, Christian
Hi team.
I'm in the starting phase of building out a slack bot that interacts with github. The main/initial use case is to identity stale branches via some heuristics and prompt slack users repeatetly if they want to delete them - and deleting them automatically after a few days of non-response from the slack users.
I'm planning to use firebase for storage (instead of slack's built-in datastore) since I need to build also some custom admin UI stuff etc. on top of the data that doesn't fit cleanly into slack datastore API (I for example want to keep a history of when / how often a user has been bugged about a particular branch and automatically expire entries via TTL to make sure the db doesn't grow infinitely in size).
As I was reading docs and trying out things I'm slightly confused by the different options and constraints the slack dev SDKs provide.
This is my impression so far:
Is there an option 4 - using deno-slack-sdk / next gen SDK/API and Deno but deploy this on my own infrastructure (probably GCP Cloud Run)?
While option 3 sounds pretty convenient the fact that my app interacts with a lot of outside systems makes me a bit wary of deploying this via option 3. In particular stuff like creating an external admin UI (but still be able to call slack) and modern observability (the current logging functionality of slack platform seems pretty basic compared to the observability stack we use for other apps in GCP and co and I worry how I can monitor and troubleshoot the app if it crashes etc.).
So, I'm wondering - any recommendations on what I should do? Is an option 4 already there or on the roadmap (i.e. deno app using new SDK/API but deployed outside slack platform)?
I don't mind bleeding edge, using Deno etc, but locking myself into deploying the app within slack and then operating within its constraints is something I'd ideally like to avoid.
Also more generally wondering - is the "new platform" meant to eventually supersede bolt or are they meant to coexist forever?
Appreciate your insights.
Best, Christian