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