diff --git a/.changeset/forty-chairs-play.md b/.changeset/forty-chairs-play.md new file mode 100644 index 00000000..fbf86ff4 --- /dev/null +++ b/.changeset/forty-chairs-play.md @@ -0,0 +1,7 @@ +--- +'@smartcontractkit/operator-ui': minor +--- + +Add ability to show TOML config + +On the configuration screen, the user is now able to view their node's TOML config diff --git a/schema/type/configv2.graphql b/schema/type/configv2.graphql new file mode 100644 index 00000000..9159ee96 --- /dev/null +++ b/schema/type/configv2.graphql @@ -0,0 +1,4 @@ +type ConfigV2Payload { + user: String! + effective: String! +} diff --git a/src/screens/Configuration/ConfigurationCard/ConfigurationCard.tsx b/src/screens/Configuration/ConfigurationCard/ConfigurationCard.tsx index 1f64d42a..b1bb77ad 100644 --- a/src/screens/Configuration/ConfigurationCard/ConfigurationCard.tsx +++ b/src/screens/Configuration/ConfigurationCard/ConfigurationCard.tsx @@ -44,7 +44,7 @@ export const ConfigurationCard = () => { return ( { + const { data, loading, error } = useQuery< + FetchConfigV2, + FetchConfigV2Variables + >(CONFIG_V2_QUERY, { + fetchPolicy: 'cache-and-network', + }) + + var user: string[] = [] + if (data != undefined) { + user = data?.configv2.user.split(/\n/).map((l) => { + return l + }) + } else { + user = [] + } + var effective: string[] = [] + if (data != undefined) { + effective = data?.configv2.effective.split(/\n/).map((l) => { + return l + }) + } else { + effective = [] + } + + return ( + <> + + + + + + + + ) +} + +interface Props { + entries: Array + loading: boolean + showHead?: boolean + title?: string + error?: string +} + +const SpanRow: React.FC = ({ children }) => ( + + + {children} + + +) + +const FetchingRow = () => ... + +const ErrorRow: React.FC = ({ children }) => {children} + +const TOMLCard = ({ loading, entries, error = '', title }: Props) => { + if (error) { + return {error} + } + + if (loading) { + return + } + + return ( + + {title && } + + + {entries.map((k, i) => ( + + {k} + + ))} + +
+
+ ) +} diff --git a/src/screens/Configuration/ConfigurationView.test.tsx b/src/screens/Configuration/ConfigurationView.test.tsx index 6010ac42..2cc555e6 100644 --- a/src/screens/Configuration/ConfigurationView.test.tsx +++ b/src/screens/Configuration/ConfigurationView.test.tsx @@ -18,7 +18,7 @@ describe('ConfigurationView', () => { , ) - expect(await findByText('Configuration')).toBeInTheDocument() + expect(await findByText('ENV Configuration (legacy)')).toBeInTheDocument() expect(await findByText('Node')).toBeInTheDocument() expect(await findByText('Job Runs')).toBeInTheDocument() expect(await findByText('Logging')).toBeInTheDocument() diff --git a/src/screens/Configuration/ConfigurationView.tsx b/src/screens/Configuration/ConfigurationView.tsx index 0e339795..4c934692 100644 --- a/src/screens/Configuration/ConfigurationView.tsx +++ b/src/screens/Configuration/ConfigurationView.tsx @@ -6,6 +6,7 @@ import { LoggingCard } from 'src/pages/Configuration/LoggingCard' import { JobRuns } from 'src/pages/Configuration/JobRuns' import { ConfigurationCard } from './ConfigurationCard/ConfigurationCard' +import { ConfigurationV2Card } from './ConfigurationV2Card/ConfigurationV2Card' import { NodeInfoCard } from './NodeInfoCard/NodeInfoCard' export const ConfigurationView = () => { @@ -13,7 +14,12 @@ export const ConfigurationView = () => { - + + + + + +