# Database Schema

## Card

- _id [internal]
- artifacts [list]
- actualcost [float]
- actualcosthistory [list of dictionaries]:
  - actualcost [float]
  - datetime [datetime]
  - username [string]
- actualtime [float]
- actualtimehistory [list of dictionaries]:
  - actualtime [float]
  - datetime [datetime]
  - username [string]
- blocked [string]
- blockedhistory [list of dictionaries]:
  - action [string]
  - datetime [datetime]
  - reason [string]
  - username [string]
- comments [list]
- coowner [string]
- coreviewer [string]
- creator [string]
- difficulty [string]
- estimatedcost [float]
- estimatedcosthistory [list of dictionaries]:
  - datetime [datetime]
  - estimatedcost [float]
  - username [string]
- estimatedtime [float]
- estimatedtimehistory [list of dictionaries]:
  - datetime [datetime]
  - estimatedtime [float]
  - username [string]
- hierarchy [string]
- history [list of dictionaries]:
  - attribute [string]
  - datetime [datetime]
  - mode [string]
  - username [string]
  - value [string]
- id [string]
- lastchanged [datetime]
- lastchangedby [string]
- lasttouched [datetime]
- lasttouchedby [string]
- mode [string]
- owner [string]
- position [integer]
- priority [string]
- project [string]
- reassigncoowner [string]
- reassigncoreviewer [string]
- reassignowner [string]
- reassignreviewer [string]
- recurring [boolean]
- reopened [boolean]
- resolution [string]
- reviewer [string]
- rules [list of dictionaries]:
  - components [list]
  - lasttriggered [datetime]
  - rule [string]
  - status [string]
  - usage [string]
- severity [string]
- state [string]
- statehistory [list of dictionaries]:
  - datetime [datetime]
  - state [string]
  - username [string]
- testcases [list]
- title [string]
- type [string]

## Member

- _id [internal]
- card [string]
- category [string]
- classofservice [string]
- columns [string]
- customer [string]
- displayname [string]
- filterbarcomponents [dictionary]:
  - card [boolean]
  - category [boolean]
  - classofservice [boolean]
  - columns [boolean]
  - customer [boolean]
  - fontsize [boolean]
  - hashtag [boolean]
  - iteration [boolean]
  - kanbanboard [boolean]
  - priority [boolean]
  - project [boolean]
  - release [boolean]
  - severity [boolean]
  - subteam [boolean]
  - swimlanes [boolean]
  - teammember [boolean]
  - type [boolean]
- filtername [string]
- filters [list of dictionaries]:
  - card [string]
  - category [string]
  - columns [string]
  - customer [string]
  - filtername [string]
  - fontsize [string]
  - hashtag [string]
  - iteration [string]
  - kanbanboard [string]
  - priority [string]
  - project [string]
  - release [string]
  - severity [string]
  - subteam [string]
  - teammember [string]
  - type [string]
- firstname [string]
- fontsize [string]
- fullname [string]
- hashtag [string]
- iteration [string]
- kanbanboard [string]
- lastname [string]
- listview [list]
- priority [string]
- project [string]
- projects [list of dictionaries]:
  - project [string]
  - role [string]
- project_wips [dictionary]:
  - <project> [dictionary]:
    - closedwip [string]
    - enforcewiplimits [boolean]
    - step<step_no>buffermaxwip [integer]
    - step<step_no>bufferminwip [integer]
    - step<step_no>counterpartmaxwip [integer]
    - step<step_no>counterpartminwip [integer]
    - step<step_no>mainmaxwip [integer]
    - step<step_no>mainminwip [integer]
- release [string]
- reports [list of dictionaries]:
  - reportname [string]
  - reportcriteria [string]
- routine_cards [list]
- severity [string]
- subteam [string]
- swimlanes [string]
- team [string]
- teammember [string]
- theme [string]
- type [string]
- username [string]

## Project

- _id [internal]
- announcements [list]
- categories [list of dictionaries]:
  - category [string]
  - colour [string]
- creator [string]
- currency [string]
- customattributes [dictionary]
- customstates [dictionary]
- entrycriteria [dictionary]
- exitcriteria [dictionary]
- global_wips [dictionary]:
  - closedwip [string]
  - enforcewiplimits [boolean]
  - step<step_no>sharedmaxwip [integer]
  - wip_grouping [string]
  - wip_limit [integer]
  - wip_scope [string]
- master_host [string]
- master_port [string]
- members [list of dictionaries]:
  - colour [string]
  - role [string]
  - username [string]
- nextcardnumber [integer]
- next_synchronisation [datetime]
- project [string]
- project_normalised [string]
- releases [list of dictionaries]:
  - end_date [datetime]
  - release [string]
  - start_date [datetime]
- role [string]
- synchronisation_period [string]
- synchronised_upto [integer should be datetime]
- workflow [list of exactly 12 dictionaries]:
  - buffercolumn [dictionary]:
    - name [string]
    - centric [string]
    - state [string]
    - description [string]
  - counterpartcolumn [dictionary]:
    - name [string]
    - centric [string]
    - state [string]
    - description [string]
  - maincolumn [dictionary]:
    - name [string]
    - centric [string]
    - state [string]
    - description [string]
  - step [string]
- workflow_index [dictionary]:
  - buffer_column_centrics [list]
  - buffer_column_descriptions [list]
  - buffer_column_names [list]
  - buffer_column_states [list]
  - condensed_column_names [list]
  - condensed_column_states [list]
  - condensed_column_states_dict [dictionary]
  - counterpart_column_centrics [list]
  - counterpart_column_descriptions [list]
  - counterpart_column_names [list]
  - counterpart_column_states [list]
  - main_column_centrics [list]
  - main_column_desciptions [list]
  - main_column_names [list]
  - main_column_states [list]
  - precedingacceptancetesting [string]
  - precedingacceptancetestingaccepted [string]
  - precedinganalysed [string]
  - precedinganalysis [string]
  - precedingclosed [string]
  - precedingdefined [string]
  - precedingdeveloped [string]
  - precedingdevelopment [string]
  - step<step_no>buffercentric [string]
  - step<step_no>bufferdescription [string]
  - step<step_no>buffername [string]
  - step<step_no>bufferstate [string]
  - step<step_no>counterpartcentric [string]
  - step<step_no>counterpartdescription [string]
  - step<step_no>counterpartname [string]
  - step<step_no>counterpartstate [string]
  - step<step_no>maincentric [string]
  - step<step_no>maindescription [string]
  - step<step_no>mainname [string]
  - step<step_no>mainstate [string]
  - steps [list]
  - uncondensed_column_centrics [list]
  - uncondensed_column_descriptions [list]
  - uncondensed_column_names [list]
  - uncondensed_column_states [list]

## Session

- _id [internal]
- displayname [string]
- firstname [string]
- fullname [string]
- ip_address [string]
- lastaccess [datetime]
- lastname [string]
- recent_cards [list]
- session_id [string]
- user_agent [string]
- username [string]