* Update deps
This also updates for the new (and required) paradigm for registering
service implementations as spelled out in
https://github.com/grpc/grpc-go/issues/3385
* Roll back dockertest
This also then removes support for docker-based containing starting (for
now) from platforms other than windows/darwin/linux as there are build
issues on several.
* Encrypt tokens on the way out and decrypt on the way in
This isn't a security feature related to tokens specifically; it's so
that we can discard cryptographically bad tokens before we ever hit the
DB. This way we can't pass through a DDoS to the database due to
fetching obviously invalid token values.
I'm using base58 to encode the resulting value as there aren't great
base62 options, and allowing base64 / and + values can hamper usability
by creating copying/highlighting breaks.
* Add mechanism for bundling UI assets.
The scripts/uigen.sh script will check out the UI repo, build assets,
create a static assets file, and clean up.
The dev Makefile target has been modified to run this script if no
assets file is found. There is also a build-ui target that will
unilaterally update (the dev target only builds if the file isn't found,
but doesn't update).
The handler has been updated to add the default org ID as a header if
the request path is "/".
Co-authored-by: Randall Morey <randall@randallmorey.com>
* Invalid Argument errors now return a per field error message.
* Creating an API error struct.
* SDK uses field error details proto.
* Adding tests specifically for handler helper error messages resulting in expected API output.
* Inlining the error checks into the table driven tests. Use protocmp for assertions to make printing out diffs easier to parse.
* Aggregate the invalid argument fields detected to be wrong.
* Make the returned order of fields deterministic in the error details..
* Fixing formatting issue in errors_test.go.
* Test to confirm unimplemented results in a 405 and not 404.