Skip to main content

Evidence GraphQL Examples

These examples show how to query, search, filter, create, and update evidence through the GraphQL API, including evidence with file uploads. Copy them as a starting point for your own queries.

Query Evidence​

# Get all evidence with basic information
query GetEvidence {
evidence {
edges {
node {
id
name
description
source
status
isAutomated
creationDate
renewalDate
url
collectionProcedure
createdAt
updatedAt
}
}
}
}
# Get detailed evidence information with relationships
query GetEvidenceDetails($id: ID!) {
evidence(id: $id) {
id
name
description
collectionProcedure
source
url
isAutomated
creationDate
renewalDate
status
createdAt
updatedAt

# Related controls
controls {
edges {
node {
id
displayID
description
category
standard {
name
shortName
}
}
}
}

# Related control objectives
controlObjectives {
edges {
node {
id
name
desiredOutcome
status
}
}
}

# Related programs
programs {
edges {
node {
id
name
displayID
programType
}
}
}

# Associated files
files {
edges {
node {
id
fileName
fileSize
categoryType
presignedURL
mimeType
}
}
}

# Related tasks
tasks {
edges {
node {
id
title
status
category
due
}
}
}
}
}

Search Evidence​

# Search evidence by name, description, or source
query SearchEvidence($query: String!) {
evidenceSearch(query: $query) {
edges {
node {
id
name
description
source
status
isAutomated
creationDate
}
}
}
}

Filter Evidence​

# Filter evidence by status and automation
query FilterEvidence($status: EvidenceEvidenceStatus!, $automated: Boolean!) {
evidence(where: {
status: { eq: $status }
isAutomated: { eq: $automated }
}) {
edges {
node {
id
name
description
source
status
isAutomated
renewalDate
}
}
}
}

Create Evidence​

mutation CreateEvidence($input: CreateEvidenceInput!, $files: [Upload!]) {
createEvidence(input: $input, evidenceFiles: $files) {
evidence {
id
name
description
source
status
isAutomated
creationDate
files {
edges {
node {
id
fileName
presignedURL
}
}
}
}
}
}

Input Example:

{
"input": {
"name": "Access Control Matrix",
"description": "Comprehensive matrix showing user access rights and permissions across all systems",
"collectionProcedure": "Extract user access data from identity management system and compile into matrix format",
"source": "Identity Management System",
"isAutomated": true,
"creationDate": "2024-01-15T00:00:00Z",
"renewalDate": "2024-04-15T00:00:00Z",
"status": "READY",
"controlIDs": ["control-uuid-1", "control-uuid-2"],
"programIDs": ["program-uuid-1"]
}
}

Update Evidence​

mutation UpdateEvidence($id: ID!, $input: UpdateEvidenceInput!) {
updateEvidence(id: $id, input: $input) {
evidence {
id
name
status
renewalDate
updatedAt
}
}
}

Create Evidence with File Upload​

mutation CreateEvidenceWithFiles($input: CreateEvidenceInput!, $files: [Upload!]!) {
createEvidence(input: $input, evidenceFiles: $files) {
evidence {
id
name
description
status
files {
edges {
node {
id
fileName
fileSize
mimeType
presignedURL
}
}
}
}
}
}