Framework operations
This query creates an empty framework without groups or framework items. See JupiterOne's
security-policy-templates
project for templated JSON frameworks.
Variables
name
: The human readable name of this compliance framework (E.g.,HIPPA
).version
: The version of the compliance framework (E.g.,2013
,v.1.2
).frameworkType
: Denotes the type of framework. Can beBENCHMARK
,QUESTIONNAIRE
, orSTANDARD
.scopeFilters
: Filters to refine the scope of the query.key
: Key by which to filter the graph results -values
: Array of values to include in the graph results
Query
mutation CreateFramework($input: CreateComplianceFrameworkInput!) {
createComplianceFramework(input: $input) {
id
createTimestamp
lastUpdatedTimestamp
name
version
frameworkType
webLink
scopeFilters {
keys
values
}
lastEvaluationTimestamp
}
}
Retrieve a framework
Retrieves the full ComplianceFramework model by ID. It includes details such as overall summary, nested groups and framework items, linked controls, and more.
Variables
input
: ComplianceFrameworkInputid
: The unique identifier for this resource
Query
query ComplianceFramework($input: ComplianceFrameworkInput!) {
complianceFramework(input: $input) {
id
createTimestamp
lastUpdatedTimestamp
name
version
frameworkType
webLink
scopeFilters
lastEvaluationTimestamp
isApplicableForThisUser
summaryConfig {
showPoliciesAndProcedures
showEvidence
showGapAnalysis
showAuditTracking
}
summary {
id
totalFrameworkItems
applicableFrameworkItems
compliantPercentageSummary {
id
overallCompliantPercentage
compliantPercentageExcludingPoliciesAndProcedures
}
evidenceCollectionSummary {
id
hasEvidence
hasInternalEvidenceCollected
hasExternalEvidenceAttached
hasQuestionnaireAnswer
}
gapAnalysisSummary {
id
fulfilled
gapDetected
warning
unknown
}
policyItemLinkSummary {
id
hasLinkedPolicyItem
}
}
groups {
id
frameworkItems {
id
evidence {
questionEvaluations {
id
}
notes {
id
}
questionnaireAnswer {
id
}
links {
id
}
externalUploadEvidences {
id
externalUploadId
externalUpload {
id
}
}
}
libraryItems {
inheritedEvidenceLibraryItems {
id
policyItemId
linkedPolicyItem {
id
linkedPolicy {
id
}
}
evidence {
questionEvaluations {
id
}
notes {
id
}
questionnaireAnswer {
id
}
links {
id
}
externalUploadEvidences {
id
externalUploadId
externalUpload {
id
}
}
}
}
ignoredEvidenceLibraryItems {
id
policyItemId
linkedPolicyItem {
id
linkedPolicy {
id
}
}
}
}
}
}
}
}
Retrieve a requirement
In the API, the term "Framework Item" corresponds to a requirement in the JupiterOne UI. You can retrieve requirements by querying frameworkItem
by their corresponding id.
Variables
input
: ComplianceFrameworkItemInputid
: Unique identifier of theframeworkItem
(JupiterOne requirement) to retrieve.
Query
query complianceFrameworkItem($input: ComplianceFrameworkItemInput!) {
complianceFrameworkItem(input: $input) {
id
name
description
displayCategory
ref
evaluationProgress
lastEvaluationTimestamp
evaluationResult
auditStatus
groupId
webLink
summary {
id
hasLinkedPolicyItem
evidenceCollectionSummary {
id
hasEvidence
hasInternalEvidenceCollected
hasExternalEvidenceAttached
questionnaireAnswer
}
}
}
}
Import framework
There are two primary ways to import a Framework: from a Template or from JSON. Both queries can be referenced below.
Import Framework from Template
This query imports a framework from JupiterOne's predefined templates. See our security-policy-templates project for templated JSON frameworks.
Variables
complianceFrameworkName
: The name of the framework to be imported- These names can be found either in the security-policy-templates project or as an output of the
ImportableComplianceFrameworkTemplates
query.
- These names can be found either in the security-policy-templates project or as an output of the
Query
mutation ImportFrameworkByName($input: ImportComplianceFrameworkByNameInput!) {
importComplianceFrameworkByName(input: $input) {
id
createTimestamp
lastUpdatedTimestamp
name
version
frameworkType
webLink
scopeFilters {
keys
values
}
lastEvaluationTimestamp
}
}
Import Framework from JSON
This query imports a framework using raw JSON. The JSON must adhere to the structure defined in the security-policy-templates project.
Variables
complianceFrameworkJsonString
: The JSON string to be imported.
Query
mutation ImportFramework($input: ImportComplianceFrameworkInput!) {
importComplianceFramework(input: $input) {
id
createTimestamp
lastUpdatedTimestamp
name
version
frameworkType
webLink
scopeFilters {
keys
values
}
lastEvaluationTimestamp
}
}
List frameworks
This query retrieves a list of all frameworks (benchmarks, compliance standards, questionnaires) that were added to your JupiterOne account, as well as any metadata about them.
This query does not retrieve the entire framework model, only the base properties of a framework.
Query
query ListFrameworks {
complianceFrameworks {
benchmarks {
id
createTimestamp
lastUpdatedTimestamp
name
version
frameworkType
webLink
scopeFilters {
keys
values
}
lastEvaluationTimestamp
}
standards {
id
createTimestamp
lastUpdatedTimestamp
name
version
frameworkType
webLink
scopeFilters {
keys
values
}
lastEvaluationTimestamp
}
questionnaires {
id
createTimestamp
lastUpdatedTimestamp
name
version
frameworkType
webLink
scopeFilters {
keys
values
}
lastEvaluationTimestamp
}
}
}