.. _manifest_specification: ======================== 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``. .. _anomaly_manifest: Anomalies --------- A basic manifest that defines an Initial Survey anomaly can be written as: .. code-block:: yaml --- 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``, ``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_manifest: Usability Checks ---------------- A basic manifest that defines a Morning Usability Check can be written as: .. code-blocK:: yaml --- version: 0.1 usability: lists: - name: Morning Check sections: - name: www.teamN.iserink.com order: 1 items: - name: Log In type: boolean score: 1 order: 1 - name: Do Stuff type: integer 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. ``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 max 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 max possible score for the check.