Exploding BPMN is like the game Exploding Kittens but with BPMN symbols. The game is modeled in BPMN and executed in Camunda 8 SaaS.
The Slack application provides two commands:
/how-to-play-exploding-bpmn
- prints a basic manual/exploding-bpmn
- creates a new game- provide the player names as argument (e.g.
/exploding-bpmn @me @player2 @player3
) - use a player name like
bot_*
to add a bot (e.g./exploding-bpmn @me bot_1 bot_2
) - the game is played in private chats with the app
- provide the player names as argument (e.g.
- Creating a new Slack App: https://api.slack.com/apps
- Activate Incoming Webhooks
- Enable Interactive Components
- Setting request url to
${BASE_URL}/slack/action
- Create Slash Commands
- New command
/exploding-bpmn
with request url${BASE_URL}/slack/command/new-game
- New command
/how-to-play-exploding-bpmn
with request url${BASE_URL}/slack/command/how-to-play
- Configure the Scopes (i.e. permissions) under
OAuth & Permissions
chat:write
chat:write.public
im:write
commands
incoming_webhook
- Store the OAuth Token for Your Workspace from
OAuth & Permissions
- Installing the app to the workspace
The docker image is built and pushed using Jib.
mvn clean deploy
# check the k8s cluster
kubectx -c
# create a new namespace
kubectl create namespace exploding-bpmn
# switch to namespace
kubens exploding-bpmn
# deploy resource definition
cd k8s
kubectl apply -f exploding-bpmn-app-secret.yaml
kubectl apply -f exploding-bpmn-app.yml
# check the status
kubectl get pods
# check the logs
kubectl logs exploding-bpmn-app
# get the public IP address
kubectl get services
- Open the Slack app
- Set the public IP address for Interactivity Request URL
- Set the public IP address for Slash commands
- Download and run ngrok
- Setting request URLs to
ngrok.io
- Start the application
- Start a new game by creating a new instance of
exploding-kittens
- with a variable
playerNames
(e.g.["player1","player2"]
)
Environment variables:
SLACK_TOKEN
ZEEBE_CLIENT_CLOUD_CLUSTERID
ZEEBE_CLIENT_CLOUD_CLIENTID
ZEEBE_CLIENT_CLOUD_CLIENTSECRET
ZEEBE_CLIENT_CLOUD_BASEURL
(default:zeebe.ultrawombat.com
)ZEEBE_CLIENT_CLOUD_REGION
(default:bru-3
)ZEEBE_CLIENT_CLOUD_AUTHURL
(default:https://login.cloud.ultrawombat.com/oauth/token
)