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.

../_images/linter.png

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 or boolean.
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.