CDC Data Manifest Format
Manifest files are written in YAML and need to be in a file called manifest.yml
.
File Format
All dates must be in the format YYYY-MM-DD HH:mm
in order for IScorE to parse them correctly. While it may be able
to parse other formats, this format is the expected one that is guaranteed to work. There should always be a top-level
key version
that declares what manifest format is being used by the file. The current manifest version is 0.1
.
Linter
You can check your manifest by copying and pasting it into the manifest linter. The manifest linter can be found under the Admin Area in Competition Settings. If the manifest is invalid, the linter display an error message explaining what is wrong. If the manifest is valid, the linter will render a timeline (shown below) of the events in the manifest.
Anomalies
A basic manifest that defines an Initial Survey anomaly can be written as:
---
version: 0.1
anomalies:
- type: base
name: Initial Survey
opens: 2016-04-10 08:00
closes: 2016-04-10 16:00
max_score: 5
All manifest files may have a top level anomalies
list. Each item in the anomalies
list is a dictionary that
describes the anomaly.
type
What kind of anomaly is this? Can be one of
base
,task
,ctf
.name
The name of the anomaly; this is what will be displayed to the user.
dir
The directory containing information about the anomaly. Defaults to a slug of the anomaly name.
opens
What time the anomaly should be available.
closes
What time the anomaly expires.
max_score
The score for the anomaly
required
(default False)This is a boolean that determines whether the anomaly is required or not.
file
(optional)This can either be a filename, or a list of file names that should be zipped an attached to the anomaly.
description
(optional)Can either be the filename of a markdown file describing the anomaly, inline markdown, or left out entirely. If left out, the default of
description.md
will be used.grading
(optional)Can either be the filename of a markdown file describing the grading of the anomaly, inline markdown, or left out entirely. If left out, the default of
grading.md
will be used.
Note
All parameters involving files are relative to the anomalies directory. If dir
is not provided, this will be the
slug of the anomaly’s name.
CTF Anomalies
Anomalies of type ctf
also have the following parameters:
released
(default True)Whether the score for this anomaly should be released. This is useful for teams to get points immediately upon submitting the correct flag.
Usability Checks
A basic manifest that defines a Morning Usability Check can be written as:
---
version: 0.1
usability:
lists:
- name: Morning Check
sections:
- name: www.teamN.iserink.com
order: 1
link: www.team{num}.isucdc.com
items:
- name: Log In
type: boolean
score: 1
order: 1
- name: Do Stuff
type: int
score: 5
order: 2
- name: shell.teamN.iserink.com
order: 1
items:
- name: Do stuff as admin
type: boolean
score: 5
order: 1
checks:
- name: "9:00 Usability Check"
list: Morning Check
start_time: 2016-04-10 09:00
end_time: 2016-04-10 16:00
max_score: 25
All manifest files may have a top level usability
dictionary. The usability
directory MUST have the
following keys: lists
and checks
. The lists
key is a list of dictionaries describing a usability checklist.
The checks
key is a list of dictionaries describing a usability check.
lists
name
The name of the Check List.
sections
A list of usability check sections.
name
The name of the section.
order
The order this list is shown to the user in.
link
(optional)A url that will be displayed to green team when performing the check. Provides the
{num}
format variable.items
A list of usability checklist items.
name
The name of the checklist item.
type
The type of the item. Can be
integer
orboolean
.score
The maximum score for the item.
order
The order the item is displayed to the user.
checks
name
The name of the usability check.
list
The name of the checklist to use. This MUST match the name of a Check List.
start_time
The time the check starts.
end_time
The time the check ends.
max_score
The maximum possible score for the check.