Skip to main content

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 be BENCHMARK, QUESTIONNAIRE, or STANDARD.
  • 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: ComplianceFrameworkInput
    • id: 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: ComplianceFrameworkItemInput
    • id: Unique identifier of the frameworkItem (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

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
}
}
}