Releases: jexia/semaphore
v2.1.0
Quite a lot of new features and fixes were applied 🎉
These are the highlights:
- Filter unused fields from schema in generation of OpenAPI3 contracts (#151)
- Support service discovery servers to resolve service addresses - including a Consul implementation (#158)
- GraphQL schema generation (#161)
- Add a Semaphore header to generated files (#164)
- Avro schema provider (#168)
- JSON specs provider (#170)
- Rewrite URLs - similar to
nginx rewrite
(#172) - Remove go-micro transport (#178)
- OpenAPI3 config should not override the protobuf config (#182)
- Fix OpenAPI3 generation for a flow without inputs (#185)
v2.0.1
A small release containing a bug fix preventing from HTTP request bodies being sent to services.
v2.0.0
🎉 after a lot of hard work and 19 beta releases and 991 commits are we proud to release Semaphore v2.0.0
. Feel free to check it out! If you have any questions feel free to open a new issue on Github or to reach out to the community on Discord.
v2.0.0-beta.19
Hi everyone, hope you are doing well. This release includes many features on which we have been working on really hard in the past months. Below did I include a couple of highlights of what to expect in this release:
- Experimental OpenAPI3 and Protobuf generators (check out
semaphore generate
) (#100 & #107) - HTTP CORS headers (#102)
- Define separate request and response codecs (#109)
- www-form-urlencoded codec (#110)
- Improved logging performance
- Future improvements to test coverage (we are now at +- 85%)
- Header performance improvements
- Refactoring core packages and components
- Experimental tracing improvements including more details (#121)
Feel free to reach out to us through issues or Discord if you have any issues or suggestions.
v2.0.0-beta.18
Changed project name to Semaphore
v2.0.0-beta.17
Small release fixing various bugs and exposing additional internal packages.
v2.0.0-beta.16
Happy Monday, we would like to release conditional logic and error handling to the public for you to try out. These will be the last features before the v2.0.0 release and we would love to get your feedback.
Conditions
Conditions could be wrapped around resources. The wrapped resources are executed if the condition results in a boolean which is true.
Conditions could be nested and resources inside a condition block could be referenced inside other resources and the output.
flow "condition" {
input "schema.Object" {}
if "{{ input:kind }} == 'INSERT'" {
resource "insert" {}
if "{{ insert:upgrade }} == true" {
resource "upgrade" {}
}
}
}
Error Handling
Custom error messages, status codes and response objects could be defined inside your flows.
These objects could reference properties and be overriden with constant values.
Error handling consists out of two blocks. error
which defines the custom response object.
These objects are returned to the user if the protocol allows for dynamic error objects (such as HTTP).
on_error
allows for the definitions of parameters (params
) and to override the message
and status
properties.
Optionally could a schema
be defined. This schema is used to decode the received message.
The default error properties (message and status), error params and other resources could be referenced inside the on_error
and error
blocks.
flow "greeter" {
on_error {
message = "unexpected error"
status = 500
}
resource "echo" {
error "com.Schema" {
message "meta" {
status = "{{ error:status }}"
trace = "{{ error.params:trace }}"
}
message = "{{ error:message }}"
}
on_error {
schema = "com.Schema"
message = "{{ echo.error:message }}"
status = 401
params {
trace = "{{ echo.error:trace }}"
}
}
}
}
If no error object is defined is the parent error object copied.
error "com.Schema" {
message "meta" {
status = "{{ error:status }}"
}
message = "{{ error:message }}"
}
flow "greeter" {
# copies the global error object if not set
resource "echo" {
# copies the flow error object if not set
}
}
v2.0.0-beta.15
This release includes bug fixes related to header referencing and referencing parsing.
v2.0.0-beta.14
This release includes a couple of bug improvements and extends the Github Actions workflow to include additional artifacts to the release.
v2.0.0-beta.13
This release includes a couple of bug fixes and quality of life improvements.