Goflow
Specification
See https://nyaruka.github.io/goflow/ for the complete specification docs.
Runner
This program provides a command line interface for stepping through a given flow.
% go install github.com/nyaruka/goflow/cmd/flowrunner
% $GOPATH/bin/flowrunner cmd/flowrunner/testdata/flows/two_questions.json
Server
This server provides an HTTP endpoint for stepping through a given flow:
% go install github.com/nyaruka/goflow/cmd/flowserver
% $GOPATH/bin/flowserver
Expression Tester
This utility provides a quick way to test evaluation of expressions which can be used in flows:
% go install github.com/nyaruka/goflow/cmd/exptester
% $GOPATH/bin/exptester '@(10 / 5 >= 2)'
% $GOPATH/bin/exptester '@(TITLE("foo"))'
Development
You can run the flow server with detailed output of actions being executed and events being applied with:
% $GOPATH/bin/flowserver --log-level=debug
You can run all the tests with:
% go test github.com/nyaruka/goflow/...
If you've made changes to the flow server response format, regenerate the test files with:
% go test github.com/nyaruka/goflow/cmd/flowrunner -write
If you've made changes to the flow server static files, you should regenerate the statik module with:
% go generate github.com/nyaruka/goflow/cmd/flowserver
To make a new release:
% git tag v?.?.?
% git push origin v?.?.?
% goreleaser