Cloudy can query across workspaces. Only install into workspaces you trust. Controlled with SLACK_AUTHORIZED_TEAMS
Cloudy is deployed to prod automatically on push to main
at https://cloudy-server.onrender.com
You can develop Cloudy locally by following these steps:
# Clone the Lightdash cloud announcer repo
git clone https://github.com/lightdash/lightdash-cloud-announcer.git
ℹ️ app id for "dev Cloudy" is A03NM81NBFD
SLACK_SIGNING_SECRET=Get variable from slack app settings
SLACK_CLIENT_ID=Get variable from slack app settings
SLACK_CLIENT_SECRET=Get variable from slack app settings
SLACK_STATE_SECRET=this can be anything
SLACK_AUTHORIZED_TEAMS=T0163M87MB9,T03942PB7E3
PG_CONNECTION_STRING=postgres://user:pass@host:port/database
SITE_ENV=https://cloudy-dev-crazy-cayote.loca.lt
GITHUB_WEBHOOKS_SECRET=Create a new webhook with a secret
GITHUB_ACCESS_TOKEN=Create a new access token
RUDDERSTACK_WRITE_KEY=Get your Rudderstack write key here
RUDDERSTACK_DATA_PLANE_URL=Get your data plane URL here
# Install all the project's dependencies
npm install
# Run the app locally
npm run dev
# build and start
npm run build && npm start
read more on cloudflared and custom lightdash.dev domains here
npm expose irakli # exposes irakli.lightdash.dev domain
Now you need to update the URLs with the cloudflared URL:
- Update the
SITE_ENV
environment variable - Update all domains in the
/slack-app-manifest.json
- Create or update a slack app at
https://api.slack.com
- Copy in the
slack-app-manifest.json
(change command names and bot name if in dev) - Get all the secrets from the "basic information" and update:
SLACK_SIGNING_SECRET
SLACK_CLIENT_ID
SLACK_CLIENT_SECRET
Go to webhooks and create a new webhook
- Payload URL
https://[ngrok domain]/api/github/webhooks
- Content type:
application/json
- Add a secret variable (it can be anything)
- Enable SSL
- "Let me select individual events" ->
Issues
only - Active ✔️
In the app add the following variables:
GITHUB_WEBHOOKS_SECRET=the secret you chose above (it can be anything but must match the one you provided to github)
GITHUB_ACCESS_TOKEN=a personal access token for GitHub
npm run dev
Once the app is running, in your webhook settings in GitHub verify that you can receive the ping event:
In Slack under "event subscriptions" check you can receive the ping event:
visit https://yourdomain.com/slack/install
:info: installing from the slack app settings won't work.
- Update all URLs for prod deployment
- Under "manage distribution" set to "publicly available"
npm knex -- migrate:make <migration_name> --env production