ui icon indicating copy to clipboard operation
ui copied to clipboard

[Feature Request] Display binary protobuf payloads

Open lorensr opened this issue 3 years ago • 2 comments

Is your feature request related to a problem? Please describe.

You can't currently get the decoded contents of binary/protobuf payloads like you can for json/plain and json/protobuf.

Describe the solution you'd like

When payload.metadata.messageType is present (a namespaced string like "foo.bar.MyMessage", introduced in https://github.com/temporalio/sdk-typescript/pull/430 and I'll be adding it to other SDKs) in a payload with metadata.encoding == "binary/protobuf", then match it against user-provided protos to decode payload.data, wherever payloads are in a response, for instance here:

/api/v1/namespaces/{namespace}/workflows/{execution.workflowId}/executions/{execution.runId}/events

http://localhost:8080/openapi/#/WorkflowService/WorkflowService_GetWorkflowExecutionHistory

image

User-provided protos

I'm not sure what the easiest way is for users to provide ui-server their .proto files, both in dev and prod.

lorensr avatar Dec 28 '21 01:12 lorensr

^ is assuming that decoding payloads is done server-side. If payload decoding is done in the browser (like if the "string"s in the pictured payload are base64 encoded binary), then I can migrate this issue to the frontend repo. Also, not sure if tctl dc web is relevant.

I think ideally this feature:

  • would work without having to run tctl
  • for prod, is configured (through providing .proto files) once by a single user (and then all viewers of prod UI would see decoded binary protobufs) until protos changed
  • can be configured programmatically, through a build step

lorensr avatar Dec 30 '21 05:12 lorensr

Please move this issue to https://github.com/temporalio/ui, it's not a server issue.

robholland avatar Mar 29 '23 14:03 robholland