Skip to main content

Content formats

The file formats for uploading a whole question bank or recommendation catalog from the admin panel. The easiest way to start a file is to download the current one (Download JSON) and edit it. For what each field does in the assessment, see Scoring and Assessment content.

Audiences​

Audience-keyed fields use these names:

NameAudience
consumerIndividual
youngAdultYoung adult
seniorSenior
smbSmall business
nonprofitNonprofit

Question bank​

An object holding the groups and the questions:

{
"groups": [
{
"key": "verify",
"name": "Verify before you act",
"explanation": "Whether you check a request is genuine before you respond to it."
}
],
"entries": [
{
"slug": "scope-unexpected-contact",
"stage": 1,
"audiences": ["consumer", "youngAdult", "senior", "smb", "nonprofit"],
"question": {
"prompt": "Do you get emails, texts or calls you weren't expecting?",
"answers": [
{ "value": 1, "text": "Yes" },
{ "value": 0, "text": "No", "trigger": { "targets": ["verify-another-way"], "action": "exclude" } }
]
},
"scale": "yesNo"
},
{
"slug": "verify-unexpected-requests",
"stage": 2,
"audiences": ["consumer", "youngAdult", "senior", "smb", "nonprofit"],
"question": {
"prompt": "When an unexpected message asks you to act urgently, what do you usually do?",
"answers": [
{ "value": 0, "text": "I usually act on it or I do not know what to do." },
{ "value": 3, "text": "I verify the request independently before acting." }
]
},
"scale": "individual3",
"category": "verify-another-way",
"group": "verify"
}
]
}

Groups​

Field
keyThe group's identifier, referenced by entries' group
nameShown to learners
explanationShown to learners under their group score, and given to the tutor

Groups appear in results in the order they are listed.

Entries​

Field
slugThe question's permanent identifier. Uploads match questions by it
stage1 scoping, 2 knowledge and tools, 3 organizational preparedness
audiencesWho is asked this question
question{prompt, answers}, or an object keyed by audience name holding a {prompt, answers} for each, to word the question differently per audience
scaleyesNo (stage 1, unscored), individual3 (0 to 3) or orgNist5 (0 to 5)
categoryScored questions: the category the score counts towards
groupScored questions: the key of the group the category belongs to

Each answer has a value (its score, on a scored question) and text. On a stage 1 question an answer can carry a trigger:

Field
targetsCategory names or question slugs
actionexclude removes the targets from the assessment; scoreZero scores them 0

Validation​

An upload is refused, naming the problem, if:

  • a scored entry has no group, or names one the file doesn't define;
  • one category's questions name different groups.

Recommendation catalog​

An array of entries. An entry's name is the category it covers:

[
{
"name": "account-takeover",
"category": ["account-takeover"],
"thinkific": ["https://edu.globalcyberalliance.org/courses/creating-strong-passwords-two-factor-authentication-individuals"],
"toolkit": ["https://gcatoolkit.org/individuals/beyond-simple-passwords/"],
"toolkitByAudience": {
"consumer": ["https://gcatoolkit.org/individuals/beyond-simple-passwords/"],
"smb": ["https://gcatoolkit.org/smallbusiness/beyond-simple-passwords/"]
},
"cyberflex": [],
"act": [],
"guidance": ["Respond: while you still have access, change that password and turn on multi-factor authentication."],
"note": "",
"actions": [
{
"id": "account-takeover.mfa-email",
"title": "Turn on two-step verification for your main email account",
"instruction": "Your email resets every other password, so protect it first.",
"link": "https://gcatoolkit.org/individuals/beyond-simple-passwords/",
"estimatedMinutes": 10,
"verificationPrompt": "Is two-step verification now on for your main email?",
"audiences": [],
"kind": "protect",
"active": true
}
]
}
]

Entries​

Field
nameThe category this entry covers. Uploads match entries by it. See special entries
categoryThe categories it applies to
thinkificGCA Academy course links
toolkitGCA Cybersecurity Toolkit links
toolkitByAudienceToolkit links per audience. A learner sees their audience's list when there is one, and toolkit otherwise
cyberflex, actCyberFlex and ACT links
guidanceShort pieces of advice, shown with the links
noteNotes for editors. Not shown to learners
actionsRoadmap steps, in the order learners see them

When an entry has links of several types, the first of thinkific, toolkit, cyberflex and act is its main link.

Special entries​

nameUsed when
_defaultConsumer, _defaultYoungAdult, _defaultSenior, _defaultSMB, _defaultNonprofitThe learner has no category below 70% with an entry. General resources for their audience
_knowledgeDefaultThe audience's default entry is missing too

Actions​

Field
idThe step's permanent identifier. Changing it makes a new step
titleRequired
instructionWhat to do, in a sentence or two
linkAn https link to the resource for this step
linkByAudienceA different link per audience, used in place of link
estimatedMinutesHow long it takes. 0 or omitted means unknown
verificationPromptThe question a learner answers to mark the step done
audiencesWho the step applies to. Empty means everyone
kindprotect (a one-time setup), practice (a habit), learn (a course or reading), process (an organizational control) or recover (only once something has happened)
activeMust be true for the step to reach learners

An upload is refused, naming the entry and action, if:

  • an entry has no links, guidance or actions at all, or two entries share a name;
  • an action is missing its id or title, or two actions in an entry share an id;
  • an action has an unknown kind or audience, a negative estimatedMinutes, or a link that isn't https.