Go Exec Engine is an open source project that provides a framework for executing various types of commands. This includes support for executing shell commands, scripts, and HTTP requests. You can define these commands in a configuration file and control their execution through the API.
This project is useful for automating tasks, webhooks and microservices orchestration, and more.
- Support for multiple types of commands: HTTP, Bash and Exec.
- Support for different protocols: HTTP and Pub/Sub.
- JWT Authentication for HTTP requests.
- Command validation with JSON and Avro schemas.
- Ability to start, stop, and restart the execution engine.
- Clone the repository:
git clone https://github.com/asyrafduyshart/go-exec-engine.git
- Change the working directory:
cd go-exec-engine
- Install the project:
go install
goexec [start|stop|restart] --config=<path_to_config_file>
The project uses a configuration file in YAML format. You can specify the path to the configuration file using the --config
flag.
Here is an example of the configuration file:
log_level: debug
jwks_url: "https://url/.well-known/jwks.json"
access_log:
commands:
- name: "trigger"
protocol: "pubsub"
target: "dev-trigger-task"
type: "exec"
exec: "echo yomama"
validate: false
schema-type: "avro"
schema: "test.avsc"
- name: "exec"
target: "exec-test"
type: "exec"
exec: "echo HelloWorld!"
validate: true
schema-type: "json"
schema: "./schema/test.avsc"
- name: "deployfrontend"
protocol: "http"
target: "/deploy/frontend"
type: "bash"
exec: "./deploy-frontend.sh"
authentication: true
validate-claim:
role:
- admin
- employee
- engineer
scope:
- user:read_write
validate: true
schema-type: "json"
schema: "./schema/deploy-frontend.json"
If you are using Pub/Sub from Google, set the following environment variable:
export GOOGLE_APPLICATION_CREDENTIALS="$(pwd)/googlekey.json"
Go Exec Engine is open-source software licensed under the MIT license.
Go Exec Engine was created by Asyraf Duyshart.