Columns
| Table | Type | Column | Type | Size | Nulls | Auto | Default | Comments |
|---|---|---|---|---|---|---|---|---|
| items | Table | default_language_tag | VARCHAR | 6 | null | Default language tag of this task (the reference, used when comparing translations) |
||
| answers | Table | attempt_id | BIGINT | 19 | null | |||
| results_propagate_internal | Table | state | enum('to_be_propagated', 'to_be_recomputed', 'propagating', 'recomputing') | 16 | null | "to_be_propagated" means that ancestors should be recomputed |
||
| platforms | Table | base_url | VARCHAR | 200 | √ | null | Base URL for calling the API of the platform (for GDPR services) |
|
| permissions_granted | Table | group_id | BIGINT | 19 | 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 |
||
| 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 |
||
| items_items | Table | content_view_propagation_value | TINYINT UNSIGNED | 3 | null | content_view_propagation as an integer (to use comparison operators) |
||
| groups_groups_active | View | is_team_membership | BIT | 1 | 0 | true if the parent group is a team |
||
| permissions_propagate_sync | Table | item_id | BIGINT | 19 | null | |||
| groups | Table | address_line1 | VARCHAR | 255 | √ | null | For sessions or schools |
|
| items | Table | supported_lang_prog | VARCHAR | 200 | √ | null | Comma-separated list of programming languages that this item can be solved with; not currently used. |
|
| permissions_propagate_sync | Table | group_id | BIGINT | 19 | null | |||
| users | Table | land_line_number | LONGTEXT | 2147483647 | √ | null | Phone number, provided by auth platform |
|
| user_batches_v2 | Table | created_at | DATETIME | 19 | CURRENT_TIMESTAMP | |||
| items_items | Table | watch_propagation | BIT | 1 | 0 | Whether can_watch propagates (as the same value, with “answer” as the upper limit) |
||
| filters | Table | unread | BIT | 1 | √ | null | ||
| items | Table | hints_allowed | BIT | 1 | 0 | Whether hints are allowed for tasks accessed through this chapter (currently unused) |
||
| 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 |
||
| 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 |
||
| users | Table | open_id_identity | VARCHAR | 255 | √ | null | User's Open Id Identity |
|
| items_items | Table | score_weight | TINYINT UNSIGNED | 3 | 1 | Weight of this child in his parent's score computation |
||
| badges | Table | user_id | BIGINT | 19 | null | |||
| sessions | Table | session_id | BIGINT | 19 | null | |||
| badges | Table | id | BIGINT | 19 | √ | null | ||
| users | Table | free_text | MEDIUMTEXT | 16777215 | √ | null | Text provided by the user, to be displayed on his public profile |
|
| users | Table | access_group_id | BIGINT | 19 | √ | null | ||
| groups | Table | code_expires_at | DATETIME | 19 | √ | null | When the code expires. Set when it is first used. |
|
| groups | Table | grade | INT | 10 | -2 | For some types of groups, indicate which grade the users belong to. |
||
| groups | Table | address_country | VARCHAR | 255 | √ | null | For sessions or schools |
|
| groups_groups | Table | watch_approved | BIT | 1 | null | watch_approved_at as boolean |
||
| items | Table | type | enum('Chapter', 'Task', 'Skill') | 7 | null | |||
| permissions_propagate | Table | item_id | BIGINT | 19 | null | |||
| item_dependencies | Table | item_id | BIGINT | 19 | null | |||
| group_pending_requests | Table | member_id | BIGINT | 19 | null | |||
| groups | Table | code | VARBINARY | 50 | √ | null | Code that can be used to join the group (if it is opened) |
|
| 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. |
||
| answers | Table | answer | MEDIUMTEXT | 16777215 | √ | null | Saved answer (sent by the task platform) |
|
| 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 |
||
| languages | Table | name | VARCHAR | 100 | ||||
| results | Table | help_requested | BIT | 1 | 0 | Whether the participant is requesting help on the item in this attempt |
||
| 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) |
||
| items_propagate | Table | 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 |
||
| threads | Table | helper_group_id | BIGINT | 19 | null | |||
| gradings | Table | score | FLOAT | 12 | null | Score obtained |
||
| items_ancestors | Table | child_item_id | BIGINT | 19 | null | |||
| users | Table | public_first_name | TINYINT | 3 | 0 | Whether show user's first name in his public profile |
||
| 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 |
|
| permissions_generated | Table | can_view_generated_value | TINYINT UNSIGNED | 3 | null | can_view_generated as an integer (to use comparison operators) |
||
| users | Table | member_state | TINYINT | 3 | 0 | On old website, indicates if the user is a member of France-ioi |
||
| groups_ancestors | Table | child_group_id | BIGINT | 19 | null | |||
| items | Table | url | VARCHAR | 2048 | √ | null | Url of the item, as will be loaded in the iframe |
|
| filters | Table | group_id | INT | 10 | √ | null | ||
| groups_groups_active | View | watch_approved | BIT | 1 | null | watch_approved_at as boolean |
||
| items | Table | entry_participant_type | enum('User', 'Team') | 4 | User | For explicit-entry items, the type of participants who can enter |
||
| answers | Table | activity_type_int | TINYINT | 3 | √ | null | ||
| group_managers | Table | can_manage_value | TINYINT UNSIGNED | 3 | null | can_manage as an integer (to use comparison operators) |
||
| groups | Table | type | enum('Class', 'Team', 'Club', 'Friends', 'Other', 'User', 'Session', 'Base', 'ContestParticipants') | 19 | null | |||
| items_strings | Table | description | TEXT | 65535 | √ | null | Description of the item in the specified language |
|
| items | Table | id | BIGINT | 19 | null | |||
| 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. |
|
| threads | Table | status | enum('waiting_for_participant', 'waiting_for_trainer', 'closed') | 23 | null | |||
| groups_groups | Table | parent_group_id | BIGINT | 19 | null | |||
| goose_db_version | Table | id | BIGINT UNSIGNED | 20 | √ | null | ||
| 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) |
||
| permissions_granted | Table | source_group_id | BIGINT | 19 | null | |||
| groups_groups_active | View | parent_group_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 |
||
| permissions_propagate_sync_conn | View | group_id | BIGINT | 19 | null | |||
| users | Table | time_zone | VARCHAR | 100 | √ | null | Time zone, provided by auth platform |
|
| 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 |
||
| permissions_granted | Table | latest_update_at | DATETIME | 19 | CURRENT_TIMESTAMP | Last time one of the attributes has been modified |
||
| 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 |
||
| threads | Table | participant_id | BIGINT | 19 | null | |||
| 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 |
|
| results_propagate_sync | Table | connection_id | BIGINT UNSIGNED | 20 | null | |||
| users | Table | spaces_for_tab | INT | 10 | 3 | How many spaces for a tabulation, in programming tasks. |
||
| results_propagate_sync_conn | View | connection_id | BIGINT UNSIGNED | 20 | null | |||
| 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 |
||
| groups | Table | grade_details | VARCHAR | 50 | √ | null | Explanations about the grade |
|
| group_item_additional_times | Table | item_id | BIGINT | 19 | null | |||
| users | Table | notify_news | TINYINT | 3 | 0 | Whether the user accepts that we send emails about events related to the platform |
||
| users | Table | latest_profile_sync_at | DATETIME | 19 | √ | null | Last time when the profile was synced with the login module |
|
| items | Table | platform_id | INT | 10 | √ | null | Platform that hosts the item content. Auto-generated from |
|
| 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 |
|
| users | Table | temp_user | BIT | 1 | 0 | Whether it is a temporary user. If so, the user will be deleted soon. |
||
| permissions_generated | Table | can_edit_generated_value | TINYINT UNSIGNED | 3 | null | can_edit_generated as an integer (to use comparison operators) |
||
| 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_groups | Table | personal_info_view_approved | BIT | 1 | null | personal_info_view_approved_at as boolean |
||
| item_dependencies | Table | dependent_item_id | BIGINT | 19 | 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 |
|
| users | Table | country_code | CHAR | 3 | 3-letter country code |
|||
| filters | Table | name | VARCHAR | 45 | ||||
| error_log | Table | details | TEXT | 65535 | null | |||
| 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) |
||
| goose_db_version | Table | tstamp | TIMESTAMP | 19 | √ | CURRENT_TIMESTAMP | ||
| group_pending_requests | Table | personal_info_view_approved | BIT | 1 | 0 | for join requests |
||
| groups_propagate | Table | 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. |
||
| permissions_granted | Table | can_view_value | TINYINT UNSIGNED | 3 | null | can_view as an integer (to use comparison operators) |
||
| permissions_granted | Table | can_watch_value | TINYINT UNSIGNED | 3 | null | can_watch as an integer (to use comparison operators) |
||
| items | Table | duration | TIME | 8 | √ | null | Not NULL if time-limited item. If so, how long users have to work on it. |
|
| 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_strings | Table | title | VARCHAR | 200 | √ | null | Title of the item, in the specified language |
|
| items_strings | Table | image_url | VARCHAR | 2048 | √ | null | Url of a small image associated with this item. |
|
| results_propagate_sync | Table | attempt_id | BIGINT | 19 | 0 | |||
| 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 | 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 |
|
| groups | Table | address_city | VARCHAR | 255 | √ | null | For sessions or schools |
|
| groups_groups | Table | expires_at | DATETIME | 19 | 9999-12-31 23:59:59 | The group membership expires at the specified time |
||
| items | Table | repository_path | TEXT | 65535 | √ | null | ||
| error_log | Table | id | BIGINT UNSIGNED | 20 | √ | null | ||
| groups_groups_active | View | lock_membership_approved | BIT | 1 | null | lock_membership_approved_at as boolean |
||
| filters | Table | older_than | INT | 10 | √ | null | ||
| 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 |
||
| users | Table | graduation_year | INT | 10 | 0 | High school graduation year |
||
| users | Table | profile_first_name | TEXT | 65535 | √ | null | ||
| results_propagate_internal | Table | item_id | BIGINT | 19 | null | |||
| results_propagate_sync | Table | participant_id | BIGINT | 19 | null | |||
| error_log | Table | date | TIMESTAMP | 19 | CURRENT_TIMESTAMP | |||
| items_strings | Table | item_id | BIGINT | 19 | null | |||
| 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 |
||
| attempts | Table | participant_id | BIGINT | 19 | null | |||
| users | Table | step_level_in_site | INT | 10 | 0 | User's level |
||
| group_managers | Table | manager_id | BIGINT | 19 | null | |||
| 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_propagate_sync_conn | View | item_id | BIGINT | 19 | null | |||
| attempts | Table | parent_attempt_id | BIGINT | 19 | √ | null | The attempt from which this one was forked. NULL for the default attempt. |
|
| filters | Table | selected | BIT | 1 | 0 | |||
| 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). |
||
| users | Table | student_id | TEXT | 65535 | √ | null | A student id provided by the school, provided by auth platform |
|
| groups_groups | Table | is_team_membership | BIT | 1 | 0 | true if the parent group is a team |
||
| items | Table | no_score | BIT | 1 | 0 | Whether this item should not have any score displayed / propagated to the parent. |
||
| 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 |
||
| filters | Table | body_search | VARCHAR | 100 | √ | 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_ancestors_active | View | ancestor_group_id | BIGINT | 19 | null | |||
| items_items | Table | request_help_propagation | TINYINT | 3 | 0 | Whether can_request_help_to propagates |
||
| groups_groups | Table | lock_membership_approved_at | DATETIME | 19 | √ | null | ||
| group_pending_requests | Table | watch_approved | BIT | 1 | 0 | for join requests |
||
| permissions_generated | Table | can_watch_generated_value | TINYINT UNSIGNED | 3 | null | can_watch_generated as an integer (to use comparison operators) |
||
| users | Table | last_name | VARCHAR | 100 | √ | null | Last name, provided by auth platform |
|
| 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) |
||
| 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) |
||
| answers | Table | participant_id | BIGINT | 19 | null | |||
| results_propagate_internal | Table | participant_id | BIGINT | 19 | null | |||
| users | Table | first_name | VARCHAR | 100 | √ | null | First name, provided by auth platform |
|
| 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. |
||
| items_items | Table | content_view_propagation | enum('none', 'as_info', 'as_content') | 10 | none | Defines how a can_view=”content” permission propagates |
||
| 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 |
||
| platforms | Table | id | INT | 10 | √ | null | ||
| 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) |
||
| users | Table | default_language | CHAR | 3 | fr | Current language used to display content. Initial version provided by auth platform, then can be changed manually. |
||
| groups_groups_active | View | expires_at | DATETIME | 19 | 9999-12-31 23:59:59 | The group membership expires at the specified time |
||
| users | Table | web_site | VARCHAR | 100 | √ | null | Link to the user's website, to be displayed on his public profile |
|
| groups_groups | Table | watch_approved_at | DATETIME | 19 | √ | null | ||
| users | Table | salt | VARCHAR | 32 | √ | null | ||
| groups | Table | root_activity_id | BIGINT | 19 | √ | null | Root activity (chapter, task, or course) associated with this group |
|
| results | Table | hints_requested | MEDIUMTEXT | 16777215 | √ | null | JSON array of the hints that have been requested for this attempt |
|
| results_propagate | Table | state | enum('to_be_propagated', 'to_be_recomputed') | 16 | null | "to_be_propagated" means that ancestors should be recomputed |
||
| threads | Table | item_id | BIGINT | 19 | null | |||
| results | Table | attempt_id | BIGINT | 19 | 0 | |||
| answers | Table | id | BIGINT | 19 | √ | null | ||
| 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. |
||
| 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 |
||
| results | Table | recomputing_state | enum('recomputing', 'modified', 'unchanged') | 11 | unchanged | State of the result, used during recomputing |
||
| 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 |
||
| answers | Table | item_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 |
||
| 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 | ||
| access_tokens | Table | session_id | BIGINT | 19 | null | |||
| user_batches_v2 | Table | group_prefix | VARCHAR | 13 | null | Authorized (first) part of the full login prefix |
||
| users | Table | zipcode | LONGTEXT | 2147483647 | √ | null | Zip code, provided by auth platform |
|
| results_recompute_for_items | Table | is_being_processed | BIT | 1 | 0 | |||
| user_batch_prefixes | Table | group_prefix | VARCHAR | 13 | null | Prefix used in front of all batches |
||
| 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) |
||
| 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 | Table | entry_max_team_size | INT | 10 | 0 | The maximum number of members a team can have to enter |
||
| filters | Table | users_search | VARCHAR | 200 | √ | null | ||
| threads | Table | message_count | INT | 10 | 0 | Approximation of the number of message sent on the thread. |
||
| groups_ancestors_active | View | expires_at | DATETIME | 19 | 9999-12-31 23:59:59 | The group relation expires at the specified time |
||
| groups_groups_active | View | personal_info_view_approved | BIT | 1 | null | personal_info_view_approved_at as boolean |
||
| groups | Table | address_line2 | VARCHAR | 255 | √ | null | For sessions or schools |
|
| results | Table | submissions | INT | 10 | 0 | Number of submissions. Only for tasks, not propagated |
||
| users | Table | group_id | BIGINT | 19 | null | Group that represents this user |
||
| users | Table | latest_login_at | DATETIME | 19 | √ | null | When is the last time this user logged in on the platform |
|
| users | Table | cell_phone_number | LONGTEXT | 2147483647 | √ | null | Mobile phone number, provided by auth platform |
|
| group_managers | Table | can_manage | enum('none', 'memberships', 'memberships_and_group') | 21 | none | |||
| group_pending_requests | Table | group_id | BIGINT | 19 | null | |||
| 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 |
||
| items_strings | Table | edu_comment | TEXT | 65535 | √ | null | Information about what this item teaches, in the specified language. |
|
| results_propagate | Table | item_id | BIGINT | 19 | null | |||
| badges | Table | name | TEXT | 65535 | √ | null | ||
| results | Table | latest_submission_at | DATETIME | 19 | √ | null | Time of the latest submission. Only for tasks, not propagated |
|
| items | Table | title_bar_visible | TINYINT UNSIGNED | 3 | 1 | Whether the title bar should be visible initially when this item is loaded |
||
| groups | Table | max_participants | INT UNSIGNED | 10 | √ | null | The maximum number of participants (users and teams) in this group (strict limit if |
|
| group_item_additional_times | Table | group_id | BIGINT | 19 | null | |||
| groups_ancestors | Table | ancestor_group_id | BIGINT | 19 | null | |||
| groups_groups_active | View | watch_approved_at | DATETIME | 19 | √ | null | ||
| item_dependencies | Table | grant_content_view | BIT | 1 | 1 | Whether obtaining the required score at the item grants content view to the dependent item |
||
| 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. |
|
| group_pending_requests | Table | at | DATETIME | 23 | CURRENT_TIMESTAMP(3) | |||
| groups | Table | expected_start | DATETIME | 19 | √ | null | For sessions, time at which the session is expected to start |
|
| items_items | Table | child_item_id | BIGINT | 19 | null | |||
| groups_groups | Table | lock_membership_approved | BIT | 1 | null | lock_membership_approved_at as boolean |
||
| results_propagate | Table | participant_id | BIGINT | 19 | null | |||
| 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. |
|
| items | Table | requires_explicit_entry | BIT | 1 | 0 | Whether this item requires an explicit entry to be started (create an attempt) |
||
| groups | Table | name | VARCHAR | 200 | ||||
| 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 | latest_activity_at | DATETIME | 19 | √ | null | Last activity time on the platform (any action) |
|
| groups_groups_active | View | child_group_id | BIGINT | 19 | null | |||
| groups | Table | id | BIGINT | 19 | null | |||
| users | Table | grade | INT | 10 | √ | null | School grade, provided by auth platform |
|
| permissions_granted | Table | item_id | BIGINT | 19 | null | |||
| attempts | Table | ended_at | DATETIME | 19 | √ | null | Time at which the attempt was (typically manually) ended |
|
| users | Table | login_id | BIGINT | 19 | √ | null | "userId" returned by the auth platform |
|
| groups | Table | is_official_session | BIT | 1 | 0 | Whether this session is shown on the activity page (require specific permissions) |
||
| platforms | Table | public_key | VARCHAR | 512 | √ | null | Public key of this platform |
|
| permissions_generated | Table | item_id | BIGINT | 19 | null | |||
| users | Table | is_admin | TINYINT | 3 | 0 | Is the user an admin? Not used? |
||
| 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 |
||
| 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. |
||
| permissions_granted | Table | can_edit_value | TINYINT UNSIGNED | 3 | null | can_edit as an integer (to use comparison operators) |
||
| users | Table | creator_id | BIGINT | 19 | √ | null | User who created a given login with the login generation tool |
|
| results | Table | participant_id | BIGINT | 19 | null | |||
| items_items | Table | upper_view_levels_propagation_value | TINYINT UNSIGNED | 3 | null | upper_view_levels_propagation as an integer (to use comparison operators) |
||
| access_tokens | Table | issued_at | DATETIME | 19 | CURRENT_TIMESTAMP | The time the token was issued. |
||
| 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. |
||
| filters | Table | starred | BIT | 1 | √ | null | ||
| results | Table | hints_cached | INT | 10 | 0 | Number of hints which have been requested for this attempt |
||
| 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 |
||
| 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. |
|
| 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) |
||
| users | Table | help_given | INT | 10 | 0 | How many times did the user help others (# of discussions) |
||
| groups_propagate | Table | ancestors_computation_state | enum('todo', 'done') | 4 | null | |||
| permissions_propagate_sync_conn | View | connection_id | BIGINT UNSIGNED | 20 | null | |||
| results_propagate_sync_conn | View | attempt_id | BIGINT | 19 | 0 | |||
| filters | Table | start_date | DATETIME | 19 | √ | null | ||
| users | Table | registered_at | DATETIME | 19 | √ | null | When the user first connected to this platform |
|
| results | Table | validated_at | DATETIME | 19 | √ | null | Submission time of the first answer that made the attempt validated |
|
| results | Table | validated | BIT | 1 | null | Auto-generated from |
||
| users | Table | address | MEDIUMTEXT | 16777215 | √ | null | Address, provided by auth platform |
|
| groups_ancestors_active | View | is_self | BIT | 1 | √ | null | Whether ancestor_group_id = child_group_id (auto-generated) |
|
| items | Table | allows_multiple_attempts | BIT | 1 | 0 | Whether participants can create multiple attempts when working on this item |
||
| groups | Table | frozen_membership | BIT | 1 | √ | 0 | Whether members can be added/removed to the group (intended for teams) |
|
| users | Table | city | LONGTEXT | 2147483647 | √ | null | City, provided by auth platform |
|
| results_propagate | Table | attempt_id | BIGINT | 19 | 0 | |||
| users | Table | photo_autoload | BIT | 1 | 0 | Indicates that the user has a picture associated with his profile. Not used yet. |
||
| answers | Table | created_at | DATETIME | 19 | null | Submission time |
||
| filters | Table | newer_than | INT | 10 | √ | null | ||
| users | Table | last_ip | VARCHAR | 16 | √ | null | Last IP (to detect cheaters). |
|
| items | Table | display_details_in_parent | TINYINT UNSIGNED | 3 | 0 | If true, display a large icon, the subtitle, and more within the parent chapter |
||
| items | Table | text_id | VARCHAR | 200 | √ | null | Unique string identifying the item, independently of where it is hosted |
|
| group_managers | Table | group_id | BIGINT | 19 | null | |||
| gradings | Table | answer_id | BIGINT | 19 | null | |||
| threads | Table | latest_update_at | DATETIME | 19 | CURRENT_TIMESTAMP | Last time a message was posted or the status was updated. |
||
| 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. |
||
| user_batch_prefixes | Table | allow_new | BIT | 1 | 1 | Whether this prefix can be used for new user batches |
||
| platforms | Table | name | VARCHAR | 50 | ||||
| users | Table | VARCHAR | 100 | √ | null | E-mail, provided by auth platform |
||
| filters | Table | important | BIT | 1 | √ | null | ||
| group_membership_changes | Table | member_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 |
|
| permissions_generated | Table | group_id | BIGINT | 19 | null | |||
| groups_ancestors_active | View | child_group_id | BIGINT | 19 | null | |||
| users | Table | notifications_read_at | DATETIME | 19 | √ | null | When the user last read notifications |
|
| user_batches_v2 | Table | custom_prefix | VARCHAR | 14 | null | Second part of the full login prefix, given by the user that created the batch |
||
| filters | Table | participated | BIT | 1 | √ | null | ||
| users | Table | sex | enum('Male', 'Female') | 6 | √ | null | Gender, provided by auth platform |
|
| group_membership_changes | Table | group_id | BIGINT | 19 | null | |||
| 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) |
||
| results | Table | score_obtained_at | DATETIME | 19 | √ | null | Submission time of the first answer which led to the best score |
|
| results_propagate_sync | Table | item_id | BIGINT | 19 | null | |||
| results_propagate_sync_conn | View | participant_id | BIGINT | 19 | null | |||
| 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) |
||
| permissions_propagate_sync | Table | connection_id | BIGINT UNSIGNED | 20 | null | |||
| goose_db_version | Table | version_id | BIGINT | 19 | null | |||
| items_strings | Table | subtitle | VARCHAR | 200 | √ | null | Subtitle of the item in the specified language |
|
| permissions_granted | Table | can_make_session_official | BIT | 1 | 0 | Whether the group is allowed to associate official sessions to this item |
||
| users | Table | login | VARCHAR | 100 | login provided by the auth platform |
|||
| groups | Table | address_postcode | VARCHAR | 25 | √ | null | For sessions or schools |
|
| 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). |
||
| 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 |
|
| groups | Table | organizer | VARCHAR | 255 | √ | null | For sessions, a teacher/animator in charge of the organization |
|
| items_strings | Table | language_tag | VARCHAR | 6 | null | Language tag of this content |
||
| users | Table | lang_prog | VARCHAR | 30 | √ | Python | Current programming language selected by the user (to display the corresponding version of tasks) |
|
| groups_groups | Table | child_group_id | BIGINT | 19 | null | |||
| 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 |
||
| filters | Table | item_id | BIGINT | 19 | √ | null | ||
| results | Table | score_edit_comment | VARCHAR | 200 | √ | null | Explanation of the value set in score_edit_value |
|
| items_propagate | Table | ancestors_computation_state | enum('todo', 'done') | 4 | null | |||
| error_log | Table | browser | TEXT | 65535 | null | |||
| groups | Table | root_skill_id | BIGINT | 19 | √ | null | Root skill associated with this group |
|
| filters | Table | id | BIGINT | 19 | null | |||
| users | Table | profile_last_name | TEXT | 65535 | √ | null | ||
| answers | Table | state | MEDIUMTEXT | 16777215 | √ | null | Saved state (sent by the task platform) |
|
| user_batches_v2 | Table | size | MEDIUMINT UNSIGNED | 8 | null | Number of users created in this batch |
||
| permissions_propagate_sync_conn | View | item_id | BIGINT | 19 | null | |||
| 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) |
||
| items | Table | options | TEXT | 65535 | √ | null | Options passed to the task, formatted as a JSON object |
|
| stopwords | Table | value | VARCHAR | 30 | √ | null | ||
| groups | Table | send_emails | BIT | 1 | 0 | |||
| groups | Table | enforce_max_participants | BIT | 1 | √ | 0 | Whether the number of participants is a strict constraint |
|
| users | Table | email_verified | BIT | 1 | 0 | Whether email has been verified, provided by auth platform |
||
| items | Table | entry_frozen_teams | BIT | 1 | 0 | Whether teams require to have |
||
| gradings | Table | graded_at | DATETIME | 19 | null | When was it last graded |
||
| items | Table | uses_api | BIT | 1 | 1 | Whether the item uses the task integration API, at the minimum the load and getHeight functions. |
||
| 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 |
||
| 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. |
|
| attempts | Table | creator_id | BIGINT | 19 | √ | null | The user who created this attempt |
|
| users | Table | password_md5 | VARCHAR | 100 | √ | null | ||
| users | Table | public_last_name | TINYINT | 3 | 0 | Whether show user's last name in his public profile |
||
| permissions_generated | Table | can_grant_view_generated_value | TINYINT UNSIGNED | 3 | null | can_grant_view_generated as an integer (to use comparison operators) |
||
| users | Table | recover | VARCHAR | 50 | √ | null | ||
| answers | Table | author_id | BIGINT | 19 | null | |||
| user_batches_v2 | Table | creator_id | BIGINT | 19 | √ | null | ||
| sessions | Table | user_id | BIGINT | 19 | null | |||
| 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 | started | BIT | 1 | null | Auto-generated from |
||
| items_items | Table | parent_item_id | BIGINT | 19 | null | |||
| results | Table | latest_hint_at | DATETIME | 19 | √ | null | Time of the last request for a hint. Only for tasks, not propagated |
|
| group_pending_requests | Table | lock_membership_approved | BIT | 1 | 0 | for join requests |
||
| users | Table | birth_date | DATE | 10 | √ | null | Date of birth, provided by auth platform |
|
| attempts | Table | root_item_id | BIGINT | 19 | √ | null | The item on which the attempt was created |
|
| groups_groups_active | View | personal_info_view_approved_at | DATETIME | 19 | √ | null | ||
| items_strings | Table | translator | VARCHAR | 100 | √ | null | Name of the translator(s) of this content |
|
| results_propagate_internal | Table | attempt_id | BIGINT | 19 | 0 | |||
| items | Table | children_layout | enum('List', 'Grid', 'Hide') | 4 | √ | List | How the children list are displayed (for chapters and skills) |
|
| groups_ancestors | Table | is_self | BIT | 1 | √ | null | Whether ancestor_group_id = child_group_id (auto-generated) |
|
| 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) |
||
| 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_membership_changes | Table | at | DATETIME | 23 | CURRENT_TIMESTAMP(3) | Time of the action |
||
| users | Table | basic_editor_mode | TINYINT | 3 | 1 | Which editor should be used in programming tasks. |
||
| languages | Table | tag | VARCHAR | 6 | null | Language tag as defined in RFC5646 |
||
| items_ancestors | Table | ancestor_item_id | BIGINT | 19 | null | |||
| groups | Table | created_at | DATETIME | 19 | CURRENT_TIMESTAMP | |||
| goose_db_version | Table | is_applied | BIT | 1 | 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 |
||
| filters | Table | end_date | DATETIME | 19 | √ | null | ||
| results_recompute_for_items | Table | item_id | BIGINT | 19 | null | |||
| permissions_granted | Table | can_grant_view_value | TINYINT UNSIGNED | 3 | null | can_grant_view as an integer (to use comparison operators) |
||
| groups_groups | Table | personal_info_view_approved_at | DATETIME | 19 | √ | null | ||
| groups_groups_active | View | lock_membership_approved_at | DATETIME | 19 | √ | null | ||
| access_tokens | Table | token | VARBINARY | 2000 | null | The access token. |
||
| items_items | Table | edit_propagation | BIT | 1 | 0 | Whether can_edit propagates (as the same value, with “all” as the upper limit) |
||
| users | Table | profile | JSON | 1073741824 | √ | null | A JSON object containing user profile information returned by the login module as the "profile" field |
|
| error_log | Table | url | TEXT | 65535 | null | |||
| badges | Table | code | TEXT | 65535 | null | |||
| 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 |
||
| group_pending_requests | Table | type | enum('invitation', 'join_request', 'leave_request') | 13 | √ | null | ||
| 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 |
|
| 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. |
||
| 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). |
||
| user_batch_prefixes | Table | max_users | MEDIUMINT UNSIGNED | 8 | 1000 | Maximum number of users that can be created under this prefix |
||
| permissions_propagate | Table | group_id | BIGINT | 19 | 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). |
||
| filters | Table | archived | BIT | 1 | √ | null | ||
| filters | Table | user_id | BIGINT | 19 | null | |||
| permissions_granted | Table | origin | enum('group_membership', 'item_unlocking', 'self', 'other') | 16 | null |