An incomplete list of tasks for Gort by milestone. Tasks listed within a milestone are mostly unordered.
This is ABSOLUTELY NOT an exhaustive list. Please feel free to add to it. If what you want to add doesn't have an open issue, please create one of these as well.
- The Gort Guide : started here ✅
- Document how command bundles are supposed to work. ✅
- Ensure command bundle behavior is consistent with documentation. ✅
- Encrypt Gort REST service communications. ✅
- Allow a TLS certificate to be installed by Gort controller. ✅
- MUST loudly warn on startup if one is not being used. ✅
- Gortctl SHOULD warn when not using an encrypted connection. ✅
- Allow a TLS certificate to be installed by Gort controller. ✅
- Inject database password via an envvar so we don't have to add it as plain text in the config. ✅
- Figure how we want to do it. ✅
- Actually DO it. ✅
- Functional health check endpoint. ✅
- Observability
- Metrics endpoint ✅
- Distributed tracing ✅ (only supports Jaeger for MVP)
- Command audit log ✅
- All commands MUST be written to the database ✅
- Including a unique identifier, Gort user ID and email, full command as typed, command+bundle (and version), originating adapter+channel, and status code ✅
- Every command request MUST have a unique identifier ✅
- All relevant log events MUST include this command identifier ✅
- All commands MUST be written to the database ✅
- As it says on the tin: merge merge the gortctl commands into the main Gort repo ✅
- Deprecate
gortctl
and archive its repo. ✅
- Document permissions model and how auth is expected to work; execution rules. ✅
- Command (as entered by a user into chat) interpretation ✅
- Command text tokenizer and parser ✅
- Ability to specify command option behavior in bundles (equivalent to
rules/ParseOption
) ✅
- Rules
- Rule tokenizer and parser ✅
- Roles
- Database schema ✅
role create|destroy
command ✅group grant|revoke
command ✅
- Bundle/command permission assignment ✅
- Runtime command authorization ✅
(Publicly release v0.8.0-alpha.0 at this point)
- This feature allows you to control the look and feel (and, to some degree, content) of any information sent to users in a chat-agnostic way.
- Add colors, images, or other text formatting to your command (a future release will add buttons to chat providers that support it.
- Both Gort system messages and command output message may be customized (within the constraints imposed by a given chat provider).
- Templates can be defined at the application configuration level, the bundle level, and even the individual command level. Or you can just use the defaults. They're fine.
- JSON objects output by commands are easily accessible.
- For more information about Templates, see the official documentation.
- Triggers
- Allow Gort to execute existing bundled commands in response to non-command chat input.
- Dynamic Configuration
- Configuration values will be securely stored in Gort (more specifically, in a secure secret storage backend, such as Hashicorp Vault).
- Values will be able to be associated with specific bundles and/or roles/users.
- Appropriate values will be injected into worker containers as either environment variables or files.
- Expose custom (auth-gated) RESTful endpoints that can be used to execute existing bundled commands.