Columns
Table | Type | Column | Type | Size | Nulls | Auto | Default | Comments |
---|---|---|---|---|---|---|---|---|
items | Table | entry_participant_type | enum('User', 'Team') | 4 | User | For explicit-entry items, the type of participants who can enter |
||
answers | Table | created_at | DATETIME | 19 | null | Submission time |
||
group_managers | Table | can_edit_personal_info | BIT | 1 | 0 | Can change member’s personal info, for those who have agreed (not visible to managers, only for specific uses) |
||
platforms | Table | regexp | TEXT | 65535 | √ | null | Regexp matching the urls, to automatically detect content from this platform. It is the only way to specify which items are from which platform. Recomputation of items.platform_id is triggered when changed. |
|
permissions_granted | Table | can_enter_until | DATETIME | 19 | 9999-12-31 23:59:59 | Time until which the group can “enter” this item, superseded by |
||
permissions_granted | Table | is_owner | BIT | 1 | 0 | Whether the group is the owner of this item. Implies the maximum level in all of the above permissions. Can delete the item. |
||
users | Table | latest_activity_at | DATETIME | 19 | √ | null | Last activity time on the platform (any action) |
|
group_item_additional_times | Table | item_id | BIGINT | 19 | null | |||
groups_ancestors_active | View | is_self | BIT | 1 | √ | null | Whether ancestor_group_id = child_group_id (auto-generated) |
|
permissions_granted | Table | origin | enum('group_membership', 'item_unlocking', 'self', 'other') | 16 | null | |||
groups | Table | address_postcode | VARCHAR | 25 | √ | null | For sessions or schools |
|
items | Table | requires_explicit_entry | BIT | 1 | 0 | Whether this item requires an explicit entry to be started (create an attempt) |
||
permissions_granted | Table | source_group_id | BIGINT | 19 | null | |||
users | Table | web_site | VARCHAR | 100 | √ | null | Link to the user's website, to be displayed on his public profile |
|
users | Table | salt | VARCHAR | 32 | √ | null | ||
items_propagate | Table | id | BIGINT | 19 | null | |||
filters | Table | group_id | INT | 10 | √ | null | ||
items | Table | validation_type | enum('None', 'All', 'AllButOne', 'Categories', 'One', 'Manual') | 10 | All | Criteria for this item to be considered validated, based on the status of the children. Ex: "All" means all children should be validated. Categories means items of the "Validation" category need to be validated. |
||
permissions_granted | Table | can_view_value | TINYINT UNSIGNED | 3 | null | can_view as an integer (to use comparison operators) |
||
permissions_generated | Table | can_edit_generated_value | TINYINT UNSIGNED | 3 | null | can_edit_generated as an integer (to use comparison operators) |
||
users | Table | last_name | VARCHAR | 100 | √ | null | Last name, provided by auth platform |
|
items_items | Table | content_view_propagation_value | TINYINT UNSIGNED | 3 | null | content_view_propagation as an integer (to use comparison operators) |
||
results_recompute_for_items | Table | item_id | BIGINT | 19 | null | |||
attempts | Table | root_item_id | BIGINT | 19 | √ | null | The item on which the attempt was created |
|
permissions_propagate_sync | Table | propagate_to | enum('self', 'children') | 8 | null | Which permissions should be recomputed for the group-item pair on the next iteration, either for the pair or for its children (through item hierarchy) |
||
users | Table | basic_editor_mode | TINYINT | 3 | 1 | Which editor should be used in programming tasks. |
||
item_dependencies | Table | item_id | BIGINT | 19 | null | |||
groups | Table | root_skill_id | BIGINT | 19 | √ | null | Root skill associated with this group |
|
groups | Table | description | TEXT | 65535 | √ | null | Purpose of this group. Will be visible by its members. or by the public if the group is public. |
|
threads | Table | participant_id | BIGINT | 19 | null | |||
filters | Table | user_id | BIGINT | 19 | null | |||
items | Table | display_details_in_parent | TINYINT UNSIGNED | 3 | 0 | If true, display a large icon, the subtitle, and more within the parent chapter |
||
answers | Table | item_id | BIGINT | 19 | null | |||
groups_groups_active | View | is_team_membership | BIT | 1 | 0 | true if the parent group is a team |
||
group_pending_requests | Table | at | DATETIME | 23 | CURRENT_TIMESTAMP(3) | |||
groups | Table | code_expires_at | DATETIME | 19 | √ | null | When the code expires. Set when it is first used. |
|
items | Table | participants_group_id | BIGINT | 19 | √ | null | Group to which all the entered participants (users or teams) belong. Must not be null for an explicit-entry item. |
|
results | Table | score_edit_rule | enum('set', 'diff') | 4 | √ | null | Whether the edit value replaces and adds up to the score of the best answer |
|
permissions_granted | Table | can_grant_view_value | TINYINT UNSIGNED | 3 | null | can_grant_view as an integer (to use comparison operators) |
||
goose_db_version | Table | version_id | BIGINT | 19 | null | |||
badges | Table | name | TEXT | 65535 | √ | null | ||
gradings | Table | score | FLOAT | 12 | null | Score obtained |
||
languages | Table | name | VARCHAR | 100 | ||||
goose_db_version | Table | is_applied | BIT | 1 | null | |||
groups | Table | code_lifetime | INT | 10 | √ | null | How long after the first use of the code it will expire (in seconds), NULL means infinity |
|
threads | Table | message_count | INT | 10 | 0 | Approximation of the number of message sent on the thread. |
||
permissions_propagate_sync | Table | group_id | BIGINT | 19 | null | |||
group_membership_changes | Table | at | DATETIME | 23 | CURRENT_TIMESTAMP(3) | Time of the action |
||
users | Table | latest_profile_sync_at | DATETIME | 19 | √ | null | Last time when the profile was synced with the login module |
|
groups | Table | grade_details | VARCHAR | 50 | √ | null | Explanations about the grade |
|
user_batch_prefixes | Table | allow_new | BIT | 1 | 1 | Whether this prefix can be used for new user batches |
||
results_propagate_sync | Table | connection_id | BIGINT UNSIGNED | 20 | null | |||
user_batches_v2 | Table | creator_id | BIGINT | 19 | √ | null | ||
items | Table | platform_id | INT | 10 | √ | null | Platform that hosts the item content. Auto-generated from |
|
filters | Table | newer_than | INT | 10 | √ | null | ||
results_propagate_sync_conn | View | connection_id | BIGINT UNSIGNED | 20 | null | |||
items | Table | entering_time_min | DATETIME | 19 | 1000-01-01 00:00:00 | Lower bound on the entering time. Has the priority over given can_enter_from/until permissions. |
||
results | Table | score_edit_comment | VARCHAR | 200 | √ | null | Explanation of the value set in score_edit_value |
|
answers | Table | participant_id | BIGINT | 19 | null | |||
groups | Table | grade | INT | 10 | -2 | For some types of groups, indicate which grade the users belong to. |
||
access_tokens | Table | token | VARBINARY | 2000 | null | The access token. |
||
items | Table | options | TEXT | 65535 | √ | null | Options passed to the task, formatted as a JSON object |
|
items_items | Table | upper_view_levels_propagation | enum('use_content_view_propagation', 'as_content_with_descendants', 'as_is') | 28 | use_content_view_propagation | Defines how can_view="content_with_descendants"|"solution" permissions propagate |
||
threads | Table | latest_update_at | DATETIME | 19 | CURRENT_TIMESTAMP | Last time a message was posted or the status was updated. |
||
groups_groups | Table | child_group_type | enum('Class', 'Team', 'Club', 'Friends', 'Other', 'User', 'Session', 'Base', 'ContestParticipants') | 19 | null | The type of the child group in the relationship (we duplicate groups.type to improve performance) |
||
permissions_generated | Table | can_grant_view_generated | enum('none', 'enter', 'content', 'content_with_descendants', 'solution', 'solution_with_grant') | 24 | none | The aggregated level of visibility that the group can give on this item to other groups on which it has the right to |
||
results | Table | item_id | BIGINT | 19 | null | |||
permissions_granted | Table | can_watch | enum('none', 'result', 'answer', 'answer_with_grant') | 17 | none | The level of observation a group has for an item, on the activity of the users he can watch |
||
groups_groups_active | View | watch_approved | BIT | 1 | null | watch_approved_at as boolean |
||
users | Table | login_id | BIGINT | 19 | √ | null | "userId" returned by the auth platform |
|
users | Table | land_line_number | LONGTEXT | 2147483647 | √ | null | Phone number, provided by auth platform |
|
group_pending_requests | Table | member_id | BIGINT | 19 | null | |||
permissions_granted | Table | can_make_session_official | BIT | 1 | 0 | Whether the group is allowed to associate official sessions to this item |
||
user_batch_prefixes | Table | group_id | BIGINT | 19 | √ | null | Group (and its descendants) in which managers can create users in batch. NULL if the group was deleted, in which case batches should be cleaned manually. |
|
threads | Table | status | enum('waiting_for_participant', 'waiting_for_trainer', 'closed') | 23 | null | |||
results | Table | hints_requested | MEDIUMTEXT | 16777215 | √ | null | JSON array of the hints that have been requested for this attempt |
|
groups_propagate | Table | ancestors_computation_state | enum('todo', 'done') | 4 | null | |||
users | Table | creator_id | BIGINT | 19 | √ | null | User who created a given login with the login generation tool |
|
groups | Table | code | VARBINARY | 50 | √ | null | Code that can be used to join the group (if it is opened) |
|
groups | Table | created_at | DATETIME | 19 | CURRENT_TIMESTAMP | |||
permissions_generated | Table | item_id | BIGINT | 19 | null | |||
users | Table | latest_login_at | DATETIME | 19 | √ | null | When is the last time this user logged in on the platform |
|
users | Table | help_given | INT | 10 | 0 | How many times did the user help others (# of discussions) |
||
items | Table | repository_path | TEXT | 65535 | √ | null | ||
attempts | Table | parent_attempt_id | BIGINT | 19 | √ | null | The attempt from which this one was forked. NULL for the default attempt. |
|
users | Table | VARCHAR | 100 | √ | null | E-mail, provided by auth platform |
||
group_membership_changes | Table | group_id | BIGINT | 19 | null | |||
groups | Table | max_participants | INT UNSIGNED | 10 | √ | null | The maximum number of participants (users and teams) in this group (strict limit if |
|
groups_groups | Table | lock_membership_approved | BIT | 1 | null | lock_membership_approved_at as boolean |
||
groups_groups_active | View | personal_info_view_approved_at | DATETIME | 19 | √ | null | ||
groups | Table | root_activity_id | BIGINT | 19 | √ | null | Root activity (chapter, task, or course) associated with this group |
|
users | Table | city | LONGTEXT | 2147483647 | √ | null | City, provided by auth platform |
|
filters | Table | starred | BIT | 1 | √ | null | ||
groups | Table | id | BIGINT | 19 | null | |||
permissions_granted | Table | latest_update_at | DATETIME | 19 | CURRENT_TIMESTAMP | Last time one of the attributes has been modified |
||
permissions_generated | Table | is_owner_generated | BIT | 1 | 0 | Whether the group is the owner of this item. Implies the maximum level in all of the above permissions. Can delete the item. |
||
group_pending_requests | Table | watch_approved | BIT | 1 | 0 | for join requests |
||
groups_groups_active | View | lock_membership_approved | BIT | 1 | null | lock_membership_approved_at as boolean |
||
items | Table | id | BIGINT | 19 | null | |||
items_items | Table | child_order | INT | 10 | null | Position, relative to its siblings, when displaying all the children of the parent. If multiple items have the same child_order, they will be sorted in a random way, specific to each user (a user will always see the items in the same order). |
||
items_items | Table | score_weight | TINYINT UNSIGNED | 3 | 1 | Weight of this child in his parent's score computation |
||
items | Table | children_layout | enum('List', 'Grid') | 4 | √ | List | How the children list are displayed (for chapters and skills) |
|
permissions_generated | Table | can_view_generated | enum('none', 'info', 'content', 'content_with_descendants', 'solution') | 24 | none | The aggregated level of visibility the group has on the item |
||
items_strings | Table | subtitle | VARCHAR | 200 | √ | null | Subtitle of the item in the specified language |
|
items_strings | Table | description | TEXT | 65535 | √ | null | Description of the item in the specified language |
|
groups_groups_active | View | child_group_id | BIGINT | 19 | null | |||
user_batches_v2 | Table | custom_prefix | VARCHAR | 14 | null | Second part of the full login prefix, given by the user that created the batch |
||
results | Table | recomputing_state | enum('recomputing', 'modified', 'unchanged') | 11 | unchanged | State of the result, used during recomputing |
||
groups | Table | expected_start | DATETIME | 19 | √ | null | For sessions, time at which the session is expected to start |
|
groups_groups | Table | personal_info_view_approved_at | DATETIME | 19 | √ | null | ||
items | Table | title_bar_visible | TINYINT UNSIGNED | 3 | 1 | Whether the title bar should be visible initially when this item is loaded |
||
error_log | Table | date | TIMESTAMP | 19 | CURRENT_TIMESTAMP | |||
permissions_propagate_sync_conn | View | item_id | BIGINT | 19 | null | |||
filters | Table | users_search | VARCHAR | 200 | √ | null | ||
languages | Table | tag | VARCHAR | 6 | null | Language tag as defined in RFC5646 |
||
users | Table | default_language | CHAR | 3 | fr | Current language used to display content. Initial version provided by auth platform, then can be changed manually. |
||
item_dependencies | Table | grant_content_view | BIT | 1 | 1 | Whether obtaining the required score at the item grants content view to the dependent item |
||
group_managers | Table | can_watch_members | BIT | 1 | 0 | Can watch members’ submissions on items. Requires the watcher to be allowed to watch this item. For members who have agreed |
||
groups_groups_active | View | parent_group_id | BIGINT | 19 | null | |||
error_log | Table | url | TEXT | 65535 | null | |||
items_strings | Table | translator | VARCHAR | 100 | √ | null | Name of the translator(s) of this content |
|
results | Table | started | BIT | 1 | null | Auto-generated from |
||
permissions_granted | Table | can_edit_value | TINYINT UNSIGNED | 3 | null | can_edit as an integer (to use comparison operators) |
||
attempts | Table | allows_submissions_until | DATETIME | 19 | 9999-12-31 23:59:59 | Time until which the participant can submit an answer on this attempt |
||
results_propagate_sync | Table | participant_id | BIGINT | 19 | null | |||
permissions_propagate | Table | group_id | BIGINT | 19 | null | |||
groups | Table | is_official_session | BIT | 1 | 0 | Whether this session is shown on the activity page (require specific permissions) |
||
groups_ancestors | Table | child_group_type | enum('Class', 'Team', 'Club', 'Friends', 'Other', 'User', 'Session', 'Base', 'ContestParticipants') | 19 | null | The type of the child group in the relationship (we duplicate groups.type to improve performance) |
||
filters | Table | start_date | DATETIME | 19 | √ | null | ||
items | Table | supported_lang_prog | VARCHAR | 200 | √ | null | Comma-separated list of programming languages that this item can be solved with; not currently used. |
|
users | Table | zipcode | LONGTEXT | 2147483647 | √ | null | Zip code, provided by auth platform |
|
groups_groups | Table | personal_info_view_approved | BIT | 1 | null | personal_info_view_approved_at as boolean |
||
group_pending_requests | Table | group_id | BIGINT | 19 | null | |||
groups_groups_active | View | expires_at | DATETIME | 19 | 9999-12-31 23:59:59 | The group membership expires at the specified time |
||
platforms | Table | id | INT | 10 | √ | null | ||
items | Table | fixed_ranks | BIT | 1 | 0 | If true, prevents users from changing the order of the children by drag&drop and auto-calculation of the order of children. Allows for manual setting of the order, for instance in cases where we want to have multiple items with the same order (check items_items.child_order). |
||
results_propagate_sync_conn | View | participant_id | BIGINT | 19 | null | |||
group_item_additional_times | Table | group_id | BIGINT | 19 | null | |||
groups_groups | Table | watch_approved_at | DATETIME | 19 | √ | null | ||
group_managers | Table | manager_id | BIGINT | 19 | null | |||
items_ancestors | Table | child_item_id | BIGINT | 19 | null | |||
users | Table | address | MEDIUMTEXT | 16777215 | √ | null | Address, provided by auth platform |
|
items | Table | hints_allowed | BIT | 1 | 0 | Whether hints are allowed for tasks accessed through this chapter (currently unused) |
||
answers | Table | author_id | BIGINT | 19 | null | |||
answers | Table | answer | MEDIUMTEXT | 16777215 | √ | null | Saved answer (sent by the task platform) |
|
group_managers | Table | can_manage | enum('none', 'memberships', 'memberships_and_group') | 21 | none | |||
users | Table | sex | enum('Male', 'Female') | 6 | √ | null | Gender, provided by auth platform |
|
items | Table | default_language_tag | VARCHAR | 6 | null | Default language tag of this task (the reference, used when comparing translations) |
||
items_items | Table | upper_view_levels_propagation_value | TINYINT UNSIGNED | 3 | null | upper_view_levels_propagation as an integer (to use comparison operators) |
||
items | Table | entering_time_max | DATETIME | 19 | 9999-12-31 23:59:59 | Upper bound on the entering time. Has the priority over given can_enter_from/until permissions. |
||
platforms | Table | base_url | VARCHAR | 200 | √ | null | Base URL for calling the API of the platform (for GDPR services) |
|
results | Table | latest_submission_at | DATETIME | 19 | √ | null | Time of the latest submission. Only for tasks, not propagated |
|
users | Table | lang_prog | VARCHAR | 30 | √ | Python | Current programming language selected by the user (to display the corresponding version of tasks) |
|
groups_ancestors_active | View | child_group_type | enum('Class', 'Team', 'Club', 'Friends', 'Other', 'User', 'Session', 'Base', 'ContestParticipants') | 19 | null | The type of the child group in the relationship (we duplicate groups.type to improve performance) |
||
users | Table | spaces_for_tab | INT | 10 | 3 | How many spaces for a tabulation, in programming tasks. |
||
filters | Table | id | BIGINT | 19 | null | |||
users | Table | country_code | CHAR | 3 | 3-letter country code |
|||
groups | Table | open_activity_when_joining | BIT | 1 | 0 | Whether the activity should be started for participants as soon as they join the group |
||
results | Table | latest_hint_at | DATETIME | 19 | √ | null | Time of the last request for a hint. Only for tasks, not propagated |
|
error_log | Table | id | BIGINT UNSIGNED | 20 | √ | null | ||
threads | Table | helper_group_id | BIGINT | 19 | null | |||
results | Table | tasks_tried | INT | 10 | 0 | Number of tasks which have been attempted among this item's descendants (at least one submission), within this attempt |
||
answers | Table | state | MEDIUMTEXT | 16777215 | √ | null | Saved state (sent by the task platform) |
|
items_items | Table | child_item_id | BIGINT | 19 | null | |||
permissions_granted | Table | can_watch_value | TINYINT UNSIGNED | 3 | null | can_watch as an integer (to use comparison operators) |
||
badges | Table | code | TEXT | 65535 | null | |||
results | Table | participant_id | BIGINT | 19 | null | |||
results | Table | validated | BIT | 1 | null | Auto-generated from |
||
attempts | Table | creator_id | BIGINT | 19 | √ | null | The user who created this attempt |
|
access_tokens | Table | issued_at | DATETIME | 19 | CURRENT_TIMESTAMP | The time the token was issued. |
||
users | Table | temp_user | BIT | 1 | 0 | Whether it is a temporary user. If so, the user will be deleted soon. |
||
users | Table | public_last_name | TINYINT | 3 | 0 | Whether show user's last name in his public profile |
||
permissions_granted | Table | can_enter_from | DATETIME | 19 | 9999-12-31 23:59:59 | Time from which the group can “enter” this item, superseded by |
||
group_membership_changes | Table | action | enum('invitation_created', 'invitation_withdrawn', 'invitation_refused', 'invitation_accepted', 'join_request_created', 'join_request_withdrawn', 'join_request_refused', 'join_request_accepted', 'leave_request_created', 'leave_request_withdrawn', 'leave_request_refused', 'leave_request_accepted', 'left', 'removed', 'joined_by_code', 'added_directly', 'expired', 'joined_by_badge', 'removed_due_to_approval_change') | 30 | √ | null | ||
answers | Table | id | BIGINT | 19 | √ | null | ||
user_batch_prefixes | Table | group_prefix | VARCHAR | 13 | null | Prefix used in front of all batches |
||
items | Table | duration | TIME | 8 | √ | null | Not NULL if time-limited item. If so, how long users have to work on it. |
|
filters | Table | important | BIT | 1 | √ | null | ||
groups_groups | Table | child_group_id | BIGINT | 19 | null | |||
permissions_propagate_sync_conn | View | connection_id | BIGINT UNSIGNED | 20 | null | |||
groups | Table | address_city | VARCHAR | 255 | √ | null | For sessions or schools |
|
results | Table | started_at | DATETIME | 19 | √ | null | Time at which the attempt was manually created or was first marked as started (should be when it is first visited). Not propagated |
|
users | Table | recover | VARCHAR | 50 | √ | null | ||
users | Table | is_admin | TINYINT | 3 | 0 | Is the user an admin? Not used? |
||
users | Table | photo_autoload | BIT | 1 | 0 | Indicates that the user has a picture associated with his profile. Not used yet. |
||
permissions_propagate | Table | item_id | BIGINT | 19 | null | |||
group_pending_requests | Table | type | enum('invitation', 'join_request', 'leave_request') | 13 | √ | null | ||
groups | Table | require_watch_approval | BIT | 1 | 0 | Whether it requires (for joining) members to approve that managers may be able to watch their results and answers |
||
access_tokens | Table | session_id | BIGINT | 19 | null | |||
results_propagate | Table | state | enum('to_be_propagated', 'to_be_recomputed', 'propagating', 'recomputing') | 16 | null | "to_be_propagated" means that ancestors should be recomputed |
||
results_recompute_for_items | Table | is_being_processed | BIT | 1 | 0 | |||
badges | Table | id | BIGINT | 19 | √ | null | ||
items | Table | uses_api | BIT | 1 | 1 | Whether the item uses the task integration API, at the minimum the load and getHeight functions. |
||
groups | Table | organizer | VARCHAR | 255 | √ | null | For sessions, a teacher/animator in charge of the organization |
|
permissions_generated | Table | group_id | BIGINT | 19 | null | |||
user_batches_v2 | Table | size | MEDIUMINT UNSIGNED | 8 | null | Number of users created in this batch |
||
permissions_propagate_sync_conn | View | propagate_to | enum('self', 'children') | 8 | null | Which permissions should be recomputed for the group-item pair on the next iteration, either for the pair or for its children (through item hierarchy) |
||
groups_groups_active | View | lock_membership_approved_at | DATETIME | 19 | √ | null | ||
items | Table | allows_multiple_attempts | BIT | 1 | 0 | Whether participants can create multiple attempts when working on this item |
||
group_pending_requests | Table | lock_membership_approved | BIT | 1 | 0 | for join requests |
||
threads | Table | item_id | BIGINT | 19 | null | |||
items_items | Table | watch_propagation | BIT | 1 | 0 | Whether can_watch propagates (as the same value, with “answer” as the upper limit) |
||
groups_groups | Table | watch_approved | BIT | 1 | null | watch_approved_at as boolean |
||
results_propagate | Table | attempt_id | BIGINT | 19 | 0 | |||
groups | Table | is_open | BIT | 1 | 0 | Whether it appears to users as open to new members, i.e. the users can join using the code or create a join request |
||
items | Table | entry_min_admitted_members_ratio | enum('All', 'Half', 'One', 'None') | 4 | None | The ratio of members in the team (a user alone being considered as a team of one) who needs the “can_enter” permission so that the group can enter |
||
groups | Table | text_id | VARCHAR | 255 | √ | null | Internal text id for special groups. Used to refer o them and avoid breaking features if an admin renames the group |
|
results_propagate_sync_conn | View | item_id | BIGINT | 19 | null | |||
users | Table | no_ranking | TINYINT | 3 | 0 | Whether this user should not be listed when displaying the results of contests, or points obtained on the platform |
||
groups_ancestors_active | View | ancestor_group_id | BIGINT | 19 | null | |||
groups | Table | type | enum('Class', 'Team', 'Club', 'Friends', 'Other', 'User', 'Session', 'Base', 'ContestParticipants') | 19 | null | |||
users | Table | notify_news | TINYINT | 3 | 0 | Whether the user accepts that we send emails about events related to the platform |
||
permissions_granted | Table | can_grant_view | enum('none', 'enter', 'content', 'content_with_descendants', 'solution', 'solution_with_grant') | 24 | none | The level of visibility that the group can give on this item to other groups on which it has the right to |
||
user_batches_v2 | Table | group_prefix | VARCHAR | 13 | null | Authorized (first) part of the full login prefix |
||
users | Table | registered_at | DATETIME | 19 | √ | null | When the user first connected to this platform |
|
groups | Table | require_lock_membership_approval_until | DATETIME | 19 | √ | null | If not null and in the future, requires (for joining) members to approve that they will not be able to leave the group without approval until the given date |
|
platforms | Table | priority | INT | 10 | 0 | Priority of the regexp compared to others (higher value is tried first). Recomputation of items.platform_id is triggered when changed. |
||
permissions_generated | Table | can_grant_view_generated_value | TINYINT UNSIGNED | 3 | null | can_grant_view_generated as an integer (to use comparison operators) |
||
results_propagate_sync | Table | attempt_id | BIGINT | 19 | 0 | |||
groups | Table | frozen_membership | BIT | 1 | √ | 0 | Whether members can be added/removed to the group (intended for teams) |
|
items | Table | entry_frozen_teams | BIT | 1 | 0 | Whether teams require to have |
||
items_items | Table | content_view_propagation | enum('none', 'as_info', 'as_content') | 10 | none | Defines how a can_view=”content” permission propagates |
||
item_dependencies | Table | score | INT | 10 | 100 | Score of the item from which the dependent item is unlocked (if grant_content_view is true), i.e. can_view:content is given |
||
results | Table | submissions | INT | 10 | 0 | Number of submissions. Only for tasks, not propagated |
||
group_item_additional_times | Table | additional_time | TIME | 8 | 00:00:00 | Time that was attributed (can be negative) to this group for this time-limited item |
||
items | Table | url | VARCHAR | 2048 | √ | null | Url of the item, as will be loaded in the iframe |
|
items_items | Table | request_help_propagation | TINYINT | 3 | 0 | Whether can_request_help_to propagates |
||
filters | Table | end_date | DATETIME | 19 | √ | null | ||
results | Table | help_requested | BIT | 1 | 0 | Whether the participant is requesting help on the item in this attempt |
||
permissions_granted | Table | can_request_help_to | BIGINT | 19 | √ | null | Whether the group can create a forum thread accessible to the pointed group. NULL = no rights to create. |
|
items_strings | Table | item_id | BIGINT | 19 | null | |||
groups_groups | Table | is_team_membership | BIT | 1 | 0 | true if the parent group is a team |
||
results_propagate_sync | Table | state | enum('to_be_propagated', 'to_be_recomputed', 'propagating', 'recomputing') | 16 | null | "to_be_propagated" means that ancestors should be recomputed |
||
groups_groups_active | View | watch_approved_at | DATETIME | 19 | √ | null | ||
filters | Table | archived | BIT | 1 | √ | null | ||
users | Table | birth_date | DATE | 10 | √ | null | Date of birth, provided by auth platform |
|
gradings | Table | answer_id | BIGINT | 19 | null | |||
results | Table | score_obtained_at | DATETIME | 19 | √ | null | Submission time of the first answer which led to the best score |
|
users | Table | public_first_name | TINYINT | 3 | 0 | Whether show user's first name in his public profile |
||
results_propagate_sync_conn | View | state | enum('to_be_propagated', 'to_be_recomputed', 'propagating', 'recomputing') | 16 | null | "to_be_propagated" means that ancestors should be recomputed |
||
items | Table | show_user_infos | BIT | 1 | 0 | Always show user infos in title bar of all descendants. Allows the teacher to see who is working on what (e.g., during an exam). |
||
groups | Table | enforce_max_participants | BIT | 1 | √ | 0 | Whether the number of participants is a strict constraint |
|
users | Table | free_text | MEDIUMTEXT | 16777215 | √ | null | Text provided by the user, to be displayed on his public profile |
|
results_propagate | Table | item_id | BIGINT | 19 | null | |||
users | Table | member_state | TINYINT | 3 | 0 | On old website, indicates if the user is a member of France-ioi |
||
results | Table | score_edit_value | FLOAT | 12 | √ | null | Score which overrides or adds up (depending on score_edit_rule) to the score obtained from best answer or propagation |
|
filters | Table | body_search | VARCHAR | 100 | √ | null | ||
users | Table | access_group_id | BIGINT | 19 | √ | null | ||
items | Table | read_only | BIT | 1 | 0 | Prevents any modification of the scores for this item (typically, to display a contest item after the end date of the contest) |
||
items | Table | type | enum('Chapter', 'Task', 'Skill') | 7 | null | |||
group_managers | Table | can_manage_value | TINYINT UNSIGNED | 3 | null | can_manage as an integer (to use comparison operators) |
||
permissions_propagate_sync | Table | connection_id | BIGINT UNSIGNED | 20 | null | |||
groups_groups | Table | parent_group_id | BIGINT | 19 | null | |||
items_strings | Table | language_tag | VARCHAR | 6 | null | Language tag of this content |
||
sessions | Table | user_id | BIGINT | 19 | null | |||
platforms | Table | public_key | VARCHAR | 512 | √ | null | Public key of this platform |
|
users | Table | graduation_year | INT | 10 | 0 | High school graduation year |
||
platforms | Table | name | VARCHAR | 50 | ||||
attempts | Table | participant_id | BIGINT | 19 | null | |||
attempts | Table | ended_at | DATETIME | 19 | √ | null | Time at which the attempt was (typically manually) ended |
|
permissions_generated | Table | can_view_generated_value | TINYINT UNSIGNED | 3 | null | can_view_generated as an integer (to use comparison operators) |
||
results_propagate_sync_conn | View | attempt_id | BIGINT | 19 | 0 | |||
item_dependencies | Table | dependent_item_id | BIGINT | 19 | null | |||
users | Table | login | VARCHAR | 100 | login provided by the auth platform |
|||
filters | Table | item_id | BIGINT | 19 | √ | null | ||
users | Table | notify | enum('Never', 'Answers', 'Concerned') | 9 | Answers | When we should send an email to the user. Answers: when someone posts a message on a thread created by the user. Concerned: when someone post a message on a thread that the user participated in |
||
results_propagate | Table | participant_id | BIGINT | 19 | null | |||
sessions | Table | refresh_token | VARBINARY | 2000 | √ | null | Refresh tokens (unlimited lifetime) used by the backend to request fresh access tokens from the auth module |
|
groups_ancestors_active | View | child_group_id | BIGINT | 19 | null | |||
gradings | Table | graded_at | DATETIME | 19 | null | When was it last graded |
||
groups_groups_active | View | child_group_type | enum('Class', 'Team', 'Club', 'Friends', 'Other', 'User', 'Session', 'Base', 'ContestParticipants') | 19 | null | The type of the child group in the relationship (we duplicate groups.type to improve performance) |
||
permissions_propagate | Table | propagate_to | enum('self', 'children') | 8 | null | Which permissions should be recomputed for the group-item pair on the next iteration, either for the pair or for its children (through item hierarchy) |
||
permissions_granted | Table | item_id | BIGINT | 19 | null | |||
permissions_generated | Table | can_watch_generated | enum('none', 'result', 'answer', 'answer_with_grant') | 17 | none | The aggregated level of observation a group has for an item, on the activity of the users he can watch |
||
items_strings | Table | edu_comment | TEXT | 65535 | √ | null | Information about what this item teaches, in the specified language. |
|
items_items | Table | parent_item_id | BIGINT | 19 | null | |||
users | Table | email_verified | BIT | 1 | 0 | Whether email has been verified, provided by auth platform |
||
groups | Table | address_country | VARCHAR | 255 | √ | null | For sessions or schools |
|
items_items | Table | edit_propagation | BIT | 1 | 0 | Whether can_edit propagates (as the same value, with “all” as the upper limit) |
||
groups | Table | require_members_to_join_parent | BIT | 1 | 0 | For sessions, whether the user joining this group should join the parent group as well |
||
groups | Table | address_line2 | VARCHAR | 255 | √ | null | For sessions or schools |
|
items_strings | Table | title | VARCHAR | 200 | √ | null | Title of the item, in the specified language |
|
users | Table | step_level_in_site | INT | 10 | 0 | User's level |
||
groups_groups | Table | expires_at | DATETIME | 19 | 9999-12-31 23:59:59 | The group membership expires at the specified time |
||
permissions_generated | Table | can_watch_generated_value | TINYINT UNSIGNED | 3 | null | can_watch_generated as an integer (to use comparison operators) |
||
filters | Table | older_than | INT | 10 | √ | null | ||
results | Table | hints_cached | INT | 10 | 0 | Number of hints which have been requested for this attempt |
||
goose_db_version | Table | tstamp | TIMESTAMP | 19 | √ | CURRENT_TIMESTAMP | ||
error_log | Table | details | TEXT | 65535 | null | |||
groups | Table | send_emails | BIT | 1 | 0 | |||
filters | Table | name | VARCHAR | 45 | ||||
groups_propagate | Table | id | BIGINT | 19 | null | |||
results | Table | score_computed | FLOAT | 12 | 0 | Score computed from the best answer or by propagation, with score_edit_rule applied |
||
users | Table | open_id_identity | VARCHAR | 255 | √ | null | User's Open Id Identity |
|
items | Table | text_id | VARCHAR | 200 | √ | null | Unique string identifying the item, independently of where it is hosted |
|
answers | Table | type | enum('Submission', 'Saved', 'Current') | 10 | null | 'Submission' for answers submitted for grading, 'Saved' for manual backups of answers, 'Current' for automatic snapshots of the latest answers (unique for a user on an attempt) |
||
groups | Table | require_personal_info_access_approval | enum('none', 'view', 'edit') | 4 | none | If not 'none', requires (for joining) members to approve that managers may be able to view or edit their personal information |
||
groups | Table | address_line1 | VARCHAR | 255 | √ | null | For sessions or schools |
|
users | Table | grade | INT | 10 | √ | null | School grade, provided by auth platform |
|
items | Table | entry_max_team_size | INT | 10 | 0 | The maximum number of members a team can have to enter |
||
permissions_propagate_sync | Table | item_id | BIGINT | 19 | null | |||
items | Table | full_screen | enum('forceYes', 'forceNo', 'default') | 8 | default | Whether the item should be loaded in full screen mode (without the navigation panel and most of the top header). By default, tasks are displayed in full screen, but not chapters. |
||
groups | Table | name | VARCHAR | 200 | ||||
results | Table | validated_at | DATETIME | 19 | √ | null | Submission time of the first answer that made the attempt validated |
|
group_membership_changes | Table | initiator_id | BIGINT | 19 | √ | null | The user who initiated the action (if any), typically the group owner/manager or the member himself |
|
groups_ancestors | Table | child_group_id | BIGINT | 19 | null | |||
users | Table | student_id | TEXT | 65535 | √ | null | A student id provided by the school, provided by auth platform |
|
users | Table | last_ip | VARCHAR | 16 | √ | null | Last IP (to detect cheaters). |
|
items_ancestors | Table | ancestor_item_id | BIGINT | 19 | null | |||
users | Table | time_zone | VARCHAR | 100 | √ | null | Time zone, provided by auth platform |
|
results | Table | attempt_id | BIGINT | 19 | 0 | |||
users | Table | password_md5 | VARCHAR | 100 | √ | null | ||
attempts | Table | created_at | DATETIME | 19 | CURRENT_TIMESTAMP | Time at which the attempt was manually created or was first marked as started (should be when it is first visited). |
||
groups_groups_active | View | personal_info_view_approved | BIT | 1 | null | personal_info_view_approved_at as boolean |
||
results | Table | latest_activity_at | DATETIME | 19 | CURRENT_TIMESTAMP | Time of the latest activity (attempt creation, submission, hint request) of a user on this attempt or its children |
||
items_items | Table | grant_view_propagation | BIT | 1 | 0 | Whether can_grant_view propagates (as the same value, with “solution” as the upper limit) |
||
badges | Table | user_id | BIGINT | 19 | null | |||
group_managers | Table | group_id | BIGINT | 19 | null | |||
users | Table | cell_phone_number | LONGTEXT | 2147483647 | √ | null | Mobile phone number, provided by auth platform |
|
groups_ancestors | Table | is_self | BIT | 1 | √ | null | Whether ancestor_group_id = child_group_id (auto-generated) |
|
groups_ancestors_active | View | expires_at | DATETIME | 19 | 9999-12-31 23:59:59 | The group relation expires at the specified time |
||
items_strings | Table | image_url | VARCHAR | 2048 | √ | null | Url of a small image associated with this item. |
|
group_managers | Table | can_grant_group_access | BIT | 1 | 0 | Can give members access rights to some items (requires the giver to be allowed to give this permission on the item) |
||
items | Table | prompt_to_join_group_by_code | BIT | 1 | 0 | Whether the UI should display a form for joining a group by code on the item page |
||
users | Table | group_id | BIGINT | 19 | null | Group that represents this user |
||
user_batches_v2 | Table | created_at | DATETIME | 19 | CURRENT_TIMESTAMP | |||
user_batch_prefixes | Table | max_users | MEDIUMINT UNSIGNED | 8 | 1000 | Maximum number of users that can be created under this prefix |
||
attempts | Table | id | BIGINT | 19 | null | Identifier of this attempt for this participant, 0 is the default attempt for the participant, the next ones are sequentially assigned. |
||
users | Table | notifications_read_at | DATETIME | 19 | √ | null | When the user last read notifications |
|
goose_db_version | Table | id | BIGINT UNSIGNED | 20 | √ | null | ||
group_membership_changes | Table | member_id | BIGINT | 19 | null | |||
groups | Table | is_public | BIT | 1 | 0 | Whether it is visible to all users (through search) and open to join requests |
||
permissions_generated | Table | can_edit_generated | enum('none', 'children', 'all', 'all_with_grant') | 14 | none | The aggregated level of edition permissions a group has on an item |
||
results_propagate_sync | Table | item_id | BIGINT | 19 | null | |||
filters | Table | participated | BIT | 1 | √ | null | ||
permissions_granted | Table | can_view | enum('none', 'info', 'content', 'content_with_descendants', 'solution') | 24 | none | The level of visibility the group has on the item |
||
items_items | Table | category | enum('Undefined', 'Discovery', 'Application', 'Validation', 'Challenge') | 11 | Undefined | Tag that indicates the role of this item, from the point of view of the parent item's validation criteria. Also gives indication to the user of the role of the item. |
||
groups_groups | Table | lock_membership_approved_at | DATETIME | 19 | √ | null | ||
permissions_propagate_sync_conn | View | group_id | BIGINT | 19 | null | |||
access_tokens | Table | expires_at | DATETIME | 19 | null | The time the token expires and becomes invalid. It should be deleted after this time. |
||
items_propagate | Table | ancestors_computation_state | enum('todo', 'done') | 4 | null | |||
users | Table | first_name | VARCHAR | 100 | √ | null | First name, provided by auth platform |
|
error_log | Table | browser | TEXT | 65535 | null | |||
permissions_granted | Table | group_id | BIGINT | 19 | null | |||
stopwords | Table | value | VARCHAR | 30 | √ | null | ||
group_pending_requests | Table | personal_info_view_approved | BIT | 1 | 0 | for join requests |
||
results | Table | tasks_with_help | INT | 10 | 0 | Number of this item's descendants tasks within this attempts for which the user asked for hints (or help on the forum - not implemented) |
||
groups_ancestors | Table | ancestor_group_id | BIGINT | 19 | null | |||
items | Table | no_score | BIT | 1 | 0 | Whether this item should not have any score displayed / propagated to the parent. |
||
sessions | Table | session_id | BIGINT | 19 | null | |||
answers | Table | attempt_id | BIGINT | 19 | null | |||
groups_ancestors | Table | expires_at | DATETIME | 19 | 9999-12-31 23:59:59 | The group relation expires at the specified time |
||
filters | Table | unread | BIT | 1 | √ | null | ||
filters | Table | selected | BIT | 1 | 0 | |||
permissions_granted | Table | can_edit | enum('none', 'children', 'all', 'all_with_grant') | 14 | none | The level of edition permissions a group has on an item |