Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions diag/app/build/asset-manifest.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"files": {
"main.css": "./static/css/main.8b0db0ad.css",
"main.js": "./static/js/main.e117a19e.js",
"main.js": "./static/js/main.2241337e.js",
"index.html": "./index.html",
"main.8b0db0ad.css.map": "./static/css/main.8b0db0ad.css.map",
"main.e117a19e.js.map": "./static/js/main.e117a19e.js.map"
"main.2241337e.js.map": "./static/js/main.2241337e.js.map"
},
"entrypoints": [
"static/css/main.8b0db0ad.css",
"static/js/main.e117a19e.js"
"static/js/main.2241337e.js"
]
}
2 changes: 1 addition & 1 deletion diag/app/build/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>go-workflows</title><script defer="defer" src="./static/js/main.e117a19e.js"></script><link href="./static/css/main.8b0db0ad.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>go-workflows</title><script defer="defer" src="./static/js/main.2241337e.js"></script><link href="./static/css/main.8b0db0ad.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions diag/app/build/static/js/main.2241337e.js.map

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion diag/app/build/static/js/main.e117a19e.js.map

This file was deleted.

34 changes: 33 additions & 1 deletion diag/app/src/Components.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,17 @@ import { WorkflowInstance as Instance } from "./client";

export function decodePayload(payload: string): string {
try {
return atob(payload);
const decoded = atob(payload);

// Try to parse as JSON and pretty-print if valid
try {
JSON.parse(decoded);
// If parsing succeeds, pretty-print the JSON
return JSON.stringify(JSON.parse(decoded), null, 2);
} catch {
// If not valid JSON, return as-is
return decoded;
}
} catch {
return payload;
}
Expand Down Expand Up @@ -40,6 +50,28 @@ export function decodePayloads(payload: { [key: string]: any }): any {
return r;
}

export function formatAttributesForDisplay(attributes: { [key: string]: any }): string {
Comment thread
cschleiden marked this conversation as resolved.
Outdated
const decoded = decodePayloads(attributes);

// Custom replacer function to handle already-pretty-printed JSON strings in inputs
const replacer = (key: string, value: any) => {
if (key === "inputs" && Array.isArray(value)) {
// For inputs, we want to parse the pretty-printed JSON strings back to objects
// so they display nicely in the final JSON
return value.map(input => {
try {
return JSON.parse(input);
} catch {
return input;
}
});
}
return value;
};

return JSON.stringify(decoded, replacer, 2);
}

export const Payload: React.FC<{ payloads: string[] }> = ({ payloads }) => {
return (
<div className="bg-dark text-light rounded p-2">
Expand Down
7 changes: 2 additions & 5 deletions diag/app/src/Instance.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
WorkflowInstanceState,
decodePayload,
decodePayloads,
formatAttributesForDisplay,
} from "./Components";
import {
ExecutionCompletedAttributes,
Expand Down Expand Up @@ -208,11 +209,7 @@ function Instance() {
<dd>
<Payload
payloads={[
JSON.stringify(
decodePayloads(event.attributes),
undefined,
2
),
formatAttributesForDisplay(event.attributes)
]}
/>
</dd>
Expand Down