Previously, we injected the key into the resources and tested the key manually on calls. To better secure this and make it more fluent, a new request filter was added that, when the target endpoint has the KeySecured annotation the filter checks the key param for the secure key value. If it fails to validate when required, it will throw a forbidden status error and end the call early.
The optional path annotation was moved to collect the annotations together in their own package for tidiness, along with the new KeySecured annotation.
Also contains implementation for loggers resource that allows us to update logging level at the runtime rather than requiring a restart to grab updated configurations.