Creating Findings
Findings consist of the following set of properties:
Title(required): A string value header.Request(required): The alias of the associated request.Reporter(optional): An string value that identifies the reporting process.Description(optional): Details about the finding.Dedupe Key(optional): A string value that is matched against the raw request or response to prevent duplicate findings.
INFO
The Dedupe Key can also be set with the Check Finding node.
Creating a Finding with a Node
To create a finding, click on the + Add Node button within the workflow editor and click on the + Add button attached to the Create Finding node. Connect this node to your workflow.

The editor of the Create Finding node contains input fields for all of the properties available to a finding.
INFO
Descriptions support Markdown syntax.

Creating a Finding with JavaScript
To create a finding programmatically, click on the + Add Node button within the workflow editor and click on the + Add button attached to the Javascript node. Connect this node to your workflow.

The editor of the Javascript node contains a coding environment. Findings are defined as objects and created using the sdk.findings.create() method.
/**
* @param {HttpInput} input
* @param {SDK} sdk
* @returns {MaybePromise<Data | undefined>}
*/
export async function run({ request, response }, sdk) {
if (request) {
const path = request.getPath();
if (path === "/admin") {
let finding = {
title: "Admin Path Detected",
request: request,
reporter: "Admin Path Detection Workflow",
description: `A request to the ${request.getPath()} path was proxied.`,
dedupeKey: request.getPath()
};
await sdk.findings.create(finding);
}
}
}
TIP
View the workflow SDK reference in the developer documentation to learn more about JavaScript in workflows.
Viewing Findings
All generated findings can be viewed in the Findings interface.
INFO
Findings are project-specific.

