linkerd / linkerd2

Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
https://linkerd.io
Apache License 2.0
10.68k stars 1.28k forks source link

Conduit's Public API to support JSON payloads #163

Closed pcalcado closed 6 years ago

pcalcado commented 6 years ago

Narrative

So that I can access Conduit's public API using simple tools such as curl and web frontends
As an developer integrating with Conduit
I want Conduit's Public API to support JSON payloads

Rationale

Originally, the Conduit public API accepted both JSON and protocol buffers as content-types. So that we could iterate faster on the API, we decided to drop support for JSON for now as only the protobuf payload is used by Conduit's CLI.

At some point, when the API is more stable, it would be interesting to re-add support for JSON payloads, as many tools and front-ends can benefit from a schemaless and text-based format.

Acceptance criteria:

briansmith commented 6 years ago

As I understand it, the public API is only public in the sense that it is exposed outside the cluster. It isn't public in the sense that anything other than our own CLI and web UI can or should use it, right? I think protobuf-only actually is a benefit here since it kind of discourages unsupported uses.

More concretely, I don't like the idea of supporting two formats when one is sufficient. I think we should pick one format. That would leave us with less to support, especially in terms of security attack surface.

klingerf commented 6 years ago

I agree that we shouldn't add support for an additional API format unless we have a concrete use case for it. Am going to close this.