Skip to content

Commit

Permalink
Bugfix: Update index when processing automated client metadata (#3586)
Browse files Browse the repository at this point in the history
Also support tool editor in notebook markdown.
  • Loading branch information
scudette committed Jul 4, 2024
1 parent 3cf92a9 commit b22f131
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 9 deletions.
2 changes: 2 additions & 0 deletions artifacts/definitions/Server/Utils/CreateCollector.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ parameters:
- Windows_x86
- Linux
- MacOS
- MacOSArm
- Generic

- name: artifacts
description: A list of artifacts to collect
Expand Down
8 changes: 8 additions & 0 deletions gui/velociraptor/src/components/artifacts/reporting.css
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@
width: fit-content;
}

.report-viewer {
min-height: 10px;
}

.report-viewer:hover {
cursor: pointer;
}

.report-viewer h1 {
font-size: 24px;
margin-top: 1rem;
Expand Down
15 changes: 10 additions & 5 deletions gui/velociraptor/src/components/artifacts/reporting.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,8 @@ export default class VeloReportViewer extends React.Component {
} catch(e) {};
}

if (domNode.name === "velo-csv-viewer") {
if (domNode.name === "velo-csv-viewer" ||
domNode.name === "grr-csv-viewer") {
// Figure out where the data is: attribs.value is something like data['table2']
let re = /'([^']+)'/;
let value = decodeURIComponent(domNode.attribs.value || "");
Expand All @@ -192,7 +193,8 @@ export default class VeloReportViewer extends React.Component {
}
};

if (domNode.name === "velo-tool-viewer") {
if (domNode.name === "velo-tool-viewer" ||
domNode.name === "grr-tool-viewer") {
let name = decodeURIComponent(domNode.attribs.name ||"");
let tool_version = decodeURIComponent(
domNode.attribs.version ||"");
Expand All @@ -203,20 +205,23 @@ export default class VeloReportViewer extends React.Component {
);
};

if (domNode.name === "velo-timeline") {
if (domNode.name === "velo-timeline" ||
domNode.name === "grr-timeline") {
let name = decodeURIComponent(domNode.attribs.name ||"");
return (
<Timeline name={name}/>
);
};

if (domNode.name === "velo-value") {
if (domNode.name === "velo-value" ||
domNode.name === "grr-value") {
let value = decodeURIComponent(domNode.attribs.value || "");
return <VeloValueRenderer value={value}/>;

};

if (domNode.name === "velo-line-chart") {
if (domNode.name === "velo-line-chart" ||
domNode.name === "grr-line-chart") {
// Figure out where the data is: attribs.value is
// something like data['table2']
let re = /'([^']+)'/;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ export default class NotebookReportRenderer extends React.Component {

switch (domNode.name) {
case "velo-line-chart":
case "grr-line-chart":
return <VeloLineChart data={rows}
columns={data.Columns}
params={parse_param(domNode)} />;
Expand Down Expand Up @@ -133,12 +134,14 @@ export default class NotebookReportRenderer extends React.Component {
};
}

if (domNode.name === "velo-value") {
if (domNode.name === "velo-value" ||
domNode.name === "grr-value") {
let value = decodeURIComponent(domNode.attribs.value || "");
return <VeloValueRenderer value={value}/>;
};

if (domNode.name === "velo-timeline") {
if (domNode.name === "velo-timeline" ||
domNode.name === "grr-timeline") {
let name = decodeURIComponent(domNode.attribs.name || "");
return (
<TimelineRenderer
Expand All @@ -148,7 +151,8 @@ export default class NotebookReportRenderer extends React.Component {
);
};

if (domNode.name === "velo-tool-viewer") {
if (domNode.name === "velo-tool-viewer"||
domNode.name === "grr-tool-viewer") {
let name = decodeURIComponent(domNode.attribs.name ||"");
let tool_version = decodeURIComponent(
domNode.attribs.version ||"");
Expand All @@ -157,7 +161,8 @@ export default class NotebookReportRenderer extends React.Component {
};

// A tag that loads a table from a notebook cell.
if (domNode.name === "velo-csv-viewer") {
if (domNode.name === "velo-csv-viewer" ||
domNode.name === "grr-csv-viewer") {
try {
return (
<NotebookTableRenderer
Expand Down
6 changes: 6 additions & 0 deletions reporting/gui.go
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,12 @@ func NewBlueMondayPolicy() *bluemonday.Policy {
// DATA urls are useful for markdown cells
p.AllowURLSchemes("http", "https", "data")

// Deprecated but may still appear in older notebooks.
p.AllowAttrs("value", "params").OnElements("grr-csv-viewer")
p.AllowAttrs("value", "params").OnElements("grr-line-chart")
p.AllowAttrs("name", "params").OnElements("grr-timeline")
p.AllowAttrs("name", "version").OnElements("grr-tool-viewer")

// Directives for the GUI.
p.AllowAttrs("value", "params").OnElements("velo-csv-viewer")
p.AllowAttrs("value", "params").OnElements("inline-table-viewer")
Expand Down

0 comments on commit b22f131

Please sign in to comment.