summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
Diffstat (limited to 'db')
-rw-r--r--db/docs/abuse_reports.yml9
-rw-r--r--db/docs/agent_activity_events.yml9
-rw-r--r--db/docs/agent_group_authorizations.yml9
-rw-r--r--db/docs/agent_project_authorizations.yml9
-rw-r--r--db/docs/alert_management_alert_assignees.yml9
-rw-r--r--db/docs/alert_management_alert_metric_images.yml9
-rw-r--r--db/docs/alert_management_alert_user_mentions.yml9
-rw-r--r--db/docs/alert_management_alerts.yml9
-rw-r--r--db/docs/alert_management_http_integrations.yml9
-rw-r--r--db/docs/allowed_email_domains.yml9
-rw-r--r--db/docs/analytics_cycle_analytics_aggregations.yml9
-rw-r--r--db/docs/analytics_cycle_analytics_group_stages.yml9
-rw-r--r--db/docs/analytics_cycle_analytics_group_value_streams.yml9
-rw-r--r--db/docs/analytics_cycle_analytics_issue_stage_events.yml9
-rw-r--r--db/docs/analytics_cycle_analytics_merge_request_stage_events.yml9
-rw-r--r--db/docs/analytics_cycle_analytics_project_stages.yml9
-rw-r--r--db/docs/analytics_cycle_analytics_project_value_streams.yml9
-rw-r--r--db/docs/analytics_cycle_analytics_stage_event_hashes.yml9
-rw-r--r--db/docs/analytics_devops_adoption_segments.yml9
-rw-r--r--db/docs/analytics_devops_adoption_snapshots.yml9
-rw-r--r--db/docs/analytics_language_trend_repository_languages.yml9
-rw-r--r--db/docs/analytics_usage_trends_measurements.yml9
-rw-r--r--db/docs/appearances.yml9
-rw-r--r--db/docs/application_setting_terms.yml9
-rw-r--r--db/docs/application_settings.yml14
-rw-r--r--db/docs/approval_merge_request_rule_sources.yml9
-rw-r--r--db/docs/approval_merge_request_rules.yml9
-rw-r--r--db/docs/approval_merge_request_rules_approved_approvers.yml8
-rw-r--r--db/docs/approval_merge_request_rules_groups.yml8
-rw-r--r--db/docs/approval_merge_request_rules_users.yml8
-rw-r--r--db/docs/approval_project_rules.yml9
-rw-r--r--db/docs/approval_project_rules_groups.yml8
-rw-r--r--db/docs/approval_project_rules_protected_branches.yml9
-rw-r--r--db/docs/approval_project_rules_users.yml8
-rw-r--r--db/docs/approvals.yml9
-rw-r--r--db/docs/approver_groups.yml9
-rw-r--r--db/docs/approvers.yml9
-rw-r--r--db/docs/ar_internal_metadata.yml8
-rw-r--r--db/docs/atlassian_identities.yml9
-rw-r--r--db/docs/audit_events.yml9
-rw-r--r--db/docs/audit_events_external_audit_event_destinations.yml9
-rw-r--r--db/docs/authentication_events.yml9
-rw-r--r--db/docs/award_emoji.yml9
-rw-r--r--db/docs/aws_roles.yml9
-rw-r--r--db/docs/background_migration_jobs.yml9
-rw-r--r--db/docs/badges.yml11
-rw-r--r--db/docs/banned_users.yml9
-rw-r--r--db/docs/batched_background_migration_job_transition_logs.yml9
-rw-r--r--db/docs/batched_background_migration_jobs.yml9
-rw-r--r--db/docs/batched_background_migrations.yml9
-rw-r--r--db/docs/board_assignees.yml9
-rw-r--r--db/docs/board_group_recent_visits.yml9
-rw-r--r--db/docs/board_labels.yml9
-rw-r--r--db/docs/board_project_recent_visits.yml9
-rw-r--r--db/docs/board_user_preferences.yml9
-rw-r--r--db/docs/boards.yml9
-rw-r--r--db/docs/boards_epic_board_labels.yml9
-rw-r--r--db/docs/boards_epic_board_positions.yml9
-rw-r--r--db/docs/boards_epic_board_recent_visits.yml9
-rw-r--r--db/docs/boards_epic_boards.yml9
-rw-r--r--db/docs/boards_epic_list_user_preferences.yml9
-rw-r--r--db/docs/boards_epic_lists.yml9
-rw-r--r--db/docs/boards_epic_user_preferences.yml9
-rw-r--r--db/docs/broadcast_messages.yml9
-rw-r--r--db/docs/bulk_import_configurations.yml9
-rw-r--r--db/docs/bulk_import_entities.yml9
-rw-r--r--db/docs/bulk_import_export_uploads.yml9
-rw-r--r--db/docs/bulk_import_exports.yml9
-rw-r--r--db/docs/bulk_import_failures.yml9
-rw-r--r--db/docs/bulk_import_trackers.yml9
-rw-r--r--db/docs/bulk_imports.yml9
-rw-r--r--db/docs/chat_names.yml9
-rw-r--r--db/docs/chat_teams.yml9
-rw-r--r--db/docs/ci_build_needs.yml9
-rw-r--r--db/docs/ci_build_pending_states.yml9
-rw-r--r--db/docs/ci_build_report_results.yml9
-rw-r--r--db/docs/ci_build_trace_chunks.yml9
-rw-r--r--db/docs/ci_build_trace_metadata.yml9
-rw-r--r--db/docs/ci_builds.yml13
-rw-r--r--db/docs/ci_builds_metadata.yml9
-rw-r--r--db/docs/ci_builds_runner_session.yml9
-rw-r--r--db/docs/ci_daily_build_group_report_results.yml9
-rw-r--r--db/docs/ci_deleted_objects.yml9
-rw-r--r--db/docs/ci_freeze_periods.yml9
-rw-r--r--db/docs/ci_group_variables.yml9
-rw-r--r--db/docs/ci_instance_variables.yml9
-rw-r--r--db/docs/ci_job_artifact_states.yml9
-rw-r--r--db/docs/ci_job_artifacts.yml10
-rw-r--r--db/docs/ci_job_token_project_scope_links.yml9
-rw-r--r--db/docs/ci_job_variables.yml9
-rw-r--r--db/docs/ci_minutes_additional_packs.yml9
-rw-r--r--db/docs/ci_namespace_mirrors.yml9
-rw-r--r--db/docs/ci_namespace_monthly_usages.yml9
-rw-r--r--db/docs/ci_pending_builds.yml9
-rw-r--r--db/docs/ci_pipeline_artifacts.yml9
-rw-r--r--db/docs/ci_pipeline_chat_data.yml9
-rw-r--r--db/docs/ci_pipeline_messages.yml9
-rw-r--r--db/docs/ci_pipeline_schedule_variables.yml9
-rw-r--r--db/docs/ci_pipeline_schedules.yml9
-rw-r--r--db/docs/ci_pipeline_variables.yml9
-rw-r--r--db/docs/ci_pipelines.yml9
-rw-r--r--db/docs/ci_pipelines_config.yml9
-rw-r--r--db/docs/ci_platform_metrics.yml9
-rw-r--r--db/docs/ci_project_mirrors.yml9
-rw-r--r--db/docs/ci_project_monthly_usages.yml9
-rw-r--r--db/docs/ci_refs.yml9
-rw-r--r--db/docs/ci_resource_groups.yml9
-rw-r--r--db/docs/ci_resources.yml9
-rw-r--r--db/docs/ci_runner_namespaces.yml9
-rw-r--r--db/docs/ci_runner_projects.yml9
-rw-r--r--db/docs/ci_runners.yml9
-rw-r--r--db/docs/ci_running_builds.yml9
-rw-r--r--db/docs/ci_secure_files.yml9
-rw-r--r--db/docs/ci_sources_pipelines.yml9
-rw-r--r--db/docs/ci_sources_projects.yml9
-rw-r--r--db/docs/ci_stages.yml9
-rw-r--r--db/docs/ci_subscriptions_projects.yml9
-rw-r--r--db/docs/ci_trigger_requests.yml9
-rw-r--r--db/docs/ci_triggers.yml9
-rw-r--r--db/docs/ci_unit_test_failures.yml9
-rw-r--r--db/docs/ci_unit_tests.yml9
-rw-r--r--db/docs/ci_variables.yml9
-rw-r--r--db/docs/cluster_agent_tokens.yml9
-rw-r--r--db/docs/cluster_agents.yml9
-rw-r--r--db/docs/cluster_groups.yml9
-rw-r--r--db/docs/cluster_platforms_kubernetes.yml9
-rw-r--r--db/docs/cluster_projects.yml9
-rw-r--r--db/docs/cluster_providers_aws.yml9
-rw-r--r--db/docs/cluster_providers_gcp.yml9
-rw-r--r--db/docs/clusters.yml9
-rw-r--r--db/docs/clusters_applications_cert_managers.yml9
-rw-r--r--db/docs/clusters_applications_cilium.yml9
-rw-r--r--db/docs/clusters_applications_crossplane.yml9
-rw-r--r--db/docs/clusters_applications_elastic_stacks.yml9
-rw-r--r--db/docs/clusters_applications_helm.yml9
-rw-r--r--db/docs/clusters_applications_ingress.yml9
-rw-r--r--db/docs/clusters_applications_jupyter.yml9
-rw-r--r--db/docs/clusters_applications_knative.yml9
-rw-r--r--db/docs/clusters_applications_prometheus.yml9
-rw-r--r--db/docs/clusters_applications_runners.yml9
-rw-r--r--db/docs/clusters_integration_elasticstack.yml9
-rw-r--r--db/docs/clusters_integration_prometheus.yml9
-rw-r--r--db/docs/clusters_kubernetes_namespaces.yml9
-rw-r--r--db/docs/commit_user_mentions.yml9
-rw-r--r--db/docs/compliance_management_frameworks.yml9
-rw-r--r--db/docs/container_expiration_policies.yml9
-rw-r--r--db/docs/container_repositories.yml9
-rw-r--r--db/docs/content_blocked_states.yml8
-rw-r--r--db/docs/conversational_development_index_metrics.yml9
-rw-r--r--db/docs/coverage_fuzzing_corpuses.yml9
-rw-r--r--db/docs/csv_issue_imports.yml9
-rw-r--r--db/docs/custom_emoji.yml9
-rw-r--r--db/docs/customer_relations_contacts.yml9
-rw-r--r--db/docs/customer_relations_organizations.yml9
-rw-r--r--db/docs/dast_profile_schedules.yml9
-rw-r--r--db/docs/dast_profiles.yml9
-rw-r--r--db/docs/dast_profiles_pipelines.yml9
-rw-r--r--db/docs/dast_scanner_profiles.yml9
-rw-r--r--db/docs/dast_scanner_profiles_builds.yml9
-rw-r--r--db/docs/dast_site_profile_secret_variables.yml9
-rw-r--r--db/docs/dast_site_profiles.yml9
-rw-r--r--db/docs/dast_site_profiles_builds.yml9
-rw-r--r--db/docs/dast_site_profiles_pipelines.yml8
-rw-r--r--db/docs/dast_site_tokens.yml9
-rw-r--r--db/docs/dast_site_validations.yml9
-rw-r--r--db/docs/dast_sites.yml9
-rw-r--r--db/docs/dependency_proxy_blobs.yml9
-rw-r--r--db/docs/dependency_proxy_group_settings.yml9
-rw-r--r--db/docs/dependency_proxy_image_ttl_group_policies.yml9
-rw-r--r--db/docs/dependency_proxy_manifests.yml9
-rw-r--r--db/docs/deploy_keys_projects.yml9
-rw-r--r--db/docs/deploy_tokens.yml9
-rw-r--r--db/docs/deployment_approvals.yml9
-rw-r--r--db/docs/deployment_clusters.yml9
-rw-r--r--db/docs/deployment_merge_requests.yml9
-rw-r--r--db/docs/deployments.yml9
-rw-r--r--db/docs/description_versions.yml9
-rw-r--r--db/docs/design_management_designs.yml9
-rw-r--r--db/docs/design_management_designs_versions.yml9
-rw-r--r--db/docs/design_management_versions.yml9
-rw-r--r--db/docs/design_user_mentions.yml9
-rw-r--r--db/docs/detached_partitions.yml17
-rw-r--r--db/docs/diff_note_positions.yml9
-rw-r--r--db/docs/dora_daily_metrics.yml9
-rw-r--r--db/docs/draft_notes.yml11
-rw-r--r--db/docs/elastic_index_settings.yml9
-rw-r--r--db/docs/elastic_reindexing_slices.yml9
-rw-r--r--db/docs/elastic_reindexing_subtasks.yml9
-rw-r--r--db/docs/elastic_reindexing_tasks.yml9
-rw-r--r--db/docs/elasticsearch_indexed_namespaces.yml9
-rw-r--r--db/docs/elasticsearch_indexed_projects.yml9
-rw-r--r--db/docs/emails.yml9
-rw-r--r--db/docs/environments.yml9
-rw-r--r--db/docs/epic_issues.yml9
-rw-r--r--db/docs/epic_metrics.yml9
-rw-r--r--db/docs/epic_user_mentions.yml9
-rw-r--r--db/docs/epics.yml9
-rw-r--r--db/docs/error_tracking_client_keys.yml9
-rw-r--r--db/docs/error_tracking_error_events.yml9
-rw-r--r--db/docs/error_tracking_errors.yml9
-rw-r--r--db/docs/events.yml10
-rw-r--r--db/docs/evidences.yml9
-rw-r--r--db/docs/experiment_subjects.yml9
-rw-r--r--db/docs/experiment_users.yml9
-rw-r--r--db/docs/experiments.yml9
-rw-r--r--db/docs/external_approval_rules.yml8
-rw-r--r--db/docs/external_approval_rules_protected_branches.yml8
-rw-r--r--db/docs/external_pull_requests.yml9
-rw-r--r--db/docs/external_status_checks.yml9
-rw-r--r--db/docs/external_status_checks_protected_branches.yml8
-rw-r--r--db/docs/feature_gates.yml10
-rw-r--r--db/docs/features.yml10
-rw-r--r--db/docs/fork_network_members.yml9
-rw-r--r--db/docs/fork_networks.yml9
-rw-r--r--db/docs/geo_cache_invalidation_events.yml9
-rw-r--r--db/docs/geo_container_repository_updated_events.yml9
-rw-r--r--db/docs/geo_event_log.yml9
-rw-r--r--db/docs/geo_events.yml9
-rw-r--r--db/docs/geo_hashed_storage_attachments_events.yml9
-rw-r--r--db/docs/geo_hashed_storage_migrated_events.yml9
-rw-r--r--db/docs/geo_job_artifact_deleted_events.yml9
-rw-r--r--db/docs/geo_lfs_object_deleted_events.yml8
-rw-r--r--db/docs/geo_node_namespace_links.yml9
-rw-r--r--db/docs/geo_node_statuses.yml9
-rw-r--r--db/docs/geo_nodes.yml9
-rw-r--r--db/docs/geo_repositories_changed_events.yml9
-rw-r--r--db/docs/geo_repository_created_events.yml9
-rw-r--r--db/docs/geo_repository_deleted_events.yml9
-rw-r--r--db/docs/geo_repository_renamed_events.yml9
-rw-r--r--db/docs/geo_repository_updated_events.yml9
-rw-r--r--db/docs/geo_reset_checksum_events.yml9
-rw-r--r--db/docs/gitlab_subscription_histories.yml9
-rw-r--r--db/docs/gitlab_subscriptions.yml9
-rw-r--r--db/docs/gpg_key_subkeys.yml9
-rw-r--r--db/docs/gpg_keys.yml9
-rw-r--r--db/docs/gpg_signatures.yml9
-rw-r--r--db/docs/grafana_integrations.yml9
-rw-r--r--db/docs/group_crm_settings.yml9
-rw-r--r--db/docs/group_custom_attributes.yml9
-rw-r--r--db/docs/group_deletion_schedules.yml9
-rw-r--r--db/docs/group_deploy_keys.yml9
-rw-r--r--db/docs/group_deploy_keys_groups.yml9
-rw-r--r--db/docs/group_deploy_tokens.yml9
-rw-r--r--db/docs/group_group_links.yml9
-rw-r--r--db/docs/group_import_states.yml9
-rw-r--r--db/docs/group_merge_request_approval_settings.yml9
-rw-r--r--db/docs/group_repository_storage_moves.yml9
-rw-r--r--db/docs/group_wiki_repositories.yml9
-rw-r--r--db/docs/historical_data.yml9
-rw-r--r--db/docs/identities.yml9
-rw-r--r--db/docs/import_export_uploads.yml9
-rw-r--r--db/docs/import_failures.yml9
-rw-r--r--db/docs/in_product_marketing_emails.yml9
-rw-r--r--db/docs/incident_management_escalation_policies.yml9
-rw-r--r--db/docs/incident_management_escalation_rules.yml9
-rw-r--r--db/docs/incident_management_issuable_escalation_statuses.yml9
-rw-r--r--db/docs/incident_management_oncall_participants.yml9
-rw-r--r--db/docs/incident_management_oncall_rotations.yml9
-rw-r--r--db/docs/incident_management_oncall_schedules.yml9
-rw-r--r--db/docs/incident_management_oncall_shifts.yml9
-rw-r--r--db/docs/incident_management_pending_alert_escalations.yml9
-rw-r--r--db/docs/incident_management_pending_issue_escalations.yml9
-rw-r--r--db/docs/incident_management_timeline_events.yml9
-rw-r--r--db/docs/index_statuses.yml9
-rw-r--r--db/docs/insights.yml9
-rw-r--r--db/docs/integrations.yml55
-rw-r--r--db/docs/internal_ids.yml10
-rw-r--r--db/docs/ip_restrictions.yml9
-rw-r--r--db/docs/issuable_metric_images.yml9
-rw-r--r--db/docs/issuable_severities.yml9
-rw-r--r--db/docs/issuable_slas.yml9
-rw-r--r--db/docs/issue_assignees.yml9
-rw-r--r--db/docs/issue_customer_relations_contacts.yml9
-rw-r--r--db/docs/issue_email_participants.yml9
-rw-r--r--db/docs/issue_emails.yml9
-rw-r--r--db/docs/issue_links.yml9
-rw-r--r--db/docs/issue_metrics.yml9
-rw-r--r--db/docs/issue_search_data.yml9
-rw-r--r--db/docs/issue_tracker_data.yml9
-rw-r--r--db/docs/issue_user_mentions.yml9
-rw-r--r--db/docs/issues.yml10
-rw-r--r--db/docs/issues_prometheus_alert_events.yml8
-rw-r--r--db/docs/issues_self_managed_prometheus_alert_events.yml8
-rw-r--r--db/docs/iterations_cadences.yml9
-rw-r--r--db/docs/jira_connect_installations.yml9
-rw-r--r--db/docs/jira_connect_subscriptions.yml9
-rw-r--r--db/docs/jira_imports.yml9
-rw-r--r--db/docs/jira_tracker_data.yml9
-rw-r--r--db/docs/keys.yml11
-rw-r--r--db/docs/label_links.yml9
-rw-r--r--db/docs/label_priorities.yml9
-rw-r--r--db/docs/labels.yml11
-rw-r--r--db/docs/ldap_group_links.yml9
-rw-r--r--db/docs/lfs_file_locks.yml9
-rw-r--r--db/docs/lfs_object_states.yml9
-rw-r--r--db/docs/lfs_objects.yml9
-rw-r--r--db/docs/lfs_objects_projects.yml10
-rw-r--r--db/docs/licenses.yml9
-rw-r--r--db/docs/list_user_preferences.yml9
-rw-r--r--db/docs/lists.yml9
-rw-r--r--db/docs/loose_foreign_keys_deleted_records.yml9
-rw-r--r--db/docs/member_tasks.yml9
-rw-r--r--db/docs/members.yml13
-rw-r--r--db/docs/merge_request_assignees.yml9
-rw-r--r--db/docs/merge_request_blocks.yml9
-rw-r--r--db/docs/merge_request_cleanup_schedules.yml9
-rw-r--r--db/docs/merge_request_context_commit_diff_files.yml9
-rw-r--r--db/docs/merge_request_context_commits.yml9
-rw-r--r--db/docs/merge_request_diff_commit_users.yml9
-rw-r--r--db/docs/merge_request_diff_commits.yml9
-rw-r--r--db/docs/merge_request_diff_details.yml9
-rw-r--r--db/docs/merge_request_diff_files.yml9
-rw-r--r--db/docs/merge_request_diffs.yml9
-rw-r--r--db/docs/merge_request_metrics.yml10
-rw-r--r--db/docs/merge_request_reviewers.yml9
-rw-r--r--db/docs/merge_request_user_mentions.yml9
-rw-r--r--db/docs/merge_requests.yml9
-rw-r--r--db/docs/merge_requests_closing_issues.yml9
-rw-r--r--db/docs/merge_requests_compliance_violations.yml9
-rw-r--r--db/docs/merge_trains.yml9
-rw-r--r--db/docs/metrics_dashboard_annotations.yml9
-rw-r--r--db/docs/metrics_users_starred_dashboards.yml9
-rw-r--r--db/docs/milestone_releases.yml9
-rw-r--r--db/docs/milestones.yml9
-rw-r--r--db/docs/namespace_admin_notes.yml9
-rw-r--r--db/docs/namespace_aggregation_schedules.yml9
-rw-r--r--db/docs/namespace_limits.yml9
-rw-r--r--db/docs/namespace_package_settings.yml9
-rw-r--r--db/docs/namespace_root_storage_statistics.yml9
-rw-r--r--db/docs/namespace_settings.yml9
-rw-r--r--db/docs/namespace_statistics.yml9
-rw-r--r--db/docs/namespaces.yml12
-rw-r--r--db/docs/namespaces_sync_events.yml9
-rw-r--r--db/docs/note_diff_files.yml9
-rw-r--r--db/docs/notes.yml18
-rw-r--r--db/docs/notification_settings.yml9
-rw-r--r--db/docs/oauth_access_grants.yml10
-rw-r--r--db/docs/oauth_access_tokens.yml10
-rw-r--r--db/docs/oauth_applications.yml9
-rw-r--r--db/docs/oauth_openid_requests.yml9
-rw-r--r--db/docs/onboarding_progresses.yml9
-rw-r--r--db/docs/operations_feature_flag_scopes.yml8
-rw-r--r--db/docs/operations_feature_flags.yml9
-rw-r--r--db/docs/operations_feature_flags_clients.yml9
-rw-r--r--db/docs/operations_feature_flags_issues.yml9
-rw-r--r--db/docs/operations_scopes.yml9
-rw-r--r--db/docs/operations_strategies.yml9
-rw-r--r--db/docs/operations_strategies_user_lists.yml9
-rw-r--r--db/docs/operations_user_lists.yml9
-rw-r--r--db/docs/packages_build_infos.yml9
-rw-r--r--db/docs/packages_composer_cache_files.yml9
-rw-r--r--db/docs/packages_composer_metadata.yml9
-rw-r--r--db/docs/packages_conan_file_metadata.yml9
-rw-r--r--db/docs/packages_conan_metadata.yml9
-rw-r--r--db/docs/packages_debian_file_metadata.yml9
-rw-r--r--db/docs/packages_debian_group_architectures.yml9
-rw-r--r--db/docs/packages_debian_group_component_files.yml9
-rw-r--r--db/docs/packages_debian_group_components.yml9
-rw-r--r--db/docs/packages_debian_group_distribution_keys.yml9
-rw-r--r--db/docs/packages_debian_group_distributions.yml9
-rw-r--r--db/docs/packages_debian_project_architectures.yml9
-rw-r--r--db/docs/packages_debian_project_component_files.yml9
-rw-r--r--db/docs/packages_debian_project_components.yml9
-rw-r--r--db/docs/packages_debian_project_distribution_keys.yml9
-rw-r--r--db/docs/packages_debian_project_distributions.yml9
-rw-r--r--db/docs/packages_debian_publications.yml9
-rw-r--r--db/docs/packages_dependencies.yml9
-rw-r--r--db/docs/packages_dependency_links.yml9
-rw-r--r--db/docs/packages_events.yml9
-rw-r--r--db/docs/packages_helm_file_metadata.yml9
-rw-r--r--db/docs/packages_maven_metadata.yml9
-rw-r--r--db/docs/packages_npm_metadata.yml9
-rw-r--r--db/docs/packages_nuget_dependency_link_metadata.yml9
-rw-r--r--db/docs/packages_nuget_metadata.yml9
-rw-r--r--db/docs/packages_package_file_build_infos.yml9
-rw-r--r--db/docs/packages_package_files.yml9
-rw-r--r--db/docs/packages_packages.yml9
-rw-r--r--db/docs/packages_pypi_metadata.yml9
-rw-r--r--db/docs/packages_rubygems_metadata.yml9
-rw-r--r--db/docs/packages_tags.yml9
-rw-r--r--db/docs/pages_deployment_states.yml9
-rw-r--r--db/docs/pages_deployments.yml9
-rw-r--r--db/docs/pages_domain_acme_orders.yml9
-rw-r--r--db/docs/pages_domains.yml9
-rw-r--r--db/docs/path_locks.yml9
-rw-r--r--db/docs/personal_access_tokens.yml9
-rw-r--r--db/docs/plan_limits.yml9
-rw-r--r--db/docs/plans.yml9
-rw-r--r--db/docs/pool_repositories.yml9
-rw-r--r--db/docs/postgres_async_indexes.yml11
-rw-r--r--db/docs/postgres_reindex_actions.yml12
-rw-r--r--db/docs/postgres_reindex_queued_actions.yml11
-rw-r--r--db/docs/product_analytics_events_experimental.yml9
-rw-r--r--db/docs/programming_languages.yml9
-rw-r--r--db/docs/project_access_tokens.yml8
-rw-r--r--db/docs/project_alerting_settings.yml9
-rw-r--r--db/docs/project_aliases.yml9
-rw-r--r--db/docs/project_authorizations.yml9
-rw-r--r--db/docs/project_auto_devops.yml9
-rw-r--r--db/docs/project_ci_cd_settings.yml9
-rw-r--r--db/docs/project_ci_feature_usages.yml10
-rw-r--r--db/docs/project_compliance_framework_settings.yml9
-rw-r--r--db/docs/project_custom_attributes.yml9
-rw-r--r--db/docs/project_daily_statistics.yml9
-rw-r--r--db/docs/project_deploy_tokens.yml9
-rw-r--r--db/docs/project_error_tracking_settings.yml9
-rw-r--r--db/docs/project_export_jobs.yml9
-rw-r--r--db/docs/project_feature_usages.yml9
-rw-r--r--db/docs/project_features.yml9
-rw-r--r--db/docs/project_group_links.yml9
-rw-r--r--db/docs/project_import_data.yml9
-rw-r--r--db/docs/project_incident_management_settings.yml9
-rw-r--r--db/docs/project_metrics_settings.yml9
-rw-r--r--db/docs/project_mirror_data.yml9
-rw-r--r--db/docs/project_pages_metadata.yml9
-rw-r--r--db/docs/project_repositories.yml9
-rw-r--r--db/docs/project_repository_states.yml9
-rw-r--r--db/docs/project_repository_storage_moves.yml9
-rw-r--r--db/docs/project_security_settings.yml9
-rw-r--r--db/docs/project_settings.yml9
-rw-r--r--db/docs/project_statistics.yml9
-rw-r--r--db/docs/project_topics.yml9
-rw-r--r--db/docs/project_tracing_settings.yml9
-rw-r--r--db/docs/projects.yml9
-rw-r--r--db/docs/projects_sync_events.yml9
-rw-r--r--db/docs/prometheus_alert_events.yml9
-rw-r--r--db/docs/prometheus_alerts.yml9
-rw-r--r--db/docs/prometheus_metrics.yml9
-rw-r--r--db/docs/protected_branch_merge_access_levels.yml9
-rw-r--r--db/docs/protected_branch_push_access_levels.yml9
-rw-r--r--db/docs/protected_branch_unprotect_access_levels.yml9
-rw-r--r--db/docs/protected_branches.yml10
-rw-r--r--db/docs/protected_environment_deploy_access_levels.yml9
-rw-r--r--db/docs/protected_environments.yml9
-rw-r--r--db/docs/protected_tag_create_access_levels.yml9
-rw-r--r--db/docs/protected_tags.yml9
-rw-r--r--db/docs/push_event_payloads.yml9
-rw-r--r--db/docs/push_rules.yml9
-rw-r--r--db/docs/raw_usage_data.yml9
-rw-r--r--db/docs/redirect_routes.yml10
-rw-r--r--db/docs/related_epic_links.yml9
-rw-r--r--db/docs/release_links.yml9
-rw-r--r--db/docs/releases.yml9
-rw-r--r--db/docs/remote_mirrors.yml9
-rw-r--r--db/docs/repository_languages.yml9
-rw-r--r--db/docs/required_code_owners_sections.yml9
-rw-r--r--db/docs/requirements.yml9
-rw-r--r--db/docs/requirements_management_test_reports.yml9
-rw-r--r--db/docs/resource_iteration_events.yml9
-rw-r--r--db/docs/resource_label_events.yml9
-rw-r--r--db/docs/resource_milestone_events.yml9
-rw-r--r--db/docs/resource_state_events.yml9
-rw-r--r--db/docs/resource_weight_events.yml9
-rw-r--r--db/docs/reviews.yml9
-rw-r--r--db/docs/routes.yml11
-rw-r--r--db/docs/saml_group_links.yml9
-rw-r--r--db/docs/saml_providers.yml9
-rw-r--r--db/docs/saved_replies.yml9
-rw-r--r--db/docs/schema_migrations.yml10
-rw-r--r--db/docs/scim_identities.yml9
-rw-r--r--db/docs/scim_oauth_access_tokens.yml9
-rw-r--r--db/docs/security_findings.yml9
-rw-r--r--db/docs/security_orchestration_policy_configurations.yml9
-rw-r--r--db/docs/security_orchestration_policy_rule_schedules.yml9
-rw-r--r--db/docs/security_scans.yml9
-rw-r--r--db/docs/security_training_providers.yml9
-rw-r--r--db/docs/security_trainings.yml9
-rw-r--r--db/docs/self_managed_prometheus_alert_events.yml9
-rw-r--r--db/docs/sent_notifications.yml9
-rw-r--r--db/docs/sentry_issues.yml9
-rw-r--r--db/docs/serverless_domain_cluster.yml9
-rw-r--r--db/docs/service_desk_settings.yml9
-rw-r--r--db/docs/shards.yml9
-rw-r--r--db/docs/slack_integrations.yml9
-rw-r--r--db/docs/smartcard_identities.yml9
-rw-r--r--db/docs/snippet_repositories.yml9
-rw-r--r--db/docs/snippet_repository_storage_moves.yml9
-rw-r--r--db/docs/snippet_statistics.yml9
-rw-r--r--db/docs/snippet_user_mentions.yml9
-rw-r--r--db/docs/snippets.yml11
-rw-r--r--db/docs/software_license_policies.yml9
-rw-r--r--db/docs/software_licenses.yml9
-rw-r--r--db/docs/spam_logs.yml9
-rw-r--r--db/docs/sprints.yml9
-rw-r--r--db/docs/status_check_responses.yml9
-rw-r--r--db/docs/status_page_published_incidents.yml9
-rw-r--r--db/docs/status_page_settings.yml9
-rw-r--r--db/docs/subscriptions.yml9
-rw-r--r--db/docs/suggestions.yml9
-rw-r--r--db/docs/system_note_metadata.yml9
-rw-r--r--db/docs/taggings.yml9
-rw-r--r--db/docs/tags.yml9
-rw-r--r--db/docs/term_agreements.yml9
-rw-r--r--db/docs/terraform_state_versions.yml9
-rw-r--r--db/docs/terraform_states.yml9
-rw-r--r--db/docs/timelogs.yml9
-rw-r--r--db/docs/todos.yml9
-rw-r--r--db/docs/token_with_ivs.yml9
-rw-r--r--db/docs/topics.yml9
-rw-r--r--db/docs/trending_projects.yml9
-rw-r--r--db/docs/u2f_registrations.yml9
-rw-r--r--db/docs/upcoming_reconciliations.yml9
-rw-r--r--db/docs/upload_states.yml9
-rw-r--r--db/docs/uploads.yml9
-rw-r--r--db/docs/user_agent_details.yml9
-rw-r--r--db/docs/user_callouts.yml9
-rw-r--r--db/docs/user_canonical_emails.yml9
-rw-r--r--db/docs/user_credit_card_validations.yml9
-rw-r--r--db/docs/user_custom_attributes.yml9
-rw-r--r--db/docs/user_details.yml9
-rw-r--r--db/docs/user_follow_users.yml9
-rw-r--r--db/docs/user_group_callouts.yml9
-rw-r--r--db/docs/user_highest_roles.yml9
-rw-r--r--db/docs/user_interacted_projects.yml9
-rw-r--r--db/docs/user_permission_export_uploads.yml9
-rw-r--r--db/docs/user_preferences.yml9
-rw-r--r--db/docs/user_statuses.yml9
-rw-r--r--db/docs/user_synced_attributes_metadata.yml9
-rw-r--r--db/docs/users.yml11
-rw-r--r--db/docs/users_ops_dashboard_projects.yml9
-rw-r--r--db/docs/users_security_dashboard_projects.yml9
-rw-r--r--db/docs/users_star_projects.yml9
-rw-r--r--db/docs/users_statistics.yml9
-rw-r--r--db/docs/verification_codes.yml8
-rw-r--r--db/docs/vulnerabilities.yml9
-rw-r--r--db/docs/vulnerability_exports.yml9
-rw-r--r--db/docs/vulnerability_external_issue_links.yml9
-rw-r--r--db/docs/vulnerability_feedback.yml9
-rw-r--r--db/docs/vulnerability_finding_evidences.yml9
-rw-r--r--db/docs/vulnerability_finding_links.yml9
-rw-r--r--db/docs/vulnerability_finding_signatures.yml9
-rw-r--r--db/docs/vulnerability_findings_remediations.yml9
-rw-r--r--db/docs/vulnerability_flags.yml9
-rw-r--r--db/docs/vulnerability_historical_statistics.yml9
-rw-r--r--db/docs/vulnerability_identifiers.yml9
-rw-r--r--db/docs/vulnerability_issue_links.yml9
-rw-r--r--db/docs/vulnerability_occurrence_identifiers.yml9
-rw-r--r--db/docs/vulnerability_occurrence_pipelines.yml9
-rw-r--r--db/docs/vulnerability_occurrences.yml9
-rw-r--r--db/docs/vulnerability_reads.yml9
-rw-r--r--db/docs/vulnerability_remediations.yml9
-rw-r--r--db/docs/vulnerability_scanners.yml9
-rw-r--r--db/docs/vulnerability_statistics.yml9
-rw-r--r--db/docs/vulnerability_user_mentions.yml9
-rw-r--r--db/docs/web_hook_logs.yml9
-rw-r--r--db/docs/web_hooks.yml13
-rw-r--r--db/docs/webauthn_registrations.yml9
-rw-r--r--db/docs/wiki_page_meta.yml9
-rw-r--r--db/docs/wiki_page_slugs.yml9
-rw-r--r--db/docs/work_item_types.yml9
-rw-r--r--db/docs/x509_certificates.yml9
-rw-r--r--db/docs/x509_commit_signatures.yml9
-rw-r--r--db/docs/x509_issuers.yml9
-rw-r--r--db/docs/zentao_tracker_data.yml9
-rw-r--r--db/docs/zoom_meetings.yml9
-rw-r--r--db/fixtures/development/02_users.rb110
-rw-r--r--db/fixtures/development/03_project.rb113
-rw-r--r--db/fixtures/development/03_project_1_user_projects.rb31
-rw-r--r--db/fixtures/development/03_project_2_group_projects.rb31
-rw-r--r--db/fixtures/development/03_project_3_features.rb39
-rw-r--r--db/fixtures/development/03_project_4_routes.rb40
-rw-r--r--db/fixtures/development/04_labels.rb12
-rw-r--r--db/fixtures/development/06_teams.rb2
-rw-r--r--db/fixtures/development/32_crm.rb4
-rw-r--r--db/fixtures/development/33_triage_ops.rb4
-rw-r--r--db/migrate/20220113164801_add_diffs_colors_to_user_preferences.rb13
-rw-r--r--db/migrate/20220113164901_add_text_limit_to_user_preferences_diffs_colors.rb15
-rw-r--r--db/migrate/20220120160625_remove_temp_index_on_id_from_vulnerability_occurrences.rb15
-rw-r--r--db/migrate/20220302110724_add_group_features_table.rb19
-rw-r--r--db/migrate/20220310011530_add_database_grafana_config_to_application_settings.rb13
-rw-r--r--db/migrate/20220310011613_add_text_limit_to_database_grafana_application_settings.rb15
-rw-r--r--db/migrate/20220314184009_create_protected_environment_approval_rules.rb30
-rw-r--r--db/migrate/20220314184109_add_user_fk_to_protected_environment_approval_rules.rb15
-rw-r--r--db/migrate/20220314184209_add_group_fk_to_protected_environment_approval_rules.rb15
-rw-r--r--db/migrate/20220314194009_add_approval_rule_id_to_deployment_approvals.rb7
-rw-r--r--db/migrate/20220314204009_add_approval_rule_fk_to_deployment_approvals.rb20
-rw-r--r--db/migrate/20220316095126_add_creator_id_to_deploy_tokens.rb7
-rw-r--r--db/migrate/20220316202200_add_migration_plan_to_container_repositories.rb10
-rw-r--r--db/migrate/20220316202402_add_text_limit_to_container_repositories_migration_plan.rb13
-rw-r--r--db/migrate/20220317170122_add_notification_level_to_namespace_root_storage_statistics.rb13
-rw-r--r--db/migrate/20220318120802_add_target_platforms_to_project_setting.rb7
-rw-r--r--db/migrate/20220318141037_add_pages_onboarding_state.rb11
-rw-r--r--db/migrate/20220321150028_add_started_at_to_batched_background_migrations_table.rb7
-rw-r--r--db/migrate/20220321234317_remove_all_issuable_escalation_statuses.rb30
-rw-r--r--db/migrate/20220322143441_add_dora_incidents_count.rb7
-rw-r--r--db/migrate/20220322205004_change_search_rate_limit_default_values.rb8
-rw-r--r--db/migrate/20220324171254_add_public_git_lab_runner_releases_url_to_application_settings.rb10
-rw-r--r--db/migrate/20220324173554_add_text_limit_to_public_git_lab_runner_releases_url_application_settings.rb13
-rw-r--r--db/migrate/20220324175325_add_key_data_to_secure_files.rb17
-rw-r--r--db/migrate/20220329061545_add_repository_size_to_plan_limits.rb11
-rw-r--r--db/migrate/20220329095632_add_theme_to_broadcast_message.rb7
-rw-r--r--db/migrate/20220329110630_add_ci_namespace_mirrors_unnest_index_on_traversal_ids.rb25
-rw-r--r--db/migrate/20220331174026_add_submit_field_to_dast_site_profiles.rb10
-rw-r--r--db/migrate/20220331174459_add_text_limit_to_submit_field_dast_site_profiles.rb13
-rw-r--r--db/migrate/20220401044858_add_user_id_and_state_index_to_merge_request_assignees.rb15
-rw-r--r--db/migrate/20220401045116_add_user_id_and_state_index_to_merge_request_reviewers.rb15
-rw-r--r--db/migrate/20220401110443_add_on_hold_until_column_for_batched_migration.rb8
-rw-r--r--db/migrate/20220401110511_add_runtime_data_columns_to_vsa_aggregations.rb23
-rw-r--r--db/migrate/20220401113123_add_check_constraint_to_vsa_aggregation_runtime_data_columns.rb23
-rw-r--r--db/migrate/20220404114106_add_container_registry_size_to_project_statistics.rb9
-rw-r--r--db/migrate/20220404170446_add_index_for_non_requested_non_invited_awaiting_members.rb18
-rw-r--r--db/migrate/20220405061122_add_license_scanning_action_to_onboarding_progresses.rb7
-rw-r--r--db/migrate/20220405125459_add_non_migrated_index_to_container_repositories.rb20
-rw-r--r--db/migrate/20220405181814_add_arkose_settings_to_application_settings.rb26
-rw-r--r--db/migrate/20220405203843_add_text_limit_to_arkose_verify_url_application_settings.rb13
-rw-r--r--db/migrate/20220406113217_add_inactive_project_deletion_to_application_settings.rb11
-rw-r--r--db/migrate/20220406121831_add_index_on_status_for_batched_background_migrations.rb13
-rw-r--r--db/migrate/20220407135820_add_epics_relative_position.rb18
-rw-r--r--db/migrate/20220408001450_add_work_item_type_name_unique_index_null_namespaces.rb19
-rw-r--r--db/migrate/20220408135815_update_index_on_greated_done_at_on_container_repositories.rb24
-rw-r--r--db/migrate/20220412171810_add_otp_secret_expires_at.rb11
-rw-r--r--db/migrate/20220413075921_update_index_on_packages_build_infos.rb22
-rw-r--r--db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb23
-rw-r--r--db/post_migrate/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size.rb25
-rw-r--r--db/post_migrate/20220223124428_schedule_merge_topics_with_same_name.rb23
-rw-r--r--db/post_migrate/20220302114046_backfill_group_features.rb29
-rw-r--r--db/post_migrate/20220311010352_create_scan_id_and_id_index_on_security_findings.rb15
-rw-r--r--db/post_migrate/20220315171027_add_tmp_index_to_support_leaky_regex_cleanup.rb19
-rw-r--r--db/post_migrate/20220315171129_cleanup_draft_data_from_faulty_regex.rb42
-rw-r--r--db/post_migrate/20220315181125_remove_issues_work_item_type_id_index.rb15
-rw-r--r--db/post_migrate/20220315181130_add_temporary_issue_type_index_for_work_item_types.rb15
-rw-r--r--db/post_migrate/20220315181136_backfill_work_item_type_id_on_issues.rb40
-rw-r--r--db/post_migrate/20220315211043_add_index_to_vulnerability_reads.rb23
-rw-r--r--db/post_migrate/20220316102900_add_index_to_deploy_tokens_on_creator_id.rb15
-rw-r--r--db/post_migrate/20220316102902_add_user_foreign_key_to_deploy_tokens.rb15
-rw-r--r--db/post_migrate/20220316112118_update_organizations_name_index_add_id.rb20
-rw-r--r--db/post_migrate/20220316112206_add_contacts_index_on_group_email_and_id.rb15
-rw-r--r--db/post_migrate/20220316165539_add_index_to_vulnerabilities.rb22
-rw-r--r--db/post_migrate/20220316202640_populate_container_repositories_migration_plan.rb23
-rw-r--r--db/post_migrate/20220317161914_remove_ci_runners_ci_builds_runner_id_fk.rb19
-rw-r--r--db/post_migrate/20220318111040_add_indexes_for_primary_email_second_cleanup_migration.rb28
-rw-r--r--db/post_migrate/20220318111729_cleanup_after_fixing_issue_when_admin_changed_primary_email.rb55
-rw-r--r--db/post_migrate/20220318111949_drop_temporary_indexes_for_primary_email_migration_second_cleanup.rb28
-rw-r--r--db/post_migrate/20220321025720_alter_constraint_remote_import_url.rb14
-rw-r--r--db/post_migrate/20220321201912_remove_user_email_lookup_limit.rb13
-rw-r--r--db/post_migrate/20220322023800_add_tmp_index_routes_id_for_project_namespaces.rb17
-rw-r--r--db/post_migrate/20220322035654_add_migration_plan_index_to_container_repositories.rb17
-rw-r--r--db/post_migrate/20220322071127_finalize_project_namespaces_backfill.rb21
-rw-r--r--db/post_migrate/20220322094410_remove_wiki_notes.rb20
-rw-r--r--db/post_migrate/20220322132242_update_pages_onboarding_state.rb32
-rw-r--r--db/post_migrate/20220322205008_change_search_rate_limit_values.rb18
-rw-r--r--db/post_migrate/20220323023800_backfill_namespace_id_for_project_routes.rb29
-rw-r--r--db/post_migrate/20220323130000_add_temp_index_on_null_project_namespace_ids.rb15
-rw-r--r--db/post_migrate/20220323152202_add_index_on_visible_deployments.rb19
-rw-r--r--db/post_migrate/20220324032250_migrate_shimo_confluence_service_category.rb21
-rw-r--r--db/post_migrate/20220324081709_fix_and_backfill_project_namespaces_for_projects_with_duplicate_name.rb27
-rw-r--r--db/post_migrate/20220324110247_untrack_deletions_on_ci_job_artifacts.rb15
-rw-r--r--db/post_migrate/20220324180717_remove_project_pages_metadata_artifacts_archive_id_column.rb21
-rw-r--r--db/post_migrate/20220325000000_prepare_index_for_ci_job_artifacts_unlocked_with_expire_at.rb15
-rw-r--r--db/post_migrate/20220325000001_finalize_index_for_ci_job_artifacts_unlocked_with_expire_at.rb17
-rw-r--r--db/post_migrate/20220325050642_drop_integrations_template_column.rb9
-rw-r--r--db/post_migrate/20220325155953_steal_background_job_for_fixing_conflicting_project_names_and_paths.rb11
-rw-r--r--db/post_migrate/20220325160153_create_unique_index_on_projects_name_and_namespace_id.rb15
-rw-r--r--db/post_migrate/20220326161803_add_cascade_delete_fk_on_project_namespace_id.rb41
-rw-r--r--db/post_migrate/20220326163653_add_not_null_contraint_to_project_namespace_id.rb13
-rw-r--r--db/post_migrate/20220329175119_remove_leftover_ci_job_artifact_deletions.rb30
-rw-r--r--db/post_migrate/20220331074722_add_notes_null_discussion_id_temp_index_async.rb14
-rw-r--r--db/post_migrate/20220401045621_remove_state_index_on_merge_request_assignees.rb15
-rw-r--r--db/post_migrate/20220401045642_remove_state_index_on_merge_request_reviewers.rb15
-rw-r--r--db/post_migrate/20220404183350_add_forbidden_state_index_to_users.rb17
-rw-r--r--db/post_migrate/20220404184814_drop_broader_expired_artifact_index.rb16
-rw-r--r--db/post_migrate/20220404194649_replace_work_item_type_backfill_next_batch_strategy.rb21
-rw-r--r--db/post_migrate/20220409160628_add_async_index_for_events_followed_users.rb13
-rw-r--r--db/post_migrate/20220412044906_finalize_traversal_ids_background_migrations.rb12
-rw-r--r--db/post_migrate/20220412143551_add_partial_index_on_unencrypted_integrations.rb18
-rw-r--r--db/post_migrate/20220412143552_consume_remaining_encrypt_integration_property_jobs.rb23
-rw-r--r--db/post_migrate/20220413011328_remove_partial_index_on_unencrypted_integrations.rb19
-rw-r--r--db/schema_migrations/202201131648011
-rw-r--r--db/schema_migrations/202201131649011
-rw-r--r--db/schema_migrations/202201201606251
-rw-r--r--db/schema_migrations/202202040951211
-rw-r--r--db/schema_migrations/202202231244281
-rw-r--r--db/schema_migrations/202203021107241
-rw-r--r--db/schema_migrations/202203021140461
-rw-r--r--db/schema_migrations/202203100115301
-rw-r--r--db/schema_migrations/202203100116131
-rw-r--r--db/schema_migrations/202203110103521
-rw-r--r--db/schema_migrations/202203141840091
-rw-r--r--db/schema_migrations/202203141841091
-rw-r--r--db/schema_migrations/202203141842091
-rw-r--r--db/schema_migrations/202203141940091
-rw-r--r--db/schema_migrations/202203142040091
-rw-r--r--db/schema_migrations/202203151710271
-rw-r--r--db/schema_migrations/202203151711291
-rw-r--r--db/schema_migrations/202203151811251
-rw-r--r--db/schema_migrations/202203151811301
-rw-r--r--db/schema_migrations/202203151811361
-rw-r--r--db/schema_migrations/202203152110431
-rw-r--r--db/schema_migrations/202203160951261
-rw-r--r--db/schema_migrations/202203161029001
-rw-r--r--db/schema_migrations/202203161029021
-rw-r--r--db/schema_migrations/202203161121181
-rw-r--r--db/schema_migrations/202203161122061
-rw-r--r--db/schema_migrations/202203161655391
-rw-r--r--db/schema_migrations/202203162022001
-rw-r--r--db/schema_migrations/202203162024021
-rw-r--r--db/schema_migrations/202203162026401
-rw-r--r--db/schema_migrations/202203171619141
-rw-r--r--db/schema_migrations/202203171701221
-rw-r--r--db/schema_migrations/202203181110401
-rw-r--r--db/schema_migrations/202203181117291
-rw-r--r--db/schema_migrations/202203181119491
-rw-r--r--db/schema_migrations/202203181208021
-rw-r--r--db/schema_migrations/202203181410371
-rw-r--r--db/schema_migrations/202203210257201
-rw-r--r--db/schema_migrations/202203211500281
-rw-r--r--db/schema_migrations/202203212019121
-rw-r--r--db/schema_migrations/202203212343171
-rw-r--r--db/schema_migrations/202203220238001
-rw-r--r--db/schema_migrations/202203220356541
-rw-r--r--db/schema_migrations/202203220711271
-rw-r--r--db/schema_migrations/202203220944101
-rw-r--r--db/schema_migrations/202203221322421
-rw-r--r--db/schema_migrations/202203221434411
-rw-r--r--db/schema_migrations/202203222050041
-rw-r--r--db/schema_migrations/202203222050081
-rw-r--r--db/schema_migrations/202203230238001
-rw-r--r--db/schema_migrations/202203231300001
-rw-r--r--db/schema_migrations/202203231522021
-rw-r--r--db/schema_migrations/202203240322501
-rw-r--r--db/schema_migrations/202203240817091
-rw-r--r--db/schema_migrations/202203241102471
-rw-r--r--db/schema_migrations/202203241712541
-rw-r--r--db/schema_migrations/202203241735541
-rw-r--r--db/schema_migrations/202203241753251
-rw-r--r--db/schema_migrations/202203241807171
-rw-r--r--db/schema_migrations/202203250000001
-rw-r--r--db/schema_migrations/202203250000011
-rw-r--r--db/schema_migrations/202203250506421
-rw-r--r--db/schema_migrations/202203251559531
-rw-r--r--db/schema_migrations/202203251601531
-rw-r--r--db/schema_migrations/202203261618031
-rw-r--r--db/schema_migrations/202203261636531
-rw-r--r--db/schema_migrations/202203290615451
-rw-r--r--db/schema_migrations/202203290956321
-rw-r--r--db/schema_migrations/202203291106301
-rw-r--r--db/schema_migrations/202203291751191
-rw-r--r--db/schema_migrations/202203310747221
-rw-r--r--db/schema_migrations/202203311740261
-rw-r--r--db/schema_migrations/202203311744591
-rw-r--r--db/schema_migrations/202204010448581
-rw-r--r--db/schema_migrations/202204010451161
-rw-r--r--db/schema_migrations/202204010456211
-rw-r--r--db/schema_migrations/202204010456421
-rw-r--r--db/schema_migrations/202204011104431
-rw-r--r--db/schema_migrations/202204011105111
-rw-r--r--db/schema_migrations/202204011131231
-rw-r--r--db/schema_migrations/202204041141061
-rw-r--r--db/schema_migrations/202204041704461
-rw-r--r--db/schema_migrations/202204041833501
-rw-r--r--db/schema_migrations/202204041848141
-rw-r--r--db/schema_migrations/202204041946491
-rw-r--r--db/schema_migrations/202204050611221
-rw-r--r--db/schema_migrations/202204051254591
-rw-r--r--db/schema_migrations/202204051818141
-rw-r--r--db/schema_migrations/202204052038431
-rw-r--r--db/schema_migrations/202204061132171
-rw-r--r--db/schema_migrations/202204061218311
-rw-r--r--db/schema_migrations/202204071358201
-rw-r--r--db/schema_migrations/202204080014501
-rw-r--r--db/schema_migrations/202204081358151
-rw-r--r--db/schema_migrations/202204091606281
-rw-r--r--db/schema_migrations/202204120449061
-rw-r--r--db/schema_migrations/202204121435511
-rw-r--r--db/schema_migrations/202204121435521
-rw-r--r--db/schema_migrations/202204121718101
-rw-r--r--db/schema_migrations/202204130113281
-rw-r--r--db/schema_migrations/202204130759211
-rw-r--r--db/structure.sql221
769 files changed, 7512 insertions, 125 deletions
diff --git a/db/docs/abuse_reports.yml b/db/docs/abuse_reports.yml
new file mode 100644
index 00000000000..b05b9618a27
--- /dev/null
+++ b/db/docs/abuse_reports.yml
@@ -0,0 +1,9 @@
+---
+table_name: abuse_reports
+classes:
+- AbuseReport
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/cba7f20dc8614d12e3eeda6e14f454aeb22b9b54
+milestone: '7.13'
diff --git a/db/docs/agent_activity_events.yml b/db/docs/agent_activity_events.yml
new file mode 100644
index 00000000000..82e6481be42
--- /dev/null
+++ b/db/docs/agent_activity_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: agent_activity_events
+classes:
+- Clusters::Agents::ActivityEvent
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74577
+milestone: '14.6'
diff --git a/db/docs/agent_group_authorizations.yml b/db/docs/agent_group_authorizations.yml
new file mode 100644
index 00000000000..1c250b90b6d
--- /dev/null
+++ b/db/docs/agent_group_authorizations.yml
@@ -0,0 +1,9 @@
+---
+table_name: agent_group_authorizations
+classes:
+- Clusters::Agents::GroupAuthorization
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68023
+milestone: '14.3'
diff --git a/db/docs/agent_project_authorizations.yml b/db/docs/agent_project_authorizations.yml
new file mode 100644
index 00000000000..3ac48b0d35b
--- /dev/null
+++ b/db/docs/agent_project_authorizations.yml
@@ -0,0 +1,9 @@
+---
+table_name: agent_project_authorizations
+classes:
+- Clusters::Agents::ProjectAuthorization
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67295
+milestone: '14.3'
diff --git a/db/docs/alert_management_alert_assignees.yml b/db/docs/alert_management_alert_assignees.yml
new file mode 100644
index 00000000000..23b81240c11
--- /dev/null
+++ b/db/docs/alert_management_alert_assignees.yml
@@ -0,0 +1,9 @@
+---
+table_name: alert_management_alert_assignees
+classes:
+- AlertManagement::AlertAssignee
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/alert_management_alert_metric_images.yml b/db/docs/alert_management_alert_metric_images.yml
new file mode 100644
index 00000000000..e43be4f854c
--- /dev/null
+++ b/db/docs/alert_management_alert_metric_images.yml
@@ -0,0 +1,9 @@
+---
+table_name: alert_management_alert_metric_images
+classes:
+- AlertManagement::MetricImage
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80339
+milestone: '14.8'
diff --git a/db/docs/alert_management_alert_user_mentions.yml b/db/docs/alert_management_alert_user_mentions.yml
new file mode 100644
index 00000000000..c834c2a8b12
--- /dev/null
+++ b/db/docs/alert_management_alert_user_mentions.yml
@@ -0,0 +1,9 @@
+---
+table_name: alert_management_alert_user_mentions
+classes:
+- AlertManagement::AlertUserMention
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/alert_management_alerts.yml b/db/docs/alert_management_alerts.yml
new file mode 100644
index 00000000000..1d5cbf0df23
--- /dev/null
+++ b/db/docs/alert_management_alerts.yml
@@ -0,0 +1,9 @@
+---
+table_name: alert_management_alerts
+classes:
+- AlertManagement::Alert
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/alert_management_http_integrations.yml b/db/docs/alert_management_http_integrations.yml
new file mode 100644
index 00000000000..7dba70bcb67
--- /dev/null
+++ b/db/docs/alert_management_http_integrations.yml
@@ -0,0 +1,9 @@
+---
+table_name: alert_management_http_integrations
+classes:
+- AlertManagement::HttpIntegration
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44098
+milestone: '13.5'
diff --git a/db/docs/allowed_email_domains.yml b/db/docs/allowed_email_domains.yml
new file mode 100644
index 00000000000..69f7aa3a804
--- /dev/null
+++ b/db/docs/allowed_email_domains.yml
@@ -0,0 +1,9 @@
+---
+table_name: allowed_email_domains
+classes:
+- AllowedEmailDomain
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/14800
+milestone: '12.2'
diff --git a/db/docs/analytics_cycle_analytics_aggregations.yml b/db/docs/analytics_cycle_analytics_aggregations.yml
new file mode 100644
index 00000000000..b79cb949d1f
--- /dev/null
+++ b/db/docs/analytics_cycle_analytics_aggregations.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_cycle_analytics_aggregations
+classes:
+- Analytics::CycleAnalytics::Aggregation
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79942
+milestone: '14.9'
diff --git a/db/docs/analytics_cycle_analytics_group_stages.yml b/db/docs/analytics_cycle_analytics_group_stages.yml
new file mode 100644
index 00000000000..67bca593a61
--- /dev/null
+++ b/db/docs/analytics_cycle_analytics_group_stages.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_cycle_analytics_group_stages
+classes:
+- Analytics::CycleAnalytics::GroupStage
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/15061
+milestone: '12.2'
diff --git a/db/docs/analytics_cycle_analytics_group_value_streams.yml b/db/docs/analytics_cycle_analytics_group_value_streams.yml
new file mode 100644
index 00000000000..fdf620c382f
--- /dev/null
+++ b/db/docs/analytics_cycle_analytics_group_value_streams.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_cycle_analytics_group_value_streams
+classes:
+- Analytics::CycleAnalytics::GroupValueStream
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/analytics_cycle_analytics_issue_stage_events.yml b/db/docs/analytics_cycle_analytics_issue_stage_events.yml
new file mode 100644
index 00000000000..cc993799033
--- /dev/null
+++ b/db/docs/analytics_cycle_analytics_issue_stage_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_cycle_analytics_issue_stage_events
+classes:
+- Analytics::CycleAnalytics::IssueStageEvent
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68950
+milestone: '14.3'
diff --git a/db/docs/analytics_cycle_analytics_merge_request_stage_events.yml b/db/docs/analytics_cycle_analytics_merge_request_stage_events.yml
new file mode 100644
index 00000000000..796db2a54af
--- /dev/null
+++ b/db/docs/analytics_cycle_analytics_merge_request_stage_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_cycle_analytics_merge_request_stage_events
+classes:
+- Analytics::CycleAnalytics::MergeRequestStageEvent
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68950
+milestone: '14.3'
diff --git a/db/docs/analytics_cycle_analytics_project_stages.yml b/db/docs/analytics_cycle_analytics_project_stages.yml
new file mode 100644
index 00000000000..051f1c585ba
--- /dev/null
+++ b/db/docs/analytics_cycle_analytics_project_stages.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_cycle_analytics_project_stages
+classes:
+- Analytics::CycleAnalytics::ProjectStage
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/15061
+milestone: '12.2'
diff --git a/db/docs/analytics_cycle_analytics_project_value_streams.yml b/db/docs/analytics_cycle_analytics_project_value_streams.yml
new file mode 100644
index 00000000000..28c3f7082a2
--- /dev/null
+++ b/db/docs/analytics_cycle_analytics_project_value_streams.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_cycle_analytics_project_value_streams
+classes:
+- Analytics::CycleAnalytics::ProjectValueStream
+feature_categories:
+- planning_analytics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60925
+milestone: '13.12'
diff --git a/db/docs/analytics_cycle_analytics_stage_event_hashes.yml b/db/docs/analytics_cycle_analytics_stage_event_hashes.yml
new file mode 100644
index 00000000000..cec953a261d
--- /dev/null
+++ b/db/docs/analytics_cycle_analytics_stage_event_hashes.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_cycle_analytics_stage_event_hashes
+classes:
+- Analytics::CycleAnalytics::StageEventHash
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67259
+milestone: '14.2'
diff --git a/db/docs/analytics_devops_adoption_segments.yml b/db/docs/analytics_devops_adoption_segments.yml
new file mode 100644
index 00000000000..18abfcaff09
--- /dev/null
+++ b/db/docs/analytics_devops_adoption_segments.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_devops_adoption_segments
+classes:
+- Analytics::DevopsAdoption::EnabledNamespace
+feature_categories:
+- devops_reports
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45748
+milestone: '13.6'
diff --git a/db/docs/analytics_devops_adoption_snapshots.yml b/db/docs/analytics_devops_adoption_snapshots.yml
new file mode 100644
index 00000000000..8bb87fd08fc
--- /dev/null
+++ b/db/docs/analytics_devops_adoption_snapshots.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_devops_adoption_snapshots
+classes:
+- Analytics::DevopsAdoption::Snapshot
+feature_categories:
+- devops_reports
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47388
+milestone: '13.7'
diff --git a/db/docs/analytics_language_trend_repository_languages.yml b/db/docs/analytics_language_trend_repository_languages.yml
new file mode 100644
index 00000000000..b27543dffaf
--- /dev/null
+++ b/db/docs/analytics_language_trend_repository_languages.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_language_trend_repository_languages
+classes:
+- Analytics::LanguageTrend::RepositoryLanguage
+feature_categories:
+- devops_reports
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16491
+milestone: '12.3'
diff --git a/db/docs/analytics_usage_trends_measurements.yml b/db/docs/analytics_usage_trends_measurements.yml
new file mode 100644
index 00000000000..88e66fd7c98
--- /dev/null
+++ b/db/docs/analytics_usage_trends_measurements.yml
@@ -0,0 +1,9 @@
+---
+table_name: analytics_usage_trends_measurements
+classes:
+- Analytics::UsageTrends::Measurement
+feature_categories:
+- devops_reports
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62797
+milestone: '14.0'
diff --git a/db/docs/appearances.yml b/db/docs/appearances.yml
new file mode 100644
index 00000000000..8d30bc52d4d
--- /dev/null
+++ b/db/docs/appearances.yml
@@ -0,0 +1,9 @@
+---
+table_name: appearances
+classes:
+- Appearance
+feature_categories:
+- navigation
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/40104eead753e7e8ea77951a74a3941546c35aab
+milestone: '6.8'
diff --git a/db/docs/application_setting_terms.yml b/db/docs/application_setting_terms.yml
new file mode 100644
index 00000000000..11f8c6536c4
--- /dev/null
+++ b/db/docs/application_setting_terms.yml
@@ -0,0 +1,9 @@
+---
+table_name: application_setting_terms
+classes:
+- ApplicationSetting::Term
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/cf37bef287d7dd5d2dce3e2276489767b8c0671f
+milestone: '10.8'
diff --git a/db/docs/application_settings.yml b/db/docs/application_settings.yml
new file mode 100644
index 00000000000..578e8ad5c3d
--- /dev/null
+++ b/db/docs/application_settings.yml
@@ -0,0 +1,14 @@
+---
+table_name: application_settings
+classes:
+- ApplicationSetting
+feature_categories:
+- continuous_integration
+- integrations
+- metrics
+- pages
+- service_ping
+- source_code_management
+description: GitLab application settings
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/8589b4e137f50293952923bb07e2814257d7784d
+milestone: '7.7'
diff --git a/db/docs/approval_merge_request_rule_sources.yml b/db/docs/approval_merge_request_rule_sources.yml
new file mode 100644
index 00000000000..c1b4da16a1e
--- /dev/null
+++ b/db/docs/approval_merge_request_rule_sources.yml
@@ -0,0 +1,9 @@
+---
+table_name: approval_merge_request_rule_sources
+classes:
+- ApprovalMergeRequestRuleSource
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497
+milestone: '11.7'
diff --git a/db/docs/approval_merge_request_rules.yml b/db/docs/approval_merge_request_rules.yml
new file mode 100644
index 00000000000..2db3de519db
--- /dev/null
+++ b/db/docs/approval_merge_request_rules.yml
@@ -0,0 +1,9 @@
+---
+table_name: approval_merge_request_rules
+classes:
+- ApprovalMergeRequestRule
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497
+milestone: '11.7'
diff --git a/db/docs/approval_merge_request_rules_approved_approvers.yml b/db/docs/approval_merge_request_rules_approved_approvers.yml
new file mode 100644
index 00000000000..a9b46353dd0
--- /dev/null
+++ b/db/docs/approval_merge_request_rules_approved_approvers.yml
@@ -0,0 +1,8 @@
+---
+table_name: approval_merge_request_rules_approved_approvers
+classes: []
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497
+milestone: '11.7'
diff --git a/db/docs/approval_merge_request_rules_groups.yml b/db/docs/approval_merge_request_rules_groups.yml
new file mode 100644
index 00000000000..86aa93fa179
--- /dev/null
+++ b/db/docs/approval_merge_request_rules_groups.yml
@@ -0,0 +1,8 @@
+---
+table_name: approval_merge_request_rules_groups
+classes: []
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497
+milestone: '11.7'
diff --git a/db/docs/approval_merge_request_rules_users.yml b/db/docs/approval_merge_request_rules_users.yml
new file mode 100644
index 00000000000..710de6cc0c4
--- /dev/null
+++ b/db/docs/approval_merge_request_rules_users.yml
@@ -0,0 +1,8 @@
+---
+table_name: approval_merge_request_rules_users
+classes: []
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497
+milestone: '11.7'
diff --git a/db/docs/approval_project_rules.yml b/db/docs/approval_project_rules.yml
new file mode 100644
index 00000000000..a2a9eeb823f
--- /dev/null
+++ b/db/docs/approval_project_rules.yml
@@ -0,0 +1,9 @@
+---
+table_name: approval_project_rules
+classes:
+- ApprovalProjectRule
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497
+milestone: '11.7'
diff --git a/db/docs/approval_project_rules_groups.yml b/db/docs/approval_project_rules_groups.yml
new file mode 100644
index 00000000000..11ed75a398b
--- /dev/null
+++ b/db/docs/approval_project_rules_groups.yml
@@ -0,0 +1,8 @@
+---
+table_name: approval_project_rules_groups
+classes: []
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497
+milestone: '11.7'
diff --git a/db/docs/approval_project_rules_protected_branches.yml b/db/docs/approval_project_rules_protected_branches.yml
new file mode 100644
index 00000000000..197644b75db
--- /dev/null
+++ b/db/docs/approval_project_rules_protected_branches.yml
@@ -0,0 +1,9 @@
+---
+table_name: approval_project_rules_protected_branches
+classes:
+- ApprovalProjectRulesProtectedBranch
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/22673
+milestone: '12.7'
diff --git a/db/docs/approval_project_rules_users.yml b/db/docs/approval_project_rules_users.yml
new file mode 100644
index 00000000000..8fe1c5c7f71
--- /dev/null
+++ b/db/docs/approval_project_rules_users.yml
@@ -0,0 +1,8 @@
+---
+table_name: approval_project_rules_users
+classes: []
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8497
+milestone: '11.7'
diff --git a/db/docs/approvals.yml b/db/docs/approvals.yml
new file mode 100644
index 00000000000..e26a2ca4aa4
--- /dev/null
+++ b/db/docs/approvals.yml
@@ -0,0 +1,9 @@
+---
+table_name: approvals
+classes:
+- Approval
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/73faf3c7289c4fa4535b752a12247ee74b173976
+milestone: '7.12'
diff --git a/db/docs/approver_groups.yml b/db/docs/approver_groups.yml
new file mode 100644
index 00000000000..6f0be968f07
--- /dev/null
+++ b/db/docs/approver_groups.yml
@@ -0,0 +1,9 @@
+---
+table_name: approver_groups
+classes:
+- ApproverGroup
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/21d27185191e6204a6645d776c77ae3855cce3e8
+milestone: '8.13'
diff --git a/db/docs/approvers.yml b/db/docs/approvers.yml
new file mode 100644
index 00000000000..01f7ac1f4e9
--- /dev/null
+++ b/db/docs/approvers.yml
@@ -0,0 +1,9 @@
+---
+table_name: approvers
+classes:
+- Approver
+feature_categories:
+- security_orchestration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3cc78d89984d9c9df8372c52b7bba38e6226f9f2
+milestone: '7.13'
diff --git a/db/docs/ar_internal_metadata.yml b/db/docs/ar_internal_metadata.yml
new file mode 100644
index 00000000000..c25904a3a1b
--- /dev/null
+++ b/db/docs/ar_internal_metadata.yml
@@ -0,0 +1,8 @@
+---
+table_name: ar_internal_metadata
+classes: []
+feature_categories:
+- database
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/atlassian_identities.yml b/db/docs/atlassian_identities.yml
new file mode 100644
index 00000000000..0df18d40ab4
--- /dev/null
+++ b/db/docs/atlassian_identities.yml
@@ -0,0 +1,9 @@
+---
+table_name: atlassian_identities
+classes:
+- Atlassian::Identity
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/audit_events.yml b/db/docs/audit_events.yml
new file mode 100644
index 00000000000..b19b26be711
--- /dev/null
+++ b/db/docs/audit_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: audit_events
+classes:
+- AuditEvent
+feature_categories:
+- audit_events
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/cf6b622686eacffa46aba5c8ed6419dc877a6b58
+milestone: '7.6'
diff --git a/db/docs/audit_events_external_audit_event_destinations.yml b/db/docs/audit_events_external_audit_event_destinations.yml
new file mode 100644
index 00000000000..6cac68c54cb
--- /dev/null
+++ b/db/docs/audit_events_external_audit_event_destinations.yml
@@ -0,0 +1,9 @@
+---
+table_name: audit_events_external_audit_event_destinations
+classes:
+- AuditEvents::ExternalAuditEventDestination
+feature_categories:
+- audit_events
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70706
+milestone: '14.4'
diff --git a/db/docs/authentication_events.yml b/db/docs/authentication_events.yml
new file mode 100644
index 00000000000..fb76b359854
--- /dev/null
+++ b/db/docs/authentication_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: authentication_events
+classes:
+- AuthenticationEvent
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/award_emoji.yml b/db/docs/award_emoji.yml
new file mode 100644
index 00000000000..feef2ee340e
--- /dev/null
+++ b/db/docs/award_emoji.yml
@@ -0,0 +1,9 @@
+---
+table_name: award_emoji
+classes:
+- AwardEmoji
+feature_categories:
+- snippets
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3bdc57f0a710b3769381ecad7ea4098223ecff56
+milestone: '8.9'
diff --git a/db/docs/aws_roles.yml b/db/docs/aws_roles.yml
new file mode 100644
index 00000000000..c278809e5fd
--- /dev/null
+++ b/db/docs/aws_roles.yml
@@ -0,0 +1,9 @@
+---
+table_name: aws_roles
+classes:
+- Aws::Role
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17057
+milestone: '12.4'
diff --git a/db/docs/background_migration_jobs.yml b/db/docs/background_migration_jobs.yml
new file mode 100644
index 00000000000..a07e605210f
--- /dev/null
+++ b/db/docs/background_migration_jobs.yml
@@ -0,0 +1,9 @@
+---
+table_name: background_migration_jobs
+classes:
+- Gitlab::Database::BackgroundMigrationJob
+feature_categories:
+- database
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/badges.yml b/db/docs/badges.yml
new file mode 100644
index 00000000000..f96a3c37bcc
--- /dev/null
+++ b/db/docs/badges.yml
@@ -0,0 +1,11 @@
+---
+table_name: badges
+classes:
+- Badge
+- GroupBadge
+- ProjectBadge
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/8fe880dc064e0e6cd10f7176ade7c312cfb37b90
+milestone: '10.6'
diff --git a/db/docs/banned_users.yml b/db/docs/banned_users.yml
new file mode 100644
index 00000000000..788684494db
--- /dev/null
+++ b/db/docs/banned_users.yml
@@ -0,0 +1,9 @@
+---
+table_name: banned_users
+classes:
+- Users::BannedUser
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64728
+milestone: '14.2'
diff --git a/db/docs/batched_background_migration_job_transition_logs.yml b/db/docs/batched_background_migration_job_transition_logs.yml
new file mode 100644
index 00000000000..32e18facc18
--- /dev/null
+++ b/db/docs/batched_background_migration_job_transition_logs.yml
@@ -0,0 +1,9 @@
+---
+table_name: batched_background_migration_job_transition_logs
+classes:
+- Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog
+feature_categories:
+- database
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75113
+milestone: '14.8'
diff --git a/db/docs/batched_background_migration_jobs.yml b/db/docs/batched_background_migration_jobs.yml
new file mode 100644
index 00000000000..ed63a1527e5
--- /dev/null
+++ b/db/docs/batched_background_migration_jobs.yml
@@ -0,0 +1,9 @@
+---
+table_name: batched_background_migration_jobs
+classes:
+- Gitlab::Database::BackgroundMigration::BatchedJob
+feature_categories:
+- database
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54628
+milestone: '13.10'
diff --git a/db/docs/batched_background_migrations.yml b/db/docs/batched_background_migrations.yml
new file mode 100644
index 00000000000..cdb9df4824f
--- /dev/null
+++ b/db/docs/batched_background_migrations.yml
@@ -0,0 +1,9 @@
+---
+table_name: batched_background_migrations
+classes:
+- Gitlab::Database::BackgroundMigration::BatchedMigration
+feature_categories:
+- database
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54628
+milestone: '13.10'
diff --git a/db/docs/board_assignees.yml b/db/docs/board_assignees.yml
new file mode 100644
index 00000000000..f570eda19ee
--- /dev/null
+++ b/db/docs/board_assignees.yml
@@ -0,0 +1,9 @@
+---
+table_name: board_assignees
+classes:
+- BoardAssignee
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/2912
+milestone: '10.2'
diff --git a/db/docs/board_group_recent_visits.yml b/db/docs/board_group_recent_visits.yml
new file mode 100644
index 00000000000..0dfe7f8cb4b
--- /dev/null
+++ b/db/docs/board_group_recent_visits.yml
@@ -0,0 +1,9 @@
+---
+table_name: board_group_recent_visits
+classes:
+- BoardGroupRecentVisit
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/7aeab58f4861144fcc1d334907cb1b465c645001
+milestone: '11.5'
diff --git a/db/docs/board_labels.yml b/db/docs/board_labels.yml
new file mode 100644
index 00000000000..a6e7cf8daac
--- /dev/null
+++ b/db/docs/board_labels.yml
@@ -0,0 +1,9 @@
+---
+table_name: board_labels
+classes:
+- BoardLabel
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/2912
+milestone: '10.2'
diff --git a/db/docs/board_project_recent_visits.yml b/db/docs/board_project_recent_visits.yml
new file mode 100644
index 00000000000..a1d5a03452f
--- /dev/null
+++ b/db/docs/board_project_recent_visits.yml
@@ -0,0 +1,9 @@
+---
+table_name: board_project_recent_visits
+classes:
+- BoardProjectRecentVisit
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/7aeab58f4861144fcc1d334907cb1b465c645001
+milestone: '11.5'
diff --git a/db/docs/board_user_preferences.yml b/db/docs/board_user_preferences.yml
new file mode 100644
index 00000000000..209374e9d66
--- /dev/null
+++ b/db/docs/board_user_preferences.yml
@@ -0,0 +1,9 @@
+---
+table_name: board_user_preferences
+classes:
+- BoardUserPreference
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/boards.yml b/db/docs/boards.yml
new file mode 100644
index 00000000000..c837f24f3ff
--- /dev/null
+++ b/db/docs/boards.yml
@@ -0,0 +1,9 @@
+---
+table_name: boards
+classes:
+- Board
+feature_categories:
+- design_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/611dab2e522e5e59cf09cd459a31686e65616863
+milestone: '8.11'
diff --git a/db/docs/boards_epic_board_labels.yml b/db/docs/boards_epic_board_labels.yml
new file mode 100644
index 00000000000..3f273abe5de
--- /dev/null
+++ b/db/docs/boards_epic_board_labels.yml
@@ -0,0 +1,9 @@
+---
+table_name: boards_epic_board_labels
+classes:
+- Boards::EpicBoardLabel
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48658
+milestone: '13.7'
diff --git a/db/docs/boards_epic_board_positions.yml b/db/docs/boards_epic_board_positions.yml
new file mode 100644
index 00000000000..895be38e94a
--- /dev/null
+++ b/db/docs/boards_epic_board_positions.yml
@@ -0,0 +1,9 @@
+---
+table_name: boards_epic_board_positions
+classes:
+- Boards::EpicBoardPosition
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48120
+milestone: '13.7'
diff --git a/db/docs/boards_epic_board_recent_visits.yml b/db/docs/boards_epic_board_recent_visits.yml
new file mode 100644
index 00000000000..35929e178be
--- /dev/null
+++ b/db/docs/boards_epic_board_recent_visits.yml
@@ -0,0 +1,9 @@
+---
+table_name: boards_epic_board_recent_visits
+classes:
+- Boards::EpicBoardRecentVisit
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60720
+milestone: '13.12'
diff --git a/db/docs/boards_epic_boards.yml b/db/docs/boards_epic_boards.yml
new file mode 100644
index 00000000000..0603ce71c21
--- /dev/null
+++ b/db/docs/boards_epic_boards.yml
@@ -0,0 +1,9 @@
+---
+table_name: boards_epic_boards
+classes:
+- Boards::EpicBoard
+feature_categories:
+- portfolio_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48658
+milestone: '13.7'
diff --git a/db/docs/boards_epic_list_user_preferences.yml b/db/docs/boards_epic_list_user_preferences.yml
new file mode 100644
index 00000000000..38f4a1e020b
--- /dev/null
+++ b/db/docs/boards_epic_list_user_preferences.yml
@@ -0,0 +1,9 @@
+---
+table_name: boards_epic_list_user_preferences
+classes:
+- Boards::EpicListUserPreference
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54541
+milestone: '13.10'
diff --git a/db/docs/boards_epic_lists.yml b/db/docs/boards_epic_lists.yml
new file mode 100644
index 00000000000..2a723b4d24e
--- /dev/null
+++ b/db/docs/boards_epic_lists.yml
@@ -0,0 +1,9 @@
+---
+table_name: boards_epic_lists
+classes:
+- Boards::EpicList
+feature_categories:
+- portfolio_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49728
+milestone: '13.8'
diff --git a/db/docs/boards_epic_user_preferences.yml b/db/docs/boards_epic_user_preferences.yml
new file mode 100644
index 00000000000..3fa841c2703
--- /dev/null
+++ b/db/docs/boards_epic_user_preferences.yml
@@ -0,0 +1,9 @@
+---
+table_name: boards_epic_user_preferences
+classes:
+- Boards::EpicUserPreference
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/broadcast_messages.yml b/db/docs/broadcast_messages.yml
new file mode 100644
index 00000000000..da8693df4fc
--- /dev/null
+++ b/db/docs/broadcast_messages.yml
@@ -0,0 +1,9 @@
+---
+table_name: broadcast_messages
+classes:
+- BroadcastMessage
+feature_categories:
+- navigation
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/f1ecf53c1e55fbbc66cb2d7d12fb411cbfc2ace8
+milestone: '6.3'
diff --git a/db/docs/bulk_import_configurations.yml b/db/docs/bulk_import_configurations.yml
new file mode 100644
index 00000000000..2138fbc4d56
--- /dev/null
+++ b/db/docs/bulk_import_configurations.yml
@@ -0,0 +1,9 @@
+---
+table_name: bulk_import_configurations
+classes:
+- BulkImports::Configuration
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/42978
+milestone: '13.5'
diff --git a/db/docs/bulk_import_entities.yml b/db/docs/bulk_import_entities.yml
new file mode 100644
index 00000000000..373f5f76369
--- /dev/null
+++ b/db/docs/bulk_import_entities.yml
@@ -0,0 +1,9 @@
+---
+table_name: bulk_import_entities
+classes:
+- BulkImports::Entity
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/42978
+milestone: '13.5'
diff --git a/db/docs/bulk_import_export_uploads.yml b/db/docs/bulk_import_export_uploads.yml
new file mode 100644
index 00000000000..7b5dcf28102
--- /dev/null
+++ b/db/docs/bulk_import_export_uploads.yml
@@ -0,0 +1,9 @@
+---
+table_name: bulk_import_export_uploads
+classes:
+- BulkImports::ExportUpload
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59976
+milestone: '13.12'
diff --git a/db/docs/bulk_import_exports.yml b/db/docs/bulk_import_exports.yml
new file mode 100644
index 00000000000..d64391b8b52
--- /dev/null
+++ b/db/docs/bulk_import_exports.yml
@@ -0,0 +1,9 @@
+---
+table_name: bulk_import_exports
+classes:
+- BulkImports::Export
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59976
+milestone: '13.12'
diff --git a/db/docs/bulk_import_failures.yml b/db/docs/bulk_import_failures.yml
new file mode 100644
index 00000000000..52e019deeea
--- /dev/null
+++ b/db/docs/bulk_import_failures.yml
@@ -0,0 +1,9 @@
+---
+table_name: bulk_import_failures
+classes:
+- BulkImports::Failure
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47526
+milestone: '13.7'
diff --git a/db/docs/bulk_import_trackers.yml b/db/docs/bulk_import_trackers.yml
new file mode 100644
index 00000000000..8ad5e6a7029
--- /dev/null
+++ b/db/docs/bulk_import_trackers.yml
@@ -0,0 +1,9 @@
+---
+table_name: bulk_import_trackers
+classes:
+- BulkImports::Tracker
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47009
+milestone: '13.6'
diff --git a/db/docs/bulk_imports.yml b/db/docs/bulk_imports.yml
new file mode 100644
index 00000000000..2f63f742618
--- /dev/null
+++ b/db/docs/bulk_imports.yml
@@ -0,0 +1,9 @@
+---
+table_name: bulk_imports
+classes:
+- BulkImport
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/42978
+milestone: '13.5'
diff --git a/db/docs/chat_names.yml b/db/docs/chat_names.yml
new file mode 100644
index 00000000000..aadfdfaa89f
--- /dev/null
+++ b/db/docs/chat_names.yml
@@ -0,0 +1,9 @@
+---
+table_name: chat_names
+classes:
+- ChatName
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/c60437786bfe43344b4a5eb040437f73f37c6396
+milestone: '8.14'
diff --git a/db/docs/chat_teams.yml b/db/docs/chat_teams.yml
new file mode 100644
index 00000000000..c2b15011547
--- /dev/null
+++ b/db/docs/chat_teams.yml
@@ -0,0 +1,9 @@
+---
+table_name: chat_teams
+classes:
+- ChatTeam
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/297dc70158f905fef4557d1ee6510bcf459a08a9
+milestone: '9.0'
diff --git a/db/docs/ci_build_needs.yml b/db/docs/ci_build_needs.yml
new file mode 100644
index 00000000000..976d834c884
--- /dev/null
+++ b/db/docs/ci_build_needs.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_build_needs
+classes:
+- Ci::BuildNeed
+feature_categories:
+- pipeline_authoring
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e7ee84aad4237eaa16f2aba75b4d2c7860625c9d
+milestone: '12.2'
diff --git a/db/docs/ci_build_pending_states.yml b/db/docs/ci_build_pending_states.yml
new file mode 100644
index 00000000000..7f6ce6de4a2
--- /dev/null
+++ b/db/docs/ci_build_pending_states.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_build_pending_states
+classes:
+- Ci::BuildPendingState
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/ci_build_report_results.yml b/db/docs/ci_build_report_results.yml
new file mode 100644
index 00000000000..101f1b0ce83
--- /dev/null
+++ b/db/docs/ci_build_report_results.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_build_report_results
+classes:
+- Ci::BuildReportResult
+feature_categories:
+- code_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/ci_build_trace_chunks.yml b/db/docs/ci_build_trace_chunks.yml
new file mode 100644
index 00000000000..b44f04d3e60
--- /dev/null
+++ b/db/docs/ci_build_trace_chunks.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_build_trace_chunks
+classes:
+- Ci::BuildTraceChunk
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9d6fe7bfdf9ff3f68ee73baa0e3d0aa7df13c351
+milestone: '10.8'
diff --git a/db/docs/ci_build_trace_metadata.yml b/db/docs/ci_build_trace_metadata.yml
new file mode 100644
index 00000000000..54c35cf9c76
--- /dev/null
+++ b/db/docs/ci_build_trace_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_build_trace_metadata
+classes:
+- Ci::BuildTraceMetadata
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68171
+milestone: '14.2'
diff --git a/db/docs/ci_builds.yml b/db/docs/ci_builds.yml
new file mode 100644
index 00000000000..fdaecfe22e8
--- /dev/null
+++ b/db/docs/ci_builds.yml
@@ -0,0 +1,13 @@
+---
+table_name: ci_builds
+classes:
+- Ci::Bridge
+- Ci::Build
+- Ci::Processable
+- CommitStatus
+- GenericCommitStatus
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/046b28312704f3131e72dcd2dbdacc5264d4aa62
+milestone: '8.0'
diff --git a/db/docs/ci_builds_metadata.yml b/db/docs/ci_builds_metadata.yml
new file mode 100644
index 00000000000..ce5c72cf0f1
--- /dev/null
+++ b/db/docs/ci_builds_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_builds_metadata
+classes:
+- Ci::BuildMetadata
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1dde609ca6b130aa0a3d39e929edee7e770e62fc
+milestone: '10.7'
diff --git a/db/docs/ci_builds_runner_session.yml b/db/docs/ci_builds_runner_session.yml
new file mode 100644
index 00000000000..790a976a47a
--- /dev/null
+++ b/db/docs/ci_builds_runner_session.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_builds_runner_session
+classes:
+- Ci::BuildRunnerSession
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6208
+milestone: '11.1'
diff --git a/db/docs/ci_daily_build_group_report_results.yml b/db/docs/ci_daily_build_group_report_results.yml
new file mode 100644
index 00000000000..4b481176b38
--- /dev/null
+++ b/db/docs/ci_daily_build_group_report_results.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_daily_build_group_report_results
+classes:
+- Ci::DailyBuildGroupReportResult
+feature_categories:
+- code_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/ci_deleted_objects.yml b/db/docs/ci_deleted_objects.yml
new file mode 100644
index 00000000000..7189b0a7c6c
--- /dev/null
+++ b/db/docs/ci_deleted_objects.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_deleted_objects
+classes:
+- Ci::DeletedObject
+feature_categories:
+- build_artifacts
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44928
+milestone: '13.5'
diff --git a/db/docs/ci_freeze_periods.yml b/db/docs/ci_freeze_periods.yml
new file mode 100644
index 00000000000..ed28e4189e9
--- /dev/null
+++ b/db/docs/ci_freeze_periods.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_freeze_periods
+classes:
+- Ci::FreezePeriod
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/ci_group_variables.yml b/db/docs/ci_group_variables.yml
new file mode 100644
index 00000000000..de361da918d
--- /dev/null
+++ b/db/docs/ci_group_variables.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_group_variables
+classes:
+- Ci::GroupVariable
+feature_categories:
+- pipeline_authoring
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/5b0954759cc24bdba97be89bb117c5440174f859
+milestone: '9.4'
diff --git a/db/docs/ci_instance_variables.yml b/db/docs/ci_instance_variables.yml
new file mode 100644
index 00000000000..a73a38d2a02
--- /dev/null
+++ b/db/docs/ci_instance_variables.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_instance_variables
+classes:
+- Ci::InstanceVariable
+feature_categories:
+- pipeline_authoring
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/ci_job_artifact_states.yml b/db/docs/ci_job_artifact_states.yml
new file mode 100644
index 00000000000..d555c2d4564
--- /dev/null
+++ b/db/docs/ci_job_artifact_states.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_job_artifact_states
+classes:
+- Geo::JobArtifactState
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75264
+milestone: '14.8'
diff --git a/db/docs/ci_job_artifacts.yml b/db/docs/ci_job_artifacts.yml
new file mode 100644
index 00000000000..781ba3babf1
--- /dev/null
+++ b/db/docs/ci_job_artifacts.yml
@@ -0,0 +1,10 @@
+---
+table_name: ci_job_artifacts
+classes:
+- Ci::JobArtifact
+- Gitlab::Ci::JobArtifact
+feature_categories:
+- build_artifacts
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/61864a5a5bb523953589c9398a431c4369fbfc76
+milestone: '10.3'
diff --git a/db/docs/ci_job_token_project_scope_links.yml b/db/docs/ci_job_token_project_scope_links.yml
new file mode 100644
index 00000000000..e073b63e924
--- /dev/null
+++ b/db/docs/ci_job_token_project_scope_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_job_token_project_scope_links
+classes:
+- Ci::JobToken::ProjectScopeLink
+feature_categories:
+- pipeline_authoring
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62733
+milestone: '14.0'
diff --git a/db/docs/ci_job_variables.yml b/db/docs/ci_job_variables.yml
new file mode 100644
index 00000000000..b9143eab20d
--- /dev/null
+++ b/db/docs/ci_job_variables.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_job_variables
+classes:
+- Ci::JobVariable
+feature_categories:
+- pipeline_authoring
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/14784
+milestone: '12.2'
diff --git a/db/docs/ci_minutes_additional_packs.yml b/db/docs/ci_minutes_additional_packs.yml
new file mode 100644
index 00000000000..37e5e9b1423
--- /dev/null
+++ b/db/docs/ci_minutes_additional_packs.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_minutes_additional_packs
+classes:
+- Ci::Minutes::AdditionalPack
+feature_categories:
+- utilization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62393
+milestone: '14.0'
diff --git a/db/docs/ci_namespace_mirrors.yml b/db/docs/ci_namespace_mirrors.yml
new file mode 100644
index 00000000000..31349cfa94c
--- /dev/null
+++ b/db/docs/ci_namespace_mirrors.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_namespace_mirrors
+classes:
+- Ci::NamespaceMirror
+feature_categories:
+- sharding
+description: Mirrors some data from the `main` database into the `ci` database so that we can join directly in a single query
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75621
+milestone: '14.6'
diff --git a/db/docs/ci_namespace_monthly_usages.yml b/db/docs/ci_namespace_monthly_usages.yml
new file mode 100644
index 00000000000..601d208f1af
--- /dev/null
+++ b/db/docs/ci_namespace_monthly_usages.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_namespace_monthly_usages
+classes:
+- Ci::Minutes::NamespaceMonthlyUsage
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52915
+milestone: '13.9'
diff --git a/db/docs/ci_pending_builds.yml b/db/docs/ci_pending_builds.yml
new file mode 100644
index 00000000000..68a31db0868
--- /dev/null
+++ b/db/docs/ci_pending_builds.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pending_builds
+classes:
+- Ci::PendingBuild
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61581
+milestone: '14.0'
diff --git a/db/docs/ci_pipeline_artifacts.yml b/db/docs/ci_pipeline_artifacts.yml
new file mode 100644
index 00000000000..31aaa42bf0f
--- /dev/null
+++ b/db/docs/ci_pipeline_artifacts.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pipeline_artifacts
+classes:
+- Ci::PipelineArtifact
+feature_categories:
+- build_artifacts
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/ci_pipeline_chat_data.yml b/db/docs/ci_pipeline_chat_data.yml
new file mode 100644
index 00000000000..4f7152d0b56
--- /dev/null
+++ b/db/docs/ci_pipeline_chat_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pipeline_chat_data
+classes:
+- Ci::PipelineChatData
+feature_categories:
+- chatops
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/4466
+milestone: '10.6'
diff --git a/db/docs/ci_pipeline_messages.yml b/db/docs/ci_pipeline_messages.yml
new file mode 100644
index 00000000000..9a66ad366b1
--- /dev/null
+++ b/db/docs/ci_pipeline_messages.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pipeline_messages
+classes:
+- Ci::PipelineMessage
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/ci_pipeline_schedule_variables.yml b/db/docs/ci_pipeline_schedule_variables.yml
new file mode 100644
index 00000000000..20c439c7d87
--- /dev/null
+++ b/db/docs/ci_pipeline_schedule_variables.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pipeline_schedule_variables
+classes:
+- Ci::PipelineScheduleVariable
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d278da48f837292491aaf81649afef1da3a1eb09
+milestone: '9.4'
diff --git a/db/docs/ci_pipeline_schedules.yml b/db/docs/ci_pipeline_schedules.yml
new file mode 100644
index 00000000000..e61e3adfb82
--- /dev/null
+++ b/db/docs/ci_pipeline_schedules.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pipeline_schedules
+classes:
+- Ci::PipelineSchedule
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/8df3997a92bffa2d29f3c559933a336b837cdb93
+milestone: '9.2'
diff --git a/db/docs/ci_pipeline_variables.yml b/db/docs/ci_pipeline_variables.yml
new file mode 100644
index 00000000000..a98f17405bc
--- /dev/null
+++ b/db/docs/ci_pipeline_variables.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pipeline_variables
+classes:
+- Ci::PipelineVariable
+feature_categories:
+- pipeline_authoring
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/56418e85ac6b667d19495665860092ce4d74f55d
+milestone: '9.5'
diff --git a/db/docs/ci_pipelines.yml b/db/docs/ci_pipelines.yml
new file mode 100644
index 00000000000..8931c5233f3
--- /dev/null
+++ b/db/docs/ci_pipelines.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pipelines
+classes:
+- Ci::Pipeline
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/c6ae290cea4b88ecaa9cfe0bc9d88e8fd32070c1
+milestone: '9.0'
diff --git a/db/docs/ci_pipelines_config.yml b/db/docs/ci_pipelines_config.yml
new file mode 100644
index 00000000000..c3a5f33fda0
--- /dev/null
+++ b/db/docs/ci_pipelines_config.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_pipelines_config
+classes:
+- Ci::PipelineConfig
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21827
+milestone: '12.7'
diff --git a/db/docs/ci_platform_metrics.yml b/db/docs/ci_platform_metrics.yml
new file mode 100644
index 00000000000..4d64ed63894
--- /dev/null
+++ b/db/docs/ci_platform_metrics.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_platform_metrics
+classes:
+- CiPlatformMetric
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/ci_project_mirrors.yml b/db/docs/ci_project_mirrors.yml
new file mode 100644
index 00000000000..f04fbf80596
--- /dev/null
+++ b/db/docs/ci_project_mirrors.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_project_mirrors
+classes:
+- Ci::ProjectMirror
+feature_categories:
+- sharding
+description: Mirrors some data from the `main` database into the `ci` database so that we can join directly in a single query
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75621
+milestone: '14.6'
diff --git a/db/docs/ci_project_monthly_usages.yml b/db/docs/ci_project_monthly_usages.yml
new file mode 100644
index 00000000000..e7f0dc2b17b
--- /dev/null
+++ b/db/docs/ci_project_monthly_usages.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_project_monthly_usages
+classes:
+- Ci::Minutes::ProjectMonthlyUsage
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53460
+milestone: '13.9'
diff --git a/db/docs/ci_refs.yml b/db/docs/ci_refs.yml
new file mode 100644
index 00000000000..ce2d9256a9c
--- /dev/null
+++ b/db/docs/ci_refs.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_refs
+classes:
+- Ci::Ref
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16951
+milestone: '12.9'
diff --git a/db/docs/ci_resource_groups.yml b/db/docs/ci_resource_groups.yml
new file mode 100644
index 00000000000..b64929a074c
--- /dev/null
+++ b/db/docs/ci_resource_groups.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_resource_groups
+classes:
+- Ci::ResourceGroup
+feature_categories:
+- continuous_delivery
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20950
+milestone: '12.7'
diff --git a/db/docs/ci_resources.yml b/db/docs/ci_resources.yml
new file mode 100644
index 00000000000..2fac94eb416
--- /dev/null
+++ b/db/docs/ci_resources.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_resources
+classes:
+- Ci::Resource
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20950
+milestone: '12.7'
diff --git a/db/docs/ci_runner_namespaces.yml b/db/docs/ci_runner_namespaces.yml
new file mode 100644
index 00000000000..30414d064c3
--- /dev/null
+++ b/db/docs/ci_runner_namespaces.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_runner_namespaces
+classes:
+- Ci::RunnerNamespace
+feature_categories:
+- runner
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/0970e7b9608d6ada1c0fe45242ea092ea91068aa
+milestone: '10.8'
diff --git a/db/docs/ci_runner_projects.yml b/db/docs/ci_runner_projects.yml
new file mode 100644
index 00000000000..80e3a333999
--- /dev/null
+++ b/db/docs/ci_runner_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_runner_projects
+classes:
+- Ci::RunnerProject
+feature_categories:
+- runner
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/046b28312704f3131e72dcd2dbdacc5264d4aa62
+milestone: '8.0'
diff --git a/db/docs/ci_runners.yml b/db/docs/ci_runners.yml
new file mode 100644
index 00000000000..9725c668507
--- /dev/null
+++ b/db/docs/ci_runners.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_runners
+classes:
+- Ci::Runner
+feature_categories:
+- runner
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/046b28312704f3131e72dcd2dbdacc5264d4aa62
+milestone: '8.0'
diff --git a/db/docs/ci_running_builds.yml b/db/docs/ci_running_builds.yml
new file mode 100644
index 00000000000..5a004ac9c61
--- /dev/null
+++ b/db/docs/ci_running_builds.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_running_builds
+classes:
+- Ci::RunningBuild
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62912
+milestone: '14.0'
diff --git a/db/docs/ci_secure_files.yml b/db/docs/ci_secure_files.yml
new file mode 100644
index 00000000000..deeb24b02a5
--- /dev/null
+++ b/db/docs/ci_secure_files.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_secure_files
+classes:
+- Ci::SecureFile
+feature_categories:
+- pipeline_authoring
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/77886
+milestone: '14.7'
diff --git a/db/docs/ci_sources_pipelines.yml b/db/docs/ci_sources_pipelines.yml
new file mode 100644
index 00000000000..a217d2453d7
--- /dev/null
+++ b/db/docs/ci_sources_pipelines.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_sources_pipelines
+classes:
+- Ci::Sources::Pipeline
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/163983e0d7d1dab622846441bd0dd9086c78a69f
+milestone: '9.3'
diff --git a/db/docs/ci_sources_projects.yml b/db/docs/ci_sources_projects.yml
new file mode 100644
index 00000000000..b39e3a20f03
--- /dev/null
+++ b/db/docs/ci_sources_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_sources_projects
+classes:
+- Ci::Sources::Project
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20063
+milestone: '12.9'
diff --git a/db/docs/ci_stages.yml b/db/docs/ci_stages.yml
new file mode 100644
index 00000000000..9c71193dfd4
--- /dev/null
+++ b/db/docs/ci_stages.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_stages
+classes:
+- Ci::Stage
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/acc22a8422cd1471819510aa375c455b5ea009c5
+milestone: '9.3'
diff --git a/db/docs/ci_subscriptions_projects.yml b/db/docs/ci_subscriptions_projects.yml
new file mode 100644
index 00000000000..0e55c95d6bb
--- /dev/null
+++ b/db/docs/ci_subscriptions_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_subscriptions_projects
+classes:
+- Ci::Subscriptions::Project
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18678
+milestone: '12.5'
diff --git a/db/docs/ci_trigger_requests.yml b/db/docs/ci_trigger_requests.yml
new file mode 100644
index 00000000000..25360f81f50
--- /dev/null
+++ b/db/docs/ci_trigger_requests.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_trigger_requests
+classes:
+- Ci::TriggerRequest
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/046b28312704f3131e72dcd2dbdacc5264d4aa62
+milestone: '8.0'
diff --git a/db/docs/ci_triggers.yml b/db/docs/ci_triggers.yml
new file mode 100644
index 00000000000..c0e556b481c
--- /dev/null
+++ b/db/docs/ci_triggers.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_triggers
+classes:
+- Ci::Trigger
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/046b28312704f3131e72dcd2dbdacc5264d4aa62
+milestone: '8.0'
diff --git a/db/docs/ci_unit_test_failures.yml b/db/docs/ci_unit_test_failures.yml
new file mode 100644
index 00000000000..14f66f5c586
--- /dev/null
+++ b/db/docs/ci_unit_test_failures.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_unit_test_failures
+classes:
+- Ci::UnitTestFailure
+feature_categories:
+- code_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56137
+milestone: '13.11'
diff --git a/db/docs/ci_unit_tests.yml b/db/docs/ci_unit_tests.yml
new file mode 100644
index 00000000000..f80372511c4
--- /dev/null
+++ b/db/docs/ci_unit_tests.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_unit_tests
+classes:
+- Ci::UnitTest
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56137
+milestone: '13.11'
diff --git a/db/docs/ci_variables.yml b/db/docs/ci_variables.yml
new file mode 100644
index 00000000000..2636ff2aa30
--- /dev/null
+++ b/db/docs/ci_variables.yml
@@ -0,0 +1,9 @@
+---
+table_name: ci_variables
+classes:
+- Ci::Variable
+feature_categories:
+- pipeline_authoring
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/046b28312704f3131e72dcd2dbdacc5264d4aa62
+milestone: '8.0'
diff --git a/db/docs/cluster_agent_tokens.yml b/db/docs/cluster_agent_tokens.yml
new file mode 100644
index 00000000000..9f8827ffe66
--- /dev/null
+++ b/db/docs/cluster_agent_tokens.yml
@@ -0,0 +1,9 @@
+---
+table_name: cluster_agent_tokens
+classes:
+- Clusters::AgentToken
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/cluster_agents.yml b/db/docs/cluster_agents.yml
new file mode 100644
index 00000000000..adeda8df3e5
--- /dev/null
+++ b/db/docs/cluster_agents.yml
@@ -0,0 +1,9 @@
+---
+table_name: cluster_agents
+classes:
+- Clusters::Agent
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/cluster_groups.yml b/db/docs/cluster_groups.yml
new file mode 100644
index 00000000000..0df250586a7
--- /dev/null
+++ b/db/docs/cluster_groups.yml
@@ -0,0 +1,9 @@
+---
+table_name: cluster_groups
+classes:
+- Clusters::Group
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/0e15eec86d83cbdfefe17966bf5c02e4d419a34d
+milestone: '11.5'
diff --git a/db/docs/cluster_platforms_kubernetes.yml b/db/docs/cluster_platforms_kubernetes.yml
new file mode 100644
index 00000000000..7571ef7d546
--- /dev/null
+++ b/db/docs/cluster_platforms_kubernetes.yml
@@ -0,0 +1,9 @@
+---
+table_name: cluster_platforms_kubernetes
+classes:
+- Clusters::Platforms::Kubernetes
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d0cff7f5855f91b5479f9fdaa39d8d95ec691a9e
+milestone: '10.2'
diff --git a/db/docs/cluster_projects.yml b/db/docs/cluster_projects.yml
new file mode 100644
index 00000000000..ecc7680a205
--- /dev/null
+++ b/db/docs/cluster_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: cluster_projects
+classes:
+- Clusters::Project
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d0cff7f5855f91b5479f9fdaa39d8d95ec691a9e
+milestone: '10.2'
diff --git a/db/docs/cluster_providers_aws.yml b/db/docs/cluster_providers_aws.yml
new file mode 100644
index 00000000000..21a698c882a
--- /dev/null
+++ b/db/docs/cluster_providers_aws.yml
@@ -0,0 +1,9 @@
+---
+table_name: cluster_providers_aws
+classes:
+- Clusters::Providers::Aws
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17057
+milestone: '12.4'
diff --git a/db/docs/cluster_providers_gcp.yml b/db/docs/cluster_providers_gcp.yml
new file mode 100644
index 00000000000..7aa02089e6c
--- /dev/null
+++ b/db/docs/cluster_providers_gcp.yml
@@ -0,0 +1,9 @@
+---
+table_name: cluster_providers_gcp
+classes:
+- Clusters::Providers::Gcp
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d0cff7f5855f91b5479f9fdaa39d8d95ec691a9e
+milestone: '10.2'
diff --git a/db/docs/clusters.yml b/db/docs/clusters.yml
new file mode 100644
index 00000000000..142186e4410
--- /dev/null
+++ b/db/docs/clusters.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters
+classes:
+- Clusters::Cluster
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d0cff7f5855f91b5479f9fdaa39d8d95ec691a9e
+milestone: '10.1'
diff --git a/db/docs/clusters_applications_cert_managers.yml b/db/docs/clusters_applications_cert_managers.yml
new file mode 100644
index 00000000000..5b75dceb08e
--- /dev/null
+++ b/db/docs/clusters_applications_cert_managers.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_cert_managers
+classes:
+- Clusters::Applications::CertManager
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/8837519445c319a699e0f3ced1c6912c839f3389
+milestone: '11.6'
diff --git a/db/docs/clusters_applications_cilium.yml b/db/docs/clusters_applications_cilium.yml
new file mode 100644
index 00000000000..f91ed18fdbc
--- /dev/null
+++ b/db/docs/clusters_applications_cilium.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_cilium
+classes:
+- Clusters::Applications::Cilium
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/clusters_applications_crossplane.yml b/db/docs/clusters_applications_crossplane.yml
new file mode 100644
index 00000000000..8bc2dde17f3
--- /dev/null
+++ b/db/docs/clusters_applications_crossplane.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_crossplane
+classes:
+- Clusters::Applications::Crossplane
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18797
+milestone: '12.5'
diff --git a/db/docs/clusters_applications_elastic_stacks.yml b/db/docs/clusters_applications_elastic_stacks.yml
new file mode 100644
index 00000000000..1b1aa716afe
--- /dev/null
+++ b/db/docs/clusters_applications_elastic_stacks.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_elastic_stacks
+classes:
+- Clusters::Applications::ElasticStack
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18015
+milestone: '12.5'
diff --git a/db/docs/clusters_applications_helm.yml b/db/docs/clusters_applications_helm.yml
new file mode 100644
index 00000000000..18bc1fa82b4
--- /dev/null
+++ b/db/docs/clusters_applications_helm.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_helm
+classes:
+- Clusters::Applications::Helm
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/64be8d70ae20928df351e495a3442bb6036bc3e7
+milestone: '10.2'
diff --git a/db/docs/clusters_applications_ingress.yml b/db/docs/clusters_applications_ingress.yml
new file mode 100644
index 00000000000..686b01e9bdb
--- /dev/null
+++ b/db/docs/clusters_applications_ingress.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_ingress
+classes:
+- Clusters::Applications::Ingress
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d8223468ae2ae061020cc26336c51dc93cc75571
+milestone: '10.2'
diff --git a/db/docs/clusters_applications_jupyter.yml b/db/docs/clusters_applications_jupyter.yml
new file mode 100644
index 00000000000..bf793d9411e
--- /dev/null
+++ b/db/docs/clusters_applications_jupyter.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_jupyter
+classes:
+- Clusters::Applications::Jupyter
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/db9f765852d9fef464e69c0bf47a382f2ab7219d
+milestone: '11.0'
diff --git a/db/docs/clusters_applications_knative.yml b/db/docs/clusters_applications_knative.yml
new file mode 100644
index 00000000000..a30df20c5cf
--- /dev/null
+++ b/db/docs/clusters_applications_knative.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_knative
+classes:
+- Clusters::Applications::Knative
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/b5155b90ee233e2824c168fbb06b3ce5d3aeb194
+milestone: '11.5'
diff --git a/db/docs/clusters_applications_prometheus.yml b/db/docs/clusters_applications_prometheus.yml
new file mode 100644
index 00000000000..5118d286ffc
--- /dev/null
+++ b/db/docs/clusters_applications_prometheus.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_prometheus
+classes:
+- Clusters::Applications::Prometheus
+feature_categories:
+- container_network_security
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/0d4548026f3060ca0a8f7aa8d8fc89838bc66130
+milestone: '10.4'
diff --git a/db/docs/clusters_applications_runners.yml b/db/docs/clusters_applications_runners.yml
new file mode 100644
index 00000000000..f26302c2d3c
--- /dev/null
+++ b/db/docs/clusters_applications_runners.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_applications_runners
+classes:
+- Clusters::Applications::Runner
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/c607008ee55e35465e04a938a341f2f24cb6761f
+milestone: '10.6'
diff --git a/db/docs/clusters_integration_elasticstack.yml b/db/docs/clusters_integration_elasticstack.yml
new file mode 100644
index 00000000000..3536501c54d
--- /dev/null
+++ b/db/docs/clusters_integration_elasticstack.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_integration_elasticstack
+classes:
+- Clusters::Integrations::ElasticStack
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61077
+milestone: '13.12'
diff --git a/db/docs/clusters_integration_prometheus.yml b/db/docs/clusters_integration_prometheus.yml
new file mode 100644
index 00000000000..78a1933a931
--- /dev/null
+++ b/db/docs/clusters_integration_prometheus.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_integration_prometheus
+classes:
+- Clusters::Integrations::Prometheus
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59091
+milestone: '13.11'
diff --git a/db/docs/clusters_kubernetes_namespaces.yml b/db/docs/clusters_kubernetes_namespaces.yml
new file mode 100644
index 00000000000..5027b6f27b4
--- /dev/null
+++ b/db/docs/clusters_kubernetes_namespaces.yml
@@ -0,0 +1,9 @@
+---
+table_name: clusters_kubernetes_namespaces
+classes:
+- Clusters::KubernetesNamespace
+feature_categories:
+- kubernetes_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e3ca493876ab71ed29817a0af436fc563f564bbe
+milestone: '11.5'
diff --git a/db/docs/commit_user_mentions.yml b/db/docs/commit_user_mentions.yml
new file mode 100644
index 00000000000..96a269dcd6a
--- /dev/null
+++ b/db/docs/commit_user_mentions.yml
@@ -0,0 +1,9 @@
+---
+table_name: commit_user_mentions
+classes:
+- CommitUserMention
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009
+milestone: '12.6'
diff --git a/db/docs/compliance_management_frameworks.yml b/db/docs/compliance_management_frameworks.yml
new file mode 100644
index 00000000000..edf89095593
--- /dev/null
+++ b/db/docs/compliance_management_frameworks.yml
@@ -0,0 +1,9 @@
+---
+table_name: compliance_management_frameworks
+classes:
+- ComplianceManagement::Framework
+feature_categories:
+- compliance_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44098
+milestone: '13.5'
diff --git a/db/docs/container_expiration_policies.yml b/db/docs/container_expiration_policies.yml
new file mode 100644
index 00000000000..e3b3e8598cd
--- /dev/null
+++ b/db/docs/container_expiration_policies.yml
@@ -0,0 +1,9 @@
+---
+table_name: container_expiration_policies
+classes:
+- ContainerExpirationPolicy
+feature_categories:
+- container_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20412
+milestone: '12.6'
diff --git a/db/docs/container_repositories.yml b/db/docs/container_repositories.yml
new file mode 100644
index 00000000000..d3fa52f5126
--- /dev/null
+++ b/db/docs/container_repositories.yml
@@ -0,0 +1,9 @@
+---
+table_name: container_repositories
+classes:
+- ContainerRepository
+feature_categories:
+- container_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/01d159b409d8b24d36204979a73de249843d71bf
+milestone: '9.1'
diff --git a/db/docs/content_blocked_states.yml b/db/docs/content_blocked_states.yml
new file mode 100644
index 00000000000..c2c4118b534
--- /dev/null
+++ b/db/docs/content_blocked_states.yml
@@ -0,0 +1,8 @@
+---
+table_name: content_blocked_states
+classes: []
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72124
+milestone: '14.5'
diff --git a/db/docs/conversational_development_index_metrics.yml b/db/docs/conversational_development_index_metrics.yml
new file mode 100644
index 00000000000..fb96c376953
--- /dev/null
+++ b/db/docs/conversational_development_index_metrics.yml
@@ -0,0 +1,9 @@
+---
+table_name: conversational_development_index_metrics
+classes:
+- DevOpsReport::Metric
+feature_categories:
+- devops_reports
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/26dde5f55f1dac2e6bea4f7e1dfa51c72dc756cb
+milestone: '9.3'
diff --git a/db/docs/coverage_fuzzing_corpuses.yml b/db/docs/coverage_fuzzing_corpuses.yml
new file mode 100644
index 00000000000..1ea6737dac8
--- /dev/null
+++ b/db/docs/coverage_fuzzing_corpuses.yml
@@ -0,0 +1,9 @@
+---
+table_name: coverage_fuzzing_corpuses
+classes:
+- AppSec::Fuzzing::Coverage::Corpus
+feature_categories:
+- code_quality
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71704
+milestone: '14.4'
diff --git a/db/docs/csv_issue_imports.yml b/db/docs/csv_issue_imports.yml
new file mode 100644
index 00000000000..8d0968f78e0
--- /dev/null
+++ b/db/docs/csv_issue_imports.yml
@@ -0,0 +1,9 @@
+---
+table_name: csv_issue_imports
+classes:
+- Issues::CsvImport
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44742
+milestone: '13.6'
diff --git a/db/docs/custom_emoji.yml b/db/docs/custom_emoji.yml
new file mode 100644
index 00000000000..1a290153544
--- /dev/null
+++ b/db/docs/custom_emoji.yml
@@ -0,0 +1,9 @@
+---
+table_name: custom_emoji
+classes:
+- CustomEmoji
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/customer_relations_contacts.yml b/db/docs/customer_relations_contacts.yml
new file mode 100644
index 00000000000..409295f037d
--- /dev/null
+++ b/db/docs/customer_relations_contacts.yml
@@ -0,0 +1,9 @@
+---
+table_name: customer_relations_contacts
+classes:
+- CustomerRelations::Contact
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67985
+milestone: '14.3'
diff --git a/db/docs/customer_relations_organizations.yml b/db/docs/customer_relations_organizations.yml
new file mode 100644
index 00000000000..18a6709b4f3
--- /dev/null
+++ b/db/docs/customer_relations_organizations.yml
@@ -0,0 +1,9 @@
+---
+table_name: customer_relations_organizations
+classes:
+- CustomerRelations::Organization
+feature_categories:
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67551
+milestone: '14.2'
diff --git a/db/docs/dast_profile_schedules.yml b/db/docs/dast_profile_schedules.yml
new file mode 100644
index 00000000000..088fba68cf4
--- /dev/null
+++ b/db/docs/dast_profile_schedules.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_profile_schedules
+classes:
+- Dast::ProfileSchedule
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65327
+milestone: '14.2'
diff --git a/db/docs/dast_profiles.yml b/db/docs/dast_profiles.yml
new file mode 100644
index 00000000000..bc0791d2a43
--- /dev/null
+++ b/db/docs/dast_profiles.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_profiles
+classes:
+- Dast::Profile
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51296
+milestone: '13.9'
diff --git a/db/docs/dast_profiles_pipelines.yml b/db/docs/dast_profiles_pipelines.yml
new file mode 100644
index 00000000000..a457d0df726
--- /dev/null
+++ b/db/docs/dast_profiles_pipelines.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_profiles_pipelines
+classes:
+- Dast::ProfilesPipeline
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56821
+milestone: '13.11'
diff --git a/db/docs/dast_scanner_profiles.yml b/db/docs/dast_scanner_profiles.yml
new file mode 100644
index 00000000000..813029bde9a
--- /dev/null
+++ b/db/docs/dast_scanner_profiles.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_scanner_profiles
+classes:
+- DastScannerProfile
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/dast_scanner_profiles_builds.yml b/db/docs/dast_scanner_profiles_builds.yml
new file mode 100644
index 00000000000..f1edbb0df26
--- /dev/null
+++ b/db/docs/dast_scanner_profiles_builds.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_scanner_profiles_builds
+classes:
+- Dast::ScannerProfilesBuild
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63362
+milestone: '14.1'
diff --git a/db/docs/dast_site_profile_secret_variables.yml b/db/docs/dast_site_profile_secret_variables.yml
new file mode 100644
index 00000000000..6f99739e9ae
--- /dev/null
+++ b/db/docs/dast_site_profile_secret_variables.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_site_profile_secret_variables
+classes:
+- Dast::SiteProfileSecretVariable
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56067
+milestone: '13.11'
diff --git a/db/docs/dast_site_profiles.yml b/db/docs/dast_site_profiles.yml
new file mode 100644
index 00000000000..e2ce0676d8d
--- /dev/null
+++ b/db/docs/dast_site_profiles.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_site_profiles
+classes:
+- DastSiteProfile
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/dast_site_profiles_builds.yml b/db/docs/dast_site_profiles_builds.yml
new file mode 100644
index 00000000000..31ec6e37c89
--- /dev/null
+++ b/db/docs/dast_site_profiles_builds.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_site_profiles_builds
+classes:
+- Dast::SiteProfilesBuild
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63362
+milestone: '14.1'
diff --git a/db/docs/dast_site_profiles_pipelines.yml b/db/docs/dast_site_profiles_pipelines.yml
new file mode 100644
index 00000000000..ed5c0b78f6c
--- /dev/null
+++ b/db/docs/dast_site_profiles_pipelines.yml
@@ -0,0 +1,8 @@
+---
+table_name: dast_site_profiles_pipelines
+classes: []
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60090
+milestone: '13.12'
diff --git a/db/docs/dast_site_tokens.yml b/db/docs/dast_site_tokens.yml
new file mode 100644
index 00000000000..ce8af8e6fd1
--- /dev/null
+++ b/db/docs/dast_site_tokens.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_site_tokens
+classes:
+- DastSiteToken
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/dast_site_validations.yml b/db/docs/dast_site_validations.yml
new file mode 100644
index 00000000000..9d4a73d1d52
--- /dev/null
+++ b/db/docs/dast_site_validations.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_site_validations
+classes:
+- DastSiteValidation
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/dast_sites.yml b/db/docs/dast_sites.yml
new file mode 100644
index 00000000000..6513a66eb8a
--- /dev/null
+++ b/db/docs/dast_sites.yml
@@ -0,0 +1,9 @@
+---
+table_name: dast_sites
+classes:
+- DastSite
+feature_categories:
+- dynamic_application_security_testing
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/dependency_proxy_blobs.yml b/db/docs/dependency_proxy_blobs.yml
new file mode 100644
index 00000000000..2d09d624fc5
--- /dev/null
+++ b/db/docs/dependency_proxy_blobs.yml
@@ -0,0 +1,9 @@
+---
+table_name: dependency_proxy_blobs
+classes:
+- DependencyProxy::Blob
+feature_categories:
+- dependency_proxy
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10676
+milestone: '11.11'
diff --git a/db/docs/dependency_proxy_group_settings.yml b/db/docs/dependency_proxy_group_settings.yml
new file mode 100644
index 00000000000..854d79f9be5
--- /dev/null
+++ b/db/docs/dependency_proxy_group_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: dependency_proxy_group_settings
+classes:
+- DependencyProxy::GroupSetting
+feature_categories:
+- dependency_proxy
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10676
+milestone: '11.11'
diff --git a/db/docs/dependency_proxy_image_ttl_group_policies.yml b/db/docs/dependency_proxy_image_ttl_group_policies.yml
new file mode 100644
index 00000000000..d9c7af2e37d
--- /dev/null
+++ b/db/docs/dependency_proxy_image_ttl_group_policies.yml
@@ -0,0 +1,9 @@
+---
+table_name: dependency_proxy_image_ttl_group_policies
+classes:
+- DependencyProxy::ImageTtlGroupPolicy
+feature_categories:
+- dependency_proxy
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68809
+milestone: '14.3'
diff --git a/db/docs/dependency_proxy_manifests.yml b/db/docs/dependency_proxy_manifests.yml
new file mode 100644
index 00000000000..eaaac522646
--- /dev/null
+++ b/db/docs/dependency_proxy_manifests.yml
@@ -0,0 +1,9 @@
+---
+table_name: dependency_proxy_manifests
+classes:
+- DependencyProxy::Manifest
+feature_categories:
+- dependency_proxy
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48727
+milestone: '13.7'
diff --git a/db/docs/deploy_keys_projects.yml b/db/docs/deploy_keys_projects.yml
new file mode 100644
index 00000000000..42d5c520db2
--- /dev/null
+++ b/db/docs/deploy_keys_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: deploy_keys_projects
+classes:
+- DeployKeysProject
+feature_categories:
+- continuous_delivery
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/a735ce2aa7da72242629a4452c33e7a1900fdd62
+milestone: "<6.0"
diff --git a/db/docs/deploy_tokens.yml b/db/docs/deploy_tokens.yml
new file mode 100644
index 00000000000..b39ccdef9e8
--- /dev/null
+++ b/db/docs/deploy_tokens.yml
@@ -0,0 +1,9 @@
+---
+table_name: deploy_tokens
+classes:
+- DeployToken
+feature_categories:
+- continuous_delivery
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/db18993f652425b72c4b854e18a002e0ec44b196
+milestone: '10.7'
diff --git a/db/docs/deployment_approvals.yml b/db/docs/deployment_approvals.yml
new file mode 100644
index 00000000000..3c04bff052a
--- /dev/null
+++ b/db/docs/deployment_approvals.yml
@@ -0,0 +1,9 @@
+---
+table_name: deployment_approvals
+classes:
+- Deployments::Approval
+feature_categories:
+- advanced_deployments
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74932
+milestone: '14.6'
diff --git a/db/docs/deployment_clusters.yml b/db/docs/deployment_clusters.yml
new file mode 100644
index 00000000000..454c93b34a1
--- /dev/null
+++ b/db/docs/deployment_clusters.yml
@@ -0,0 +1,9 @@
+---
+table_name: deployment_clusters
+classes:
+- DeploymentCluster
+feature_categories:
+- deployment_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24235
+milestone: '12.8'
diff --git a/db/docs/deployment_merge_requests.yml b/db/docs/deployment_merge_requests.yml
new file mode 100644
index 00000000000..33bce15b5c8
--- /dev/null
+++ b/db/docs/deployment_merge_requests.yml
@@ -0,0 +1,9 @@
+---
+table_name: deployment_merge_requests
+classes:
+- DeploymentMergeRequest
+feature_categories:
+- advanced_deployments
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18755
+milestone: '12.5'
diff --git a/db/docs/deployments.yml b/db/docs/deployments.yml
new file mode 100644
index 00000000000..c5e402fb15f
--- /dev/null
+++ b/db/docs/deployments.yml
@@ -0,0 +1,9 @@
+---
+table_name: deployments
+classes:
+- Deployment
+feature_categories:
+- continuous_delivery
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/907c0e6796b69f9577c147dd489cf55748c749ac
+milestone: '8.9'
diff --git a/db/docs/description_versions.yml b/db/docs/description_versions.yml
new file mode 100644
index 00000000000..868193ff26c
--- /dev/null
+++ b/db/docs/description_versions.yml
@@ -0,0 +1,9 @@
+---
+table_name: description_versions
+classes:
+- DescriptionVersion
+feature_categories:
+- design_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17147
+milestone: '12.4'
diff --git a/db/docs/design_management_designs.yml b/db/docs/design_management_designs.yml
new file mode 100644
index 00000000000..50ddf7ce806
--- /dev/null
+++ b/db/docs/design_management_designs.yml
@@ -0,0 +1,9 @@
+---
+table_name: design_management_designs
+classes:
+- DesignManagement::Design
+feature_categories:
+- design_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9801
+milestone: '11.10'
diff --git a/db/docs/design_management_designs_versions.yml b/db/docs/design_management_designs_versions.yml
new file mode 100644
index 00000000000..030efb93696
--- /dev/null
+++ b/db/docs/design_management_designs_versions.yml
@@ -0,0 +1,9 @@
+---
+table_name: design_management_designs_versions
+classes:
+- DesignManagement::Action
+feature_categories:
+- design_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10552
+milestone: '11.10'
diff --git a/db/docs/design_management_versions.yml b/db/docs/design_management_versions.yml
new file mode 100644
index 00000000000..64fdfcb11d7
--- /dev/null
+++ b/db/docs/design_management_versions.yml
@@ -0,0 +1,9 @@
+---
+table_name: design_management_versions
+classes:
+- DesignManagement::Version
+feature_categories:
+- design_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9801
+milestone: '11.10'
diff --git a/db/docs/design_user_mentions.yml b/db/docs/design_user_mentions.yml
new file mode 100644
index 00000000000..e2a9cd2c03e
--- /dev/null
+++ b/db/docs/design_user_mentions.yml
@@ -0,0 +1,9 @@
+---
+table_name: design_user_mentions
+classes:
+- DesignUserMention
+feature_categories:
+- design_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009
+milestone: '12.6'
diff --git a/db/docs/detached_partitions.yml b/db/docs/detached_partitions.yml
new file mode 100644
index 00000000000..7563576c996
--- /dev/null
+++ b/db/docs/detached_partitions.yml
@@ -0,0 +1,17 @@
+---
+table_name: detached_partitions
+classes:
+- Postgresql::DetachedPartition
+feature_categories:
+- database
+description: >
+ The detached_partitions table stores information about partitions in the gitlab_partitions_dynamic schema that
+ have been scheduled for drop, but not yet dropped.
+
+ These partitions were created by the Gitlab::Database::Partitioning::PartitionManager, and then detached from their
+ parent tables and added to this table when no longer part of the active partition set. Partitions are scheduled for
+ deletion one week after detachment.
+
+ Rows in this table are processed by Database::DropDetachedPartitionsWorker, which runs once a day.
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67056
+milestone: '14.2'
diff --git a/db/docs/diff_note_positions.yml b/db/docs/diff_note_positions.yml
new file mode 100644
index 00000000000..274c34ed72e
--- /dev/null
+++ b/db/docs/diff_note_positions.yml
@@ -0,0 +1,9 @@
+---
+table_name: diff_note_positions
+classes:
+- DiffNotePosition
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/dora_daily_metrics.yml b/db/docs/dora_daily_metrics.yml
new file mode 100644
index 00000000000..210af9f6472
--- /dev/null
+++ b/db/docs/dora_daily_metrics.yml
@@ -0,0 +1,9 @@
+---
+table_name: dora_daily_metrics
+classes:
+- Dora::DailyMetrics
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55473
+milestone: '13.10'
diff --git a/db/docs/draft_notes.yml b/db/docs/draft_notes.yml
new file mode 100644
index 00000000000..685dd01f3bb
--- /dev/null
+++ b/db/docs/draft_notes.yml
@@ -0,0 +1,11 @@
+---
+table_name: draft_notes
+classes:
+- DraftNote
+feature_categories:
+- projects
+- source_code_management
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/4213
+milestone: '11.4'
diff --git a/db/docs/elastic_index_settings.yml b/db/docs/elastic_index_settings.yml
new file mode 100644
index 00000000000..61093803d35
--- /dev/null
+++ b/db/docs/elastic_index_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: elastic_index_settings
+classes:
+- Elastic::IndexSetting
+feature_categories:
+- global_search
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56344
+milestone: '13.11'
diff --git a/db/docs/elastic_reindexing_slices.yml b/db/docs/elastic_reindexing_slices.yml
new file mode 100644
index 00000000000..0829431270d
--- /dev/null
+++ b/db/docs/elastic_reindexing_slices.yml
@@ -0,0 +1,9 @@
+---
+table_name: elastic_reindexing_slices
+classes:
+- Elastic::ReindexingSlice
+feature_categories:
+- memory
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55681
+milestone: '13.12'
diff --git a/db/docs/elastic_reindexing_subtasks.yml b/db/docs/elastic_reindexing_subtasks.yml
new file mode 100644
index 00000000000..85f540cfb41
--- /dev/null
+++ b/db/docs/elastic_reindexing_subtasks.yml
@@ -0,0 +1,9 @@
+---
+table_name: elastic_reindexing_subtasks
+classes:
+- Elastic::ReindexingSubtask
+feature_categories:
+- global_search
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48334
+milestone: '13.8'
diff --git a/db/docs/elastic_reindexing_tasks.yml b/db/docs/elastic_reindexing_tasks.yml
new file mode 100644
index 00000000000..640d57ea4df
--- /dev/null
+++ b/db/docs/elastic_reindexing_tasks.yml
@@ -0,0 +1,9 @@
+---
+table_name: elastic_reindexing_tasks
+classes:
+- Elastic::ReindexingTask
+feature_categories:
+- global_search
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/elasticsearch_indexed_namespaces.yml b/db/docs/elasticsearch_indexed_namespaces.yml
new file mode 100644
index 00000000000..ca854727c12
--- /dev/null
+++ b/db/docs/elasticsearch_indexed_namespaces.yml
@@ -0,0 +1,9 @@
+---
+table_name: elasticsearch_indexed_namespaces
+classes:
+- ElasticsearchIndexedNamespace
+feature_categories:
+- global_search
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9861
+milestone: '11.10'
diff --git a/db/docs/elasticsearch_indexed_projects.yml b/db/docs/elasticsearch_indexed_projects.yml
new file mode 100644
index 00000000000..3703f7a0c6b
--- /dev/null
+++ b/db/docs/elasticsearch_indexed_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: elasticsearch_indexed_projects
+classes:
+- ElasticsearchIndexedProject
+feature_categories:
+- memory
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9861
+milestone: '11.10'
diff --git a/db/docs/emails.yml b/db/docs/emails.yml
new file mode 100644
index 00000000000..db08ba6e458
--- /dev/null
+++ b/db/docs/emails.yml
@@ -0,0 +1,9 @@
+---
+table_name: emails
+classes:
+- Email
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/29cfd33d949d21d67f3892473c24d4f0a127dfe6
+milestone: '6.6'
diff --git a/db/docs/environments.yml b/db/docs/environments.yml
new file mode 100644
index 00000000000..eb27637f1d5
--- /dev/null
+++ b/db/docs/environments.yml
@@ -0,0 +1,9 @@
+---
+table_name: environments
+classes:
+- Environment
+feature_categories:
+- continuous_delivery
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/907c0e6796b69f9577c147dd489cf55748c749ac
+milestone: '8.9'
diff --git a/db/docs/epic_issues.yml b/db/docs/epic_issues.yml
new file mode 100644
index 00000000000..2424213279b
--- /dev/null
+++ b/db/docs/epic_issues.yml
@@ -0,0 +1,9 @@
+---
+table_name: epic_issues
+classes:
+- EpicIssue
+feature_categories:
+- portfolio_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3302
+milestone: '10.2'
diff --git a/db/docs/epic_metrics.yml b/db/docs/epic_metrics.yml
new file mode 100644
index 00000000000..4cb6ea86ba2
--- /dev/null
+++ b/db/docs/epic_metrics.yml
@@ -0,0 +1,9 @@
+---
+table_name: epic_metrics
+classes:
+- Epic::Metrics
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3126
+milestone: '10.2'
diff --git a/db/docs/epic_user_mentions.yml b/db/docs/epic_user_mentions.yml
new file mode 100644
index 00000000000..15caca9e58b
--- /dev/null
+++ b/db/docs/epic_user_mentions.yml
@@ -0,0 +1,9 @@
+---
+table_name: epic_user_mentions
+classes:
+- EpicUserMention
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009
+milestone: '12.6'
diff --git a/db/docs/epics.yml b/db/docs/epics.yml
new file mode 100644
index 00000000000..94f33026b1e
--- /dev/null
+++ b/db/docs/epics.yml
@@ -0,0 +1,9 @@
+---
+table_name: epics
+classes:
+- Epic
+feature_categories:
+- portfolio_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3126
+milestone: '10.2'
diff --git a/db/docs/error_tracking_client_keys.yml b/db/docs/error_tracking_client_keys.yml
new file mode 100644
index 00000000000..b9c7b74f0a3
--- /dev/null
+++ b/db/docs/error_tracking_client_keys.yml
@@ -0,0 +1,9 @@
+---
+table_name: error_tracking_client_keys
+classes:
+- ErrorTracking::ClientKey
+feature_categories:
+- error_tracking
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66466
+milestone: '14.2'
diff --git a/db/docs/error_tracking_error_events.yml b/db/docs/error_tracking_error_events.yml
new file mode 100644
index 00000000000..19a7f1cbfe8
--- /dev/null
+++ b/db/docs/error_tracking_error_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: error_tracking_error_events
+classes:
+- ErrorTracking::ErrorEvent
+feature_categories:
+- error_tracking
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/2d1c197ab0bf10071cb52e579edd3808cb0adc21
+milestone: '14.1'
diff --git a/db/docs/error_tracking_errors.yml b/db/docs/error_tracking_errors.yml
new file mode 100644
index 00000000000..b348d47c77f
--- /dev/null
+++ b/db/docs/error_tracking_errors.yml
@@ -0,0 +1,9 @@
+---
+table_name: error_tracking_errors
+classes:
+- ErrorTracking::Error
+feature_categories:
+- error_tracking
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/2d1c197ab0bf10071cb52e579edd3808cb0adc21
+milestone: '14.1'
diff --git a/db/docs/events.yml b/db/docs/events.yml
new file mode 100644
index 00000000000..9ad923a25c7
--- /dev/null
+++ b/db/docs/events.yml
@@ -0,0 +1,10 @@
+---
+table_name: events
+classes:
+- Event
+- PushEvent
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/a847501fd2ffc1c4becc7d0d352d80168d9b3568
+milestone: "<6.0"
diff --git a/db/docs/evidences.yml b/db/docs/evidences.yml
new file mode 100644
index 00000000000..6440681feec
--- /dev/null
+++ b/db/docs/evidences.yml
@@ -0,0 +1,9 @@
+---
+table_name: evidences
+classes:
+- Releases::Evidence
+feature_categories:
+- release_evidence
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17217
+milestone: '12.4'
diff --git a/db/docs/experiment_subjects.yml b/db/docs/experiment_subjects.yml
new file mode 100644
index 00000000000..85546028cd1
--- /dev/null
+++ b/db/docs/experiment_subjects.yml
@@ -0,0 +1,9 @@
+---
+table_name: experiment_subjects
+classes:
+- ExperimentSubject
+feature_categories:
+- experimentation_conversion
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47042
+milestone: '13.7'
diff --git a/db/docs/experiment_users.yml b/db/docs/experiment_users.yml
new file mode 100644
index 00000000000..a136f212a1f
--- /dev/null
+++ b/db/docs/experiment_users.yml
@@ -0,0 +1,9 @@
+---
+table_name: experiment_users
+classes:
+- ExperimentUser
+feature_categories:
+- experimentation_conversion
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/experiments.yml b/db/docs/experiments.yml
new file mode 100644
index 00000000000..496c0a7644c
--- /dev/null
+++ b/db/docs/experiments.yml
@@ -0,0 +1,9 @@
+---
+table_name: experiments
+classes:
+- Experiment
+feature_categories:
+- experimentation_expansion
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/external_approval_rules.yml b/db/docs/external_approval_rules.yml
new file mode 100644
index 00000000000..ac44d0e6c48
--- /dev/null
+++ b/db/docs/external_approval_rules.yml
@@ -0,0 +1,8 @@
+---
+table_name: external_approval_rules
+classes: []
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54002
+milestone: '13.10'
diff --git a/db/docs/external_approval_rules_protected_branches.yml b/db/docs/external_approval_rules_protected_branches.yml
new file mode 100644
index 00000000000..ca498fe82ca
--- /dev/null
+++ b/db/docs/external_approval_rules_protected_branches.yml
@@ -0,0 +1,8 @@
+---
+table_name: external_approval_rules_protected_branches
+classes: []
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/54002
+milestone: '13.10'
diff --git a/db/docs/external_pull_requests.yml b/db/docs/external_pull_requests.yml
new file mode 100644
index 00000000000..c8864dabfdc
--- /dev/null
+++ b/db/docs/external_pull_requests.yml
@@ -0,0 +1,9 @@
+---
+table_name: external_pull_requests
+classes:
+- ExternalPullRequest
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/ca6a1f33f91a8cceadebfb9c4e9ac6afa340f71d
+milestone: '12.3'
diff --git a/db/docs/external_status_checks.yml b/db/docs/external_status_checks.yml
new file mode 100644
index 00000000000..fd9fe357173
--- /dev/null
+++ b/db/docs/external_status_checks.yml
@@ -0,0 +1,9 @@
+---
+table_name: external_status_checks
+classes:
+- MergeRequests::ExternalStatusCheck
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62186
+milestone: '14.0'
diff --git a/db/docs/external_status_checks_protected_branches.yml b/db/docs/external_status_checks_protected_branches.yml
new file mode 100644
index 00000000000..34f4edabb5d
--- /dev/null
+++ b/db/docs/external_status_checks_protected_branches.yml
@@ -0,0 +1,8 @@
+---
+table_name: external_status_checks_protected_branches
+classes: []
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62186
+milestone: '14.0'
diff --git a/db/docs/feature_gates.yml b/db/docs/feature_gates.yml
new file mode 100644
index 00000000000..5f405ed0f1a
--- /dev/null
+++ b/db/docs/feature_gates.yml
@@ -0,0 +1,10 @@
+---
+table_name: feature_gates
+classes:
+- Feature::FlipperGate
+- Flipper::Adapters::ActiveRecord::Gate
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/671284ba375109becbfa2a288032cdc7301b157b
+milestone: '9.3'
diff --git a/db/docs/features.yml b/db/docs/features.yml
new file mode 100644
index 00000000000..82598999b9e
--- /dev/null
+++ b/db/docs/features.yml
@@ -0,0 +1,10 @@
+---
+table_name: features
+classes:
+- Feature::FlipperFeature
+- Flipper::Adapters::ActiveRecord::Feature
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/ee2d3de1a634611a1c660516c955be0d3000904b
+milestone: '8.12'
diff --git a/db/docs/fork_network_members.yml b/db/docs/fork_network_members.yml
new file mode 100644
index 00000000000..47f6150a147
--- /dev/null
+++ b/db/docs/fork_network_members.yml
@@ -0,0 +1,9 @@
+---
+table_name: fork_network_members
+classes:
+- ForkNetworkMember
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3098
+milestone: '10.1'
diff --git a/db/docs/fork_networks.yml b/db/docs/fork_networks.yml
new file mode 100644
index 00000000000..f0978b3fcc4
--- /dev/null
+++ b/db/docs/fork_networks.yml
@@ -0,0 +1,9 @@
+---
+table_name: fork_networks
+classes:
+- ForkNetwork
+feature_categories:
+- devops_reports
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3098
+milestone: '10.1'
diff --git a/db/docs/geo_cache_invalidation_events.yml b/db/docs/geo_cache_invalidation_events.yml
new file mode 100644
index 00000000000..6ae56893281
--- /dev/null
+++ b/db/docs/geo_cache_invalidation_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_cache_invalidation_events
+classes:
+- Geo::CacheInvalidationEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7738
+milestone: '11.4'
diff --git a/db/docs/geo_container_repository_updated_events.yml b/db/docs/geo_container_repository_updated_events.yml
new file mode 100644
index 00000000000..c48c60fbf10
--- /dev/null
+++ b/db/docs/geo_container_repository_updated_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_container_repository_updated_events
+classes:
+- Geo::ContainerRepositoryUpdatedEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1902d9cc74a1dc2c87fdbb39a6cdbb67092cbb5a
+milestone: '12.2'
diff --git a/db/docs/geo_event_log.yml b/db/docs/geo_event_log.yml
new file mode 100644
index 00000000000..122ded0537e
--- /dev/null
+++ b/db/docs/geo_event_log.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_event_log
+classes:
+- Geo::EventLog
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/cb6c7cbe2a9ee05cea6926e3d8c18f6aa26f4c64
+milestone: '9.3'
diff --git a/db/docs/geo_events.yml b/db/docs/geo_events.yml
new file mode 100644
index 00000000000..8a56c02d33e
--- /dev/null
+++ b/db/docs/geo_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_events
+classes:
+- Geo::Event
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23447
+milestone: '12.8'
diff --git a/db/docs/geo_hashed_storage_attachments_events.yml b/db/docs/geo_hashed_storage_attachments_events.yml
new file mode 100644
index 00000000000..6d98ea7d21b
--- /dev/null
+++ b/db/docs/geo_hashed_storage_attachments_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_hashed_storage_attachments_events
+classes:
+- Geo::HashedStorageAttachmentsEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3544
+milestone: '10.3'
diff --git a/db/docs/geo_hashed_storage_migrated_events.yml b/db/docs/geo_hashed_storage_migrated_events.yml
new file mode 100644
index 00000000000..38415c32f52
--- /dev/null
+++ b/db/docs/geo_hashed_storage_migrated_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_hashed_storage_migrated_events
+classes:
+- Geo::HashedStorageMigratedEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3066
+milestone: '10.2'
diff --git a/db/docs/geo_job_artifact_deleted_events.yml b/db/docs/geo_job_artifact_deleted_events.yml
new file mode 100644
index 00000000000..d58b0b83924
--- /dev/null
+++ b/db/docs/geo_job_artifact_deleted_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_job_artifact_deleted_events
+classes:
+- Geo::JobArtifactDeletedEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3935
+milestone: '10.4'
diff --git a/db/docs/geo_lfs_object_deleted_events.yml b/db/docs/geo_lfs_object_deleted_events.yml
new file mode 100644
index 00000000000..1bf82510ee4
--- /dev/null
+++ b/db/docs/geo_lfs_object_deleted_events.yml
@@ -0,0 +1,8 @@
+---
+table_name: geo_lfs_object_deleted_events
+classes: []
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3481
+milestone: '10.2'
diff --git a/db/docs/geo_node_namespace_links.yml b/db/docs/geo_node_namespace_links.yml
new file mode 100644
index 00000000000..6847760f494
--- /dev/null
+++ b/db/docs/geo_node_namespace_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_node_namespace_links
+classes:
+- GeoNodeNamespaceLink
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/14c6128530579ca92fa79342d4119d25bcff1f2d
+milestone: '9.5'
diff --git a/db/docs/geo_node_statuses.yml b/db/docs/geo_node_statuses.yml
new file mode 100644
index 00000000000..3a7dfe16df1
--- /dev/null
+++ b/db/docs/geo_node_statuses.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_node_statuses
+classes:
+- GeoNodeStatus
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3230
+milestone: '10.2'
diff --git a/db/docs/geo_nodes.yml b/db/docs/geo_nodes.yml
new file mode 100644
index 00000000000..143213cad96
--- /dev/null
+++ b/db/docs/geo_nodes.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_nodes
+classes:
+- GeoNode
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/5ab12ad02ed753dd933485094ba45512890f0b50
+milestone: '8.5'
diff --git a/db/docs/geo_repositories_changed_events.yml b/db/docs/geo_repositories_changed_events.yml
new file mode 100644
index 00000000000..214a4b3fe09
--- /dev/null
+++ b/db/docs/geo_repositories_changed_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_repositories_changed_events
+classes:
+- Geo::RepositoriesChangedEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/312bc703a4619b87ba2ac4e59623e7747a24502c
+milestone: '9.5'
diff --git a/db/docs/geo_repository_created_events.yml b/db/docs/geo_repository_created_events.yml
new file mode 100644
index 00000000000..22c546ac0a2
--- /dev/null
+++ b/db/docs/geo_repository_created_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_repository_created_events
+classes:
+- Geo::RepositoryCreatedEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/f3eacf881659b7af97b7c7ba3289237ec6cdc1cb
+milestone: '10.0'
diff --git a/db/docs/geo_repository_deleted_events.yml b/db/docs/geo_repository_deleted_events.yml
new file mode 100644
index 00000000000..9c2b72a0172
--- /dev/null
+++ b/db/docs/geo_repository_deleted_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_repository_deleted_events
+classes:
+- Geo::RepositoryDeletedEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/04c3da24ac5975b140cf2e6a7e33414543f148f5
+milestone: '9.4'
diff --git a/db/docs/geo_repository_renamed_events.yml b/db/docs/geo_repository_renamed_events.yml
new file mode 100644
index 00000000000..431577572e3
--- /dev/null
+++ b/db/docs/geo_repository_renamed_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_repository_renamed_events
+classes:
+- Geo::RepositoryRenamedEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/6e5fa040d1c689fad4e110dd10be8ddba61ea7ef
+milestone: '9.4'
diff --git a/db/docs/geo_repository_updated_events.yml b/db/docs/geo_repository_updated_events.yml
new file mode 100644
index 00000000000..0aa83949fef
--- /dev/null
+++ b/db/docs/geo_repository_updated_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_repository_updated_events
+classes:
+- Geo::RepositoryUpdatedEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/71cc57b1e4b7721c93107357517235a18f7ba8e2
+milestone: '9.3'
diff --git a/db/docs/geo_reset_checksum_events.yml b/db/docs/geo_reset_checksum_events.yml
new file mode 100644
index 00000000000..ba56f659295
--- /dev/null
+++ b/db/docs/geo_reset_checksum_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: geo_reset_checksum_events
+classes:
+- Geo::ResetChecksumEvent
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7394
+milestone: '11.4'
diff --git a/db/docs/gitlab_subscription_histories.yml b/db/docs/gitlab_subscription_histories.yml
new file mode 100644
index 00000000000..428b17a8e85
--- /dev/null
+++ b/db/docs/gitlab_subscription_histories.yml
@@ -0,0 +1,9 @@
+---
+table_name: gitlab_subscription_histories
+classes:
+- GitlabSubscriptionHistory
+feature_categories:
+- purchase
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19694
+milestone: '12.6'
diff --git a/db/docs/gitlab_subscriptions.yml b/db/docs/gitlab_subscriptions.yml
new file mode 100644
index 00000000000..e32156da0c8
--- /dev/null
+++ b/db/docs/gitlab_subscriptions.yml
@@ -0,0 +1,9 @@
+---
+table_name: gitlab_subscriptions
+classes:
+- GitlabSubscription
+feature_categories:
+- purchase
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7885
+milestone: '11.6'
diff --git a/db/docs/gpg_key_subkeys.yml b/db/docs/gpg_key_subkeys.yml
new file mode 100644
index 00000000000..828ee6dac70
--- /dev/null
+++ b/db/docs/gpg_key_subkeys.yml
@@ -0,0 +1,9 @@
+---
+table_name: gpg_key_subkeys
+classes:
+- GpgKeySubkey
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3098
+milestone: '10.1'
diff --git a/db/docs/gpg_keys.yml b/db/docs/gpg_keys.yml
new file mode 100644
index 00000000000..d4524e777ee
--- /dev/null
+++ b/db/docs/gpg_keys.yml
@@ -0,0 +1,9 @@
+---
+table_name: gpg_keys
+classes:
+- GpgKey
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/fbf1fd1a204a24aef2b80473ec64a520ed2a2dfc
+milestone: '9.5'
diff --git a/db/docs/gpg_signatures.yml b/db/docs/gpg_signatures.yml
new file mode 100644
index 00000000000..a0f79655270
--- /dev/null
+++ b/db/docs/gpg_signatures.yml
@@ -0,0 +1,9 @@
+---
+table_name: gpg_signatures
+classes:
+- CommitSignatures::GpgSignature
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/8236b12dff3df6d223888664c820ae54b4e0eaf7
+milestone: '9.5'
diff --git a/db/docs/grafana_integrations.yml b/db/docs/grafana_integrations.yml
new file mode 100644
index 00000000000..c479b07ffb1
--- /dev/null
+++ b/db/docs/grafana_integrations.yml
@@ -0,0 +1,9 @@
+---
+table_name: grafana_integrations
+classes:
+- GrafanaIntegration
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17234
+milestone: '12.4'
diff --git a/db/docs/group_crm_settings.yml b/db/docs/group_crm_settings.yml
new file mode 100644
index 00000000000..977ba21e2f8
--- /dev/null
+++ b/db/docs/group_crm_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_crm_settings
+classes:
+- Group::CrmSettings
+feature_categories:
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76983
+milestone: '14.7'
diff --git a/db/docs/group_custom_attributes.yml b/db/docs/group_custom_attributes.yml
new file mode 100644
index 00000000000..6a06b847414
--- /dev/null
+++ b/db/docs/group_custom_attributes.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_custom_attributes
+classes:
+- GroupCustomAttribute
+feature_categories:
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1f773a8ef5a1f76166d0455c6a5e473278885c17
+milestone: '10.2'
diff --git a/db/docs/group_deletion_schedules.yml b/db/docs/group_deletion_schedules.yml
new file mode 100644
index 00000000000..b3bc6665c4c
--- /dev/null
+++ b/db/docs/group_deletion_schedules.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_deletion_schedules
+classes:
+- GroupDeletionSchedule
+feature_categories:
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20276
+milestone: '12.6'
diff --git a/db/docs/group_deploy_keys.yml b/db/docs/group_deploy_keys.yml
new file mode 100644
index 00000000000..1b456703e37
--- /dev/null
+++ b/db/docs/group_deploy_keys.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_deploy_keys
+classes:
+- GroupDeployKey
+feature_categories:
+- secrets_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/group_deploy_keys_groups.yml b/db/docs/group_deploy_keys_groups.yml
new file mode 100644
index 00000000000..e50849a6967
--- /dev/null
+++ b/db/docs/group_deploy_keys_groups.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_deploy_keys_groups
+classes:
+- GroupDeployKeysGroup
+feature_categories:
+- advanced_deployments
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/group_deploy_tokens.yml b/db/docs/group_deploy_tokens.yml
new file mode 100644
index 00000000000..4b8a4d4598f
--- /dev/null
+++ b/db/docs/group_deploy_tokens.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_deploy_tokens
+classes:
+- GroupDeployToken
+feature_categories:
+- secrets_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23460
+milestone: '12.8'
diff --git a/db/docs/group_group_links.yml b/db/docs/group_group_links.yml
new file mode 100644
index 00000000000..e9671034330
--- /dev/null
+++ b/db/docs/group_group_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_group_links
+classes:
+- GroupGroupLink
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17117
+milestone: '12.5'
diff --git a/db/docs/group_import_states.yml b/db/docs/group_import_states.yml
new file mode 100644
index 00000000000..72acbaa0daa
--- /dev/null
+++ b/db/docs/group_import_states.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_import_states
+classes:
+- GroupImportState
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/group_merge_request_approval_settings.yml b/db/docs/group_merge_request_approval_settings.yml
new file mode 100644
index 00000000000..70a2ef9311b
--- /dev/null
+++ b/db/docs/group_merge_request_approval_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_merge_request_approval_settings
+classes:
+- GroupMergeRequestApprovalSetting
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50256
+milestone: '13.8'
diff --git a/db/docs/group_repository_storage_moves.yml b/db/docs/group_repository_storage_moves.yml
new file mode 100644
index 00000000000..439dfa381cc
--- /dev/null
+++ b/db/docs/group_repository_storage_moves.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_repository_storage_moves
+classes:
+- Groups::RepositoryStorageMove
+feature_categories:
+- gitaly
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51803
+milestone: '13.9'
diff --git a/db/docs/group_wiki_repositories.yml b/db/docs/group_wiki_repositories.yml
new file mode 100644
index 00000000000..6a5a1976ca3
--- /dev/null
+++ b/db/docs/group_wiki_repositories.yml
@@ -0,0 +1,9 @@
+---
+table_name: group_wiki_repositories
+classes:
+- GroupWikiRepository
+feature_categories:
+- wiki
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/historical_data.yml b/db/docs/historical_data.yml
new file mode 100644
index 00000000000..75f3493cb6d
--- /dev/null
+++ b/db/docs/historical_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: historical_data
+classes:
+- HistoricalData
+feature_categories:
+- utilization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/85c04a8aa654d1b7f898e55a113e50521bacaaf2
+milestone: '7.11'
diff --git a/db/docs/identities.yml b/db/docs/identities.yml
new file mode 100644
index 00000000000..078fb1197d7
--- /dev/null
+++ b/db/docs/identities.yml
@@ -0,0 +1,9 @@
+---
+table_name: identities
+classes:
+- Identity
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1a80d13a3990937580c97e2b0ba8fb98f69bc055
+milestone: '7.6'
diff --git a/db/docs/import_export_uploads.yml b/db/docs/import_export_uploads.yml
new file mode 100644
index 00000000000..f9295ef89c9
--- /dev/null
+++ b/db/docs/import_export_uploads.yml
@@ -0,0 +1,9 @@
+---
+table_name: import_export_uploads
+classes:
+- ImportExportUpload
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/a2bf1641546a1d3eeb3e9f44734854f655c0adef
+milestone: '11.1'
diff --git a/db/docs/import_failures.yml b/db/docs/import_failures.yml
new file mode 100644
index 00000000000..ef0e71deca3
--- /dev/null
+++ b/db/docs/import_failures.yml
@@ -0,0 +1,9 @@
+---
+table_name: import_failures
+classes:
+- ImportFailure
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20727
+milestone: '12.6'
diff --git a/db/docs/in_product_marketing_emails.yml b/db/docs/in_product_marketing_emails.yml
new file mode 100644
index 00000000000..443b67aaae5
--- /dev/null
+++ b/db/docs/in_product_marketing_emails.yml
@@ -0,0 +1,9 @@
+---
+table_name: in_product_marketing_emails
+classes:
+- Users::InProductMarketingEmail
+feature_categories:
+- experimentation_activation
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55840
+milestone: '13.10'
diff --git a/db/docs/incident_management_escalation_policies.yml b/db/docs/incident_management_escalation_policies.yml
new file mode 100644
index 00000000000..f8bb51957fd
--- /dev/null
+++ b/db/docs/incident_management_escalation_policies.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_escalation_policies
+classes:
+- IncidentManagement::EscalationPolicy
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60685
+milestone: '13.12'
diff --git a/db/docs/incident_management_escalation_rules.yml b/db/docs/incident_management_escalation_rules.yml
new file mode 100644
index 00000000000..6f97d8b6524
--- /dev/null
+++ b/db/docs/incident_management_escalation_rules.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_escalation_rules
+classes:
+- IncidentManagement::EscalationRule
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60685
+milestone: '13.12'
diff --git a/db/docs/incident_management_issuable_escalation_statuses.yml b/db/docs/incident_management_issuable_escalation_statuses.yml
new file mode 100644
index 00000000000..4c0010f212a
--- /dev/null
+++ b/db/docs/incident_management_issuable_escalation_statuses.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_issuable_escalation_statuses
+classes:
+- IncidentManagement::IssuableEscalationStatus
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65206
+milestone: '14.2'
diff --git a/db/docs/incident_management_oncall_participants.yml b/db/docs/incident_management_oncall_participants.yml
new file mode 100644
index 00000000000..a394afae79b
--- /dev/null
+++ b/db/docs/incident_management_oncall_participants.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_oncall_participants
+classes:
+- IncidentManagement::OncallParticipant
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49058
+milestone: '13.7'
diff --git a/db/docs/incident_management_oncall_rotations.yml b/db/docs/incident_management_oncall_rotations.yml
new file mode 100644
index 00000000000..114973d12be
--- /dev/null
+++ b/db/docs/incident_management_oncall_rotations.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_oncall_rotations
+classes:
+- IncidentManagement::OncallRotation
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49058
+milestone: '13.7'
diff --git a/db/docs/incident_management_oncall_schedules.yml b/db/docs/incident_management_oncall_schedules.yml
new file mode 100644
index 00000000000..deb05826e08
--- /dev/null
+++ b/db/docs/incident_management_oncall_schedules.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_oncall_schedules
+classes:
+- IncidentManagement::OncallSchedule
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47407
+milestone: '13.7'
diff --git a/db/docs/incident_management_oncall_shifts.yml b/db/docs/incident_management_oncall_shifts.yml
new file mode 100644
index 00000000000..2e1a12032d4
--- /dev/null
+++ b/db/docs/incident_management_oncall_shifts.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_oncall_shifts
+classes:
+- IncidentManagement::OncallShift
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49423
+milestone: '13.8'
diff --git a/db/docs/incident_management_pending_alert_escalations.yml b/db/docs/incident_management_pending_alert_escalations.yml
new file mode 100644
index 00000000000..5c8f456f084
--- /dev/null
+++ b/db/docs/incident_management_pending_alert_escalations.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_pending_alert_escalations
+classes:
+- IncidentManagement::PendingEscalations::Alert
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e5cc867503dfbd54f99df90cce6be39bc4fde712
+milestone: '14.1'
diff --git a/db/docs/incident_management_pending_issue_escalations.yml b/db/docs/incident_management_pending_issue_escalations.yml
new file mode 100644
index 00000000000..0956b1f9453
--- /dev/null
+++ b/db/docs/incident_management_pending_issue_escalations.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_pending_issue_escalations
+classes:
+- IncidentManagement::PendingEscalations::Issue
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65209
+milestone: '14.3'
diff --git a/db/docs/incident_management_timeline_events.yml b/db/docs/incident_management_timeline_events.yml
new file mode 100644
index 00000000000..d13a6ec29ec
--- /dev/null
+++ b/db/docs/incident_management_timeline_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: incident_management_timeline_events
+classes:
+- IncidentManagement::TimelineEvent
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74530
+milestone: '14.6'
diff --git a/db/docs/index_statuses.yml b/db/docs/index_statuses.yml
new file mode 100644
index 00000000000..933795a265a
--- /dev/null
+++ b/db/docs/index_statuses.yml
@@ -0,0 +1,9 @@
+---
+table_name: index_statuses
+classes:
+- IndexStatus
+feature_categories:
+- global_search
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/03370b017c7b120af7b53682714ffc325742fc98
+milestone: '8.4'
diff --git a/db/docs/insights.yml b/db/docs/insights.yml
new file mode 100644
index 00000000000..988893208a7
--- /dev/null
+++ b/db/docs/insights.yml
@@ -0,0 +1,9 @@
+---
+table_name: insights
+classes:
+- Insight
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9665
+milestone: '11.9'
diff --git a/db/docs/integrations.yml b/db/docs/integrations.yml
new file mode 100644
index 00000000000..708bd6d8b1a
--- /dev/null
+++ b/db/docs/integrations.yml
@@ -0,0 +1,55 @@
+---
+table_name: integrations
+classes:
+- Integration
+- Integrations::Asana
+- Integrations::Assembla
+- Integrations::Bamboo
+- Integrations::BaseChatNotification
+- Integrations::BaseCi
+- Integrations::BaseIssueTracker
+- Integrations::BaseMonitoring
+- Integrations::BaseSlashCommands
+- Integrations::Bugzilla
+- Integrations::Buildkite
+- Integrations::Campfire
+- Integrations::Confluence
+- Integrations::CustomIssueTracker
+- Integrations::Datadog
+- Integrations::Discord
+- Integrations::DroneCi
+- Integrations::EmailsOnPush
+- Integrations::Ewm
+- Integrations::ExternalWiki
+- Integrations::Flowdock
+- Integrations::Github
+- Integrations::GitlabSlackApplication
+- Integrations::HangoutsChat
+- Integrations::Harbor
+- Integrations::Irker
+- Integrations::Jenkins
+- Integrations::Jira
+- Integrations::Mattermost
+- Integrations::MattermostSlashCommands
+- Integrations::MicrosoftTeams
+- Integrations::MockCi
+- Integrations::MockMonitoring
+- Integrations::Packagist
+- Integrations::PipelinesEmail
+- Integrations::Pivotaltracker
+- Integrations::Prometheus
+- Integrations::Pushover
+- Integrations::Redmine
+- Integrations::Shimo
+- Integrations::Slack
+- Integrations::SlackSlashCommands
+- Integrations::Teamcity
+- Integrations::UnifyCircuit
+- Integrations::WebexTeams
+- Integrations::Youtrack
+- Integrations::Zentao
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64562
+milestone: '9.4'
diff --git a/db/docs/internal_ids.yml b/db/docs/internal_ids.yml
new file mode 100644
index 00000000000..48596a153d6
--- /dev/null
+++ b/db/docs/internal_ids.yml
@@ -0,0 +1,10 @@
+---
+table_name: internal_ids
+classes:
+- InternalId
+feature_categories:
+- projects
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/754272e392c0da088200a1b56156600973f63267
+milestone: '10.7'
diff --git a/db/docs/ip_restrictions.yml b/db/docs/ip_restrictions.yml
new file mode 100644
index 00000000000..6437cda47f2
--- /dev/null
+++ b/db/docs/ip_restrictions.yml
@@ -0,0 +1,9 @@
+---
+table_name: ip_restrictions
+classes:
+- IpRestriction
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/12669
+milestone: '12.0'
diff --git a/db/docs/issuable_metric_images.yml b/db/docs/issuable_metric_images.yml
new file mode 100644
index 00000000000..d4460d5e31c
--- /dev/null
+++ b/db/docs/issuable_metric_images.yml
@@ -0,0 +1,9 @@
+---
+table_name: issuable_metric_images
+classes:
+- IssuableMetricImage
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46845
+milestone: '13.7'
diff --git a/db/docs/issuable_severities.yml b/db/docs/issuable_severities.yml
new file mode 100644
index 00000000000..9a86931e4c3
--- /dev/null
+++ b/db/docs/issuable_severities.yml
@@ -0,0 +1,9 @@
+---
+table_name: issuable_severities
+classes:
+- IssuableSeverity
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/issuable_slas.yml b/db/docs/issuable_slas.yml
new file mode 100644
index 00000000000..631086f68a9
--- /dev/null
+++ b/db/docs/issuable_slas.yml
@@ -0,0 +1,9 @@
+---
+table_name: issuable_slas
+classes:
+- IssuableSla
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44928
+milestone: '13.5'
diff --git a/db/docs/issue_assignees.yml b/db/docs/issue_assignees.yml
new file mode 100644
index 00000000000..5b09ffa4b87
--- /dev/null
+++ b/db/docs/issue_assignees.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_assignees
+classes:
+- IssueAssignee
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/ac5d8fddd6809113e3d43d94c315f993605135e9
+milestone: '9.2'
diff --git a/db/docs/issue_customer_relations_contacts.yml b/db/docs/issue_customer_relations_contacts.yml
new file mode 100644
index 00000000000..d88ccc1c72b
--- /dev/null
+++ b/db/docs/issue_customer_relations_contacts.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_customer_relations_contacts
+classes:
+- CustomerRelations::IssueContact
+feature_categories:
+- purchase
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71007
+milestone: '14.4'
diff --git a/db/docs/issue_email_participants.yml b/db/docs/issue_email_participants.yml
new file mode 100644
index 00000000000..11995b17d2c
--- /dev/null
+++ b/db/docs/issue_email_participants.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_email_participants
+classes:
+- IssueEmailParticipant
+feature_categories:
+- service_desk
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/42943
+milestone: '13.5'
diff --git a/db/docs/issue_emails.yml b/db/docs/issue_emails.yml
new file mode 100644
index 00000000000..48129cff428
--- /dev/null
+++ b/db/docs/issue_emails.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_emails
+classes:
+- Issue::Email
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71749
+milestone: '14.6'
diff --git a/db/docs/issue_links.yml b/db/docs/issue_links.yml
new file mode 100644
index 00000000000..3eb0ba63125
--- /dev/null
+++ b/db/docs/issue_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_links
+classes:
+- IssueLink
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/7afdb31770f927cf4fcca98ab675e015f39f8479
+milestone: '9.4'
diff --git a/db/docs/issue_metrics.yml b/db/docs/issue_metrics.yml
new file mode 100644
index 00000000000..a451e649128
--- /dev/null
+++ b/db/docs/issue_metrics.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_metrics
+classes:
+- Issue::Metrics
+feature_categories:
+- value_stream_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/516c838a1846d049814765afa85c28a3c14a5b9f
+milestone: '8.12'
diff --git a/db/docs/issue_search_data.yml b/db/docs/issue_search_data.yml
new file mode 100644
index 00000000000..cea9a385afb
--- /dev/null
+++ b/db/docs/issue_search_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_search_data
+classes:
+- Issues::SearchData
+feature_categories:
+- global_search
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71913
+milestone: '14.9'
diff --git a/db/docs/issue_tracker_data.yml b/db/docs/issue_tracker_data.yml
new file mode 100644
index 00000000000..03aa6132fc4
--- /dev/null
+++ b/db/docs/issue_tracker_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_tracker_data
+classes:
+- Integrations::IssueTrackerData
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1f332ae8da994509232c7601074b25514ad23c52
+milestone: '12.0'
diff --git a/db/docs/issue_user_mentions.yml b/db/docs/issue_user_mentions.yml
new file mode 100644
index 00000000000..f854ac9bc96
--- /dev/null
+++ b/db/docs/issue_user_mentions.yml
@@ -0,0 +1,9 @@
+---
+table_name: issue_user_mentions
+classes:
+- IssueUserMention
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009
+milestone: '12.6'
diff --git a/db/docs/issues.yml b/db/docs/issues.yml
new file mode 100644
index 00000000000..f8e70998cd0
--- /dev/null
+++ b/db/docs/issues.yml
@@ -0,0 +1,10 @@
+---
+table_name: issues
+classes:
+- Issue
+- WorkItem
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9ba1224867665844b117fa037e1465bb706b3685
+milestone: "<6.0"
diff --git a/db/docs/issues_prometheus_alert_events.yml b/db/docs/issues_prometheus_alert_events.yml
new file mode 100644
index 00000000000..4a222ab3924
--- /dev/null
+++ b/db/docs/issues_prometheus_alert_events.yml
@@ -0,0 +1,8 @@
+---
+table_name: issues_prometheus_alert_events
+classes: []
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17477
+milestone: '12.4'
diff --git a/db/docs/issues_self_managed_prometheus_alert_events.yml b/db/docs/issues_self_managed_prometheus_alert_events.yml
new file mode 100644
index 00000000000..016e1f17a6e
--- /dev/null
+++ b/db/docs/issues_self_managed_prometheus_alert_events.yml
@@ -0,0 +1,8 @@
+---
+table_name: issues_self_managed_prometheus_alert_events
+classes: []
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18046
+milestone: '12.4'
diff --git a/db/docs/iterations_cadences.yml b/db/docs/iterations_cadences.yml
new file mode 100644
index 00000000000..d47214ba780
--- /dev/null
+++ b/db/docs/iterations_cadences.yml
@@ -0,0 +1,9 @@
+---
+table_name: iterations_cadences
+classes:
+- Iterations::Cadence
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50707
+milestone: '13.10'
diff --git a/db/docs/jira_connect_installations.yml b/db/docs/jira_connect_installations.yml
new file mode 100644
index 00000000000..0ce19242942
--- /dev/null
+++ b/db/docs/jira_connect_installations.yml
@@ -0,0 +1,9 @@
+---
+table_name: jira_connect_installations
+classes:
+- JiraConnectInstallation
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9593
+milestone: '11.9'
diff --git a/db/docs/jira_connect_subscriptions.yml b/db/docs/jira_connect_subscriptions.yml
new file mode 100644
index 00000000000..c7b134fb201
--- /dev/null
+++ b/db/docs/jira_connect_subscriptions.yml
@@ -0,0 +1,9 @@
+---
+table_name: jira_connect_subscriptions
+classes:
+- JiraConnectSubscription
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/10453
+milestone: '11.11'
diff --git a/db/docs/jira_imports.yml b/db/docs/jira_imports.yml
new file mode 100644
index 00000000000..497b0776c4c
--- /dev/null
+++ b/db/docs/jira_imports.yml
@@ -0,0 +1,9 @@
+---
+table_name: jira_imports
+classes:
+- JiraImportState
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/jira_tracker_data.yml b/db/docs/jira_tracker_data.yml
new file mode 100644
index 00000000000..30915569024
--- /dev/null
+++ b/db/docs/jira_tracker_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: jira_tracker_data
+classes:
+- Integrations::JiraTrackerData
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1f332ae8da994509232c7601074b25514ad23c52
+milestone: '12.0'
diff --git a/db/docs/keys.yml b/db/docs/keys.yml
new file mode 100644
index 00000000000..3bb5ed48b19
--- /dev/null
+++ b/db/docs/keys.yml
@@ -0,0 +1,11 @@
+---
+table_name: keys
+classes:
+- DeployKey
+- Key
+- LDAPKey
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9ba1224867665844b117fa037e1465bb706b3685
+milestone: "<6.0"
diff --git a/db/docs/label_links.yml b/db/docs/label_links.yml
new file mode 100644
index 00000000000..28e261c6ea1
--- /dev/null
+++ b/db/docs/label_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: label_links
+classes:
+- LabelLink
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/03654a6abf47c88b8b980a6707874ff78080d2fe
+milestone: '7.2'
diff --git a/db/docs/label_priorities.yml b/db/docs/label_priorities.yml
new file mode 100644
index 00000000000..28ff029515c
--- /dev/null
+++ b/db/docs/label_priorities.yml
@@ -0,0 +1,9 @@
+---
+table_name: label_priorities
+classes:
+- LabelPriority
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/297892011330ecdd2fa7cbe47fbc6fd4f3b62171
+milestone: '8.13'
diff --git a/db/docs/labels.yml b/db/docs/labels.yml
new file mode 100644
index 00000000000..aafe399e8c7
--- /dev/null
+++ b/db/docs/labels.yml
@@ -0,0 +1,11 @@
+---
+table_name: labels
+classes:
+- GroupLabel
+- Label
+- ProjectLabel
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/03654a6abf47c88b8b980a6707874ff78080d2fe
+milestone: '7.2'
diff --git a/db/docs/ldap_group_links.yml b/db/docs/ldap_group_links.yml
new file mode 100644
index 00000000000..49c4e560c34
--- /dev/null
+++ b/db/docs/ldap_group_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: ldap_group_links
+classes:
+- LdapGroupLink
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/b017947ac91655f8ae6593fb63c3423cd1b439f4
+milestone: '7.3'
diff --git a/db/docs/lfs_file_locks.yml b/db/docs/lfs_file_locks.yml
new file mode 100644
index 00000000000..c7f8463165e
--- /dev/null
+++ b/db/docs/lfs_file_locks.yml
@@ -0,0 +1,9 @@
+---
+table_name: lfs_file_locks
+classes:
+- LfsFileLock
+feature_categories:
+- git_lfs
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/4091
+milestone: '10.5'
diff --git a/db/docs/lfs_object_states.yml b/db/docs/lfs_object_states.yml
new file mode 100644
index 00000000000..f0f16f74b33
--- /dev/null
+++ b/db/docs/lfs_object_states.yml
@@ -0,0 +1,9 @@
+---
+table_name: lfs_object_states
+classes:
+- Geo::LfsObjectState
+feature_categories:
+- git_lfs
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63981
+milestone: '14.6'
diff --git a/db/docs/lfs_objects.yml b/db/docs/lfs_objects.yml
new file mode 100644
index 00000000000..575ca8f181a
--- /dev/null
+++ b/db/docs/lfs_objects.yml
@@ -0,0 +1,9 @@
+---
+table_name: lfs_objects
+classes:
+- LfsObject
+feature_categories:
+- git_lfs
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/14032d8eb1a60ae5920286249c1044be2fa27278
+milestone: '8.2'
diff --git a/db/docs/lfs_objects_projects.yml b/db/docs/lfs_objects_projects.yml
new file mode 100644
index 00000000000..4a835bf7a40
--- /dev/null
+++ b/db/docs/lfs_objects_projects.yml
@@ -0,0 +1,10 @@
+---
+table_name: lfs_objects_projects
+classes:
+- LfsObjectsProject
+feature_categories:
+- git_lfs
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/14032d8eb1a60ae5920286249c1044be2fa27278
+milestone: '8.2'
diff --git a/db/docs/licenses.yml b/db/docs/licenses.yml
new file mode 100644
index 00000000000..433dbc9c5b5
--- /dev/null
+++ b/db/docs/licenses.yml
@@ -0,0 +1,9 @@
+---
+table_name: licenses
+classes:
+- License
+feature_categories:
+- purchase
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d1f2b09fadcfba210c5121bd214b910b9f9809fd
+milestone: '7.11'
diff --git a/db/docs/list_user_preferences.yml b/db/docs/list_user_preferences.yml
new file mode 100644
index 00000000000..a53602899eb
--- /dev/null
+++ b/db/docs/list_user_preferences.yml
@@ -0,0 +1,9 @@
+---
+table_name: list_user_preferences
+classes:
+- ListUserPreference
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/15657
+milestone: '12.3'
diff --git a/db/docs/lists.yml b/db/docs/lists.yml
new file mode 100644
index 00000000000..5ccd20c300f
--- /dev/null
+++ b/db/docs/lists.yml
@@ -0,0 +1,9 @@
+---
+table_name: lists
+classes:
+- List
+feature_categories:
+- design_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/611dab2e522e5e59cf09cd459a31686e65616863
+milestone: '8.11'
diff --git a/db/docs/loose_foreign_keys_deleted_records.yml b/db/docs/loose_foreign_keys_deleted_records.yml
new file mode 100644
index 00000000000..df26ffaefd1
--- /dev/null
+++ b/db/docs/loose_foreign_keys_deleted_records.yml
@@ -0,0 +1,9 @@
+---
+table_name: loose_foreign_keys_deleted_records
+classes:
+- LooseForeignKeys::DeletedRecord
+feature_categories:
+- sharding
+description: Used by the loose foreign keys feature as a queue of parent records whose child records (via foreign keys) need to be deleted/nullified
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70152
+milestone: '14.3'
diff --git a/db/docs/member_tasks.yml b/db/docs/member_tasks.yml
new file mode 100644
index 00000000000..7f55c8d6eec
--- /dev/null
+++ b/db/docs/member_tasks.yml
@@ -0,0 +1,9 @@
+---
+table_name: member_tasks
+classes:
+- MemberTask
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/69299
+milestone: '14.5'
diff --git a/db/docs/members.yml b/db/docs/members.yml
new file mode 100644
index 00000000000..ebf8a4f3bc6
--- /dev/null
+++ b/db/docs/members.yml
@@ -0,0 +1,13 @@
+---
+table_name: members
+classes:
+- GroupMember
+- Member
+- ProjectMember
+- ProjectNamespaceMember
+feature_categories:
+- projects
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3503b504eabf95487fc3fb49df953a7d694da4fe
+milestone: '7.4'
diff --git a/db/docs/merge_request_assignees.yml b/db/docs/merge_request_assignees.yml
new file mode 100644
index 00000000000..38c94ff3c30
--- /dev/null
+++ b/db/docs/merge_request_assignees.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_assignees
+classes:
+- MergeRequestAssignee
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/929ee4d18da886826e9fcc15c35b4d4024bc8237
+milestone: '11.10'
diff --git a/db/docs/merge_request_blocks.yml b/db/docs/merge_request_blocks.yml
new file mode 100644
index 00000000000..992fd88c1e5
--- /dev/null
+++ b/db/docs/merge_request_blocks.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_blocks
+classes:
+- MergeRequestBlock
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/df778038981ae49cb7c0fec0a60f89abf801c5f0
+milestone: '12.0'
diff --git a/db/docs/merge_request_cleanup_schedules.yml b/db/docs/merge_request_cleanup_schedules.yml
new file mode 100644
index 00000000000..ec791ef2567
--- /dev/null
+++ b/db/docs/merge_request_cleanup_schedules.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_cleanup_schedules
+classes:
+- MergeRequest::CleanupSchedule
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/46758
+milestone: '13.6'
diff --git a/db/docs/merge_request_context_commit_diff_files.yml b/db/docs/merge_request_context_commit_diff_files.yml
new file mode 100644
index 00000000000..08311e244a1
--- /dev/null
+++ b/db/docs/merge_request_context_commit_diff_files.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_context_commit_diff_files
+classes:
+- MergeRequestContextCommitDiffFile
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23701
+milestone: '12.8'
diff --git a/db/docs/merge_request_context_commits.yml b/db/docs/merge_request_context_commits.yml
new file mode 100644
index 00000000000..d9b4729c7b9
--- /dev/null
+++ b/db/docs/merge_request_context_commits.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_context_commits
+classes:
+- MergeRequestContextCommit
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23701
+milestone: '12.8'
diff --git a/db/docs/merge_request_diff_commit_users.yml b/db/docs/merge_request_diff_commit_users.yml
new file mode 100644
index 00000000000..ab634358238
--- /dev/null
+++ b/db/docs/merge_request_diff_commit_users.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_diff_commit_users
+classes:
+- MergeRequest::DiffCommitUser
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63669
+milestone: '14.1'
diff --git a/db/docs/merge_request_diff_commits.yml b/db/docs/merge_request_diff_commits.yml
new file mode 100644
index 00000000000..8f29d38b2a9
--- /dev/null
+++ b/db/docs/merge_request_diff_commits.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_diff_commits
+classes:
+- MergeRequestDiffCommit
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/aff5c9f3e5ecdd9eee2b2b60ab6367da878582fc
+milestone: '9.4'
diff --git a/db/docs/merge_request_diff_details.yml b/db/docs/merge_request_diff_details.yml
new file mode 100644
index 00000000000..4d48beb4de6
--- /dev/null
+++ b/db/docs/merge_request_diff_details.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_diff_details
+classes:
+- MergeRequestDiffDetail
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/merge_request_diff_files.yml b/db/docs/merge_request_diff_files.yml
new file mode 100644
index 00000000000..9d3e9c7715b
--- /dev/null
+++ b/db/docs/merge_request_diff_files.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_diff_files
+classes:
+- MergeRequestDiffFile
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9a73b634ab4220f68a8296ccb582a68293874489
+milestone: '9.4'
diff --git a/db/docs/merge_request_diffs.yml b/db/docs/merge_request_diffs.yml
new file mode 100644
index 00000000000..f8df727e7fa
--- /dev/null
+++ b/db/docs/merge_request_diffs.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_diffs
+classes:
+- MergeRequestDiff
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/c983e8eb3d9cac01090b8657735544f71f891576
+milestone: '6.6'
diff --git a/db/docs/merge_request_metrics.yml b/db/docs/merge_request_metrics.yml
new file mode 100644
index 00000000000..a2fb3d187d6
--- /dev/null
+++ b/db/docs/merge_request_metrics.yml
@@ -0,0 +1,10 @@
+---
+table_name: merge_request_metrics
+classes:
+- MergeRequest::Metrics
+feature_categories:
+- value_stream_management
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/487906b3861068a8f81125814f919a07bfab8469
+milestone: '8.12'
diff --git a/db/docs/merge_request_reviewers.yml b/db/docs/merge_request_reviewers.yml
new file mode 100644
index 00000000000..a039a2bba84
--- /dev/null
+++ b/db/docs/merge_request_reviewers.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_reviewers
+classes:
+- MergeRequestReviewer
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/merge_request_user_mentions.yml b/db/docs/merge_request_user_mentions.yml
new file mode 100644
index 00000000000..edae95c3a65
--- /dev/null
+++ b/db/docs/merge_request_user_mentions.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_request_user_mentions
+classes:
+- MergeRequestUserMention
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009
+milestone: '12.6'
diff --git a/db/docs/merge_requests.yml b/db/docs/merge_requests.yml
new file mode 100644
index 00000000000..49f3b2f97e8
--- /dev/null
+++ b/db/docs/merge_requests.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_requests
+classes:
+- MergeRequest
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/6d460aa2d6b3959593c168eed181516036525393
+milestone: "<6.0"
diff --git a/db/docs/merge_requests_closing_issues.yml b/db/docs/merge_requests_closing_issues.yml
new file mode 100644
index 00000000000..fd68b5627f8
--- /dev/null
+++ b/db/docs/merge_requests_closing_issues.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_requests_closing_issues
+classes:
+- MergeRequestsClosingIssues
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/ba25e2f1ac61b47940f939a2d9f1d0ad417e1de2
+milestone: '8.12'
diff --git a/db/docs/merge_requests_compliance_violations.yml b/db/docs/merge_requests_compliance_violations.yml
new file mode 100644
index 00000000000..cfa7f78c13e
--- /dev/null
+++ b/db/docs/merge_requests_compliance_violations.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_requests_compliance_violations
+classes:
+- MergeRequests::ComplianceViolation
+feature_categories:
+- compliance_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74290
+milestone: '14.6'
diff --git a/db/docs/merge_trains.yml b/db/docs/merge_trains.yml
new file mode 100644
index 00000000000..e0481d923c0
--- /dev/null
+++ b/db/docs/merge_trains.yml
@@ -0,0 +1,9 @@
+---
+table_name: merge_trains
+classes:
+- MergeTrain
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/827fc3ccb9335aa29fba0fc532b70015ec4c5186
+milestone: '11.11'
diff --git a/db/docs/metrics_dashboard_annotations.yml b/db/docs/metrics_dashboard_annotations.yml
new file mode 100644
index 00000000000..e5f03bf4525
--- /dev/null
+++ b/db/docs/metrics_dashboard_annotations.yml
@@ -0,0 +1,9 @@
+---
+table_name: metrics_dashboard_annotations
+classes:
+- Metrics::Dashboard::Annotation
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/metrics_users_starred_dashboards.yml b/db/docs/metrics_users_starred_dashboards.yml
new file mode 100644
index 00000000000..2d86519455c
--- /dev/null
+++ b/db/docs/metrics_users_starred_dashboards.yml
@@ -0,0 +1,9 @@
+---
+table_name: metrics_users_starred_dashboards
+classes:
+- Metrics::UsersStarredDashboard
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/milestone_releases.yml b/db/docs/milestone_releases.yml
new file mode 100644
index 00000000000..a5c95b086dd
--- /dev/null
+++ b/db/docs/milestone_releases.yml
@@ -0,0 +1,9 @@
+---
+table_name: milestone_releases
+classes:
+- MilestoneRelease
+feature_categories:
+- release_orchestration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/a43ab8d6a430014e875deb3bff3fd8d8da256747
+milestone: '12.3'
diff --git a/db/docs/milestones.yml b/db/docs/milestones.yml
new file mode 100644
index 00000000000..be4c7540c43
--- /dev/null
+++ b/db/docs/milestones.yml
@@ -0,0 +1,9 @@
+---
+table_name: milestones
+classes:
+- Milestone
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/23d950855d6d2524d00b1f0618c008e2529f06a4
+milestone: "<6.0"
diff --git a/db/docs/namespace_admin_notes.yml b/db/docs/namespace_admin_notes.yml
new file mode 100644
index 00000000000..afc9f814fd6
--- /dev/null
+++ b/db/docs/namespace_admin_notes.yml
@@ -0,0 +1,9 @@
+---
+table_name: namespace_admin_notes
+classes:
+- Namespace::AdminNote
+feature_categories:
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47825
+milestone: '13.11'
diff --git a/db/docs/namespace_aggregation_schedules.yml b/db/docs/namespace_aggregation_schedules.yml
new file mode 100644
index 00000000000..517a65000eb
--- /dev/null
+++ b/db/docs/namespace_aggregation_schedules.yml
@@ -0,0 +1,9 @@
+---
+table_name: namespace_aggregation_schedules
+classes:
+- Namespace::AggregationSchedule
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/bde41ee866d0fe0b1bb5ece1130fb6e24d95ad17
+milestone: '12.1'
diff --git a/db/docs/namespace_limits.yml b/db/docs/namespace_limits.yml
new file mode 100644
index 00000000000..4b528dcd447
--- /dev/null
+++ b/db/docs/namespace_limits.yml
@@ -0,0 +1,9 @@
+---
+table_name: namespace_limits
+classes:
+- NamespaceLimit
+feature_categories:
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/namespace_package_settings.yml b/db/docs/namespace_package_settings.yml
new file mode 100644
index 00000000000..5d5971ca73f
--- /dev/null
+++ b/db/docs/namespace_package_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: namespace_package_settings
+classes:
+- Namespace::PackageSetting
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50104
+milestone: '13.8'
diff --git a/db/docs/namespace_root_storage_statistics.yml b/db/docs/namespace_root_storage_statistics.yml
new file mode 100644
index 00000000000..ce8620db1e5
--- /dev/null
+++ b/db/docs/namespace_root_storage_statistics.yml
@@ -0,0 +1,9 @@
+---
+table_name: namespace_root_storage_statistics
+classes:
+- Namespace::RootStorageStatistics
+feature_categories:
+- utilization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/bde41ee866d0fe0b1bb5ece1130fb6e24d95ad17
+milestone: '12.1'
diff --git a/db/docs/namespace_settings.yml b/db/docs/namespace_settings.yml
new file mode 100644
index 00000000000..a452d2473c5
--- /dev/null
+++ b/db/docs/namespace_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: namespace_settings
+classes:
+- NamespaceSetting
+feature_categories:
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/namespace_statistics.yml b/db/docs/namespace_statistics.yml
new file mode 100644
index 00000000000..eb8d7f6a5ca
--- /dev/null
+++ b/db/docs/namespace_statistics.yml
@@ -0,0 +1,9 @@
+---
+table_name: namespace_statistics
+classes:
+- NamespaceStatistics
+feature_categories:
+- utilization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/48d8bdca0493056a717cd7d9fee2e8b51d6b0502
+milestone: '9.0'
diff --git a/db/docs/namespaces.yml b/db/docs/namespaces.yml
new file mode 100644
index 00000000000..49d84d15a75
--- /dev/null
+++ b/db/docs/namespaces.yml
@@ -0,0 +1,12 @@
+---
+table_name: namespaces
+classes:
+- Group
+- Namespace
+- Namespaces::ProjectNamespace
+- Namespaces::UserNamespace
+feature_categories:
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e29ccece332e57c9fb6c532a3680e3b457e3a301
+milestone: "<6.0"
diff --git a/db/docs/namespaces_sync_events.yml b/db/docs/namespaces_sync_events.yml
new file mode 100644
index 00000000000..f674bfcf622
--- /dev/null
+++ b/db/docs/namespaces_sync_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: namespaces_sync_events
+classes:
+- Namespaces::SyncEvent
+feature_categories:
+- sharding
+description: Used as a queue of data that needs to be synchronized between the `ci` and `main` database
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75517
+milestone: '14.6'
diff --git a/db/docs/note_diff_files.yml b/db/docs/note_diff_files.yml
new file mode 100644
index 00000000000..a3908378d92
--- /dev/null
+++ b/db/docs/note_diff_files.yml
@@ -0,0 +1,9 @@
+---
+table_name: note_diff_files
+classes:
+- NoteDiffFile
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/bb8f2520b4254c9dabe377df48e29c5f17894a1d
+milestone: '11.0'
diff --git a/db/docs/notes.yml b/db/docs/notes.yml
new file mode 100644
index 00000000000..9ceeb0e1fe1
--- /dev/null
+++ b/db/docs/notes.yml
@@ -0,0 +1,18 @@
+---
+table_name: notes
+classes:
+- DiffNote
+- DiscussionNote
+- IterationNote
+- LabelNote
+- LegacyDiffNote
+- MilestoneNote
+- Note
+- StateNote
+- SyntheticNote
+- WeightNote
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9ba1224867665844b117fa037e1465bb706b3685
+milestone: "<6.0"
diff --git a/db/docs/notification_settings.yml b/db/docs/notification_settings.yml
new file mode 100644
index 00000000000..8791213322c
--- /dev/null
+++ b/db/docs/notification_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: notification_settings
+classes:
+- NotificationSetting
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/31b0e53015e38e51d9c02cca85c9279600b1bf85
+milestone: '8.7'
diff --git a/db/docs/oauth_access_grants.yml b/db/docs/oauth_access_grants.yml
new file mode 100644
index 00000000000..e36f1bcc36c
--- /dev/null
+++ b/db/docs/oauth_access_grants.yml
@@ -0,0 +1,10 @@
+---
+table_name: oauth_access_grants
+classes:
+- Doorkeeper::AccessGrant
+- OauthAccessGrant
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e41dadcb33fda44ee274daa673bd933e13aa90eb
+milestone: '7.7'
diff --git a/db/docs/oauth_access_tokens.yml b/db/docs/oauth_access_tokens.yml
new file mode 100644
index 00000000000..0f9165f1fca
--- /dev/null
+++ b/db/docs/oauth_access_tokens.yml
@@ -0,0 +1,10 @@
+---
+table_name: oauth_access_tokens
+classes:
+- Doorkeeper::AccessToken
+- OauthAccessToken
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e41dadcb33fda44ee274daa673bd933e13aa90eb
+milestone: '7.7'
diff --git a/db/docs/oauth_applications.yml b/db/docs/oauth_applications.yml
new file mode 100644
index 00000000000..307a436373e
--- /dev/null
+++ b/db/docs/oauth_applications.yml
@@ -0,0 +1,9 @@
+---
+table_name: oauth_applications
+classes:
+- Doorkeeper::Application
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e41dadcb33fda44ee274daa673bd933e13aa90eb
+milestone: '7.7'
diff --git a/db/docs/oauth_openid_requests.yml b/db/docs/oauth_openid_requests.yml
new file mode 100644
index 00000000000..321811e1722
--- /dev/null
+++ b/db/docs/oauth_openid_requests.yml
@@ -0,0 +1,9 @@
+---
+table_name: oauth_openid_requests
+classes:
+- Doorkeeper::OpenidConnect::Request
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/c4982890489d254da2fe998aab30bf257767ed5e
+milestone: '9.0'
diff --git a/db/docs/onboarding_progresses.yml b/db/docs/onboarding_progresses.yml
new file mode 100644
index 00000000000..4166b934570
--- /dev/null
+++ b/db/docs/onboarding_progresses.yml
@@ -0,0 +1,9 @@
+---
+table_name: onboarding_progresses
+classes:
+- OnboardingProgress
+feature_categories:
+- onboarding
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/50711
+milestone: '13.8'
diff --git a/db/docs/operations_feature_flag_scopes.yml b/db/docs/operations_feature_flag_scopes.yml
new file mode 100644
index 00000000000..05ff4882394
--- /dev/null
+++ b/db/docs/operations_feature_flag_scopes.yml
@@ -0,0 +1,8 @@
+---
+table_name: operations_feature_flag_scopes
+classes: []
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9110
+milestone: '11.8'
diff --git a/db/docs/operations_feature_flags.yml b/db/docs/operations_feature_flags.yml
new file mode 100644
index 00000000000..1a294aaa07a
--- /dev/null
+++ b/db/docs/operations_feature_flags.yml
@@ -0,0 +1,9 @@
+---
+table_name: operations_feature_flags
+classes:
+- Operations::FeatureFlag
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7433
+milestone: '11.4'
diff --git a/db/docs/operations_feature_flags_clients.yml b/db/docs/operations_feature_flags_clients.yml
new file mode 100644
index 00000000000..ab5f8e5597b
--- /dev/null
+++ b/db/docs/operations_feature_flags_clients.yml
@@ -0,0 +1,9 @@
+---
+table_name: operations_feature_flags_clients
+classes:
+- Operations::FeatureFlagsClient
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7433
+milestone: '11.4'
diff --git a/db/docs/operations_feature_flags_issues.yml b/db/docs/operations_feature_flags_issues.yml
new file mode 100644
index 00000000000..9b440b5cb41
--- /dev/null
+++ b/db/docs/operations_feature_flags_issues.yml
@@ -0,0 +1,9 @@
+---
+table_name: operations_feature_flags_issues
+classes:
+- FeatureFlagIssue
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/operations_scopes.yml b/db/docs/operations_scopes.yml
new file mode 100644
index 00000000000..12b8f5b740b
--- /dev/null
+++ b/db/docs/operations_scopes.yml
@@ -0,0 +1,9 @@
+---
+table_name: operations_scopes
+classes:
+- Operations::FeatureFlags::Scope
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24819
+milestone: '12.8'
diff --git a/db/docs/operations_strategies.yml b/db/docs/operations_strategies.yml
new file mode 100644
index 00000000000..8eb16d28e46
--- /dev/null
+++ b/db/docs/operations_strategies.yml
@@ -0,0 +1,9 @@
+---
+table_name: operations_strategies
+classes:
+- Operations::FeatureFlags::Strategy
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24819
+milestone: '12.8'
diff --git a/db/docs/operations_strategies_user_lists.yml b/db/docs/operations_strategies_user_lists.yml
new file mode 100644
index 00000000000..7e283021e43
--- /dev/null
+++ b/db/docs/operations_strategies_user_lists.yml
@@ -0,0 +1,9 @@
+---
+table_name: operations_strategies_user_lists
+classes:
+- Operations::FeatureFlags::StrategyUserList
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/operations_user_lists.yml b/db/docs/operations_user_lists.yml
new file mode 100644
index 00000000000..4f1473bd09d
--- /dev/null
+++ b/db/docs/operations_user_lists.yml
@@ -0,0 +1,9 @@
+---
+table_name: operations_user_lists
+classes:
+- Operations::FeatureFlags::UserList
+feature_categories:
+- feature_flags
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/packages_build_infos.yml b/db/docs/packages_build_infos.yml
new file mode 100644
index 00000000000..5ddea0efdc0
--- /dev/null
+++ b/db/docs/packages_build_infos.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_build_infos
+classes:
+- Packages::BuildInfo
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19796
+milestone: '12.6'
diff --git a/db/docs/packages_composer_cache_files.yml b/db/docs/packages_composer_cache_files.yml
new file mode 100644
index 00000000000..97993c3f255
--- /dev/null
+++ b/db/docs/packages_composer_cache_files.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_composer_cache_files
+classes:
+- Packages::Composer::CacheFile
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51509
+milestone: '13.9'
diff --git a/db/docs/packages_composer_metadata.yml b/db/docs/packages_composer_metadata.yml
new file mode 100644
index 00000000000..a50143c8b82
--- /dev/null
+++ b/db/docs/packages_composer_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_composer_metadata
+classes:
+- Packages::Composer::Metadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/packages_conan_file_metadata.yml b/db/docs/packages_conan_file_metadata.yml
new file mode 100644
index 00000000000..4e3c3c99933
--- /dev/null
+++ b/db/docs/packages_conan_file_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_conan_file_metadata
+classes:
+- Packages::Conan::FileMetadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16418
+milestone: '12.5'
diff --git a/db/docs/packages_conan_metadata.yml b/db/docs/packages_conan_metadata.yml
new file mode 100644
index 00000000000..aba2904d564
--- /dev/null
+++ b/db/docs/packages_conan_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_conan_metadata
+classes:
+- Packages::Conan::Metadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16418
+milestone: '12.5'
diff --git a/db/docs/packages_debian_file_metadata.yml b/db/docs/packages_debian_file_metadata.yml
new file mode 100644
index 00000000000..3d4e17c04f3
--- /dev/null
+++ b/db/docs/packages_debian_file_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_file_metadata
+classes:
+- Packages::Debian::FileMetadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49692
+milestone: '13.8'
diff --git a/db/docs/packages_debian_group_architectures.yml b/db/docs/packages_debian_group_architectures.yml
new file mode 100644
index 00000000000..b403d632dc7
--- /dev/null
+++ b/db/docs/packages_debian_group_architectures.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_group_architectures
+classes:
+- Packages::Debian::GroupArchitecture
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51265
+milestone: '13.8'
diff --git a/db/docs/packages_debian_group_component_files.yml b/db/docs/packages_debian_group_component_files.yml
new file mode 100644
index 00000000000..3b5deebdd10
--- /dev/null
+++ b/db/docs/packages_debian_group_component_files.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_group_component_files
+classes:
+- Packages::Debian::GroupComponentFile
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52885
+milestone: '13.9'
diff --git a/db/docs/packages_debian_group_components.yml b/db/docs/packages_debian_group_components.yml
new file mode 100644
index 00000000000..6d2389fed5a
--- /dev/null
+++ b/db/docs/packages_debian_group_components.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_group_components
+classes:
+- Packages::Debian::GroupComponent
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51732
+milestone: '13.9'
diff --git a/db/docs/packages_debian_group_distribution_keys.yml b/db/docs/packages_debian_group_distribution_keys.yml
new file mode 100644
index 00000000000..527c71d60c1
--- /dev/null
+++ b/db/docs/packages_debian_group_distribution_keys.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_group_distribution_keys
+classes:
+- Packages::Debian::GroupDistributionKey
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60993
+milestone: '14.0'
diff --git a/db/docs/packages_debian_group_distributions.yml b/db/docs/packages_debian_group_distributions.yml
new file mode 100644
index 00000000000..6512640b9f9
--- /dev/null
+++ b/db/docs/packages_debian_group_distributions.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_group_distributions
+classes:
+- Packages::Debian::GroupDistribution
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49405
+milestone: '13.8'
diff --git a/db/docs/packages_debian_project_architectures.yml b/db/docs/packages_debian_project_architectures.yml
new file mode 100644
index 00000000000..853cc81d15f
--- /dev/null
+++ b/db/docs/packages_debian_project_architectures.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_project_architectures
+classes:
+- Packages::Debian::ProjectArchitecture
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51265
+milestone: '13.8'
diff --git a/db/docs/packages_debian_project_component_files.yml b/db/docs/packages_debian_project_component_files.yml
new file mode 100644
index 00000000000..cdd6355750d
--- /dev/null
+++ b/db/docs/packages_debian_project_component_files.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_project_component_files
+classes:
+- Packages::Debian::ProjectComponentFile
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52885
+milestone: '13.9'
diff --git a/db/docs/packages_debian_project_components.yml b/db/docs/packages_debian_project_components.yml
new file mode 100644
index 00000000000..c638e2c978a
--- /dev/null
+++ b/db/docs/packages_debian_project_components.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_project_components
+classes:
+- Packages::Debian::ProjectComponent
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51732
+milestone: '13.9'
diff --git a/db/docs/packages_debian_project_distribution_keys.yml b/db/docs/packages_debian_project_distribution_keys.yml
new file mode 100644
index 00000000000..81408969dec
--- /dev/null
+++ b/db/docs/packages_debian_project_distribution_keys.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_project_distribution_keys
+classes:
+- Packages::Debian::ProjectDistributionKey
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60993
+milestone: '14.0'
diff --git a/db/docs/packages_debian_project_distributions.yml b/db/docs/packages_debian_project_distributions.yml
new file mode 100644
index 00000000000..814ad61f878
--- /dev/null
+++ b/db/docs/packages_debian_project_distributions.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_project_distributions
+classes:
+- Packages::Debian::ProjectDistribution
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49405
+milestone: '13.8'
diff --git a/db/docs/packages_debian_publications.yml b/db/docs/packages_debian_publications.yml
new file mode 100644
index 00000000000..b5ae53759aa
--- /dev/null
+++ b/db/docs/packages_debian_publications.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_debian_publications
+classes:
+- Packages::Debian::Publication
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52916
+milestone: '13.9'
diff --git a/db/docs/packages_dependencies.yml b/db/docs/packages_dependencies.yml
new file mode 100644
index 00000000000..ead51b0606a
--- /dev/null
+++ b/db/docs/packages_dependencies.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_dependencies
+classes:
+- Packages::Dependency
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20549
+milestone: '12.6'
diff --git a/db/docs/packages_dependency_links.yml b/db/docs/packages_dependency_links.yml
new file mode 100644
index 00000000000..1045cd08e42
--- /dev/null
+++ b/db/docs/packages_dependency_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_dependency_links
+classes:
+- Packages::DependencyLink
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20549
+milestone: '12.6'
diff --git a/db/docs/packages_events.yml b/db/docs/packages_events.yml
new file mode 100644
index 00000000000..2d33fb0048d
--- /dev/null
+++ b/db/docs/packages_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_events
+classes:
+- Packages::Event
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
+milestone: '13.5'
diff --git a/db/docs/packages_helm_file_metadata.yml b/db/docs/packages_helm_file_metadata.yml
new file mode 100644
index 00000000000..63d5f8d05e6
--- /dev/null
+++ b/db/docs/packages_helm_file_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_helm_file_metadata
+classes:
+- Packages::Helm::FileMetadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/57017
+milestone: '13.12'
diff --git a/db/docs/packages_maven_metadata.yml b/db/docs/packages_maven_metadata.yml
new file mode 100644
index 00000000000..6d00fe77502
--- /dev/null
+++ b/db/docs/packages_maven_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_maven_metadata
+classes:
+- Packages::Maven::Metadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6607
+milestone: '11.3'
diff --git a/db/docs/packages_npm_metadata.yml b/db/docs/packages_npm_metadata.yml
new file mode 100644
index 00000000000..588e60ebe42
--- /dev/null
+++ b/db/docs/packages_npm_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_npm_metadata
+classes:
+- Packages::Npm::Metadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73639
+milestone: '14.5'
diff --git a/db/docs/packages_nuget_dependency_link_metadata.yml b/db/docs/packages_nuget_dependency_link_metadata.yml
new file mode 100644
index 00000000000..12234295a67
--- /dev/null
+++ b/db/docs/packages_nuget_dependency_link_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_nuget_dependency_link_metadata
+classes:
+- Packages::Nuget::DependencyLinkMetadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/packages_nuget_metadata.yml b/db/docs/packages_nuget_metadata.yml
new file mode 100644
index 00000000000..5c4e1203a85
--- /dev/null
+++ b/db/docs/packages_nuget_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_nuget_metadata
+classes:
+- Packages::Nuget::Metadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/packages_package_file_build_infos.yml b/db/docs/packages_package_file_build_infos.yml
new file mode 100644
index 00000000000..808fb837e70
--- /dev/null
+++ b/db/docs/packages_package_file_build_infos.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_package_file_build_infos
+classes:
+- Packages::PackageFileBuildInfo
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44348
+milestone: '13.6'
diff --git a/db/docs/packages_package_files.yml b/db/docs/packages_package_files.yml
new file mode 100644
index 00000000000..4d7a0410ba4
--- /dev/null
+++ b/db/docs/packages_package_files.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_package_files
+classes:
+- Packages::PackageFile
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6607
+milestone: '11.3'
diff --git a/db/docs/packages_packages.yml b/db/docs/packages_packages.yml
new file mode 100644
index 00000000000..2ad5ae62c88
--- /dev/null
+++ b/db/docs/packages_packages.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_packages
+classes:
+- Packages::Package
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6607
+milestone: '11.3'
diff --git a/db/docs/packages_pypi_metadata.yml b/db/docs/packages_pypi_metadata.yml
new file mode 100644
index 00000000000..4f39a392f65
--- /dev/null
+++ b/db/docs/packages_pypi_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_pypi_metadata
+classes:
+- Packages::Pypi::Metadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/packages_rubygems_metadata.yml b/db/docs/packages_rubygems_metadata.yml
new file mode 100644
index 00000000000..0384427f782
--- /dev/null
+++ b/db/docs/packages_rubygems_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_rubygems_metadata
+classes:
+- Packages::Rubygems::Metadatum
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52639
+milestone: '13.9'
diff --git a/db/docs/packages_tags.yml b/db/docs/packages_tags.yml
new file mode 100644
index 00000000000..760c7229e9f
--- /dev/null
+++ b/db/docs/packages_tags.yml
@@ -0,0 +1,9 @@
+---
+table_name: packages_tags
+classes:
+- Packages::Tag
+feature_categories:
+- package_registry
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20636
+milestone: '12.7'
diff --git a/db/docs/pages_deployment_states.yml b/db/docs/pages_deployment_states.yml
new file mode 100644
index 00000000000..9e526eea46e
--- /dev/null
+++ b/db/docs/pages_deployment_states.yml
@@ -0,0 +1,9 @@
+---
+table_name: pages_deployment_states
+classes:
+- Geo::PagesDeploymentState
+feature_categories:
+- pages
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74905
+milestone: '14.6'
diff --git a/db/docs/pages_deployments.yml b/db/docs/pages_deployments.yml
new file mode 100644
index 00000000000..3c96d27c179
--- /dev/null
+++ b/db/docs/pages_deployments.yml
@@ -0,0 +1,9 @@
+---
+table_name: pages_deployments
+classes:
+- PagesDeployment
+feature_categories:
+- pages
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/pages_domain_acme_orders.yml b/db/docs/pages_domain_acme_orders.yml
new file mode 100644
index 00000000000..7c1a31eac26
--- /dev/null
+++ b/db/docs/pages_domain_acme_orders.yml
@@ -0,0 +1,9 @@
+---
+table_name: pages_domain_acme_orders
+classes:
+- PagesDomainAcmeOrder
+feature_categories:
+- pages
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/14014
+milestone: '12.0'
diff --git a/db/docs/pages_domains.yml b/db/docs/pages_domains.yml
new file mode 100644
index 00000000000..8fecb70740c
--- /dev/null
+++ b/db/docs/pages_domains.yml
@@ -0,0 +1,9 @@
+---
+table_name: pages_domains
+classes:
+- PagesDomain
+feature_categories:
+- pages
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/807a5494fa543392ea7a996b479e577d41ff6344
+milestone: '8.5'
diff --git a/db/docs/path_locks.yml b/db/docs/path_locks.yml
new file mode 100644
index 00000000000..0a6e3390035
--- /dev/null
+++ b/db/docs/path_locks.yml
@@ -0,0 +1,9 @@
+---
+table_name: path_locks
+classes:
+- PathLock
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/684e9d1b5979e11d2edae11a3028a696bfcdedf8
+milestone: '8.9'
diff --git a/db/docs/personal_access_tokens.yml b/db/docs/personal_access_tokens.yml
new file mode 100644
index 00000000000..70ad9a93247
--- /dev/null
+++ b/db/docs/personal_access_tokens.yml
@@ -0,0 +1,9 @@
+---
+table_name: personal_access_tokens
+classes:
+- PersonalAccessToken
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3a609038748055a27c7e01cf4b55d8249709c9cc
+milestone: '8.9'
diff --git a/db/docs/plan_limits.yml b/db/docs/plan_limits.yml
new file mode 100644
index 00000000000..a923704d568
--- /dev/null
+++ b/db/docs/plan_limits.yml
@@ -0,0 +1,9 @@
+---
+table_name: plan_limits
+classes:
+- PlanLimits
+feature_categories:
+- purchase
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19438
+milestone: '12.5'
diff --git a/db/docs/plans.yml b/db/docs/plans.yml
new file mode 100644
index 00000000000..a259d1d1628
--- /dev/null
+++ b/db/docs/plans.yml
@@ -0,0 +1,9 @@
+---
+table_name: plans
+classes:
+- Plan
+feature_categories:
+- purchase
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/39ca951a0f28d147d4689379bbe48a9c14d55d9f
+milestone: '9.5'
diff --git a/db/docs/pool_repositories.yml b/db/docs/pool_repositories.yml
new file mode 100644
index 00000000000..96ca1dcf7d9
--- /dev/null
+++ b/db/docs/pool_repositories.yml
@@ -0,0 +1,9 @@
+---
+table_name: pool_repositories
+classes:
+- PoolRepository
+feature_categories:
+- gitaly
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/fff7754186202cfcdeaa0962c28e5d43ddd705b7
+milestone: '11.6'
diff --git a/db/docs/postgres_async_indexes.yml b/db/docs/postgres_async_indexes.yml
new file mode 100644
index 00000000000..b23b72de808
--- /dev/null
+++ b/db/docs/postgres_async_indexes.yml
@@ -0,0 +1,11 @@
+---
+table_name: postgres_async_indexes
+classes:
+- Gitlab::Database::AsyncIndexes::PostgresAsyncIndex
+feature_categories:
+- database
+description: >-
+ Contains a queue-like structure for database indexes scheduled to be created asynchronously.
+ See https://docs.gitlab.com/ee/development/adding_database_indexes.html#create-indexes-asynchronously for more details.
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66478
+milestone: '14.2'
diff --git a/db/docs/postgres_reindex_actions.yml b/db/docs/postgres_reindex_actions.yml
new file mode 100644
index 00000000000..d7297454d6a
--- /dev/null
+++ b/db/docs/postgres_reindex_actions.yml
@@ -0,0 +1,12 @@
+---
+table_name: postgres_reindex_actions
+classes:
+- Gitlab::Database::Reindexing::ReindexAction
+feature_categories:
+- database
+description: >-
+ Captures details about reindexing operations on a per-index basis.
+ See https://docs.gitlab.com/ee/administration/raketasks/maintenance.html#rebuild-database-indexes
+ for details about reindexing.
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43156
+milestone: '13.5'
diff --git a/db/docs/postgres_reindex_queued_actions.yml b/db/docs/postgres_reindex_queued_actions.yml
new file mode 100644
index 00000000000..7955d000f8c
--- /dev/null
+++ b/db/docs/postgres_reindex_queued_actions.yml
@@ -0,0 +1,11 @@
+---
+table_name: postgres_reindex_queued_actions
+classes:
+- Gitlab::Database::Reindexing::QueuedAction
+feature_categories:
+- database
+description: >-
+ Contains a queue-like structure for reindexing actions.
+ Actions in this queue will be prioritized over regular reindexing actions.
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73480
+milestone: '14.5'
diff --git a/db/docs/product_analytics_events_experimental.yml b/db/docs/product_analytics_events_experimental.yml
new file mode 100644
index 00000000000..c295074b706
--- /dev/null
+++ b/db/docs/product_analytics_events_experimental.yml
@@ -0,0 +1,9 @@
+---
+table_name: product_analytics_events_experimental
+classes:
+- ProductAnalyticsEvent
+feature_categories:
+- product_analytics
+description: Product analytic events, experimental feature.
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/fc6c53e6f7b47dc22c8619a5a6fe491d29778d3f
+milestone: '13.2'
diff --git a/db/docs/programming_languages.yml b/db/docs/programming_languages.yml
new file mode 100644
index 00000000000..f1b44508bbb
--- /dev/null
+++ b/db/docs/programming_languages.yml
@@ -0,0 +1,9 @@
+---
+table_name: programming_languages
+classes:
+- ProgrammingLanguage
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/79a5d76801a45696db629e1f543f2e1d6fa4784f
+milestone: '11.2'
diff --git a/db/docs/project_access_tokens.yml b/db/docs/project_access_tokens.yml
new file mode 100644
index 00000000000..59b1ad32857
--- /dev/null
+++ b/db/docs/project_access_tokens.yml
@@ -0,0 +1,8 @@
+---
+table_name: project_access_tokens
+classes: []
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/project_alerting_settings.yml b/db/docs/project_alerting_settings.yml
new file mode 100644
index 00000000000..60a23e35f71
--- /dev/null
+++ b/db/docs/project_alerting_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_alerting_settings
+classes:
+- Alerting::ProjectAlertingSetting
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/39aa9458c282c1dabd3623698da5af3b9a6122a9
+milestone: '11.8'
diff --git a/db/docs/project_aliases.yml b/db/docs/project_aliases.yml
new file mode 100644
index 00000000000..66dead7706a
--- /dev/null
+++ b/db/docs/project_aliases.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_aliases
+classes:
+- ProjectAlias
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/14108
+milestone: '12.1'
diff --git a/db/docs/project_authorizations.yml b/db/docs/project_authorizations.yml
new file mode 100644
index 00000000000..b2ca65a53d5
--- /dev/null
+++ b/db/docs/project_authorizations.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_authorizations
+classes:
+- ProjectAuthorization
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/fd05e26618dd0c123ca476b6f5a3d85f1cfe397a
+milestone: '8.14'
diff --git a/db/docs/project_auto_devops.yml b/db/docs/project_auto_devops.yml
new file mode 100644
index 00000000000..86841b585c3
--- /dev/null
+++ b/db/docs/project_auto_devops.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_auto_devops
+classes:
+- ProjectAutoDevops
+feature_categories:
+- auto_devops
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/6ed490401f49a8941dc7a9e3757ec4012f14ef0b
+milestone: '10.0'
diff --git a/db/docs/project_ci_cd_settings.yml b/db/docs/project_ci_cd_settings.yml
new file mode 100644
index 00000000000..48c1ab42e73
--- /dev/null
+++ b/db/docs/project_ci_cd_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_ci_cd_settings
+classes:
+- ProjectCiCdSetting
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/392c411bdc16386ef42c86afaf8c4d8e4cddb955
+milestone: '10.8'
diff --git a/db/docs/project_ci_feature_usages.yml b/db/docs/project_ci_feature_usages.yml
new file mode 100644
index 00000000000..bc327583a8e
--- /dev/null
+++ b/db/docs/project_ci_feature_usages.yml
@@ -0,0 +1,10 @@
+---
+table_name: project_ci_feature_usages
+classes:
+- Projects::CiFeatureUsage
+feature_categories:
+- projects
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68186
+milestone: '14.2'
diff --git a/db/docs/project_compliance_framework_settings.yml b/db/docs/project_compliance_framework_settings.yml
new file mode 100644
index 00000000000..3d409ca5dd6
--- /dev/null
+++ b/db/docs/project_compliance_framework_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_compliance_framework_settings
+classes:
+- ComplianceManagement::ComplianceFramework::ProjectSettings
+feature_categories:
+- compliance_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/project_custom_attributes.yml b/db/docs/project_custom_attributes.yml
new file mode 100644
index 00000000000..56f425f4c21
--- /dev/null
+++ b/db/docs/project_custom_attributes.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_custom_attributes
+classes:
+- ProjectCustomAttribute
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/6902848a9c54f9eb1bfd82fe173ad0d5d62fe2d5
+milestone: '10.2'
diff --git a/db/docs/project_daily_statistics.yml b/db/docs/project_daily_statistics.yml
new file mode 100644
index 00000000000..cddde444296
--- /dev/null
+++ b/db/docs/project_daily_statistics.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_daily_statistics
+classes:
+- ProjectDailyStatistic
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/5ae9a44aa17c8929627cc450f936cd960c143e25
+milestone: '11.9'
diff --git a/db/docs/project_deploy_tokens.yml b/db/docs/project_deploy_tokens.yml
new file mode 100644
index 00000000000..6f46af5d2e9
--- /dev/null
+++ b/db/docs/project_deploy_tokens.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_deploy_tokens
+classes:
+- ProjectDeployToken
+feature_categories:
+- advanced_deployments
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/8315861c9a50675b4f4f4ca536f0da90f27994f3
+milestone: '10.7'
diff --git a/db/docs/project_error_tracking_settings.yml b/db/docs/project_error_tracking_settings.yml
new file mode 100644
index 00000000000..0a1e2571743
--- /dev/null
+++ b/db/docs/project_error_tracking_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_error_tracking_settings
+classes:
+- ErrorTracking::ProjectErrorTrackingSetting
+feature_categories:
+- error_tracking
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/f40b5860d76a8ea5d964260834a6e83516b0f1fd
+milestone: '11.7'
diff --git a/db/docs/project_export_jobs.yml b/db/docs/project_export_jobs.yml
new file mode 100644
index 00000000000..2afc913a8bb
--- /dev/null
+++ b/db/docs/project_export_jobs.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_export_jobs
+classes:
+- ProjectExportJob
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23664
+milestone: '12.9'
diff --git a/db/docs/project_feature_usages.yml b/db/docs/project_feature_usages.yml
new file mode 100644
index 00000000000..51e8191c6e5
--- /dev/null
+++ b/db/docs/project_feature_usages.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_feature_usages
+classes:
+- ProjectFeatureUsage
+feature_categories:
+- product_analytics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/21db9a55e200b23a5a47251e9df46fd548c74559
+milestone: '11.8'
diff --git a/db/docs/project_features.yml b/db/docs/project_features.yml
new file mode 100644
index 00000000000..7890f023485
--- /dev/null
+++ b/db/docs/project_features.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_features
+classes:
+- ProjectFeature
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/892dea67717c0efbd6a28f7639f34535ec0a8747
+milestone: '8.12'
diff --git a/db/docs/project_group_links.yml b/db/docs/project_group_links.yml
new file mode 100644
index 00000000000..ca1aedf25b8
--- /dev/null
+++ b/db/docs/project_group_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_group_links
+classes:
+- ProjectGroupLink
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3ac5a759e93e632539438d4564582c645a9f6799
+milestone: "<6.0"
diff --git a/db/docs/project_import_data.yml b/db/docs/project_import_data.yml
new file mode 100644
index 00000000000..5bff9f27dca
--- /dev/null
+++ b/db/docs/project_import_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_import_data
+classes:
+- ProjectImportData
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/7d98c8842d6bc9b14fb410f028db7ab651961b42
+milestone: '7.10'
diff --git a/db/docs/project_incident_management_settings.yml b/db/docs/project_incident_management_settings.yml
new file mode 100644
index 00000000000..55413824f40
--- /dev/null
+++ b/db/docs/project_incident_management_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_incident_management_settings
+classes:
+- IncidentManagement::ProjectIncidentManagementSetting
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9744
+milestone: '11.9'
diff --git a/db/docs/project_metrics_settings.yml b/db/docs/project_metrics_settings.yml
new file mode 100644
index 00000000000..9090f15278c
--- /dev/null
+++ b/db/docs/project_metrics_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_metrics_settings
+classes:
+- ProjectMetricsSetting
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/bb13ae974c295718eb80c14a179b721ba192a089
+milestone: '11.11'
diff --git a/db/docs/project_mirror_data.yml b/db/docs/project_mirror_data.yml
new file mode 100644
index 00000000000..e6426b7f638
--- /dev/null
+++ b/db/docs/project_mirror_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_mirror_data
+classes:
+- ProjectImportState
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/0ca479d1ce0eadfcdc0e29d0e18136f5790d5b2f
+milestone: '9.3'
diff --git a/db/docs/project_pages_metadata.yml b/db/docs/project_pages_metadata.yml
new file mode 100644
index 00000000000..38da6c77f83
--- /dev/null
+++ b/db/docs/project_pages_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_pages_metadata
+classes:
+- ProjectPagesMetadatum
+feature_categories:
+- pages
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17197
+milestone: '12.4'
diff --git a/db/docs/project_repositories.yml b/db/docs/project_repositories.yml
new file mode 100644
index 00000000000..cd0d7a6c1d7
--- /dev/null
+++ b/db/docs/project_repositories.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_repositories
+classes:
+- ProjectRepository
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8614
+milestone: '11.6'
diff --git a/db/docs/project_repository_states.yml b/db/docs/project_repository_states.yml
new file mode 100644
index 00000000000..343ae980a88
--- /dev/null
+++ b/db/docs/project_repository_states.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_repository_states
+classes:
+- ProjectRepositoryState
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/4428
+milestone: '10.6'
diff --git a/db/docs/project_repository_storage_moves.yml b/db/docs/project_repository_storage_moves.yml
new file mode 100644
index 00000000000..fe3886a7690
--- /dev/null
+++ b/db/docs/project_repository_storage_moves.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_repository_storage_moves
+classes:
+- Projects::RepositoryStorageMove
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/project_security_settings.yml b/db/docs/project_security_settings.yml
new file mode 100644
index 00000000000..b1f6264950a
--- /dev/null
+++ b/db/docs/project_security_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_security_settings
+classes:
+- ProjectSecuritySetting
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/project_settings.yml b/db/docs/project_settings.yml
new file mode 100644
index 00000000000..5aa3d6daf48
--- /dev/null
+++ b/db/docs/project_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_settings
+classes:
+- ProjectSetting
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/a2a7ad291f64a5db74c1bc21fb556e6e8862d0f3
+milestone: '12.8'
diff --git a/db/docs/project_statistics.yml b/db/docs/project_statistics.yml
new file mode 100644
index 00000000000..75d4af85ce4
--- /dev/null
+++ b/db/docs/project_statistics.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_statistics
+classes:
+- ProjectStatistics
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3ef4f74b1acc9399db320b53dffc592542de0126
+milestone: '9.0'
diff --git a/db/docs/project_topics.yml b/db/docs/project_topics.yml
new file mode 100644
index 00000000000..addad163923
--- /dev/null
+++ b/db/docs/project_topics.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_topics
+classes:
+- Projects::ProjectTopic
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67574
+milestone: '14.3'
diff --git a/db/docs/project_tracing_settings.yml b/db/docs/project_tracing_settings.yml
new file mode 100644
index 00000000000..cc7e65a6cb8
--- /dev/null
+++ b/db/docs/project_tracing_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: project_tracing_settings
+classes:
+- ProjectTracingSetting
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7903
+milestone: '11.5'
diff --git a/db/docs/projects.yml b/db/docs/projects.yml
new file mode 100644
index 00000000000..41fef75ae0c
--- /dev/null
+++ b/db/docs/projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: projects
+classes:
+- Project
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9ba1224867665844b117fa037e1465bb706b3685
+milestone: "<6.0"
diff --git a/db/docs/projects_sync_events.yml b/db/docs/projects_sync_events.yml
new file mode 100644
index 00000000000..cdc27423778
--- /dev/null
+++ b/db/docs/projects_sync_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: projects_sync_events
+classes:
+- Projects::SyncEvent
+feature_categories:
+- sharding
+description: Used as a queue of data that needs to be synchronized between the `ci` and `main` database
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75517
+milestone: '14.6'
diff --git a/db/docs/prometheus_alert_events.yml b/db/docs/prometheus_alert_events.yml
new file mode 100644
index 00000000000..9fed9d9d73b
--- /dev/null
+++ b/db/docs/prometheus_alert_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: prometheus_alert_events
+classes:
+- PrometheusAlertEvent
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7493
+milestone: '11.4'
diff --git a/db/docs/prometheus_alerts.yml b/db/docs/prometheus_alerts.yml
new file mode 100644
index 00000000000..0e017292f81
--- /dev/null
+++ b/db/docs/prometheus_alerts.yml
@@ -0,0 +1,9 @@
+---
+table_name: prometheus_alerts
+classes:
+- PrometheusAlert
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6590
+milestone: '11.2'
diff --git a/db/docs/prometheus_metrics.yml b/db/docs/prometheus_metrics.yml
new file mode 100644
index 00000000000..315aaf7f9bd
--- /dev/null
+++ b/db/docs/prometheus_metrics.yml
@@ -0,0 +1,9 @@
+---
+table_name: prometheus_metrics
+classes:
+- PrometheusMetric
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/3799
+milestone: '9.3'
diff --git a/db/docs/protected_branch_merge_access_levels.yml b/db/docs/protected_branch_merge_access_levels.yml
new file mode 100644
index 00000000000..953d05f8eec
--- /dev/null
+++ b/db/docs/protected_branch_merge_access_levels.yml
@@ -0,0 +1,9 @@
+---
+table_name: protected_branch_merge_access_levels
+classes:
+- ProtectedBranch::MergeAccessLevel
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081
+milestone: '8.11'
diff --git a/db/docs/protected_branch_push_access_levels.yml b/db/docs/protected_branch_push_access_levels.yml
new file mode 100644
index 00000000000..58010735b0f
--- /dev/null
+++ b/db/docs/protected_branch_push_access_levels.yml
@@ -0,0 +1,9 @@
+---
+table_name: protected_branch_push_access_levels
+classes:
+- ProtectedBranch::PushAccessLevel
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081
+milestone: '8.11'
diff --git a/db/docs/protected_branch_unprotect_access_levels.yml b/db/docs/protected_branch_unprotect_access_levels.yml
new file mode 100644
index 00000000000..635cf646df2
--- /dev/null
+++ b/db/docs/protected_branch_unprotect_access_levels.yml
@@ -0,0 +1,9 @@
+---
+table_name: protected_branch_unprotect_access_levels
+classes:
+- ProtectedBranch::UnprotectAccessLevel
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/5103
+milestone: '10.7'
diff --git a/db/docs/protected_branches.yml b/db/docs/protected_branches.yml
new file mode 100644
index 00000000000..d1851c7cde6
--- /dev/null
+++ b/db/docs/protected_branches.yml
@@ -0,0 +1,10 @@
+---
+table_name: protected_branches
+classes:
+- ExportedProtectedBranch
+- ProtectedBranch
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/37224dc9c1ee80ba9030b616e2bc87bd96919e09
+milestone: "<6.0"
diff --git a/db/docs/protected_environment_deploy_access_levels.yml b/db/docs/protected_environment_deploy_access_levels.yml
new file mode 100644
index 00000000000..e8b10ba099e
--- /dev/null
+++ b/db/docs/protected_environment_deploy_access_levels.yml
@@ -0,0 +1,9 @@
+---
+table_name: protected_environment_deploy_access_levels
+classes:
+- ProtectedEnvironment::DeployAccessLevel
+feature_categories:
+- continuous_delivery
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6672
+milestone: '11.3'
diff --git a/db/docs/protected_environments.yml b/db/docs/protected_environments.yml
new file mode 100644
index 00000000000..92b6cdcc1f7
--- /dev/null
+++ b/db/docs/protected_environments.yml
@@ -0,0 +1,9 @@
+---
+table_name: protected_environments
+classes:
+- ProtectedEnvironment
+feature_categories:
+- continuous_delivery
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6672
+milestone: '11.3'
diff --git a/db/docs/protected_tag_create_access_levels.yml b/db/docs/protected_tag_create_access_levels.yml
new file mode 100644
index 00000000000..9856b1a0f25
--- /dev/null
+++ b/db/docs/protected_tag_create_access_levels.yml
@@ -0,0 +1,9 @@
+---
+table_name: protected_tag_create_access_levels
+classes:
+- ProtectedTag::CreateAccessLevel
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/07d7d8e65905a39164b63f55eccdcea8f10f5d14
+milestone: '9.1'
diff --git a/db/docs/protected_tags.yml b/db/docs/protected_tags.yml
new file mode 100644
index 00000000000..0a18451d592
--- /dev/null
+++ b/db/docs/protected_tags.yml
@@ -0,0 +1,9 @@
+---
+table_name: protected_tags
+classes:
+- ProtectedTag
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1a416a42f1c1b876ecd96687e41696bc915cc2c2
+milestone: '9.1'
diff --git a/db/docs/push_event_payloads.yml b/db/docs/push_event_payloads.yml
new file mode 100644
index 00000000000..ea40e5270f4
--- /dev/null
+++ b/db/docs/push_event_payloads.yml
@@ -0,0 +1,9 @@
+---
+table_name: push_event_payloads
+classes:
+- PushEventPayload
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/0395c47193b3bbf6b4f060f28c9f632580313a35
+milestone: '9.5'
diff --git a/db/docs/push_rules.yml b/db/docs/push_rules.yml
new file mode 100644
index 00000000000..6b62013892b
--- /dev/null
+++ b/db/docs/push_rules.yml
@@ -0,0 +1,9 @@
+---
+table_name: push_rules
+classes:
+- PushRule
+feature_categories:
+- compliance_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1b98b5ab97ce3e9997df542059cbf3c6ce0bf0e1
+milestone: '8.10'
diff --git a/db/docs/raw_usage_data.yml b/db/docs/raw_usage_data.yml
new file mode 100644
index 00000000000..36dfbd7742a
--- /dev/null
+++ b/db/docs/raw_usage_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: raw_usage_data
+classes:
+- RawUsageData
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/redirect_routes.yml b/db/docs/redirect_routes.yml
new file mode 100644
index 00000000000..315a251a921
--- /dev/null
+++ b/db/docs/redirect_routes.yml
@@ -0,0 +1,10 @@
+---
+table_name: redirect_routes
+classes:
+- RedirectRoute
+feature_categories:
+- projects
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/7d02bcd2e0165a90a9f2c1edb34b064ff76afd69
+milestone: '9.2'
diff --git a/db/docs/related_epic_links.yml b/db/docs/related_epic_links.yml
new file mode 100644
index 00000000000..a99b8791703
--- /dev/null
+++ b/db/docs/related_epic_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: related_epic_links
+classes:
+- Epic::RelatedEpicLink
+feature_categories:
+- portfolio_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80499
+milestone: '14.9'
diff --git a/db/docs/release_links.yml b/db/docs/release_links.yml
new file mode 100644
index 00000000000..b4fc4f4b043
--- /dev/null
+++ b/db/docs/release_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: release_links
+classes:
+- Releases::Link
+feature_categories:
+- release_orchestration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/66755c9ed506af9f51022a678ed26e5d31ee87ac
+milestone: '11.7'
diff --git a/db/docs/releases.yml b/db/docs/releases.yml
new file mode 100644
index 00000000000..0c496b7355f
--- /dev/null
+++ b/db/docs/releases.yml
@@ -0,0 +1,9 @@
+---
+table_name: releases
+classes:
+- Release
+feature_categories:
+- release_orchestration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1c4d1c3bd69a6f9ec43cce4ab59de4ba47f73229
+milestone: '8.2'
diff --git a/db/docs/remote_mirrors.yml b/db/docs/remote_mirrors.yml
new file mode 100644
index 00000000000..6926e0d2633
--- /dev/null
+++ b/db/docs/remote_mirrors.yml
@@ -0,0 +1,9 @@
+---
+table_name: remote_mirrors
+classes:
+- RemoteMirror
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/ab83917c25c5d1f7dd29c82c91c699008292bc1d
+milestone: '8.7'
diff --git a/db/docs/repository_languages.yml b/db/docs/repository_languages.yml
new file mode 100644
index 00000000000..b38afde69a0
--- /dev/null
+++ b/db/docs/repository_languages.yml
@@ -0,0 +1,9 @@
+---
+table_name: repository_languages
+classes:
+- RepositoryLanguage
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/79a5d76801a45696db629e1f543f2e1d6fa4784f
+milestone: '11.2'
diff --git a/db/docs/required_code_owners_sections.yml b/db/docs/required_code_owners_sections.yml
new file mode 100644
index 00000000000..a8018193d30
--- /dev/null
+++ b/db/docs/required_code_owners_sections.yml
@@ -0,0 +1,9 @@
+---
+table_name: required_code_owners_sections
+classes:
+- ProtectedBranch::RequiredCodeOwnersSection
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43573
+milestone: '13.5'
diff --git a/db/docs/requirements.yml b/db/docs/requirements.yml
new file mode 100644
index 00000000000..fc473246e53
--- /dev/null
+++ b/db/docs/requirements.yml
@@ -0,0 +1,9 @@
+---
+table_name: requirements
+classes:
+- RequirementsManagement::Requirement
+feature_categories:
+- requirements_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26097
+milestone: '12.9'
diff --git a/db/docs/requirements_management_test_reports.yml b/db/docs/requirements_management_test_reports.yml
new file mode 100644
index 00000000000..a39bb19637f
--- /dev/null
+++ b/db/docs/requirements_management_test_reports.yml
@@ -0,0 +1,9 @@
+---
+table_name: requirements_management_test_reports
+classes:
+- RequirementsManagement::TestReport
+feature_categories:
+- requirements_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.1'
diff --git a/db/docs/resource_iteration_events.yml b/db/docs/resource_iteration_events.yml
new file mode 100644
index 00000000000..96be1471854
--- /dev/null
+++ b/db/docs/resource_iteration_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: resource_iteration_events
+classes:
+- ResourceIterationEvent
+feature_categories:
+- planning_analytics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/resource_label_events.yml b/db/docs/resource_label_events.yml
new file mode 100644
index 00000000000..08b3fc0b184
--- /dev/null
+++ b/db/docs/resource_label_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: resource_label_events
+classes:
+- ResourceLabelEvent
+feature_categories:
+- planning_analytics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6697
+milestone: '11.2'
diff --git a/db/docs/resource_milestone_events.yml b/db/docs/resource_milestone_events.yml
new file mode 100644
index 00000000000..5a6dfdb3d61
--- /dev/null
+++ b/db/docs/resource_milestone_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: resource_milestone_events
+classes:
+- ResourceMilestoneEvent
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23965
+milestone: '12.8'
diff --git a/db/docs/resource_state_events.yml b/db/docs/resource_state_events.yml
new file mode 100644
index 00000000000..c5bd88c7927
--- /dev/null
+++ b/db/docs/resource_state_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: resource_state_events
+classes:
+- ResourceStateEvent
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/resource_weight_events.yml b/db/docs/resource_weight_events.yml
new file mode 100644
index 00000000000..bc2d34d382c
--- /dev/null
+++ b/db/docs/resource_weight_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: resource_weight_events
+classes:
+- ResourceWeightEvent
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21515
+milestone: '12.7'
diff --git a/db/docs/reviews.yml b/db/docs/reviews.yml
new file mode 100644
index 00000000000..299574bbe23
--- /dev/null
+++ b/db/docs/reviews.yml
@@ -0,0 +1,9 @@
+---
+table_name: reviews
+classes:
+- Review
+feature_categories:
+- review_apps
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8442
+milestone: '11.6'
diff --git a/db/docs/routes.yml b/db/docs/routes.yml
new file mode 100644
index 00000000000..9b325694f03
--- /dev/null
+++ b/db/docs/routes.yml
@@ -0,0 +1,11 @@
+---
+table_name: routes
+classes:
+- Gitlab::Database::RenameReservedPathsMigration::V1::MigrationClasses::Route
+- Route
+feature_categories:
+- projects
+- subgroups
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/83232be0e14cc8b35bf74532203a6e4371c15e70
+milestone: '9.0'
diff --git a/db/docs/saml_group_links.yml b/db/docs/saml_group_links.yml
new file mode 100644
index 00000000000..109fd62a16b
--- /dev/null
+++ b/db/docs/saml_group_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: saml_group_links
+classes:
+- SamlGroupLink
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45061
+milestone: '13.5'
diff --git a/db/docs/saml_providers.yml b/db/docs/saml_providers.yml
new file mode 100644
index 00000000000..42f2fa956b6
--- /dev/null
+++ b/db/docs/saml_providers.yml
@@ -0,0 +1,9 @@
+---
+table_name: saml_providers
+classes:
+- SamlProvider
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/4549
+milestone: '10.7'
diff --git a/db/docs/saved_replies.yml b/db/docs/saved_replies.yml
new file mode 100644
index 00000000000..e4f24d2b6c9
--- /dev/null
+++ b/db/docs/saved_replies.yml
@@ -0,0 +1,9 @@
+---
+table_name: saved_replies
+classes:
+- Users::SavedReply
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80807
+milestone: '14.9'
diff --git a/db/docs/schema_migrations.yml b/db/docs/schema_migrations.yml
new file mode 100644
index 00000000000..f09cdb7bb53
--- /dev/null
+++ b/db/docs/schema_migrations.yml
@@ -0,0 +1,10 @@
+---
+table_name: schema_migrations
+classes:
+- ActiveRecord::SchemaMigration
+- Geo::TrackingBase::SchemaMigration
+feature_categories:
+- database
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/scim_identities.yml b/db/docs/scim_identities.yml
new file mode 100644
index 00000000000..1aa56dc2740
--- /dev/null
+++ b/db/docs/scim_identities.yml
@@ -0,0 +1,9 @@
+---
+table_name: scim_identities
+classes:
+- ScimIdentity
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26124
+milestone: '12.9'
diff --git a/db/docs/scim_oauth_access_tokens.yml b/db/docs/scim_oauth_access_tokens.yml
new file mode 100644
index 00000000000..bc258eda41a
--- /dev/null
+++ b/db/docs/scim_oauth_access_tokens.yml
@@ -0,0 +1,9 @@
+---
+table_name: scim_oauth_access_tokens
+classes:
+- ScimOauthAccessToken
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e9b2253fe3538234d1c4d173c4549a955233d836
+milestone: '11.10'
diff --git a/db/docs/security_findings.yml b/db/docs/security_findings.yml
new file mode 100644
index 00000000000..57a5d18c288
--- /dev/null
+++ b/db/docs/security_findings.yml
@@ -0,0 +1,9 @@
+---
+table_name: security_findings
+classes:
+- Security::Finding
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/security_orchestration_policy_configurations.yml b/db/docs/security_orchestration_policy_configurations.yml
new file mode 100644
index 00000000000..0505aad2317
--- /dev/null
+++ b/db/docs/security_orchestration_policy_configurations.yml
@@ -0,0 +1,9 @@
+---
+table_name: security_orchestration_policy_configurations
+classes:
+- Security::OrchestrationPolicyConfiguration
+feature_categories:
+- security_orchestration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53743
+milestone: '13.9'
diff --git a/db/docs/security_orchestration_policy_rule_schedules.yml b/db/docs/security_orchestration_policy_rule_schedules.yml
new file mode 100644
index 00000000000..a4fea57adaf
--- /dev/null
+++ b/db/docs/security_orchestration_policy_rule_schedules.yml
@@ -0,0 +1,9 @@
+---
+table_name: security_orchestration_policy_rule_schedules
+classes:
+- Security::OrchestrationPolicyRuleSchedule
+feature_categories:
+- security_orchestration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59842
+milestone: '13.12'
diff --git a/db/docs/security_scans.yml b/db/docs/security_scans.yml
new file mode 100644
index 00000000000..e50afd83472
--- /dev/null
+++ b/db/docs/security_scans.yml
@@ -0,0 +1,9 @@
+---
+table_name: security_scans
+classes:
+- Security::Scan
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23669
+milestone: '12.8'
diff --git a/db/docs/security_training_providers.yml b/db/docs/security_training_providers.yml
new file mode 100644
index 00000000000..ba805a13e47
--- /dev/null
+++ b/db/docs/security_training_providers.yml
@@ -0,0 +1,9 @@
+---
+table_name: security_training_providers
+classes:
+- Security::TrainingProvider
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/78195
+milestone: '14.7'
diff --git a/db/docs/security_trainings.yml b/db/docs/security_trainings.yml
new file mode 100644
index 00000000000..310963541f0
--- /dev/null
+++ b/db/docs/security_trainings.yml
@@ -0,0 +1,9 @@
+---
+table_name: security_trainings
+classes:
+- Security::Training
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/78195
+milestone: '14.7'
diff --git a/db/docs/self_managed_prometheus_alert_events.yml b/db/docs/self_managed_prometheus_alert_events.yml
new file mode 100644
index 00000000000..83eb24475c9
--- /dev/null
+++ b/db/docs/self_managed_prometheus_alert_events.yml
@@ -0,0 +1,9 @@
+---
+table_name: self_managed_prometheus_alert_events
+classes:
+- SelfManagedPrometheusAlertEvent
+feature_categories:
+- metrics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18046
+milestone: '12.4'
diff --git a/db/docs/sent_notifications.yml b/db/docs/sent_notifications.yml
new file mode 100644
index 00000000000..db42e03c7cc
--- /dev/null
+++ b/db/docs/sent_notifications.yml
@@ -0,0 +1,9 @@
+---
+table_name: sent_notifications
+classes:
+- SentNotification
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/f76eac56b9d7d4ae61010cddcca68682824b2239
+milestone: '8.0'
diff --git a/db/docs/sentry_issues.yml b/db/docs/sentry_issues.yml
new file mode 100644
index 00000000000..898d4ddbae1
--- /dev/null
+++ b/db/docs/sentry_issues.yml
@@ -0,0 +1,9 @@
+---
+table_name: sentry_issues
+classes:
+- SentryIssue
+feature_categories:
+- error_tracking
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20629
+milestone: '12.6'
diff --git a/db/docs/serverless_domain_cluster.yml b/db/docs/serverless_domain_cluster.yml
new file mode 100644
index 00000000000..d41f8b45c27
--- /dev/null
+++ b/db/docs/serverless_domain_cluster.yml
@@ -0,0 +1,9 @@
+---
+table_name: serverless_domain_cluster
+classes:
+- Serverless::DomainCluster
+feature_categories:
+- deployment_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19835
+milestone: '12.6'
diff --git a/db/docs/service_desk_settings.yml b/db/docs/service_desk_settings.yml
new file mode 100644
index 00000000000..a346b98b8ec
--- /dev/null
+++ b/db/docs/service_desk_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: service_desk_settings
+classes:
+- ServiceDeskSetting
+feature_categories:
+- service_desk
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19515
+milestone: '12.6'
diff --git a/db/docs/shards.yml b/db/docs/shards.yml
new file mode 100644
index 00000000000..ffd4be0b12d
--- /dev/null
+++ b/db/docs/shards.yml
@@ -0,0 +1,9 @@
+---
+table_name: shards
+classes:
+- Shard
+feature_categories:
+- gitaly
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/f760c1cd17881c8aef3a33a3b43db54673db8111
+milestone: '10.5'
diff --git a/db/docs/slack_integrations.yml b/db/docs/slack_integrations.yml
new file mode 100644
index 00000000000..0c4b0ea97a5
--- /dev/null
+++ b/db/docs/slack_integrations.yml
@@ -0,0 +1,9 @@
+---
+table_name: slack_integrations
+classes:
+- SlackIntegration
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/f50ef96b87d8c785662e82843c22a2ef6093132e
+milestone: '9.4'
diff --git a/db/docs/smartcard_identities.yml b/db/docs/smartcard_identities.yml
new file mode 100644
index 00000000000..ad798c0728d
--- /dev/null
+++ b/db/docs/smartcard_identities.yml
@@ -0,0 +1,9 @@
+---
+table_name: smartcard_identities
+classes:
+- SmartcardIdentity
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/b6316689fdc2d142af85b17d511d39e50712b420
+milestone: '11.6'
diff --git a/db/docs/snippet_repositories.yml b/db/docs/snippet_repositories.yml
new file mode 100644
index 00000000000..c8bffcd9f7a
--- /dev/null
+++ b/db/docs/snippet_repositories.yml
@@ -0,0 +1,9 @@
+---
+table_name: snippet_repositories
+classes:
+- SnippetRepository
+feature_categories:
+- snippets
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23796
+milestone: '12.8'
diff --git a/db/docs/snippet_repository_storage_moves.yml b/db/docs/snippet_repository_storage_moves.yml
new file mode 100644
index 00000000000..e8fea9995c7
--- /dev/null
+++ b/db/docs/snippet_repository_storage_moves.yml
@@ -0,0 +1,9 @@
+---
+table_name: snippet_repository_storage_moves
+classes:
+- Snippets::RepositoryStorageMove
+feature_categories:
+- gitaly
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45990
+milestone: '13.6'
diff --git a/db/docs/snippet_statistics.yml b/db/docs/snippet_statistics.yml
new file mode 100644
index 00000000000..4e9de04a918
--- /dev/null
+++ b/db/docs/snippet_statistics.yml
@@ -0,0 +1,9 @@
+---
+table_name: snippet_statistics
+classes:
+- SnippetStatistics
+feature_categories:
+- snippets
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/snippet_user_mentions.yml b/db/docs/snippet_user_mentions.yml
new file mode 100644
index 00000000000..726b10aa62e
--- /dev/null
+++ b/db/docs/snippet_user_mentions.yml
@@ -0,0 +1,9 @@
+---
+table_name: snippet_user_mentions
+classes:
+- SnippetUserMention
+feature_categories:
+- snippets
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19009
+milestone: '12.6'
diff --git a/db/docs/snippets.yml b/db/docs/snippets.yml
new file mode 100644
index 00000000000..b370e9c3bd6
--- /dev/null
+++ b/db/docs/snippets.yml
@@ -0,0 +1,11 @@
+---
+table_name: snippets
+classes:
+- PersonalSnippet
+- ProjectSnippet
+- Snippet
+feature_categories:
+- snippets
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9265de3d25715aeafd38a4ef41596dca058dc18c
+milestone: "<6.0"
diff --git a/db/docs/software_license_policies.yml b/db/docs/software_license_policies.yml
new file mode 100644
index 00000000000..7da6a69651c
--- /dev/null
+++ b/db/docs/software_license_policies.yml
@@ -0,0 +1,9 @@
+---
+table_name: software_license_policies
+classes:
+- SoftwareLicensePolicy
+feature_categories:
+- license_compliance
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6246
+milestone: '11.2'
diff --git a/db/docs/software_licenses.yml b/db/docs/software_licenses.yml
new file mode 100644
index 00000000000..26780aa5ef9
--- /dev/null
+++ b/db/docs/software_licenses.yml
@@ -0,0 +1,9 @@
+---
+table_name: software_licenses
+classes:
+- SoftwareLicense
+feature_categories:
+- license_compliance
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6246
+milestone: '11.2'
diff --git a/db/docs/spam_logs.yml b/db/docs/spam_logs.yml
new file mode 100644
index 00000000000..35fa08ef46d
--- /dev/null
+++ b/db/docs/spam_logs.yml
@@ -0,0 +1,9 @@
+---
+table_name: spam_logs
+classes:
+- SpamLog
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/d20e75a8d80c2828336cd22897ea6868d666f8a5
+milestone: '8.5'
diff --git a/db/docs/sprints.yml b/db/docs/sprints.yml
new file mode 100644
index 00000000000..f330c47484f
--- /dev/null
+++ b/db/docs/sprints.yml
@@ -0,0 +1,9 @@
+---
+table_name: sprints
+classes:
+- Iteration
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/status_check_responses.yml b/db/docs/status_check_responses.yml
new file mode 100644
index 00000000000..0959a44106b
--- /dev/null
+++ b/db/docs/status_check_responses.yml
@@ -0,0 +1,9 @@
+---
+table_name: status_check_responses
+classes:
+- MergeRequests::StatusCheckResponse
+feature_categories:
+- compliance_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61135
+milestone: '13.12'
diff --git a/db/docs/status_page_published_incidents.yml b/db/docs/status_page_published_incidents.yml
new file mode 100644
index 00000000000..79d46ba2ad4
--- /dev/null
+++ b/db/docs/status_page_published_incidents.yml
@@ -0,0 +1,9 @@
+---
+table_name: status_page_published_incidents
+classes:
+- StatusPage::PublishedIncident
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/status_page_settings.yml b/db/docs/status_page_settings.yml
new file mode 100644
index 00000000000..b4022bdb678
--- /dev/null
+++ b/db/docs/status_page_settings.yml
@@ -0,0 +1,9 @@
+---
+table_name: status_page_settings
+classes:
+- StatusPage::ProjectSetting
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25863
+milestone: '12.9'
diff --git a/db/docs/subscriptions.yml b/db/docs/subscriptions.yml
new file mode 100644
index 00000000000..524ca06f34f
--- /dev/null
+++ b/db/docs/subscriptions.yml
@@ -0,0 +1,9 @@
+---
+table_name: subscriptions
+classes:
+- Subscription
+feature_categories:
+- continuous_integration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/410d25c8ca8afabb25e5f89b36e3cfd09ffe6f87
+milestone: '7.9'
diff --git a/db/docs/suggestions.yml b/db/docs/suggestions.yml
new file mode 100644
index 00000000000..2ecaddb2704
--- /dev/null
+++ b/db/docs/suggestions.yml
@@ -0,0 +1,9 @@
+---
+table_name: suggestions
+classes:
+- Suggestion
+feature_categories:
+- code_review
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/23d6fbf1c016aba0374b9675f621d97f52d1abb9
+milestone: '11.6'
diff --git a/db/docs/system_note_metadata.yml b/db/docs/system_note_metadata.yml
new file mode 100644
index 00000000000..305b4501b60
--- /dev/null
+++ b/db/docs/system_note_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: system_note_metadata
+classes:
+- SystemNoteMetadata
+feature_categories:
+- importers
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/1c3c7fb25d972fc19d5b4bb371cb21094d81e478
+milestone: '9.1'
diff --git a/db/docs/taggings.yml b/db/docs/taggings.yml
new file mode 100644
index 00000000000..a13108e705a
--- /dev/null
+++ b/db/docs/taggings.yml
@@ -0,0 +1,9 @@
+---
+table_name: taggings
+classes:
+- ActsAsTaggableOn::Tagging
+feature_categories:
+- runner
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/b946da44695c9c8fe8867bb87bcdf801c52177d3
+milestone: "<6.0"
diff --git a/db/docs/tags.yml b/db/docs/tags.yml
new file mode 100644
index 00000000000..2d4820d6095
--- /dev/null
+++ b/db/docs/tags.yml
@@ -0,0 +1,9 @@
+---
+table_name: tags
+classes:
+- ActsAsTaggableOn::Tag
+feature_categories:
+- runner
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/b946da44695c9c8fe8867bb87bcdf801c52177d3
+milestone: "<6.0"
diff --git a/db/docs/term_agreements.yml b/db/docs/term_agreements.yml
new file mode 100644
index 00000000000..dd0bd829b19
--- /dev/null
+++ b/db/docs/term_agreements.yml
@@ -0,0 +1,9 @@
+---
+table_name: term_agreements
+classes:
+- TermAgreement
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/82eeb72c8c03727540b902d40e7e657d0a5ecb4c
+milestone: '10.8'
diff --git a/db/docs/terraform_state_versions.yml b/db/docs/terraform_state_versions.yml
new file mode 100644
index 00000000000..8c1110caa95
--- /dev/null
+++ b/db/docs/terraform_state_versions.yml
@@ -0,0 +1,9 @@
+---
+table_name: terraform_state_versions
+classes:
+- Terraform::StateVersion
+feature_categories:
+- infrastructure_as_code
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.4'
diff --git a/db/docs/terraform_states.yml b/db/docs/terraform_states.yml
new file mode 100644
index 00000000000..90be304d898
--- /dev/null
+++ b/db/docs/terraform_states.yml
@@ -0,0 +1,9 @@
+---
+table_name: terraform_states
+classes:
+- Terraform::State
+feature_categories:
+- infrastructure_as_code
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/timelogs.yml b/db/docs/timelogs.yml
new file mode 100644
index 00000000000..ab01a1f1f6a
--- /dev/null
+++ b/db/docs/timelogs.yml
@@ -0,0 +1,9 @@
+---
+table_name: timelogs
+classes:
+- Timelog
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/bf13fa054a67d5245ee83555e730d7ee6ab7264c
+milestone: '8.14'
diff --git a/db/docs/todos.yml b/db/docs/todos.yml
new file mode 100644
index 00000000000..1f4db172e2b
--- /dev/null
+++ b/db/docs/todos.yml
@@ -0,0 +1,9 @@
+---
+table_name: todos
+classes:
+- Todo
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3d52e139b13ad077286f2f9f46b7e98f43ad9564
+milestone: '8.5'
diff --git a/db/docs/token_with_ivs.yml b/db/docs/token_with_ivs.yml
new file mode 100644
index 00000000000..1df428afdaa
--- /dev/null
+++ b/db/docs/token_with_ivs.yml
@@ -0,0 +1,9 @@
+---
+table_name: token_with_ivs
+classes:
+- TokenWithIv
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/37b80b4048190c2e1a35ec399e4aeb35d511090e
+milestone: '13.9'
diff --git a/db/docs/topics.yml b/db/docs/topics.yml
new file mode 100644
index 00000000000..d093c263386
--- /dev/null
+++ b/db/docs/topics.yml
@@ -0,0 +1,9 @@
+---
+table_name: topics
+classes:
+- Projects::Topic
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67574
+milestone: '14.3'
diff --git a/db/docs/trending_projects.yml b/db/docs/trending_projects.yml
new file mode 100644
index 00000000000..9dd23857da0
--- /dev/null
+++ b/db/docs/trending_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: trending_projects
+classes:
+- TrendingProject
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/237c8f66e6608420629503280aaea555ee980022
+milestone: '8.13'
diff --git a/db/docs/u2f_registrations.yml b/db/docs/u2f_registrations.yml
new file mode 100644
index 00000000000..c6e1b65eea4
--- /dev/null
+++ b/db/docs/u2f_registrations.yml
@@ -0,0 +1,9 @@
+---
+table_name: u2f_registrations
+classes:
+- U2fRegistration
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/791cc9138be6ea1783e3c3853370cf0290f4d41e
+milestone: '8.9'
diff --git a/db/docs/upcoming_reconciliations.yml b/db/docs/upcoming_reconciliations.yml
new file mode 100644
index 00000000000..4d8e505c888
--- /dev/null
+++ b/db/docs/upcoming_reconciliations.yml
@@ -0,0 +1,9 @@
+---
+table_name: upcoming_reconciliations
+classes:
+- GitlabSubscriptions::UpcomingReconciliation
+feature_categories:
+- purchase
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63054
+milestone: '14.0'
diff --git a/db/docs/upload_states.yml b/db/docs/upload_states.yml
new file mode 100644
index 00000000000..b1ee7e17e2e
--- /dev/null
+++ b/db/docs/upload_states.yml
@@ -0,0 +1,9 @@
+---
+table_name: upload_states
+classes:
+- Geo::UploadState
+feature_categories:
+- geo_replication
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65921
+milestone: '14.6'
diff --git a/db/docs/uploads.yml b/db/docs/uploads.yml
new file mode 100644
index 00000000000..8cc557280e8
--- /dev/null
+++ b/db/docs/uploads.yml
@@ -0,0 +1,9 @@
+---
+table_name: uploads
+classes:
+- Upload
+feature_categories:
+- backup_restore
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/4c622b71fd284058deee483bf0009f8179b792bc
+milestone: '9.0'
diff --git a/db/docs/user_agent_details.yml b/db/docs/user_agent_details.yml
new file mode 100644
index 00000000000..ae49ded4348
--- /dev/null
+++ b/db/docs/user_agent_details.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_agent_details
+classes:
+- UserAgentDetail
+feature_categories:
+- snippets
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/95419679f23f0628d1885dd9656cc159e9d55ea9
+milestone: '8.11'
diff --git a/db/docs/user_callouts.yml b/db/docs/user_callouts.yml
new file mode 100644
index 00000000000..fe6243636d9
--- /dev/null
+++ b/db/docs/user_callouts.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_callouts
+classes:
+- Users::Callout
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/648826721f13ee4309a11638e538d96006648b39
+milestone: '10.5'
diff --git a/db/docs/user_canonical_emails.yml b/db/docs/user_canonical_emails.yml
new file mode 100644
index 00000000000..8bf0e485030
--- /dev/null
+++ b/db/docs/user_canonical_emails.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_canonical_emails
+classes:
+- UserCanonicalEmail
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/user_credit_card_validations.yml b/db/docs/user_credit_card_validations.yml
new file mode 100644
index 00000000000..9a452721ca8
--- /dev/null
+++ b/db/docs/user_credit_card_validations.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_credit_card_validations
+classes:
+- Users::CreditCardValidation
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60626
+milestone: '13.12'
diff --git a/db/docs/user_custom_attributes.yml b/db/docs/user_custom_attributes.yml
new file mode 100644
index 00000000000..60359fb2c48
--- /dev/null
+++ b/db/docs/user_custom_attributes.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_custom_attributes
+classes:
+- UserCustomAttribute
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/e9eae3eb0dd25e4a34c9a4b6bcc7de312dde4489
+milestone: '10.1'
diff --git a/db/docs/user_details.yml b/db/docs/user_details.yml
new file mode 100644
index 00000000000..5ced831f9ad
--- /dev/null
+++ b/db/docs/user_details.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_details
+classes:
+- UserDetail
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25483
+milestone: '12.9'
diff --git a/db/docs/user_follow_users.yml b/db/docs/user_follow_users.yml
new file mode 100644
index 00000000000..08756637c10
--- /dev/null
+++ b/db/docs/user_follow_users.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_follow_users
+classes:
+- Users::UserFollowUser
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45451
+milestone: '13.9'
diff --git a/db/docs/user_group_callouts.yml b/db/docs/user_group_callouts.yml
new file mode 100644
index 00000000000..0ed79640cb1
--- /dev/null
+++ b/db/docs/user_group_callouts.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_group_callouts
+classes:
+- Users::GroupCallout
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68785
+milestone: '14.3'
diff --git a/db/docs/user_highest_roles.yml b/db/docs/user_highest_roles.yml
new file mode 100644
index 00000000000..23754f7c8d3
--- /dev/null
+++ b/db/docs/user_highest_roles.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_highest_roles
+classes:
+- UserHighestRole
+feature_categories:
+- utilization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26987
+milestone: '12.9'
diff --git a/db/docs/user_interacted_projects.yml b/db/docs/user_interacted_projects.yml
new file mode 100644
index 00000000000..3eb67f6c2f3
--- /dev/null
+++ b/db/docs/user_interacted_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_interacted_projects
+classes:
+- UserInteractedProject
+feature_categories:
+- product_analytics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/43b74afd8656df8228c19d5e5e6aee9f87abc244
+milestone: '10.6'
diff --git a/db/docs/user_permission_export_uploads.yml b/db/docs/user_permission_export_uploads.yml
new file mode 100644
index 00000000000..93f7e360ec2
--- /dev/null
+++ b/db/docs/user_permission_export_uploads.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_permission_export_uploads
+classes:
+- UserPermissionExportUpload
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47846
+milestone: '13.7'
diff --git a/db/docs/user_preferences.yml b/db/docs/user_preferences.yml
new file mode 100644
index 00000000000..0a0b447c0c2
--- /dev/null
+++ b/db/docs/user_preferences.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_preferences
+classes:
+- UserPreference
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/132abd3d68a8d97e8245dfc8f87a297a2ff1f39d
+milestone: '11.5'
diff --git a/db/docs/user_statuses.yml b/db/docs/user_statuses.yml
new file mode 100644
index 00000000000..cf4667c4189
--- /dev/null
+++ b/db/docs/user_statuses.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_statuses
+classes:
+- UserStatus
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/812bfb158b70b09cfd438379a4b9446aa85b52ec
+milestone: '11.2'
diff --git a/db/docs/user_synced_attributes_metadata.yml b/db/docs/user_synced_attributes_metadata.yml
new file mode 100644
index 00000000000..73f3e6166ed
--- /dev/null
+++ b/db/docs/user_synced_attributes_metadata.yml
@@ -0,0 +1,9 @@
+---
+table_name: user_synced_attributes_metadata
+classes:
+- UserSyncedAttributesMetadata
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/4df54f260751a832ebf0b8c18524020d6604994b
+milestone: '10.0'
diff --git a/db/docs/users.yml b/db/docs/users.yml
new file mode 100644
index 00000000000..7c6a7fbdcb8
--- /dev/null
+++ b/db/docs/users.yml
@@ -0,0 +1,11 @@
+---
+table_name: users
+classes:
+- Gitlab::Database::RenameReservedPathsMigration::V1::MigrationClasses::User
+- TmpUser
+- User
+feature_categories:
+- users
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9ba1224867665844b117fa037e1465bb706b3685
+milestone: "<6.0"
diff --git a/db/docs/users_ops_dashboard_projects.yml b/db/docs/users_ops_dashboard_projects.yml
new file mode 100644
index 00000000000..ba3f07609e2
--- /dev/null
+++ b/db/docs/users_ops_dashboard_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: users_ops_dashboard_projects
+classes:
+- UsersOpsDashboardProject
+feature_categories:
+- release_orchestration
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7341
+milestone: '11.5'
diff --git a/db/docs/users_security_dashboard_projects.yml b/db/docs/users_security_dashboard_projects.yml
new file mode 100644
index 00000000000..a98399aa9c8
--- /dev/null
+++ b/db/docs/users_security_dashboard_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: users_security_dashboard_projects
+classes:
+- UsersSecurityDashboardProject
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18708
+milestone: '12.5'
diff --git a/db/docs/users_star_projects.yml b/db/docs/users_star_projects.yml
new file mode 100644
index 00000000000..a1da7dca644
--- /dev/null
+++ b/db/docs/users_star_projects.yml
@@ -0,0 +1,9 @@
+---
+table_name: users_star_projects
+classes:
+- UsersStarProject
+feature_categories:
+- projects
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/714f7201d3362793d11f33793e5ef6dc83bdd2f0
+milestone: '7.2'
diff --git a/db/docs/users_statistics.yml b/db/docs/users_statistics.yml
new file mode 100644
index 00000000000..7ff35cd8726
--- /dev/null
+++ b/db/docs/users_statistics.yml
@@ -0,0 +1,9 @@
+---
+table_name: users_statistics
+classes:
+- UsersStatistics
+feature_categories:
+- product_analytics
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26261
+milestone: '12.9'
diff --git a/db/docs/verification_codes.yml b/db/docs/verification_codes.yml
new file mode 100644
index 00000000000..9e784ed00ee
--- /dev/null
+++ b/db/docs/verification_codes.yml
@@ -0,0 +1,8 @@
+---
+table_name: verification_codes
+classes: []
+feature_categories:
+- jihu
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71139
+milestone: '14.4'
diff --git a/db/docs/vulnerabilities.yml b/db/docs/vulnerabilities.yml
new file mode 100644
index 00000000000..f2dad96bebc
--- /dev/null
+++ b/db/docs/vulnerabilities.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerabilities
+classes:
+- Vulnerability
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16181
+milestone: '12.4'
diff --git a/db/docs/vulnerability_exports.yml b/db/docs/vulnerability_exports.yml
new file mode 100644
index 00000000000..f9d392d3485
--- /dev/null
+++ b/db/docs/vulnerability_exports.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_exports
+classes:
+- Vulnerabilities::Export
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27196
+milestone: '13.0'
diff --git a/db/docs/vulnerability_external_issue_links.yml b/db/docs/vulnerability_external_issue_links.yml
new file mode 100644
index 00000000000..ff0b8f98414
--- /dev/null
+++ b/db/docs/vulnerability_external_issue_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_external_issue_links
+classes:
+- Vulnerabilities::ExternalIssueLink
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48465
+milestone: '13.7'
diff --git a/db/docs/vulnerability_feedback.yml b/db/docs/vulnerability_feedback.yml
new file mode 100644
index 00000000000..4d5ae868188
--- /dev/null
+++ b/db/docs/vulnerability_feedback.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_feedback
+classes:
+- Vulnerabilities::Feedback
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/5452
+milestone: '10.8'
diff --git a/db/docs/vulnerability_finding_evidences.yml b/db/docs/vulnerability_finding_evidences.yml
new file mode 100644
index 00000000000..a2b48caece6
--- /dev/null
+++ b/db/docs/vulnerability_finding_evidences.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_finding_evidences
+classes:
+- Vulnerabilities::Finding::Evidence
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56790
+milestone: '13.11'
diff --git a/db/docs/vulnerability_finding_links.yml b/db/docs/vulnerability_finding_links.yml
new file mode 100644
index 00000000000..4f47e82e85f
--- /dev/null
+++ b/db/docs/vulnerability_finding_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_finding_links
+classes:
+- Vulnerabilities::FindingLink
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/45502
+milestone: '13.6'
diff --git a/db/docs/vulnerability_finding_signatures.yml b/db/docs/vulnerability_finding_signatures.yml
new file mode 100644
index 00000000000..963dd96dd2c
--- /dev/null
+++ b/db/docs/vulnerability_finding_signatures.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_finding_signatures
+classes:
+- Vulnerabilities::FindingSignature
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/57840
+milestone: '13.11'
diff --git a/db/docs/vulnerability_findings_remediations.yml b/db/docs/vulnerability_findings_remediations.yml
new file mode 100644
index 00000000000..4a757073567
--- /dev/null
+++ b/db/docs/vulnerability_findings_remediations.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_findings_remediations
+classes:
+- Vulnerabilities::FindingRemediation
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47166
+milestone: '13.7'
diff --git a/db/docs/vulnerability_flags.yml b/db/docs/vulnerability_flags.yml
new file mode 100644
index 00000000000..fa47f878029
--- /dev/null
+++ b/db/docs/vulnerability_flags.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_flags
+classes:
+- Vulnerabilities::Flag
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65573
+milestone: '14.1'
diff --git a/db/docs/vulnerability_historical_statistics.yml b/db/docs/vulnerability_historical_statistics.yml
new file mode 100644
index 00000000000..47fec93a242
--- /dev/null
+++ b/db/docs/vulnerability_historical_statistics.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_historical_statistics
+classes:
+- Vulnerabilities::HistoricalStatistic
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.3'
diff --git a/db/docs/vulnerability_identifiers.yml b/db/docs/vulnerability_identifiers.yml
new file mode 100644
index 00000000000..eefdddfe7eb
--- /dev/null
+++ b/db/docs/vulnerability_identifiers.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_identifiers
+classes:
+- Vulnerabilities::Identifier
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6896
+milestone: '11.4'
diff --git a/db/docs/vulnerability_issue_links.yml b/db/docs/vulnerability_issue_links.yml
new file mode 100644
index 00000000000..d19e885dd86
--- /dev/null
+++ b/db/docs/vulnerability_issue_links.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_issue_links
+classes:
+- Vulnerabilities::IssueLink
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/19852
+milestone: '12.5'
diff --git a/db/docs/vulnerability_occurrence_identifiers.yml b/db/docs/vulnerability_occurrence_identifiers.yml
new file mode 100644
index 00000000000..5791b42846b
--- /dev/null
+++ b/db/docs/vulnerability_occurrence_identifiers.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_occurrence_identifiers
+classes:
+- Vulnerabilities::FindingIdentifier
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6896
+milestone: '11.4'
diff --git a/db/docs/vulnerability_occurrence_pipelines.yml b/db/docs/vulnerability_occurrence_pipelines.yml
new file mode 100644
index 00000000000..5cbc490a2b8
--- /dev/null
+++ b/db/docs/vulnerability_occurrence_pipelines.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_occurrence_pipelines
+classes:
+- Vulnerabilities::FindingPipeline
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/3270e15c4de7f40b97ce25bdc3cc9c4282e2f573
+milestone: '11.5'
diff --git a/db/docs/vulnerability_occurrences.yml b/db/docs/vulnerability_occurrences.yml
new file mode 100644
index 00000000000..001764c385e
--- /dev/null
+++ b/db/docs/vulnerability_occurrences.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_occurrences
+classes:
+- Vulnerabilities::Finding
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6896
+milestone: '11.4'
diff --git a/db/docs/vulnerability_reads.yml b/db/docs/vulnerability_reads.yml
new file mode 100644
index 00000000000..0d60920c694
--- /dev/null
+++ b/db/docs/vulnerability_reads.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_reads
+classes:
+- Vulnerabilities::Read
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74733
+milestone: '14.6'
diff --git a/db/docs/vulnerability_remediations.yml b/db/docs/vulnerability_remediations.yml
new file mode 100644
index 00000000000..6dfd80ec6b4
--- /dev/null
+++ b/db/docs/vulnerability_remediations.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_remediations
+classes:
+- Vulnerabilities::Remediation
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47166
+milestone: '13.7'
diff --git a/db/docs/vulnerability_scanners.yml b/db/docs/vulnerability_scanners.yml
new file mode 100644
index 00000000000..18d534619bf
--- /dev/null
+++ b/db/docs/vulnerability_scanners.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_scanners
+classes:
+- Vulnerabilities::Scanner
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/6896
+milestone: '11.4'
diff --git a/db/docs/vulnerability_statistics.yml b/db/docs/vulnerability_statistics.yml
new file mode 100644
index 00000000000..e32fdc907ff
--- /dev/null
+++ b/db/docs/vulnerability_statistics.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_statistics
+classes:
+- Vulnerabilities::Statistic
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/vulnerability_user_mentions.yml b/db/docs/vulnerability_user_mentions.yml
new file mode 100644
index 00000000000..594f7fa78f8
--- /dev/null
+++ b/db/docs/vulnerability_user_mentions.yml
@@ -0,0 +1,9 @@
+---
+table_name: vulnerability_user_mentions
+classes:
+- VulnerabilityUserMention
+feature_categories:
+- vulnerability_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.0'
diff --git a/db/docs/web_hook_logs.yml b/db/docs/web_hook_logs.yml
new file mode 100644
index 00000000000..eb47aa1dc9a
--- /dev/null
+++ b/db/docs/web_hook_logs.yml
@@ -0,0 +1,9 @@
+---
+table_name: web_hook_logs
+classes:
+- WebHookLog
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/330789c23c777d8ca646eba7c25f39cb7342cdee
+milestone: '9.3'
diff --git a/db/docs/web_hooks.yml b/db/docs/web_hooks.yml
new file mode 100644
index 00000000000..8b0a2c8c002
--- /dev/null
+++ b/db/docs/web_hooks.yml
@@ -0,0 +1,13 @@
+---
+table_name: web_hooks
+classes:
+- GroupHook
+- ProjectHook
+- ServiceHook
+- SystemHook
+- WebHook
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/edab46e9fa5f568b1423c0021e81d30453d7dc1e
+milestone: "<6.0"
diff --git a/db/docs/webauthn_registrations.yml b/db/docs/webauthn_registrations.yml
new file mode 100644
index 00000000000..21659b88cb6
--- /dev/null
+++ b/db/docs/webauthn_registrations.yml
@@ -0,0 +1,9 @@
+---
+table_name: webauthn_registrations
+classes:
+- WebauthnRegistration
+feature_categories:
+- authentication_and_authorization
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/9af97ee69a36de1dc4e73f4030d6316d3f0a82c5
+milestone: '13.2'
diff --git a/db/docs/wiki_page_meta.yml b/db/docs/wiki_page_meta.yml
new file mode 100644
index 00000000000..b5b28d1e8e0
--- /dev/null
+++ b/db/docs/wiki_page_meta.yml
@@ -0,0 +1,9 @@
+---
+table_name: wiki_page_meta
+classes:
+- WikiPage::Meta
+feature_categories:
+- wiki
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26529
+milestone: '13.0'
diff --git a/db/docs/wiki_page_slugs.yml b/db/docs/wiki_page_slugs.yml
new file mode 100644
index 00000000000..e0e29ea41ad
--- /dev/null
+++ b/db/docs/wiki_page_slugs.yml
@@ -0,0 +1,9 @@
+---
+table_name: wiki_page_slugs
+classes:
+- WikiPage::Slug
+feature_categories:
+- wiki
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26529
+milestone: '13.0'
diff --git a/db/docs/work_item_types.yml b/db/docs/work_item_types.yml
new file mode 100644
index 00000000000..48fed8d6aba
--- /dev/null
+++ b/db/docs/work_item_types.yml
@@ -0,0 +1,9 @@
+---
+table_name: work_item_types
+classes:
+- WorkItems::Type
+feature_categories:
+- team_planning
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55705
+milestone: '14.2'
diff --git a/db/docs/x509_certificates.yml b/db/docs/x509_certificates.yml
new file mode 100644
index 00000000000..26fc03c743d
--- /dev/null
+++ b/db/docs/x509_certificates.yml
@@ -0,0 +1,9 @@
+---
+table_name: x509_certificates
+classes:
+- X509Certificate
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17773
+milestone: '12.8'
diff --git a/db/docs/x509_commit_signatures.yml b/db/docs/x509_commit_signatures.yml
new file mode 100644
index 00000000000..5791f6439d6
--- /dev/null
+++ b/db/docs/x509_commit_signatures.yml
@@ -0,0 +1,9 @@
+---
+table_name: x509_commit_signatures
+classes:
+- CommitSignatures::X509CommitSignature
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17773
+milestone: '12.8'
diff --git a/db/docs/x509_issuers.yml b/db/docs/x509_issuers.yml
new file mode 100644
index 00000000000..0165189f044
--- /dev/null
+++ b/db/docs/x509_issuers.yml
@@ -0,0 +1,9 @@
+---
+table_name: x509_issuers
+classes:
+- X509Issuer
+feature_categories:
+- source_code_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17773
+milestone: '12.8'
diff --git a/db/docs/zentao_tracker_data.yml b/db/docs/zentao_tracker_data.yml
new file mode 100644
index 00000000000..8270759b5d6
--- /dev/null
+++ b/db/docs/zentao_tracker_data.yml
@@ -0,0 +1,9 @@
+---
+table_name: zentao_tracker_data
+classes:
+- Integrations::ZentaoTrackerData
+feature_categories:
+- integrations
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67938
+milestone: '14.2'
diff --git a/db/docs/zoom_meetings.yml b/db/docs/zoom_meetings.yml
new file mode 100644
index 00000000000..0c1a47eb6d0
--- /dev/null
+++ b/db/docs/zoom_meetings.yml
@@ -0,0 +1,9 @@
+---
+table_name: zoom_meetings
+classes:
+- ZoomMeeting
+feature_categories:
+- incident_management
+description: TODO
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17890
+milestone: '12.5'
diff --git a/db/fixtures/development/02_users.rb b/db/fixtures/development/02_users.rb
index 76a00c18649..ceed0d6d12a 100644
--- a/db/fixtures/development/02_users.rb
+++ b/db/fixtures/development/02_users.rb
@@ -4,8 +4,8 @@ class Gitlab::Seeder::Users
include ActionView::Helpers::NumberHelper
RANDOM_USERS_COUNT = 20
+ MASS_NAMESPACES_COUNT = ENV['CI'] ? 1 : 100
MASS_USERS_COUNT = ENV['CI'] ? 10 : 1_000_000
-
attr_reader :opts
def initialize(opts = {})
@@ -15,6 +15,7 @@ class Gitlab::Seeder::Users
def seed!
Sidekiq::Testing.inline! do
create_mass_users!
+ create_mass_namespaces!
create_random_users!
end
end
@@ -26,20 +27,22 @@ class Gitlab::Seeder::Users
Gitlab::Seeder.with_mass_insert(MASS_USERS_COUNT, User) do
ActiveRecord::Base.connection.execute <<~SQL
- INSERT INTO users (username, name, email, confirmed_at, projects_limit, encrypted_password)
+ INSERT INTO users (username, name, email, state, confirmed_at, projects_limit, encrypted_password)
SELECT
'#{Gitlab::Seeder::MASS_INSERT_USER_START}' || seq,
'Seed user ' || seq,
'seed_user' || seq || '@example.com',
+ 'active',
to_timestamp(seq),
#{MASS_USERS_COUNT},
'#{encrypted_password}'
FROM generate_series(1, #{MASS_USERS_COUNT}) AS seq
+ ON CONFLICT DO NOTHING;
SQL
end
relation = User.where(admin: false)
- Gitlab::Seeder.with_mass_insert(relation.count, Namespace) do
+ Gitlab::Seeder.with_mass_insert(relation.count, 'user namespaces') do
ActiveRecord::Base.connection.execute <<~SQL
INSERT INTO namespaces (name, path, owner_id, type)
SELECT
@@ -48,6 +51,16 @@ class Gitlab::Seeder::Users
id,
'User'
FROM users WHERE NOT admin
+ ON CONFLICT DO NOTHING;
+ SQL
+ end
+
+ Gitlab::Seeder.with_mass_insert(relation.count, "User namespaces routes") do
+ ActiveRecord::Base.connection.execute <<~SQL
+ INSERT INTO routes (namespace_id, source_id, source_type, path, name)
+ SELECT id as namespace_id, id as source_id, 'Namespace', path, name
+ FROM namespaces WHERE type IS NULL OR type = 'User'
+ ON CONFLICT DO NOTHING;
SQL
end
@@ -74,6 +87,97 @@ class Gitlab::Seeder::Users
end
end
+ def create_mass_namespaces!
+ Gitlab::Seeder.with_mass_insert(MASS_NAMESPACES_COUNT, "root namespaces and subgroups 9 levels deep") do
+ ActiveRecord::Base.connection.execute <<~SQL
+ INSERT INTO namespaces (name, path, type)
+ SELECT
+ 'mass insert group level 0 - ' || seq,
+ '#{Gitlab::Seeder::MASS_INSERT_GROUP_START}_0_' || seq,
+ 'Group'
+ FROM generate_series(1, #{MASS_NAMESPACES_COUNT}) AS seq
+ ON CONFLICT DO NOTHING;
+ SQL
+
+ (1..9).each do |idx|
+ count = Namespace.where("path LIKE '#{Gitlab::Seeder::MASS_INSERT_PREFIX}%'").where(type: 'Group').count * 2
+ Gitlab::Seeder.log_message("Creating subgroups at level #{idx}: #{count}")
+ ActiveRecord::Base.connection.execute <<~SQL
+ INSERT INTO namespaces (name, path, type, parent_id)
+ SELECT
+ 'mass insert group level #{idx} - ' || seq,
+ '#{Gitlab::Seeder::MASS_INSERT_GROUP_START}_#{idx}_' || seq,
+ 'Group',
+ namespaces.id
+ FROM namespaces
+ CROSS JOIN generate_series(1, 2) AS seq
+ WHERE namespaces.type='Group' AND namespaces.path like '#{Gitlab::Seeder::MASS_INSERT_GROUP_START}_#{idx-1}_%'
+ ON CONFLICT DO NOTHING;
+ SQL
+ end
+
+ Gitlab::Seeder.log_message("creating routes.")
+ ActiveRecord::Base.connection.execute <<~SQL
+ WITH RECURSIVE cte(source_id, namespace_id, parent_id, path, height) AS (
+ (
+ SELECT ARRAY[batch.id], batch.id, batch.parent_id, batch.path, 1
+ FROM
+ "namespaces" as batch
+ WHERE
+ "batch"."type" = 'Group' AND "batch"."parent_id" is null
+ )
+ UNION
+ (
+ SELECT array_append(cte.source_id, n.id), n.id, n.parent_id, cte.path || '/' || n.path, cte.height+1
+ FROM
+ "namespaces" as n,
+ "cte"
+ WHERE
+ "n"."type" = 'Group'
+ AND "n"."parent_id" = "cte"."namespace_id"
+ )
+ )
+ INSERT INTO routes (namespace_id, source_id, source_type, path, name)
+ SELECT cte.namespace_id as namespace_id, cte.namespace_id as source_id, 'Namespace', cte.path, cte.path FROM cte
+ ON CONFLICT DO NOTHING;
+ SQL
+
+ Gitlab::Seeder.log_message("filling traversal ids.")
+ ActiveRecord::Base.connection.execute <<~SQL
+ WITH RECURSIVE cte(source_id, namespace_id, parent_id) AS (
+ (
+ SELECT ARRAY[batch.id], batch.id, batch.parent_id
+ FROM
+ "namespaces" as batch
+ WHERE
+ "batch"."type" = 'Group' AND "batch"."parent_id" is null
+ )
+ UNION
+ (
+ SELECT array_append(cte.source_id, n.id), n.id, n.parent_id
+ FROM
+ "namespaces" as n,
+ "cte"
+ WHERE
+ "n"."type" = 'Group'
+ AND "n"."parent_id" = "cte"."namespace_id"
+ )
+ )
+ UPDATE namespaces
+ SET traversal_ids = computed.source_id FROM (SELECT namespace_id, source_id FROM cte) AS computed
+ where computed.namespace_id = namespaces.id AND namespaces.path LIKE '#{Gitlab::Seeder::MASS_INSERT_PREFIX}%'
+ SQL
+
+ Gitlab::Seeder.log_message("creating namespace settings.")
+ ActiveRecord::Base.connection.execute <<~SQL
+ INSERT INTO namespace_settings(namespace_id, created_at, updated_at)
+ SELECT id, now(), now() FROM namespaces
+ ON CONFLICT DO NOTHING;
+ SQL
+ end
+ end
+
+
def random_password
@random_password ||= SecureRandom.hex.slice(0,16)
end
diff --git a/db/fixtures/development/03_project.rb b/db/fixtures/development/03_project.rb
index e879db84e68..ae9a17b637c 100644
--- a/db/fixtures/development/03_project.rb
+++ b/db/fixtures/development/03_project.rb
@@ -53,14 +53,56 @@ class Gitlab::Seeder::Projects
public: 1 # 1m projects = 5m total
}
+ BATCH_SIZE = 100_000
+
def seed!
Sidekiq::Testing.inline! do
create_real_projects!
create_large_projects!
- create_mass_projects!
end
end
+ def self.insert_project_namespaces_sql(type:, range:)
+ <<~SQL
+ INSERT INTO namespaces (name, path, parent_id, owner_id, type, visibility_level, created_at, updated_at)
+ SELECT
+ 'Seed project ' || seq || ' ' || ('{#{Gitlab::Seeder::Projects.visibility_per_user}}'::text[])[seq] AS project_name,
+ '#{Gitlab::Seeder::MASS_INSERT_PROJECT_START}' || ('{#{Gitlab::Seeder::Projects.visibility_per_user}}'::text[])[seq] || '_' || seq AS namespace_path,
+ n.id AS parent_id,
+ n.owner_id AS owner_id,
+ 'Project' AS type,
+ ('{#{Gitlab::Seeder::Projects.visibility_level_per_user}}'::int[])[seq] AS visibility_level,
+ NOW() AS created_at,
+ NOW() AS updated_at
+ FROM namespaces n
+ CROSS JOIN generate_series(1, #{Gitlab::Seeder::Projects.projects_per_user_count}) AS seq
+ WHERE type='#{type}' AND path LIKE '#{Gitlab::Seeder::MASS_INSERT_PREFIX}%'
+ AND n.id BETWEEN #{range.first} AND #{range.last}
+ ON CONFLICT DO NOTHING;
+ SQL
+ end
+
+ def self.insert_projects_sql(type:, range:)
+ <<~SQL
+ INSERT INTO projects (name, path, creator_id, namespace_id, project_namespace_id, visibility_level, created_at, updated_at)
+ SELECT
+ n.name AS project_name,
+ n.path AS project_path,
+ n.owner_id AS creator_id,
+ n.parent_id AS namespace_id,
+ n.id AS project_namespace_id,
+ n.visibility_level AS visibility_level,
+ NOW() AS created_at,
+ NOW() AS updated_at
+ FROM namespaces n
+ WHERE type = 'Project' AND n.parent_id IN (
+ SELECT id FROM namespaces n1 WHERE type='#{type}'
+ AND path LIKE '#{Gitlab::Seeder::MASS_INSERT_PREFIX}%' AND n1.id BETWEEN #{range.first} AND #{range.last}
+ )
+ ON CONFLICT DO NOTHING;
+ SQL
+ end
+
private
def create_real_projects!
@@ -156,55 +198,26 @@ class Gitlab::Seeder::Projects
end
end
- def create_mass_projects!
- projects_per_user_count = MASS_PROJECTS_COUNT_PER_USER.values.sum
- visibility_per_user = ['private'] * MASS_PROJECTS_COUNT_PER_USER.fetch(:private) +
- ['internal'] * MASS_PROJECTS_COUNT_PER_USER.fetch(:internal) +
- ['public'] * MASS_PROJECTS_COUNT_PER_USER.fetch(:public)
- visibility_level_per_user = visibility_per_user.map { |visibility| Gitlab::VisibilityLevel.level_value(visibility) }
-
- visibility_per_user = visibility_per_user.join(',')
- visibility_level_per_user = visibility_level_per_user.join(',')
-
- Gitlab::Seeder.with_mass_insert(User.count * projects_per_user_count, "Projects and relations") do
- ActiveRecord::Base.connection.execute <<~SQL
- INSERT INTO projects (name, path, creator_id, namespace_id, visibility_level, created_at, updated_at)
- SELECT
- 'Seed project ' || seq || ' ' || ('{#{visibility_per_user}}'::text[])[seq] AS project_name,
- '#{Gitlab::Seeder::MASS_INSERT_PROJECT_START}' || ('{#{visibility_per_user}}'::text[])[seq] || '_' || seq AS project_path,
- u.id AS user_id,
- n.id AS namespace_id,
- ('{#{visibility_level_per_user}}'::int[])[seq] AS visibility_level,
- NOW() AS created_at,
- NOW() AS updated_at
- FROM users u
- CROSS JOIN generate_series(1, #{projects_per_user_count}) AS seq
- JOIN namespaces n ON n.owner_id=u.id
- SQL
-
- ActiveRecord::Base.connection.execute <<~SQL
- INSERT INTO project_features (project_id, merge_requests_access_level, issues_access_level, wiki_access_level,
- pages_access_level)
- SELECT
- id,
- #{ProjectFeature::ENABLED} AS merge_requests_access_level,
- #{ProjectFeature::ENABLED} AS issues_access_level,
- #{ProjectFeature::ENABLED} AS wiki_access_level,
- #{ProjectFeature::ENABLED} AS pages_access_level
- FROM projects ON CONFLICT (project_id) DO NOTHING;
- SQL
-
- ActiveRecord::Base.connection.execute <<~SQL
- INSERT INTO routes (source_id, source_type, name, path)
- SELECT
- p.id,
- 'Project',
- u.name || ' / ' || p.name,
- u.username || '/' || p.path
- FROM projects p JOIN users u ON u.id=p.creator_id
- ON CONFLICT (source_type, source_id) DO NOTHING;
- SQL
- end
+ def self.projects_per_user_count
+ MASS_PROJECTS_COUNT_PER_USER.values.sum
+ end
+
+ def self.visibility_per_user_array
+ ['private'] * MASS_PROJECTS_COUNT_PER_USER.fetch(:private) +
+ ['internal'] * MASS_PROJECTS_COUNT_PER_USER.fetch(:internal) +
+ ['public'] * MASS_PROJECTS_COUNT_PER_USER.fetch(:public)
+ end
+
+ def self.visibility_level_per_user_map
+ visibility_per_user_array.map { |visibility| Gitlab::VisibilityLevel.level_value(visibility) }
+ end
+
+ def self.visibility_per_user
+ visibility_per_user_array.join(',')
+ end
+
+ def self.visibility_level_per_user
+ visibility_level_per_user_map.join(',')
end
end
diff --git a/db/fixtures/development/03_project_1_user_projects.rb b/db/fixtures/development/03_project_1_user_projects.rb
new file mode 100644
index 00000000000..0b7ac5396b8
--- /dev/null
+++ b/db/fixtures/development/03_project_1_user_projects.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+class Gitlab::Seeder::UserProjects
+ def seed!
+ create_user_projects!
+ end
+
+ private
+
+ def create_user_projects!
+ user_namespaces = Namespace.where("path LIKE ?", "#{Gitlab::Seeder::MASS_INSERT_PREFIX}%").where(type: 'User')
+
+ Gitlab::Seeder.with_mass_insert(user_namespaces.count * Gitlab::Seeder::Projects.projects_per_user_count, "User projects and corresponding project namespaces") do
+ user_namespaces.each_batch(of: Gitlab::Seeder::Projects::BATCH_SIZE) do |batch, index|
+ range = batch.pluck(Arel.sql('MIN(id)'), Arel.sql('MAX(id)')).first
+ count = index * batch.size * Gitlab::Seeder::Projects.projects_per_user_count
+
+ Gitlab::Seeder.log_message("Creating project namespaces: #{count}.")
+ ActiveRecord::Base.connection.execute(Gitlab::Seeder::Projects.insert_project_namespaces_sql(type: 'User', range: range))
+
+ Gitlab::Seeder.log_message("Creating projects: #{count}.")
+ ActiveRecord::Base.connection.execute(Gitlab::Seeder::Projects.insert_projects_sql(type: 'User', range: range))
+ end
+ end
+ end
+end
+
+Gitlab::Seeder.quiet do
+ projects = Gitlab::Seeder::UserProjects.new
+ projects.seed!
+end
diff --git a/db/fixtures/development/03_project_2_group_projects.rb b/db/fixtures/development/03_project_2_group_projects.rb
new file mode 100644
index 00000000000..fe44a1974cf
--- /dev/null
+++ b/db/fixtures/development/03_project_2_group_projects.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+class Gitlab::Seeder::GroupProjects
+ def seed!
+ create_projects!
+ end
+
+ private
+
+ def create_projects!
+ groups = Namespace.where("path LIKE ?", "#{Gitlab::Seeder::MASS_INSERT_PREFIX}%").where(type: 'Group')
+
+ Gitlab::Seeder.with_mass_insert(groups.count * Gitlab::Seeder::Projects.projects_per_user_count, "Projects and corresponding project namespaces") do
+ groups.each_batch(of: Gitlab::Seeder::Projects::BATCH_SIZE) do |batch, index|
+ range = batch.pluck(Arel.sql('MIN(id)'), Arel.sql('MAX(id)')).first
+ count = index * batch.size * Gitlab::Seeder::Projects.projects_per_user_count
+
+ Gitlab::Seeder.log_message("Creating projects namespaces: #{count}.")
+ ActiveRecord::Base.connection.execute(Gitlab::Seeder::Projects.insert_project_namespaces_sql(type: 'Group', range: range))
+
+ Gitlab::Seeder.log_message("Creating projects: #{count}.")
+ ActiveRecord::Base.connection.execute(Gitlab::Seeder::Projects.insert_projects_sql(type: 'Group', range: range))
+ end
+ end
+ end
+end
+
+Gitlab::Seeder.quiet do
+ projects = Gitlab::Seeder::GroupProjects.new
+ projects.seed!
+end
diff --git a/db/fixtures/development/03_project_3_features.rb b/db/fixtures/development/03_project_3_features.rb
new file mode 100644
index 00000000000..374d46d030e
--- /dev/null
+++ b/db/fixtures/development/03_project_3_features.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+class Gitlab::Seeder::ProjectFeatures
+ include ActionView::Helpers::NumberHelper
+
+ BATCH_SIZE = 100_000
+
+ def seed!
+ create_project_features!
+ end
+
+ def create_project_features!
+ Gitlab::Seeder.with_mass_insert(Project.count, "Project features") do
+ Project.each_batch(of: BATCH_SIZE) do |batch, index|
+ range = batch.pluck(Arel.sql('MIN(id)'), Arel.sql('MAX(id)')).first
+ count = index * batch.size
+
+ Gitlab::Seeder.log_message("Creating project features: #{count}.")
+ ActiveRecord::Base.connection.execute <<~SQL
+ INSERT INTO project_features (project_id, merge_requests_access_level, issues_access_level, wiki_access_level, pages_access_level)
+ SELECT
+ id,
+ #{ProjectFeature::ENABLED} AS merge_requests_access_level,
+ #{ProjectFeature::ENABLED} AS issues_access_level,
+ #{ProjectFeature::ENABLED} AS wiki_access_level,
+ #{ProjectFeature::ENABLED} AS pages_access_level
+ FROM projects
+ WHERE projects.id BETWEEN #{range.first} AND #{range.last}
+ ON CONFLICT DO NOTHING;
+ SQL
+ end
+ end
+ end
+end
+
+Gitlab::Seeder.quiet do
+ projects = Gitlab::Seeder::ProjectFeatures.new
+ projects.seed!
+end
diff --git a/db/fixtures/development/03_project_4_routes.rb b/db/fixtures/development/03_project_4_routes.rb
new file mode 100644
index 00000000000..3340849a733
--- /dev/null
+++ b/db/fixtures/development/03_project_4_routes.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+class Gitlab::Seeder::ProjectRoutes
+ include ActionView::Helpers::NumberHelper
+
+ BATCH_SIZE = 100_000
+
+ def seed!
+ create_project_routes!
+ end
+
+ def create_project_routes!
+ Gitlab::Seeder.with_mass_insert(Project.count, "Project routes") do
+ Project.each_batch(of: BATCH_SIZE / 2) do |batch, index|
+ range = batch.pluck(Arel.sql('MIN(id)'), Arel.sql('MAX(id)')).first
+ count = index * batch.size
+
+ Gitlab::Seeder.log_message("Creating project routes: #{count}.")
+ ActiveRecord::Base.connection.execute <<~SQL
+ INSERT INTO routes (namespace_id, source_id, source_type, name, path)
+ SELECT
+ p.project_namespace_id as namespace_id,
+ p.id as source_id,
+ 'Project',
+ routes.name || ' / ' || p.name,
+ routes.path || '/' || p.path
+ FROM projects p
+ INNER JOIN routes ON routes.source_id = p.namespace_id and source_type = 'Namespace'
+ WHERE p.id BETWEEN #{range.first} AND #{range.last}
+ ON CONFLICT DO NOTHING;
+ SQL
+ end
+ end
+ end
+end
+
+Gitlab::Seeder.quiet do
+ projects = Gitlab::Seeder::ProjectRoutes.new
+ projects.seed!
+end
diff --git a/db/fixtures/development/04_labels.rb b/db/fixtures/development/04_labels.rb
index 21d552c89f5..aff8331a191 100644
--- a/db/fixtures/development/04_labels.rb
+++ b/db/fixtures/development/04_labels.rb
@@ -37,13 +37,15 @@ class Gitlab::Seeder::ProjectLabels
end
Gitlab::Seeder.quiet do
- puts "\nGenerating group labels"
- Group.all.find_each do |group|
- Gitlab::Seeder::GroupLabels.new(group).seed!
+ label_per_group = 10
+ puts "\nGenerating group labels: #{Group.not_mass_generated.count * label_per_group}"
+ Group.not_mass_generated.find_each do |group|
+ Gitlab::Seeder::GroupLabels.new(group, label_per_group: label_per_group).seed!
end
- puts "\nGenerating project labels"
+ label_per_project = 5
+ puts "\nGenerating project labels: #{Project.not_mass_generated.count * label_per_project}"
Project.not_mass_generated.find_each do |project|
- Gitlab::Seeder::ProjectLabels.new(project).seed!
+ Gitlab::Seeder::ProjectLabels.new(project, label_per_project: label_per_project).seed!
end
end
diff --git a/db/fixtures/development/06_teams.rb b/db/fixtures/development/06_teams.rb
index 94d3aa59710..7aaaa48d6d4 100644
--- a/db/fixtures/development/06_teams.rb
+++ b/db/fixtures/development/06_teams.rb
@@ -2,7 +2,7 @@ require './spec/support/sidekiq_middleware'
Sidekiq::Testing.inline! do
Gitlab::Seeder.quiet do
- Group.all.each do |group|
+ Group.not_mass_generated.each do |group|
User.not_mass_generated.sample(4).each do |user|
if group.add_user(user, Gitlab::Access.values.sample).persisted?
print '.'
diff --git a/db/fixtures/development/32_crm.rb b/db/fixtures/development/32_crm.rb
index bad2fc56ed3..1701763aba0 100644
--- a/db/fixtures/development/32_crm.rb
+++ b/db/fixtures/development/32_crm.rb
@@ -29,7 +29,7 @@ class Gitlab::Seeder::Crm
group_id: group.id,
first_name: first_name,
last_name: last_name,
- email: "#{first_name}.#{last_name}@example.org",
+ email: "#{first_name}.#{last_name}-#{index}@example.org",
organization_id: organization_id
)
@@ -41,7 +41,7 @@ end
Gitlab::Seeder.quiet do
puts "\nGenerating group crm organizations and contacts"
- Group.all.find_each do |group|
+ Group.not_mass_generated.where('parent_id IS NULL').first(10).each do |group|
Gitlab::Seeder::Crm.new(group).seed!
end
end
diff --git a/db/fixtures/development/33_triage_ops.rb b/db/fixtures/development/33_triage_ops.rb
index f4d74af15ca..1bb1f6c05d9 100644
--- a/db/fixtures/development/33_triage_ops.rb
+++ b/db/fixtures/development/33_triage_ops.rb
@@ -14,15 +14,19 @@ class Gitlab::Seeder::TriageOps
Sidekiq::Testing.inline! do
puts "Ensuring required groups"
ensure_group('gitlab-com')
+ ensure_group('gitlab-com/gl-security/appsec')
ensure_group('gitlab-jh/jh-team')
ensure_group('gitlab-org')
ensure_group('gitlab-org/gitlab-core-team/community-members')
ensure_group('gitlab-org/security')
+
puts "Ensuring required projects"
ensure_project('gitlab-org/gitlab')
ensure_project('gitlab-org/security/gitlab')
+
puts "Ensuring required bot user"
ensure_bot_user
+
puts "Setting up webhooks"
ensure_webhook_for('gitlab-com')
ensure_webhook_for('gitlab-org')
diff --git a/db/migrate/20220113164801_add_diffs_colors_to_user_preferences.rb b/db/migrate/20220113164801_add_diffs_colors_to_user_preferences.rb
new file mode 100644
index 00000000000..00e8e574722
--- /dev/null
+++ b/db/migrate/20220113164801_add_diffs_colors_to_user_preferences.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddDiffsColorsToUserPreferences < Gitlab::Database::Migration[1.0]
+ enable_lock_retries!
+
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20220113164901_add_text_limit_to_user_preferences_diffs_colors.rb
+ def change
+ add_column :user_preferences, :diffs_deletion_color, :text
+ add_column :user_preferences, :diffs_addition_color, :text
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+end
diff --git a/db/migrate/20220113164901_add_text_limit_to_user_preferences_diffs_colors.rb b/db/migrate/20220113164901_add_text_limit_to_user_preferences_diffs_colors.rb
new file mode 100644
index 00000000000..9ae1c875194
--- /dev/null
+++ b/db/migrate/20220113164901_add_text_limit_to_user_preferences_diffs_colors.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddTextLimitToUserPreferencesDiffsColors < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :user_preferences, :diffs_deletion_color, 7
+ add_text_limit :user_preferences, :diffs_addition_color, 7
+ end
+
+ def down
+ remove_text_limit :user_preferences, :diffs_addition_color
+ remove_text_limit :user_preferences, :diffs_deletion_color
+ end
+end
diff --git a/db/migrate/20220120160625_remove_temp_index_on_id_from_vulnerability_occurrences.rb b/db/migrate/20220120160625_remove_temp_index_on_id_from_vulnerability_occurrences.rb
new file mode 100644
index 00000000000..747cabcd865
--- /dev/null
+++ b/db/migrate/20220120160625_remove_temp_index_on_id_from_vulnerability_occurrences.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveTempIndexOnIdFromVulnerabilityOccurrences < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'tmp_idx_vulnerability_occurrences_on_id_where_report_type_7_99'
+
+ disable_ddl_transaction!
+
+ def up
+ remove_concurrent_index_by_name :vulnerability_occurrences, name: INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :vulnerability_occurrences, :id, where: 'report_type IN (7, 99)', name: INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220302110724_add_group_features_table.rb b/db/migrate/20220302110724_add_group_features_table.rb
new file mode 100644
index 00000000000..9d9204afec2
--- /dev/null
+++ b/db/migrate/20220302110724_add_group_features_table.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class AddGroupFeaturesTable < Gitlab::Database::Migration[1.0]
+ enable_lock_retries!
+
+ def up
+ create_table :group_features, id: false do |t|
+ t.references :group, index: false, foreign_key: { to_table: :namespaces, on_delete: :cascade }, null: false
+ t.timestamps_with_timezone null: false
+ t.integer :wiki_access_level, default: Featurable::ENABLED, null: false, limit: 2
+ end
+
+ execute('ALTER TABLE group_features ADD PRIMARY KEY (group_id)')
+ end
+
+ def down
+ drop_table :group_features
+ end
+end
diff --git a/db/migrate/20220310011530_add_database_grafana_config_to_application_settings.rb b/db/migrate/20220310011530_add_database_grafana_config_to_application_settings.rb
new file mode 100644
index 00000000000..7752fbba12f
--- /dev/null
+++ b/db/migrate/20220310011530_add_database_grafana_config_to_application_settings.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddDatabaseGrafanaConfigToApplicationSettings < Gitlab::Database::Migration[1.0]
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20220307002607_add_text_limit_to_db_reindexing_grafana_application_settings
+ def change
+ add_column :application_settings, :encrypted_database_grafana_api_key, :binary
+ add_column :application_settings, :encrypted_database_grafana_api_key_iv, :binary
+ add_column :application_settings, :database_grafana_api_url, :text
+ add_column :application_settings, :database_grafana_tag, :text
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+end
diff --git a/db/migrate/20220310011613_add_text_limit_to_database_grafana_application_settings.rb b/db/migrate/20220310011613_add_text_limit_to_database_grafana_application_settings.rb
new file mode 100644
index 00000000000..72bcf493d6e
--- /dev/null
+++ b/db/migrate/20220310011613_add_text_limit_to_database_grafana_application_settings.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddTextLimitToDatabaseGrafanaApplicationSettings < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :application_settings, :database_grafana_api_url, 255
+ add_text_limit :application_settings, :database_grafana_tag, 255
+ end
+
+ def down
+ remove_text_limit :application_settings, :database_grafana_tag
+ remove_text_limit :application_settings, :database_grafana_api_url
+ end
+end
diff --git a/db/migrate/20220314184009_create_protected_environment_approval_rules.rb b/db/migrate/20220314184009_create_protected_environment_approval_rules.rb
new file mode 100644
index 00000000000..f0db2c004ed
--- /dev/null
+++ b/db/migrate/20220314184009_create_protected_environment_approval_rules.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class CreateProtectedEnvironmentApprovalRules < Gitlab::Database::Migration[1.0]
+ def up
+ create_table :protected_environment_approval_rules do |t|
+ t.references :protected_environment,
+ index: { name: :index_approval_rule_on_protected_environment_id },
+ foreign_key: { to_table: :protected_environments, on_delete: :cascade },
+ null: false
+
+ t.bigint :user_id
+ t.bigint :group_id
+ t.timestamps_with_timezone null: false
+ t.integer :access_level, limit: 2
+ t.integer :required_approvals, null: false, limit: 2
+
+ t.index :user_id
+ t.index :group_id
+
+ t.check_constraint "((access_level IS NOT NULL) AND (group_id IS NULL) AND (user_id IS NULL)) OR " \
+ "((user_id IS NOT NULL) AND (access_level IS NULL) AND (group_id IS NULL)) OR " \
+ "((group_id IS NOT NULL) AND (user_id IS NULL) AND (access_level IS NULL))"
+ t.check_constraint "required_approvals > 0"
+ end
+ end
+
+ def down
+ drop_table :protected_environment_approval_rules
+ end
+end
diff --git a/db/migrate/20220314184109_add_user_fk_to_protected_environment_approval_rules.rb b/db/migrate/20220314184109_add_user_fk_to_protected_environment_approval_rules.rb
new file mode 100644
index 00000000000..c339f465da5
--- /dev/null
+++ b/db/migrate/20220314184109_add_user_fk_to_protected_environment_approval_rules.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddUserFkToProtectedEnvironmentApprovalRules < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_foreign_key :protected_environment_approval_rules, :users, column: :user_id, on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists :protected_environment_approval_rules, column: :user_id
+ end
+ end
+end
diff --git a/db/migrate/20220314184209_add_group_fk_to_protected_environment_approval_rules.rb b/db/migrate/20220314184209_add_group_fk_to_protected_environment_approval_rules.rb
new file mode 100644
index 00000000000..57c4f7dea33
--- /dev/null
+++ b/db/migrate/20220314184209_add_group_fk_to_protected_environment_approval_rules.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddGroupFkToProtectedEnvironmentApprovalRules < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_foreign_key :protected_environment_approval_rules, :namespaces, column: :group_id, on_delete: :cascade
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists :protected_environment_approval_rules, column: :group_id
+ end
+ end
+end
diff --git a/db/migrate/20220314194009_add_approval_rule_id_to_deployment_approvals.rb b/db/migrate/20220314194009_add_approval_rule_id_to_deployment_approvals.rb
new file mode 100644
index 00000000000..6e12f568f6e
--- /dev/null
+++ b/db/migrate/20220314194009_add_approval_rule_id_to_deployment_approvals.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddApprovalRuleIdToDeploymentApprovals < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :deployment_approvals, :approval_rule_id, :bigint
+ end
+end
diff --git a/db/migrate/20220314204009_add_approval_rule_fk_to_deployment_approvals.rb b/db/migrate/20220314204009_add_approval_rule_fk_to_deployment_approvals.rb
new file mode 100644
index 00000000000..ba49103b4d3
--- /dev/null
+++ b/db/migrate/20220314204009_add_approval_rule_fk_to_deployment_approvals.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class AddApprovalRuleFkToDeploymentApprovals < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_deployment_approvals_on_approval_rule_id'
+
+ def up
+ add_concurrent_index :deployment_approvals, :approval_rule_id, name: INDEX_NAME
+ add_concurrent_foreign_key :deployment_approvals, :protected_environment_approval_rules, column: :approval_rule_id, on_delete: :nullify
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key_if_exists :deployment_approvals, column: :approval_rule_id
+ end
+
+ remove_concurrent_index_by_name :deployment_approvals, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220316095126_add_creator_id_to_deploy_tokens.rb b/db/migrate/20220316095126_add_creator_id_to_deploy_tokens.rb
new file mode 100644
index 00000000000..22a92081b37
--- /dev/null
+++ b/db/migrate/20220316095126_add_creator_id_to_deploy_tokens.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddCreatorIdToDeployTokens < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :deploy_tokens, :creator_id, :bigint
+ end
+end
diff --git a/db/migrate/20220316202200_add_migration_plan_to_container_repositories.rb b/db/migrate/20220316202200_add_migration_plan_to_container_repositories.rb
new file mode 100644
index 00000000000..baeff52542f
--- /dev/null
+++ b/db/migrate/20220316202200_add_migration_plan_to_container_repositories.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddMigrationPlanToContainerRepositories < Gitlab::Database::Migration[1.0]
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20220316202402_add_text_limit_to_container_repositories_migration_plan
+ def change
+ add_column(:container_repositories, :migration_plan, :text)
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+end
diff --git a/db/migrate/20220316202402_add_text_limit_to_container_repositories_migration_plan.rb b/db/migrate/20220316202402_add_text_limit_to_container_repositories_migration_plan.rb
new file mode 100644
index 00000000000..a9f653c742f
--- /dev/null
+++ b/db/migrate/20220316202402_add_text_limit_to_container_repositories_migration_plan.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddTextLimitToContainerRepositoriesMigrationPlan < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :container_repositories, :migration_plan, 255
+ end
+
+ def down
+ remove_text_limit :container_repositories, :migration_plan
+ end
+end
diff --git a/db/migrate/20220317170122_add_notification_level_to_namespace_root_storage_statistics.rb b/db/migrate/20220317170122_add_notification_level_to_namespace_root_storage_statistics.rb
new file mode 100644
index 00000000000..3c0b41e0b42
--- /dev/null
+++ b/db/migrate/20220317170122_add_notification_level_to_namespace_root_storage_statistics.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddNotificationLevelToNamespaceRootStorageStatistics < Gitlab::Database::Migration[1.0]
+ enable_lock_retries!
+
+ def up
+ add_column :namespace_root_storage_statistics, :notification_level, :integer, limit: 2, default: 100, null: false
+ end
+
+ def down
+ remove_column :namespace_root_storage_statistics, :notification_level
+ end
+end
diff --git a/db/migrate/20220318120802_add_target_platforms_to_project_setting.rb b/db/migrate/20220318120802_add_target_platforms_to_project_setting.rb
new file mode 100644
index 00000000000..0e8f206e56d
--- /dev/null
+++ b/db/migrate/20220318120802_add_target_platforms_to_project_setting.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddTargetPlatformsToProjectSetting < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :project_settings, :target_platforms, :string, array: true, default: [], null: false, if_not_exists: true
+ end
+end
diff --git a/db/migrate/20220318141037_add_pages_onboarding_state.rb b/db/migrate/20220318141037_add_pages_onboarding_state.rb
new file mode 100644
index 00000000000..e320bee63c4
--- /dev/null
+++ b/db/migrate/20220318141037_add_pages_onboarding_state.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class AddPagesOnboardingState < Gitlab::Database::Migration[1.0]
+ def up
+ add_column :project_pages_metadata, :onboarding_complete, :boolean, default: false, null: false
+ end
+
+ def down
+ remove_column :project_pages_metadata, :onboarding_complete
+ end
+end
diff --git a/db/migrate/20220321150028_add_started_at_to_batched_background_migrations_table.rb b/db/migrate/20220321150028_add_started_at_to_batched_background_migrations_table.rb
new file mode 100644
index 00000000000..38a2c4de2f9
--- /dev/null
+++ b/db/migrate/20220321150028_add_started_at_to_batched_background_migrations_table.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddStartedAtToBatchedBackgroundMigrationsTable < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :batched_background_migrations, :started_at, :datetime_with_timezone
+ end
+end
diff --git a/db/migrate/20220321234317_remove_all_issuable_escalation_statuses.rb b/db/migrate/20220321234317_remove_all_issuable_escalation_statuses.rb
new file mode 100644
index 00000000000..a6ea1820160
--- /dev/null
+++ b/db/migrate/20220321234317_remove_all_issuable_escalation_statuses.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class RemoveAllIssuableEscalationStatuses < Gitlab::Database::Migration[1.0]
+ BATCH_SIZE = 5_000
+
+ disable_ddl_transaction!
+
+ # Removes records from previous backfill. Records for
+ # existing incidents will be created entirely as-needed.
+ #
+ # See db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb,
+ # & IncidentManagement::IssuableEscalationStatuses::[BuildService,PrepareUpdateService]
+ def up
+ each_batch_range('incident_management_issuable_escalation_statuses', of: BATCH_SIZE) do |min, max|
+ execute <<~SQL
+ DELETE FROM incident_management_issuable_escalation_statuses
+ WHERE id BETWEEN #{min} AND #{max}
+ SQL
+ end
+ end
+
+ def down
+ # no-op
+ #
+ # Potential rollback/re-run should not have impact, as these
+ # records are not required to be present in the application.
+ # The corresponding feature flag is also disabled,
+ # preventing any user-facing access to the records.
+ end
+end
diff --git a/db/migrate/20220322143441_add_dora_incidents_count.rb b/db/migrate/20220322143441_add_dora_incidents_count.rb
new file mode 100644
index 00000000000..155bd979171
--- /dev/null
+++ b/db/migrate/20220322143441_add_dora_incidents_count.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddDoraIncidentsCount < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :dora_daily_metrics, :incidents_count, :integer
+ end
+end
diff --git a/db/migrate/20220322205004_change_search_rate_limit_default_values.rb b/db/migrate/20220322205004_change_search_rate_limit_default_values.rb
new file mode 100644
index 00000000000..34ebdddb8eb
--- /dev/null
+++ b/db/migrate/20220322205004_change_search_rate_limit_default_values.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class ChangeSearchRateLimitDefaultValues < Gitlab::Database::Migration[1.0]
+ def change
+ change_column_default :application_settings, :search_rate_limit, from: 30, to: 300
+ change_column_default :application_settings, :search_rate_limit_unauthenticated, from: 10, to: 100
+ end
+end
diff --git a/db/migrate/20220324171254_add_public_git_lab_runner_releases_url_to_application_settings.rb b/db/migrate/20220324171254_add_public_git_lab_runner_releases_url_to_application_settings.rb
new file mode 100644
index 00000000000..af963fa5454
--- /dev/null
+++ b/db/migrate/20220324171254_add_public_git_lab_runner_releases_url_to_application_settings.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddPublicGitLabRunnerReleasesUrlToApplicationSettings < Gitlab::Database::Migration[1.0]
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20220324173554_add_text_limit_to_public_git_lab_runner_releases_url_application_settings
+ def change
+ add_column :application_settings, :public_runner_releases_url, :text, null: false, default: 'https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-runner/releases'
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+end
diff --git a/db/migrate/20220324173554_add_text_limit_to_public_git_lab_runner_releases_url_application_settings.rb b/db/migrate/20220324173554_add_text_limit_to_public_git_lab_runner_releases_url_application_settings.rb
new file mode 100644
index 00000000000..26f7447021b
--- /dev/null
+++ b/db/migrate/20220324173554_add_text_limit_to_public_git_lab_runner_releases_url_application_settings.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddTextLimitToPublicGitLabRunnerReleasesUrlApplicationSettings < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :application_settings, :public_runner_releases_url, 255
+ end
+
+ def down
+ remove_text_limit :application_settings, :public_runner_releases_url
+ end
+end
diff --git a/db/migrate/20220324175325_add_key_data_to_secure_files.rb b/db/migrate/20220324175325_add_key_data_to_secure_files.rb
new file mode 100644
index 00000000000..70dfd64be27
--- /dev/null
+++ b/db/migrate/20220324175325_add_key_data_to_secure_files.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddKeyDataToSecureFiles < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ unless column_exists? :ci_secure_files, :key_data
+ add_column :ci_secure_files, :key_data, :text
+ end
+
+ add_text_limit :ci_secure_files, :key_data, 128
+ end
+
+ def down
+ remove_column :ci_secure_files, :key_data
+ end
+end
diff --git a/db/migrate/20220329061545_add_repository_size_to_plan_limits.rb b/db/migrate/20220329061545_add_repository_size_to_plan_limits.rb
new file mode 100644
index 00000000000..2c84780dc2b
--- /dev/null
+++ b/db/migrate/20220329061545_add_repository_size_to_plan_limits.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class AddRepositorySizeToPlanLimits < Gitlab::Database::Migration[1.0]
+ def up
+ add_column(:plan_limits, :repository_size, :bigint, default: 0, null: false)
+ end
+
+ def down
+ remove_column(:plan_limits, :repository_size)
+ end
+end
diff --git a/db/migrate/20220329095632_add_theme_to_broadcast_message.rb b/db/migrate/20220329095632_add_theme_to_broadcast_message.rb
new file mode 100644
index 00000000000..ae5971469f9
--- /dev/null
+++ b/db/migrate/20220329095632_add_theme_to_broadcast_message.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddThemeToBroadcastMessage < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :broadcast_messages, :theme, :smallint, null: false, default: 0
+ end
+end
diff --git a/db/migrate/20220329110630_add_ci_namespace_mirrors_unnest_index_on_traversal_ids.rb b/db/migrate/20220329110630_add_ci_namespace_mirrors_unnest_index_on_traversal_ids.rb
new file mode 100644
index 00000000000..6f5d7b4c71e
--- /dev/null
+++ b/db/migrate/20220329110630_add_ci_namespace_mirrors_unnest_index_on_traversal_ids.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class AddCiNamespaceMirrorsUnnestIndexOnTraversalIds < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_ci_namespace_mirrors_on_traversal_ids_unnest'
+
+ def up
+ return if index_exists_by_name?(:ci_namespace_mirrors, INDEX_NAME)
+
+ # We add only 4-levels since on average it is not expected that namespaces
+ # will be so granular beyond this point
+ disable_statement_timeout do
+ execute <<-SQL
+ CREATE INDEX CONCURRENTLY #{INDEX_NAME} ON ci_namespace_mirrors
+ USING btree ((traversal_ids[1]), (traversal_ids[2]), (traversal_ids[3]), (traversal_ids[4]))
+ INCLUDE (traversal_ids, namespace_id)
+ SQL
+ end
+ end
+
+ def down
+ remove_concurrent_index_by_name(:ci_namespace_mirrors, INDEX_NAME)
+ end
+end
diff --git a/db/migrate/20220331174026_add_submit_field_to_dast_site_profiles.rb b/db/migrate/20220331174026_add_submit_field_to_dast_site_profiles.rb
new file mode 100644
index 00000000000..00c46b59b1c
--- /dev/null
+++ b/db/migrate/20220331174026_add_submit_field_to_dast_site_profiles.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class AddSubmitFieldToDastSiteProfiles < Gitlab::Database::Migration[1.0]
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20220331174459_add_text_limit_to_submit_field_dast_site_profiles
+ def change
+ add_column :dast_site_profiles, :auth_submit_field, :text
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+end
diff --git a/db/migrate/20220331174459_add_text_limit_to_submit_field_dast_site_profiles.rb b/db/migrate/20220331174459_add_text_limit_to_submit_field_dast_site_profiles.rb
new file mode 100644
index 00000000000..291d52a0122
--- /dev/null
+++ b/db/migrate/20220331174459_add_text_limit_to_submit_field_dast_site_profiles.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddTextLimitToSubmitFieldDastSiteProfiles < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :dast_site_profiles, :auth_submit_field, 255
+ end
+
+ def down
+ remove_text_limit :dast_site_profiles, :auth_submit_field
+ end
+end
diff --git a/db/migrate/20220401044858_add_user_id_and_state_index_to_merge_request_assignees.rb b/db/migrate/20220401044858_add_user_id_and_state_index_to_merge_request_assignees.rb
new file mode 100644
index 00000000000..b869b3d9b52
--- /dev/null
+++ b/db/migrate/20220401044858_add_user_id_and_state_index_to_merge_request_assignees.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddUserIdAndStateIndexToMergeRequestAssignees < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_on_merge_request_assignees_user_id_and_state'
+
+ def up
+ add_concurrent_index :merge_request_assignees, [:user_id, :state], where: 'state = 2', name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :merge_request_assignees, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220401045116_add_user_id_and_state_index_to_merge_request_reviewers.rb b/db/migrate/20220401045116_add_user_id_and_state_index_to_merge_request_reviewers.rb
new file mode 100644
index 00000000000..0788dd9583c
--- /dev/null
+++ b/db/migrate/20220401045116_add_user_id_and_state_index_to_merge_request_reviewers.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddUserIdAndStateIndexToMergeRequestReviewers < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_on_merge_request_reviewers_user_id_and_state'
+
+ def up
+ add_concurrent_index :merge_request_reviewers, [:user_id, :state], where: 'state = 2', name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :merge_request_reviewers, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220401110443_add_on_hold_until_column_for_batched_migration.rb b/db/migrate/20220401110443_add_on_hold_until_column_for_batched_migration.rb
new file mode 100644
index 00000000000..4771b50d566
--- /dev/null
+++ b/db/migrate/20220401110443_add_on_hold_until_column_for_batched_migration.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class AddOnHoldUntilColumnForBatchedMigration < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :batched_background_migrations, :on_hold_until, :timestamptz,
+ comment: 'execution of this migration is on hold until this time'
+ end
+end
diff --git a/db/migrate/20220401110511_add_runtime_data_columns_to_vsa_aggregations.rb b/db/migrate/20220401110511_add_runtime_data_columns_to_vsa_aggregations.rb
new file mode 100644
index 00000000000..09960c7add6
--- /dev/null
+++ b/db/migrate/20220401110511_add_runtime_data_columns_to_vsa_aggregations.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class AddRuntimeDataColumnsToVsaAggregations < Gitlab::Database::Migration[1.0]
+ def up
+ change_table(:analytics_cycle_analytics_aggregations, bulk: true) do |t|
+ t.integer :full_runtimes_in_seconds, array: true, default: [], null: false
+ t.integer :full_processed_records, array: true, default: [], null: false
+ t.column :last_full_merge_requests_updated_at, :datetime_with_timezone
+ t.column :last_full_issues_updated_at, :datetime_with_timezone
+ t.integer :last_full_issues_id
+ t.integer :last_full_merge_requests_id
+ end
+ end
+
+ def down
+ remove_column :analytics_cycle_analytics_aggregations, :full_runtimes_in_seconds
+ remove_column :analytics_cycle_analytics_aggregations, :full_processed_records
+ remove_column :analytics_cycle_analytics_aggregations, :last_full_merge_requests_updated_at
+ remove_column :analytics_cycle_analytics_aggregations, :last_full_issues_updated_at
+ remove_column :analytics_cycle_analytics_aggregations, :last_full_issues_id
+ remove_column :analytics_cycle_analytics_aggregations, :last_full_merge_requests_id
+ end
+end
diff --git a/db/migrate/20220401113123_add_check_constraint_to_vsa_aggregation_runtime_data_columns.rb b/db/migrate/20220401113123_add_check_constraint_to_vsa_aggregation_runtime_data_columns.rb
new file mode 100644
index 00000000000..4863a1f0030
--- /dev/null
+++ b/db/migrate/20220401113123_add_check_constraint_to_vsa_aggregation_runtime_data_columns.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class AddCheckConstraintToVsaAggregationRuntimeDataColumns < Gitlab::Database::Migration[1.0]
+ FULL_RUNTIMES_IN_SECONDS_CONSTRAINT = 'full_runtimes_in_seconds_size'
+ FULL_PROCESSED_RECORDS_CONSTRAINT = 'full_processed_records_size'
+
+ disable_ddl_transaction!
+
+ def up
+ add_check_constraint(:analytics_cycle_analytics_aggregations,
+ 'CARDINALITY(full_runtimes_in_seconds) <= 10',
+ FULL_RUNTIMES_IN_SECONDS_CONSTRAINT)
+
+ add_check_constraint(:analytics_cycle_analytics_aggregations,
+ 'CARDINALITY(full_processed_records) <= 10',
+ FULL_PROCESSED_RECORDS_CONSTRAINT)
+ end
+
+ def down
+ remove_check_constraint :analytics_cycle_analytics_aggregations, FULL_RUNTIMES_IN_SECONDS_CONSTRAINT
+ remove_check_constraint :analytics_cycle_analytics_aggregations, FULL_PROCESSED_RECORDS_CONSTRAINT
+ end
+end
diff --git a/db/migrate/20220404114106_add_container_registry_size_to_project_statistics.rb b/db/migrate/20220404114106_add_container_registry_size_to_project_statistics.rb
new file mode 100644
index 00000000000..4f5778bf321
--- /dev/null
+++ b/db/migrate/20220404114106_add_container_registry_size_to_project_statistics.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class AddContainerRegistrySizeToProjectStatistics < Gitlab::Database::Migration[1.0]
+ enable_lock_retries!
+
+ def change
+ add_column :project_statistics, :container_registry_size, :bigint, default: 0, null: false
+ end
+end
diff --git a/db/migrate/20220404170446_add_index_for_non_requested_non_invited_awaiting_members.rb b/db/migrate/20220404170446_add_index_for_non_requested_non_invited_awaiting_members.rb
new file mode 100644
index 00000000000..d1d2dc510cf
--- /dev/null
+++ b/db/migrate/20220404170446_add_index_for_non_requested_non_invited_awaiting_members.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class AddIndexForNonRequestedNonInvitedAwaitingMembers < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'index_members_on_non_requested_non_invited_and_state_awaiting'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :members,
+ :source_id,
+ where: '((requested_at IS NULL) AND (invite_token IS NULL) AND (access_level > 5) AND (state = 1))',
+ name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :members, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220405061122_add_license_scanning_action_to_onboarding_progresses.rb b/db/migrate/20220405061122_add_license_scanning_action_to_onboarding_progresses.rb
new file mode 100644
index 00000000000..0c07d1f18ba
--- /dev/null
+++ b/db/migrate/20220405061122_add_license_scanning_action_to_onboarding_progresses.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddLicenseScanningActionToOnboardingProgresses < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :onboarding_progresses, :license_scanning_run_at, :datetime_with_timezone
+ end
+end
diff --git a/db/migrate/20220405125459_add_non_migrated_index_to_container_repositories.rb b/db/migrate/20220405125459_add_non_migrated_index_to_container_repositories.rb
new file mode 100644
index 00000000000..7aad10c288b
--- /dev/null
+++ b/db/migrate/20220405125459_add_non_migrated_index_to_container_repositories.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class AddNonMigratedIndexToContainerRepositories < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ # follow up issue: https://gitlab.com/gitlab-org/gitlab/-/issues/358407
+ INDEX_NAME = 'tmp_idx_container_repos_on_non_migrated'
+ MIGRATION_PHASE_1_ENDED_AT = '2022-01-23'
+
+ def up
+ add_concurrent_index :container_repositories,
+ [:project_id, :id],
+ name: INDEX_NAME,
+ where: "migration_state != 'import_done' AND created_at < '#{MIGRATION_PHASE_1_ENDED_AT}'"
+ end
+
+ def down
+ remove_concurrent_index_by_name :container_repositories, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220405181814_add_arkose_settings_to_application_settings.rb b/db/migrate/20220405181814_add_arkose_settings_to_application_settings.rb
new file mode 100644
index 00000000000..d8c06cd8229
--- /dev/null
+++ b/db/migrate/20220405181814_add_arkose_settings_to_application_settings.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class AddArkoseSettingsToApplicationSettings < Gitlab::Database::Migration[1.0]
+ # rubocop:disable Migration/AddLimitToTextColumns
+ # limit is added in 20220405203843_add_text_limit_to_arkose_verify_url_application_settings.rb
+ def up
+ add_column :application_settings, :encrypted_arkose_labs_public_api_key, :binary
+ add_column :application_settings, :encrypted_arkose_labs_public_api_key_iv, :binary
+
+ add_column :application_settings, :encrypted_arkose_labs_private_api_key, :binary
+ add_column :application_settings, :encrypted_arkose_labs_private_api_key_iv, :binary
+
+ add_column :application_settings, :arkose_labs_verify_api_url, :text
+ end
+ # rubocop:enable Migration/AddLimitToTextColumns
+
+ def down
+ remove_column :application_settings, :encrypted_arkose_labs_public_api_key
+ remove_column :application_settings, :encrypted_arkose_labs_public_api_key_iv
+
+ remove_column :application_settings, :encrypted_arkose_labs_private_api_key
+ remove_column :application_settings, :encrypted_arkose_labs_private_api_key_iv
+
+ remove_column :application_settings, :arkose_labs_verify_api_url
+ end
+end
diff --git a/db/migrate/20220405203843_add_text_limit_to_arkose_verify_url_application_settings.rb b/db/migrate/20220405203843_add_text_limit_to_arkose_verify_url_application_settings.rb
new file mode 100644
index 00000000000..f3c7960b29d
--- /dev/null
+++ b/db/migrate/20220405203843_add_text_limit_to_arkose_verify_url_application_settings.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddTextLimitToArkoseVerifyUrlApplicationSettings < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_text_limit :application_settings, :arkose_labs_verify_api_url, 255
+ end
+
+ def down
+ remove_text_limit :application_settings, :arkose_labs_verify_api_url
+ end
+end
diff --git a/db/migrate/20220406113217_add_inactive_project_deletion_to_application_settings.rb b/db/migrate/20220406113217_add_inactive_project_deletion_to_application_settings.rb
new file mode 100644
index 00000000000..78970d308d9
--- /dev/null
+++ b/db/migrate/20220406113217_add_inactive_project_deletion_to_application_settings.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class AddInactiveProjectDeletionToApplicationSettings < Gitlab::Database::Migration[1.0]
+ def change
+ add_column :application_settings, :delete_inactive_projects, :boolean, default: false, null: false
+ add_column :application_settings, :inactive_projects_delete_after_months, :integer, default: 2, null: false
+ add_column :application_settings, :inactive_projects_min_size_mb, :integer, default: 0, null: false
+ add_column :application_settings, :inactive_projects_send_warning_email_after_months, :integer, default: 1,
+ null: false
+ end
+end
diff --git a/db/migrate/20220406121831_add_index_on_status_for_batched_background_migrations.rb b/db/migrate/20220406121831_add_index_on_status_for_batched_background_migrations.rb
new file mode 100644
index 00000000000..bc3b9125b4b
--- /dev/null
+++ b/db/migrate/20220406121831_add_index_on_status_for_batched_background_migrations.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddIndexOnStatusForBatchedBackgroundMigrations < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :batched_background_migrations, :status
+ end
+
+ def down
+ remove_concurrent_index_by_name :batched_background_migrations, :index_batched_background_migrations_on_status
+ end
+end
diff --git a/db/migrate/20220407135820_add_epics_relative_position.rb b/db/migrate/20220407135820_add_epics_relative_position.rb
new file mode 100644
index 00000000000..8ab62667e1e
--- /dev/null
+++ b/db/migrate/20220407135820_add_epics_relative_position.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class AddEpicsRelativePosition < Gitlab::Database::Migration[1.0]
+ DOWNTIME = false
+
+ def up
+ return unless table_exists?(:epics)
+ return if column_exists?(:epics, :relative_position)
+
+ add_column :epics, :relative_position, :integer
+
+ execute('UPDATE epics SET relative_position=id*500')
+ end
+
+ def down
+ # no-op - this column should normally exist if epics table exists too
+ end
+end
diff --git a/db/migrate/20220408001450_add_work_item_type_name_unique_index_null_namespaces.rb b/db/migrate/20220408001450_add_work_item_type_name_unique_index_null_namespaces.rb
new file mode 100644
index 00000000000..bcb0e32a4e7
--- /dev/null
+++ b/db/migrate/20220408001450_add_work_item_type_name_unique_index_null_namespaces.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class AddWorkItemTypeNameUniqueIndexNullNamespaces < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = :idx_work_item_types_on_namespace_id_and_name_null_namespace
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :work_item_types,
+ 'TRIM(BOTH FROM LOWER(name)), (namespace_id IS NULL)',
+ unique: true,
+ name: INDEX_NAME,
+ where: 'namespace_id IS NULL'
+ end
+
+ def down
+ remove_concurrent_index_by_name :work_item_types, INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220408135815_update_index_on_greated_done_at_on_container_repositories.rb b/db/migrate/20220408135815_update_index_on_greated_done_at_on_container_repositories.rb
new file mode 100644
index 00000000000..b906a867895
--- /dev/null
+++ b/db/migrate/20220408135815_update_index_on_greated_done_at_on_container_repositories.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class UpdateIndexOnGreatedDoneAtOnContainerRepositories < Gitlab::Database::Migration[1.0]
+ OLD_INDEX_NAME = 'index_container_repositories_on_greatest_done_at'
+ NEW_INDEX_NAME = 'index_container_repositories_on_greatest_completed_at'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :container_repositories,
+ 'GREATEST(migration_pre_import_done_at, migration_import_done_at, migration_aborted_at, migration_skipped_at)',
+ where: "migration_state IN ('import_done', 'pre_import_done', 'import_aborted', 'import_skipped')",
+ name: NEW_INDEX_NAME
+ remove_concurrent_index_by_name :container_repositories, OLD_INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :container_repositories,
+ 'GREATEST(migration_pre_import_done_at, migration_import_done_at, migration_aborted_at)',
+ where: "migration_state IN ('import_done', 'pre_import_done', 'import_aborted')",
+ name: OLD_INDEX_NAME
+ remove_concurrent_index_by_name :container_repositories, NEW_INDEX_NAME
+ end
+end
diff --git a/db/migrate/20220412171810_add_otp_secret_expires_at.rb b/db/migrate/20220412171810_add_otp_secret_expires_at.rb
new file mode 100644
index 00000000000..883293c87f8
--- /dev/null
+++ b/db/migrate/20220412171810_add_otp_secret_expires_at.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class AddOtpSecretExpiresAt < Gitlab::Database::Migration[1.0]
+ enable_lock_retries!
+
+ def change
+ # rubocop: disable Migration/AddColumnsToWideTables
+ add_column :users, :otp_secret_expires_at, :datetime_with_timezone
+ # rubocop: enable Migration/AddColumnsToWideTables
+ end
+end
diff --git a/db/migrate/20220413075921_update_index_on_packages_build_infos.rb b/db/migrate/20220413075921_update_index_on_packages_build_infos.rb
new file mode 100644
index 00000000000..96f37fab24e
--- /dev/null
+++ b/db/migrate/20220413075921_update_index_on_packages_build_infos.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class UpdateIndexOnPackagesBuildInfos < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ NEW_INDEX_NAME = 'index_packages_build_infos_package_id_pipeline_id_id'
+ OLD_INDEX_NAME = 'index_packages_build_infos_package_id_pipeline_id'
+
+ def up
+ add_concurrent_index :packages_build_infos,
+ [:package_id, :pipeline_id, :id],
+ name: NEW_INDEX_NAME
+ remove_concurrent_index_by_name :packages_build_infos, OLD_INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :packages_build_infos,
+ [:package_id, :pipeline_id],
+ name: OLD_INDEX_NAME
+ remove_concurrent_index_by_name :packages_build_infos, NEW_INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb b/db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb
index 7f0168be1a4..f8239b6e0cd 100644
--- a/db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb
+++ b/db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb
@@ -1,26 +1,9 @@
# frozen_string_literal: true
class BackfillIncidentIssueEscalationStatuses < Gitlab::Database::Migration[1.0]
- MIGRATION = 'BackfillIncidentIssueEscalationStatuses'
- DELAY_INTERVAL = 2.minutes
- BATCH_SIZE = 20_000
-
- disable_ddl_transaction!
-
- class Issue < ActiveRecord::Base
- include EachBatch
-
- self.table_name = 'issues'
- end
-
- def up
- relation = Issue.all
-
- queue_background_migration_jobs_by_range_at_intervals(
- relation, MIGRATION, DELAY_INTERVAL, batch_size: BATCH_SIZE, track_jobs: true)
- end
-
- def down
+ # Removed in favor of creating records for existing incidents
+ # as-needed. See db/migrate/20220321234317_remove_all_issuable_escalation_statuses.rb.
+ def change
# no-op
end
end
diff --git a/db/post_migrate/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size.rb b/db/post_migrate/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size.rb
new file mode 100644
index 00000000000..49c9efc497c
--- /dev/null
+++ b/db/post_migrate/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class BackfillNamespaceStatisticsWithDependencyProxySize < Gitlab::Database::Migration[1.0]
+ DELAY_INTERVAL = 2.minutes.to_i
+ BATCH_SIZE = 500
+ MIGRATION = 'PopulateNamespaceStatistics'
+
+ disable_ddl_transaction!
+
+ def up
+ groups = exec_query <<~SQL
+ SELECT dependency_proxy_manifests.group_id FROM dependency_proxy_manifests
+ UNION
+ SELECT dependency_proxy_blobs.group_id from dependency_proxy_blobs
+ SQL
+
+ groups.rows.flatten.in_groups_of(BATCH_SIZE, false).each_with_index do |group_ids, index|
+ migrate_in(index * DELAY_INTERVAL, MIGRATION, [group_ids, [:dependency_proxy_size]])
+ end
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20220223124428_schedule_merge_topics_with_same_name.rb b/db/post_migrate/20220223124428_schedule_merge_topics_with_same_name.rb
new file mode 100644
index 00000000000..7e79c89203a
--- /dev/null
+++ b/db/post_migrate/20220223124428_schedule_merge_topics_with_same_name.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class ScheduleMergeTopicsWithSameName < Gitlab::Database::Migration[1.0]
+ MIGRATION = 'MergeTopicsWithSameName'
+ BATCH_SIZE = 100
+
+ disable_ddl_transaction!
+
+ class Topic < ActiveRecord::Base
+ self.table_name = 'topics'
+ end
+
+ def up
+ Topic.select('LOWER(name) as name').group('LOWER(name)').having('COUNT(*) > 1').order('LOWER(name)')
+ .in_groups_of(BATCH_SIZE, false).each_with_index do |group, i|
+ migrate_in((i + 1) * 2.minutes, MIGRATION, [group.map(&:name)])
+ end
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20220302114046_backfill_group_features.rb b/db/post_migrate/20220302114046_backfill_group_features.rb
new file mode 100644
index 00000000000..dd8961b8bee
--- /dev/null
+++ b/db/post_migrate/20220302114046_backfill_group_features.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+class BackfillGroupFeatures < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ MIGRATION = 'BackfillGroupFeatures'
+ INTERVAL = 2.minutes
+ BATCH_SIZE = 10_000
+ SUB_BATCH_SIZE = 1_000
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :namespaces,
+ :id,
+ BATCH_SIZE,
+ job_interval: INTERVAL,
+ batch_size: BATCH_SIZE,
+ max_batch_size: BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ Gitlab::Database::BackgroundMigration::BatchedMigration
+ .for_configuration(MIGRATION, :namespaces, :id, [BATCH_SIZE])
+ .delete_all
+ end
+end
diff --git a/db/post_migrate/20220311010352_create_scan_id_and_id_index_on_security_findings.rb b/db/post_migrate/20220311010352_create_scan_id_and_id_index_on_security_findings.rb
new file mode 100644
index 00000000000..1b72c4b0a78
--- /dev/null
+++ b/db/post_migrate/20220311010352_create_scan_id_and_id_index_on_security_findings.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class CreateScanIdAndIdIndexOnSecurityFindings < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'index_security_findings_on_scan_id_and_id'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :security_findings, [:scan_id, :id], name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :security_findings, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220315171027_add_tmp_index_to_support_leaky_regex_cleanup.rb b/db/post_migrate/20220315171027_add_tmp_index_to_support_leaky_regex_cleanup.rb
new file mode 100644
index 00000000000..6f4bd29337e
--- /dev/null
+++ b/db/post_migrate/20220315171027_add_tmp_index_to_support_leaky_regex_cleanup.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class AddTmpIndexToSupportLeakyRegexCleanup < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = "tmp_index_merge_requests_draft_and_status_leaky_regex"
+ LEAKY_REGEXP_STR = "^\\[draft\\]|\\(draft\\)|draft:|draft|\\[WIP\\]|WIP:|WIP"
+ CORRECTED_REGEXP_STR = "^(\\[draft\\]|\\(draft\\)|draft:|draft|\\[WIP\\]|WIP:|WIP)"
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :merge_requests, :id,
+ where: "draft = true AND state_id = 1 AND ((title)::text ~* '#{LEAKY_REGEXP_STR}'::text) AND ((title)::text !~* '#{CORRECTED_REGEXP_STR}'::text)",
+ name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :merge_requests, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220315171129_cleanup_draft_data_from_faulty_regex.rb b/db/post_migrate/20220315171129_cleanup_draft_data_from_faulty_regex.rb
new file mode 100644
index 00000000000..be81bf85f62
--- /dev/null
+++ b/db/post_migrate/20220315171129_cleanup_draft_data_from_faulty_regex.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+
+class CleanupDraftDataFromFaultyRegex < Gitlab::Database::Migration[1.0]
+ MIGRATION = 'CleanupDraftDataFromFaultyRegex'
+ DELAY_INTERVAL = 5.minutes
+ BATCH_SIZE = 20
+
+ disable_ddl_transaction!
+
+ class MergeRequest < ActiveRecord::Base
+ LEAKY_REGEXP_STR = "^\\[draft\\]|\\(draft\\)|draft:|draft|\\[WIP\\]|WIP:|WIP"
+ CORRECTED_REGEXP_STR = "^(\\[draft\\]|\\(draft\\)|draft:|draft|\\[WIP\\]|WIP:|WIP)"
+
+ self.table_name = 'merge_requests'
+
+ include ::EachBatch
+
+ def self.eligible
+ where(state_id: 1)
+ .where(draft: true)
+ .where("title ~* ?", LEAKY_REGEXP_STR)
+ .where("title !~* ?", CORRECTED_REGEXP_STR)
+ end
+ end
+
+ def up
+ return unless Gitlab.com?
+
+ queue_background_migration_jobs_by_range_at_intervals(
+ MergeRequest.eligible,
+ MIGRATION,
+ DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ track_jobs: true
+ )
+ end
+
+ def down
+ # noop
+ #
+ end
+end
diff --git a/db/post_migrate/20220315181125_remove_issues_work_item_type_id_index.rb b/db/post_migrate/20220315181125_remove_issues_work_item_type_id_index.rb
new file mode 100644
index 00000000000..6650201c063
--- /dev/null
+++ b/db/post_migrate/20220315181125_remove_issues_work_item_type_id_index.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveIssuesWorkItemTypeIdIndex < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_issues_on_work_item_type_id'
+
+ def up
+ remove_concurrent_index_by_name :issues, name: INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :issues, :work_item_type_id, name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220315181130_add_temporary_issue_type_index_for_work_item_types.rb b/db/post_migrate/20220315181130_add_temporary_issue_type_index_for_work_item_types.rb
new file mode 100644
index 00000000000..52c525d81fb
--- /dev/null
+++ b/db/post_migrate/20220315181130_add_temporary_issue_type_index_for_work_item_types.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddTemporaryIssueTypeIndexForWorkItemTypes < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'tmp_index_issues_on_issue_type_and_id'
+
+ def up
+ add_concurrent_index :issues, [:issue_type, :id], name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :issues, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220315181136_backfill_work_item_type_id_on_issues.rb b/db/post_migrate/20220315181136_backfill_work_item_type_id_on_issues.rb
new file mode 100644
index 00000000000..8838a27f233
--- /dev/null
+++ b/db/post_migrate/20220315181136_backfill_work_item_type_id_on_issues.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+class BackfillWorkItemTypeIdOnIssues < Gitlab::Database::Migration[1.0]
+ MIGRATION = 'BackfillWorkItemTypeIdForIssues'
+ BATCH_CLASS_NAME = 'BackfillIssueWorkItemTypeBatchingStrategy'
+ BATCH_SIZE = 10_000
+ MAX_BATCH_SIZE = 30_000
+ SUB_BATCH_SIZE = 100
+ INTERVAL = 2.minutes
+
+ class MigrationWorkItemType < ApplicationRecord
+ self.table_name = 'work_item_types'
+
+ def self.id_by_type
+ where(namespace_id: nil).order(:base_type).pluck(:base_type, :id).to_h
+ end
+ end
+
+ def up
+ # We expect no more than 5 types. Only 3 of them are expected to have associated issues at the moment
+ MigrationWorkItemType.id_by_type.each do |base_type, type_id|
+ queue_batched_background_migration(
+ MIGRATION,
+ :issues,
+ :id,
+ base_type,
+ type_id,
+ job_interval: INTERVAL,
+ batch_size: BATCH_SIZE,
+ max_batch_size: MAX_BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE,
+ batch_class_name: BATCH_CLASS_NAME
+ )
+ end
+ end
+
+ def down
+ Gitlab::Database::BackgroundMigration::BatchedMigration.where(job_class_name: MIGRATION).delete_all
+ end
+end
diff --git a/db/post_migrate/20220315211043_add_index_to_vulnerability_reads.rb b/db/post_migrate/20220315211043_add_index_to_vulnerability_reads.rb
new file mode 100644
index 00000000000..9fe78fb0a4e
--- /dev/null
+++ b/db/post_migrate/20220315211043_add_index_to_vulnerability_reads.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class AddIndexToVulnerabilityReads < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'index_vulnerability_reads_common_finder_query'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index(
+ :vulnerability_reads,
+ %i[project_id state report_type severity vulnerability_id],
+ name: INDEX_NAME,
+ order: { vulnerability_id: :desc }
+ )
+ end
+
+ def down
+ remove_concurrent_index_by_name(
+ :vulnerability_reads,
+ INDEX_NAME
+ )
+ end
+end
diff --git a/db/post_migrate/20220316102900_add_index_to_deploy_tokens_on_creator_id.rb b/db/post_migrate/20220316102900_add_index_to_deploy_tokens_on_creator_id.rb
new file mode 100644
index 00000000000..7cc942c813b
--- /dev/null
+++ b/db/post_migrate/20220316102900_add_index_to_deploy_tokens_on_creator_id.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddIndexToDeployTokensOnCreatorId < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_deploy_tokens_on_creator_id'
+
+ def up
+ add_concurrent_index :deploy_tokens, :creator_id, name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index :deploy_tokens, :creator_id, name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220316102902_add_user_foreign_key_to_deploy_tokens.rb b/db/post_migrate/20220316102902_add_user_foreign_key_to_deploy_tokens.rb
new file mode 100644
index 00000000000..57379e4c752
--- /dev/null
+++ b/db/post_migrate/20220316102902_add_user_foreign_key_to_deploy_tokens.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddUserForeignKeyToDeployTokens < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_foreign_key :deploy_tokens, :users, column: :creator_id, on_delete: :nullify, reverse_lock_order: true
+ end
+
+ def down
+ with_lock_retries do
+ remove_foreign_key :deploy_tokens, column: :creator_id
+ end
+ end
+end
diff --git a/db/post_migrate/20220316112118_update_organizations_name_index_add_id.rb b/db/post_migrate/20220316112118_update_organizations_name_index_add_id.rb
new file mode 100644
index 00000000000..4d78e78e9db
--- /dev/null
+++ b/db/post_migrate/20220316112118_update_organizations_name_index_add_id.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class UpdateOrganizationsNameIndexAddId < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ OLD_INDEX = 'index_customer_relations_organizations_on_unique_name_per_group'
+ NEW_INDEX = 'index_organizations_on_unique_name_per_group'
+
+ def up
+ add_concurrent_index :customer_relations_organizations, 'group_id, lower(name), id', name: NEW_INDEX, unique: true
+
+ remove_concurrent_index_by_name :customer_relations_organizations, OLD_INDEX
+ end
+
+ def down
+ add_concurrent_index :customer_relations_organizations, 'group_id, lower(name)', name: OLD_INDEX, unique: true
+
+ remove_concurrent_index_by_name :customer_relations_organizations, NEW_INDEX
+ end
+end
diff --git a/db/post_migrate/20220316112206_add_contacts_index_on_group_email_and_id.rb b/db/post_migrate/20220316112206_add_contacts_index_on_group_email_and_id.rb
new file mode 100644
index 00000000000..21434a80314
--- /dev/null
+++ b/db/post_migrate/20220316112206_add_contacts_index_on_group_email_and_id.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddContactsIndexOnGroupEmailAndId < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_customer_relations_contacts_on_unique_email_per_group'
+
+ def up
+ add_concurrent_index :customer_relations_contacts, 'group_id, lower(email), id', name: INDEX_NAME, unique: true
+ end
+
+ def down
+ remove_concurrent_index_by_name :customer_relations_contacts, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220316165539_add_index_to_vulnerabilities.rb b/db/post_migrate/20220316165539_add_index_to_vulnerabilities.rb
new file mode 100644
index 00000000000..1128ccd7b16
--- /dev/null
+++ b/db/post_migrate/20220316165539_add_index_to_vulnerabilities.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class AddIndexToVulnerabilities < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'index_vulnerabilites_common_finder_query'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index(
+ :vulnerabilities,
+ %i[project_id state report_type severity id],
+ name: INDEX_NAME
+ )
+ end
+
+ def down
+ remove_concurrent_index_by_name(
+ :vulnerabilities,
+ INDEX_NAME
+ )
+ end
+end
diff --git a/db/post_migrate/20220316202640_populate_container_repositories_migration_plan.rb b/db/post_migrate/20220316202640_populate_container_repositories_migration_plan.rb
new file mode 100644
index 00000000000..7eef227ec3c
--- /dev/null
+++ b/db/post_migrate/20220316202640_populate_container_repositories_migration_plan.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class PopulateContainerRepositoriesMigrationPlan < Gitlab::Database::Migration[1.0]
+ MIGRATION = 'PopulateContainerRepositoryMigrationPlan'
+ DELAY_INTERVAL = 2.minutes.to_i
+ BATCH_SIZE = 1500
+
+ disable_ddl_transaction!
+
+ def up
+ queue_background_migration_jobs_by_range_at_intervals(
+ define_batchable_model('container_repositories'),
+ MIGRATION,
+ DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ track_jobs: true
+ )
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20220317161914_remove_ci_runners_ci_builds_runner_id_fk.rb b/db/post_migrate/20220317161914_remove_ci_runners_ci_builds_runner_id_fk.rb
new file mode 100644
index 00000000000..3c7c4e73199
--- /dev/null
+++ b/db/post_migrate/20220317161914_remove_ci_runners_ci_builds_runner_id_fk.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class RemoveCiRunnersCiBuildsRunnerIdFk < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ return unless foreign_key_exists?(:ci_builds, :ci_runners, name: "fk_e4ef9c2f27")
+
+ with_lock_retries do
+ execute('LOCK ci_runners, ci_builds IN ACCESS EXCLUSIVE MODE') if transaction_open?
+
+ remove_foreign_key_if_exists(:ci_builds, :ci_runners, name: "fk_e4ef9c2f27")
+ end
+ end
+
+ def down
+ add_concurrent_foreign_key :ci_builds, :ci_runners, name: "fk_e4ef9c2f27", column: :runner_id, target_column: :id, on_delete: :nullify, validate: false
+ end
+end
diff --git a/db/post_migrate/20220318111040_add_indexes_for_primary_email_second_cleanup_migration.rb b/db/post_migrate/20220318111040_add_indexes_for_primary_email_second_cleanup_migration.rb
new file mode 100644
index 00000000000..5dcb99b36b6
--- /dev/null
+++ b/db/post_migrate/20220318111040_add_indexes_for_primary_email_second_cleanup_migration.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+class AddIndexesForPrimaryEmailSecondCleanupMigration < Gitlab::Database::Migration[1.0]
+ USERS_INDEX = :index_users_on_id_for_primary_email_migration
+ EMAIL_INDEX = :index_emails_on_email_user_id
+
+ disable_ddl_transaction!
+
+ def up
+ unless index_exists_by_name?(:users, USERS_INDEX)
+
+ disable_statement_timeout do
+ execute <<~SQL
+ CREATE INDEX CONCURRENTLY #{USERS_INDEX}
+ ON users (id) INCLUDE (email, confirmed_at)
+ WHERE confirmed_at IS NOT NULL
+ SQL
+ end
+ end
+
+ add_concurrent_index :emails, [:email, :user_id], name: EMAIL_INDEX
+ end
+
+ def down
+ remove_concurrent_index_by_name :users, USERS_INDEX
+ remove_concurrent_index_by_name :emails, EMAIL_INDEX
+ end
+end
diff --git a/db/post_migrate/20220318111729_cleanup_after_fixing_issue_when_admin_changed_primary_email.rb b/db/post_migrate/20220318111729_cleanup_after_fixing_issue_when_admin_changed_primary_email.rb
new file mode 100644
index 00000000000..3d29d78573a
--- /dev/null
+++ b/db/post_migrate/20220318111729_cleanup_after_fixing_issue_when_admin_changed_primary_email.rb
@@ -0,0 +1,55 @@
+# frozen_string_literal: true
+
+class CleanupAfterFixingIssueWhenAdminChangedPrimaryEmail < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ BATCH_SIZE = 10_000
+
+ # Stubbed class to access the User table
+ class User < ActiveRecord::Base
+ include ::EachBatch
+
+ self.table_name = 'users'
+ self.inheritance_column = :_type_disabled
+
+ scope :confirmed, -> { where.not(confirmed_at: nil) }
+
+ has_many :emails
+ end
+
+ # Stubbed class to access the Emails table
+ class Email < ActiveRecord::Base
+ self.table_name = 'emails'
+ self.inheritance_column = :_type_disabled
+
+ belongs_to :user
+ end
+
+ def up
+ # Select confirmed users that do not have their primary email in the emails table,
+ # and create the email record.
+ not_exists_condition = 'NOT EXISTS (SELECT 1 FROM emails WHERE emails.email = users.email AND emails.user_id = users.id)'
+
+ User.confirmed.each_batch(of: BATCH_SIZE) do |user_batch|
+ user_batch.select(:id, :email, :confirmed_at).where(not_exists_condition).each do |user|
+ current_time = Time.now.utc
+
+ begin
+ Email.create(
+ user_id: user.id,
+ email: user.email,
+ confirmed_at: user.confirmed_at,
+ created_at: current_time,
+ updated_at: current_time
+ )
+ rescue StandardError => error
+ Gitlab::AppLogger.error("Could not add primary email #{user.email} to emails for user with ID #{user.id} due to #{error}")
+ end
+ end
+ end
+ end
+
+ def down
+ # Intentionally left blank
+ end
+end
diff --git a/db/post_migrate/20220318111949_drop_temporary_indexes_for_primary_email_migration_second_cleanup.rb b/db/post_migrate/20220318111949_drop_temporary_indexes_for_primary_email_migration_second_cleanup.rb
new file mode 100644
index 00000000000..755751aaa1a
--- /dev/null
+++ b/db/post_migrate/20220318111949_drop_temporary_indexes_for_primary_email_migration_second_cleanup.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+class DropTemporaryIndexesForPrimaryEmailMigrationSecondCleanup < Gitlab::Database::Migration[1.0]
+ USERS_INDEX = :index_users_on_id_for_primary_email_migration
+ EMAIL_INDEX = :index_emails_on_email_user_id
+
+ disable_ddl_transaction!
+
+ def up
+ remove_concurrent_index_by_name :users, USERS_INDEX
+ remove_concurrent_index_by_name :emails, EMAIL_INDEX
+ end
+
+ def down
+ unless index_exists_by_name?(:users, USERS_INDEX)
+
+ disable_statement_timeout do
+ execute <<~SQL
+ CREATE INDEX CONCURRENTLY #{USERS_INDEX}
+ ON users (id) INCLUDE (email, confirmed_at)
+ WHERE confirmed_at IS NOT NULL
+ SQL
+ end
+ end
+
+ add_concurrent_index :emails, [:email, :user_id], name: EMAIL_INDEX
+ end
+end
diff --git a/db/post_migrate/20220321025720_alter_constraint_remote_import_url.rb b/db/post_migrate/20220321025720_alter_constraint_remote_import_url.rb
new file mode 100644
index 00000000000..90cb54cdd44
--- /dev/null
+++ b/db/post_migrate/20220321025720_alter_constraint_remote_import_url.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class AlterConstraintRemoteImportUrl < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ remove_text_limit :import_export_uploads, :remote_import_url
+ add_text_limit :import_export_uploads, :remote_import_url, 2048
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20220321201912_remove_user_email_lookup_limit.rb b/db/post_migrate/20220321201912_remove_user_email_lookup_limit.rb
new file mode 100644
index 00000000000..a95534b586e
--- /dev/null
+++ b/db/post_migrate/20220321201912_remove_user_email_lookup_limit.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class RemoveUserEmailLookupLimit < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ remove_column :application_settings, :user_email_lookup_limit
+ end
+
+ def down
+ add_column :application_settings, :user_email_lookup_limit, :integer, null: false, default: 60
+ end
+end
diff --git a/db/post_migrate/20220322023800_add_tmp_index_routes_id_for_project_namespaces.rb b/db/post_migrate/20220322023800_add_tmp_index_routes_id_for_project_namespaces.rb
new file mode 100644
index 00000000000..bc775514b75
--- /dev/null
+++ b/db/post_migrate/20220322023800_add_tmp_index_routes_id_for_project_namespaces.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddTmpIndexRoutesIdForProjectNamespaces < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'tmp_index_for_project_namespace_id_migration_on_routes'
+
+ disable_ddl_transaction!
+
+ def up
+ # Temporary index to be removed in 15.0
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/352353
+ add_concurrent_index :routes, :id, where: "namespace_id IS NULL AND source_type = 'Project'", name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :routes, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220322035654_add_migration_plan_index_to_container_repositories.rb b/db/post_migrate/20220322035654_add_migration_plan_index_to_container_repositories.rb
new file mode 100644
index 00000000000..78e331a8b63
--- /dev/null
+++ b/db/post_migrate/20220322035654_add_migration_plan_index_to_container_repositories.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddMigrationPlanIndexToContainerRepositories < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'idx_container_repos_on_migration_state_migration_plan_created'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :container_repositories,
+ [:migration_state, :migration_plan, :created_at],
+ name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :container_repositories, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220322071127_finalize_project_namespaces_backfill.rb b/db/post_migrate/20220322071127_finalize_project_namespaces_backfill.rb
new file mode 100644
index 00000000000..5a4d14dcfb7
--- /dev/null
+++ b/db/post_migrate/20220322071127_finalize_project_namespaces_backfill.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+# This migration acts as a gate-keeper for other migrations related to project namespace back-filling
+# so that other migrations that depend on project namespace back-filling cannot be run unless project namespace
+# back-filling has finalized successfully.
+class FinalizeProjectNamespacesBackfill < Gitlab::Database::Migration[1.0]
+ MIGRATION = 'ProjectNamespaces::BackfillProjectNamespaces'
+
+ def up
+ ensure_batched_background_migration_is_finished(
+ job_class_name: MIGRATION,
+ table_name: :projects,
+ column_name: :id,
+ job_arguments: [nil, 'up']
+ )
+ end
+
+ def down
+ # noop
+ end
+end
diff --git a/db/post_migrate/20220322094410_remove_wiki_notes.rb b/db/post_migrate/20220322094410_remove_wiki_notes.rb
new file mode 100644
index 00000000000..c3705e1e20f
--- /dev/null
+++ b/db/post_migrate/20220322094410_remove_wiki_notes.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class RemoveWikiNotes < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ class Note < ApplicationRecord
+ self.table_name = 'notes'
+ self.inheritance_column = :_type_disabled
+ end
+
+ def up
+ return unless Gitlab.dev_or_test_env? || Gitlab.staging? || Gitlab.com?
+
+ Note.where(noteable_type: 'Wiki', id: [97, 98, 110, 242, 272]).delete_all
+ end
+
+ def down
+ # NO-OP
+ end
+end
diff --git a/db/post_migrate/20220322132242_update_pages_onboarding_state.rb b/db/post_migrate/20220322132242_update_pages_onboarding_state.rb
new file mode 100644
index 00000000000..896ab78a266
--- /dev/null
+++ b/db/post_migrate/20220322132242_update_pages_onboarding_state.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+class UpdatePagesOnboardingState < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+ BATCH_SIZE = 75
+
+ def up
+ define_batchable_model(
+ :project_pages_metadata
+ ).where(
+ deployed: true
+ ).each_batch(
+ of: BATCH_SIZE,
+ column: :project_id
+ ) do |batch|
+ batch.update_all(onboarding_complete: true)
+ end
+ end
+
+ def down
+ define_batchable_model(
+ :project_pages_metadata
+ ).where(
+ onboarding_complete: true
+ ).each_batch(
+ of: BATCH_SIZE,
+ column: :project_id
+ ) do |batch|
+ batch.update_all(onboarding_complete: false)
+ end
+ end
+end
diff --git a/db/post_migrate/20220322205008_change_search_rate_limit_values.rb b/db/post_migrate/20220322205008_change_search_rate_limit_values.rb
new file mode 100644
index 00000000000..ed4aad72ddf
--- /dev/null
+++ b/db/post_migrate/20220322205008_change_search_rate_limit_values.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class ChangeSearchRateLimitValues < Gitlab::Database::Migration[1.0]
+ def up
+ # Change search_rate_limits to a more reasonable value
+ # as long as they are still using the default values.
+ #
+ # The reason why `search_rate_limit` could be either 30 or 60
+ # is because its value was ported over from the now deprecated
+ # `user_email_lookup_limit` which had a default value of 60.
+ execute("update application_settings set search_rate_limit=300 where search_rate_limit IN (30,60)")
+ execute("update application_settings set search_rate_limit_unauthenticated=100 where search_rate_limit_unauthenticated = 10")
+ end
+
+ def down
+ # noop. Because this migration is updating values, it is not reversible.
+ end
+end
diff --git a/db/post_migrate/20220323023800_backfill_namespace_id_for_project_routes.rb b/db/post_migrate/20220323023800_backfill_namespace_id_for_project_routes.rb
new file mode 100644
index 00000000000..b938688be2c
--- /dev/null
+++ b/db/post_migrate/20220323023800_backfill_namespace_id_for_project_routes.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+class BackfillNamespaceIdForProjectRoutes < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ MIGRATION = 'BackfillNamespaceIdForProjectRoute'
+ INTERVAL = 2.minutes
+ BATCH_SIZE = 1_000
+ MAX_BATCH_SIZE = 10_000
+ SUB_BATCH_SIZE = 200
+
+ def up
+ queue_batched_background_migration(
+ MIGRATION,
+ :routes,
+ :id,
+ job_interval: INTERVAL,
+ batch_size: BATCH_SIZE,
+ max_batch_size: MAX_BATCH_SIZE,
+ sub_batch_size: SUB_BATCH_SIZE
+ )
+ end
+
+ def down
+ Gitlab::Database::BackgroundMigration::BatchedMigration
+ .for_configuration(MIGRATION, :routes, :id, [])
+ .delete_all
+ end
+end
diff --git a/db/post_migrate/20220323130000_add_temp_index_on_null_project_namespace_ids.rb b/db/post_migrate/20220323130000_add_temp_index_on_null_project_namespace_ids.rb
new file mode 100644
index 00000000000..e73993065b0
--- /dev/null
+++ b/db/post_migrate/20220323130000_add_temp_index_on_null_project_namespace_ids.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class AddTempIndexOnNullProjectNamespaceIds < Gitlab::Database::Migration[1.0]
+ TMP_INDEX_FOR_NULL_PROJECT_NAMESPACE_ID = 'tmp_index_for_null_project_namespace_id'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :projects, :id, name: TMP_INDEX_FOR_NULL_PROJECT_NAMESPACE_ID, where: 'project_namespace_id IS NULL'
+ end
+
+ def down
+ remove_concurrent_index_by_name :projects, name: TMP_INDEX_FOR_NULL_PROJECT_NAMESPACE_ID
+ end
+end
diff --git a/db/post_migrate/20220323152202_add_index_on_visible_deployments.rb b/db/post_migrate/20220323152202_add_index_on_visible_deployments.rb
new file mode 100644
index 00000000000..57ec2f7013d
--- /dev/null
+++ b/db/post_migrate/20220323152202_add_index_on_visible_deployments.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class AddIndexOnVisibleDeployments < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_deployments_for_visible_scope'
+
+ def up
+ add_concurrent_index :deployments,
+ [:environment_id, :finished_at],
+ order: { finished_at: :desc },
+ where: 'status IN (1, 2, 3, 4, 6)',
+ name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :deployments, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220324032250_migrate_shimo_confluence_service_category.rb b/db/post_migrate/20220324032250_migrate_shimo_confluence_service_category.rb
new file mode 100644
index 00000000000..d341cc50874
--- /dev/null
+++ b/db/post_migrate/20220324032250_migrate_shimo_confluence_service_category.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class MigrateShimoConfluenceServiceCategory < Gitlab::Database::Migration[1.0]
+ MIGRATION = 'MigrateShimoConfluenceIntegrationCategory'
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 10_000
+
+ disable_ddl_transaction!
+
+ def up
+ queue_background_migration_jobs_by_range_at_intervals(
+ define_batchable_model('integrations').where(type_new: %w[Integrations::Confluence Integrations::Shimo]),
+ MIGRATION,
+ DELAY_INTERVAL,
+ batch_size: BATCH_SIZE,
+ track_jobs: true)
+ end
+
+ def down
+ end
+end
diff --git a/db/post_migrate/20220324081709_fix_and_backfill_project_namespaces_for_projects_with_duplicate_name.rb b/db/post_migrate/20220324081709_fix_and_backfill_project_namespaces_for_projects_with_duplicate_name.rb
new file mode 100644
index 00000000000..f5927a2cc16
--- /dev/null
+++ b/db/post_migrate/20220324081709_fix_and_backfill_project_namespaces_for_projects_with_duplicate_name.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class FixAndBackfillProjectNamespacesForProjectsWithDuplicateName < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ MIGRATION = 'FixDuplicateProjectNameAndPath'
+ DELAY_INTERVAL = 2.minutes
+ BATCH_SIZE = 1000
+
+ class Project < ActiveRecord::Base
+ include ::EachBatch
+
+ self.table_name = 'projects'
+
+ scope :without_project_namespace, -> { where(project_namespace_id: nil) }
+ end
+
+ def up
+ queue_background_migration_jobs_by_range_at_intervals(
+ Project.without_project_namespace, MIGRATION, DELAY_INTERVAL, batch_size: BATCH_SIZE, track_jobs: true
+ )
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20220324110247_untrack_deletions_on_ci_job_artifacts.rb b/db/post_migrate/20220324110247_untrack_deletions_on_ci_job_artifacts.rb
new file mode 100644
index 00000000000..d178c235e21
--- /dev/null
+++ b/db/post_migrate/20220324110247_untrack_deletions_on_ci_job_artifacts.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class UntrackDeletionsOnCiJobArtifacts < Gitlab::Database::Migration[1.0]
+ include Gitlab::Database::MigrationHelpers::LooseForeignKeyHelpers
+
+ enable_lock_retries!
+
+ def up
+ untrack_record_deletions(:ci_job_artifacts)
+ end
+
+ def down
+ track_record_deletions(:ci_job_artifacts)
+ end
+end
diff --git a/db/post_migrate/20220324180717_remove_project_pages_metadata_artifacts_archive_id_column.rb b/db/post_migrate/20220324180717_remove_project_pages_metadata_artifacts_archive_id_column.rb
new file mode 100644
index 00000000000..287752b6b5c
--- /dev/null
+++ b/db/post_migrate/20220324180717_remove_project_pages_metadata_artifacts_archive_id_column.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class RemoveProjectPagesMetadataArtifactsArchiveIdColumn < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ remove_column :project_pages_metadata, :artifacts_archive_id
+ end
+
+ def down
+ unless column_exists?(:project_pages_metadata, :artifacts_archive_id)
+ add_column :project_pages_metadata, :artifacts_archive_id, :bigint
+ end
+
+ add_concurrent_index(
+ :project_pages_metadata,
+ :artifacts_archive_id,
+ name: "index_project_pages_metadata_on_artifacts_archive_id"
+ )
+ end
+end
diff --git a/db/post_migrate/20220325000000_prepare_index_for_ci_job_artifacts_unlocked_with_expire_at.rb b/db/post_migrate/20220325000000_prepare_index_for_ci_job_artifacts_unlocked_with_expire_at.rb
new file mode 100644
index 00000000000..fa43f3b7f59
--- /dev/null
+++ b/db/post_migrate/20220325000000_prepare_index_for_ci_job_artifacts_unlocked_with_expire_at.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class PrepareIndexForCiJobArtifactsUnlockedWithExpireAt < Gitlab::Database::Migration[1.0]
+ TABLE_NAME = 'ci_job_artifacts'
+ INDEX_NAME = 'index_ci_job_artifacts_on_expire_at_for_removal'
+ CONDITIONS = 'locked = 0 AND expire_at IS NOT NULL'
+
+ def up
+ prepare_async_index TABLE_NAME, [:expire_at], where: CONDITIONS, name: INDEX_NAME
+ end
+
+ def down
+ unprepare_async_index_by_name TABLE_NAME, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220325000001_finalize_index_for_ci_job_artifacts_unlocked_with_expire_at.rb b/db/post_migrate/20220325000001_finalize_index_for_ci_job_artifacts_unlocked_with_expire_at.rb
new file mode 100644
index 00000000000..d0fe7ceb34f
--- /dev/null
+++ b/db/post_migrate/20220325000001_finalize_index_for_ci_job_artifacts_unlocked_with_expire_at.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class FinalizeIndexForCiJobArtifactsUnlockedWithExpireAt < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ TABLE_NAME = 'ci_job_artifacts'
+ INDEX_NAME = 'index_ci_job_artifacts_on_expire_at_for_removal'
+ CONDITIONS = 'locked = 0 AND expire_at IS NOT NULL'
+
+ def up
+ add_concurrent_index TABLE_NAME, [:expire_at], where: CONDITIONS, name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name TABLE_NAME, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220325050642_drop_integrations_template_column.rb b/db/post_migrate/20220325050642_drop_integrations_template_column.rb
new file mode 100644
index 00000000000..e110c307a38
--- /dev/null
+++ b/db/post_migrate/20220325050642_drop_integrations_template_column.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class DropIntegrationsTemplateColumn < Gitlab::Database::Migration[1.0]
+ enable_lock_retries!
+
+ def change
+ remove_column :integrations, :template, :boolean, default: false
+ end
+end
diff --git a/db/post_migrate/20220325155953_steal_background_job_for_fixing_conflicting_project_names_and_paths.rb b/db/post_migrate/20220325155953_steal_background_job_for_fixing_conflicting_project_names_and_paths.rb
new file mode 100644
index 00000000000..4c4c29e2b7c
--- /dev/null
+++ b/db/post_migrate/20220325155953_steal_background_job_for_fixing_conflicting_project_names_and_paths.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class StealBackgroundJobForFixingConflictingProjectNamesAndPaths < Gitlab::Database::Migration[1.0]
+ def up
+ Gitlab::BackgroundMigration.steal('FixDuplicateProjectNameAndPath')
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20220325160153_create_unique_index_on_projects_name_and_namespace_id.rb b/db/post_migrate/20220325160153_create_unique_index_on_projects_name_and_namespace_id.rb
new file mode 100644
index 00000000000..d1cefa76cec
--- /dev/null
+++ b/db/post_migrate/20220325160153_create_unique_index_on_projects_name_and_namespace_id.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class CreateUniqueIndexOnProjectsNameAndNamespaceId < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'unique_projects_on_name_namespace_id'
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :projects, [:name, :namespace_id], unique: true, name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :projects, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220326161803_add_cascade_delete_fk_on_project_namespace_id.rb b/db/post_migrate/20220326161803_add_cascade_delete_fk_on_project_namespace_id.rb
new file mode 100644
index 00000000000..005532c53d9
--- /dev/null
+++ b/db/post_migrate/20220326161803_add_cascade_delete_fk_on_project_namespace_id.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+class AddCascadeDeleteFkOnProjectNamespaceId < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ TARGET_COLUMN = :project_namespace_id
+
+ def up
+ # add the new FK before removing the old one
+ add_concurrent_foreign_key(
+ :projects,
+ :namespaces,
+ column: TARGET_COLUMN,
+ name: fk_name("#{TARGET_COLUMN}_new"),
+ on_delete: :cascade
+ )
+
+ with_lock_retries do
+ remove_foreign_key_if_exists(:projects, column: TARGET_COLUMN, name: fk_name(TARGET_COLUMN))
+ end
+ end
+
+ def down
+ add_concurrent_foreign_key(
+ :projects,
+ :namespaces,
+ column: TARGET_COLUMN,
+ name: fk_name(TARGET_COLUMN),
+ on_delete: :nullify
+ )
+
+ with_lock_retries do
+ remove_foreign_key_if_exists(:projects, column: TARGET_COLUMN, name: fk_name("#{TARGET_COLUMN}_new"))
+ end
+ end
+
+ def fk_name(column_name)
+ # generate a FK name
+ concurrent_foreign_key_name(:projects, column_name)
+ end
+end
diff --git a/db/post_migrate/20220326163653_add_not_null_contraint_to_project_namespace_id.rb b/db/post_migrate/20220326163653_add_not_null_contraint_to_project_namespace_id.rb
new file mode 100644
index 00000000000..2273b84d003
--- /dev/null
+++ b/db/post_migrate/20220326163653_add_not_null_contraint_to_project_namespace_id.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddNotNullContraintToProjectNamespaceId < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ add_not_null_constraint :projects, :project_namespace_id, validate: false
+ end
+
+ def down
+ remove_not_null_constraint :projects, :project_namespace_id
+ end
+end
diff --git a/db/post_migrate/20220329175119_remove_leftover_ci_job_artifact_deletions.rb b/db/post_migrate/20220329175119_remove_leftover_ci_job_artifact_deletions.rb
new file mode 100644
index 00000000000..f0c09598bfb
--- /dev/null
+++ b/db/post_migrate/20220329175119_remove_leftover_ci_job_artifact_deletions.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class RemoveLeftoverCiJobArtifactDeletions < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ def up
+ # Delete all pending record deletions in the public.ci_job_artifacts until
+ # there are no more rows left.
+ loop do
+ result = execute <<~SQL
+ DELETE FROM "loose_foreign_keys_deleted_records"
+ WHERE
+ ("loose_foreign_keys_deleted_records"."partition", "loose_foreign_keys_deleted_records"."id") IN (
+ SELECT "loose_foreign_keys_deleted_records"."partition", "loose_foreign_keys_deleted_records"."id"
+ FROM "loose_foreign_keys_deleted_records"
+ WHERE
+ "loose_foreign_keys_deleted_records"."fully_qualified_table_name" = 'public.ci_job_artifacts' AND
+ "loose_foreign_keys_deleted_records"."status" = 1
+ LIMIT 100
+ )
+ SQL
+
+ break if result.cmd_tuples == 0
+ end
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20220331074722_add_notes_null_discussion_id_temp_index_async.rb b/db/post_migrate/20220331074722_add_notes_null_discussion_id_temp_index_async.rb
new file mode 100644
index 00000000000..9f52308935b
--- /dev/null
+++ b/db/post_migrate/20220331074722_add_notes_null_discussion_id_temp_index_async.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class AddNotesNullDiscussionIdTempIndexAsync < Gitlab::Database::Migration[1.0]
+ # Temporary index to be removed in 15.0 https://gitlab.com/gitlab-org/gitlab/-/issues/357581
+ INDEX_NAME = 'tmp_index_notes_on_id_where_discussion_id_is_null'
+
+ def up
+ prepare_async_index :notes, :id, where: 'discussion_id IS NULL', name: INDEX_NAME
+ end
+
+ def down
+ unprepare_async_index_by_name :notes, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220401045621_remove_state_index_on_merge_request_assignees.rb b/db/post_migrate/20220401045621_remove_state_index_on_merge_request_assignees.rb
new file mode 100644
index 00000000000..ff62a1c646d
--- /dev/null
+++ b/db/post_migrate/20220401045621_remove_state_index_on_merge_request_assignees.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveStateIndexOnMergeRequestAssignees < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_on_merge_request_assignees_state'
+
+ def up
+ remove_concurrent_index_by_name :merge_request_assignees, INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :merge_request_assignees, :state, where: 'state = 2', name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220401045642_remove_state_index_on_merge_request_reviewers.rb b/db/post_migrate/20220401045642_remove_state_index_on_merge_request_reviewers.rb
new file mode 100644
index 00000000000..ef59d9fcc25
--- /dev/null
+++ b/db/post_migrate/20220401045642_remove_state_index_on_merge_request_reviewers.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class RemoveStateIndexOnMergeRequestReviewers < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_on_merge_request_reviewers_state'
+
+ def up
+ remove_concurrent_index_by_name :merge_request_reviewers, INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index :merge_request_reviewers, :state, where: 'state = 2', name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220404183350_add_forbidden_state_index_to_users.rb b/db/post_migrate/20220404183350_add_forbidden_state_index_to_users.rb
new file mode 100644
index 00000000000..7ae61a60b73
--- /dev/null
+++ b/db/post_migrate/20220404183350_add_forbidden_state_index_to_users.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddForbiddenStateIndexToUsers < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'users_forbidden_state_idx'
+
+ def up
+ add_concurrent_index :users, :id,
+ name: INDEX_NAME,
+ where: "confirmed_at IS NOT NULL AND (state <> ALL (ARRAY['blocked', 'banned', 'ldap_blocked']))"
+ end
+
+ def down
+ remove_concurrent_index_by_name :users, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220404184814_drop_broader_expired_artifact_index.rb b/db/post_migrate/20220404184814_drop_broader_expired_artifact_index.rb
new file mode 100644
index 00000000000..b6327b89c11
--- /dev/null
+++ b/db/post_migrate/20220404184814_drop_broader_expired_artifact_index.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class DropBroaderExpiredArtifactIndex < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ TABLE_NAME = 'ci_job_artifacts'
+ INDEX_NAME = 'ci_job_artifacts_expire_at_unlocked_idx'
+
+ def up
+ remove_concurrent_index_by_name TABLE_NAME, INDEX_NAME
+ end
+
+ def down
+ add_concurrent_index TABLE_NAME, [:expire_at], where: 'locked = 0', name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220404194649_replace_work_item_type_backfill_next_batch_strategy.rb b/db/post_migrate/20220404194649_replace_work_item_type_backfill_next_batch_strategy.rb
new file mode 100644
index 00000000000..1f2c0715f04
--- /dev/null
+++ b/db/post_migrate/20220404194649_replace_work_item_type_backfill_next_batch_strategy.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class ReplaceWorkItemTypeBackfillNextBatchStrategy < Gitlab::Database::Migration[1.0]
+ JOB_CLASS_NAME = 'BackfillWorkItemTypeIdForIssues'
+ NEW_STRATEGY_CLASS = 'BackfillIssueWorkItemTypeBatchingStrategy'
+ OLD_STRATEGY_CLASS = 'PrimaryKeyBatchingStrategy'
+
+ class InlineBatchedMigration < ApplicationRecord
+ self.table_name = :batched_background_migrations
+ end
+
+ def up
+ InlineBatchedMigration.where(job_class_name: JOB_CLASS_NAME)
+ .update_all(batch_class_name: NEW_STRATEGY_CLASS)
+ end
+
+ def down
+ InlineBatchedMigration.where(job_class_name: JOB_CLASS_NAME)
+ .update_all(batch_class_name: OLD_STRATEGY_CLASS)
+ end
+end
diff --git a/db/post_migrate/20220409160628_add_async_index_for_events_followed_users.rb b/db/post_migrate/20220409160628_add_async_index_for_events_followed_users.rb
new file mode 100644
index 00000000000..fb858248b19
--- /dev/null
+++ b/db/post_migrate/20220409160628_add_async_index_for_events_followed_users.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class AddAsyncIndexForEventsFollowedUsers < Gitlab::Database::Migration[1.0]
+ INDEX_NAME = 'index_events_for_followed_users'
+
+ def up
+ prepare_async_index :events, %I[author_id target_type action id], name: INDEX_NAME
+ end
+
+ def down
+ unprepare_async_index :events, %I[author_id target_type action id], name: INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220412044906_finalize_traversal_ids_background_migrations.rb b/db/post_migrate/20220412044906_finalize_traversal_ids_background_migrations.rb
new file mode 100644
index 00000000000..f2aa9c0b717
--- /dev/null
+++ b/db/post_migrate/20220412044906_finalize_traversal_ids_background_migrations.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class FinalizeTraversalIdsBackgroundMigrations < Gitlab::Database::Migration[1.0]
+ def up
+ finalize_background_migration('BackfillNamespaceTraversalIdsRoots')
+ finalize_background_migration('BackfillNamespaceTraversalIdsChildren')
+ end
+
+ def down
+ # no-op
+ end
+end
diff --git a/db/post_migrate/20220412143551_add_partial_index_on_unencrypted_integrations.rb b/db/post_migrate/20220412143551_add_partial_index_on_unencrypted_integrations.rb
new file mode 100644
index 00000000000..0f5415d6bf5
--- /dev/null
+++ b/db/post_migrate/20220412143551_add_partial_index_on_unencrypted_integrations.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+#
+class AddPartialIndexOnUnencryptedIntegrations < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_integrations_on_id_where_not_encrypted'
+ INDEX_FILTER_CONDITION = 'properties IS NOT NULL AND encrypted_properties IS NULL'
+
+ def up
+ add_concurrent_index :integrations, [:id],
+ where: INDEX_FILTER_CONDITION,
+ name: INDEX_NAME
+ end
+
+ def down
+ remove_concurrent_index_by_name :integrations, INDEX_NAME
+ end
+end
diff --git a/db/post_migrate/20220412143552_consume_remaining_encrypt_integration_property_jobs.rb b/db/post_migrate/20220412143552_consume_remaining_encrypt_integration_property_jobs.rb
new file mode 100644
index 00000000000..69850b3a32f
--- /dev/null
+++ b/db/post_migrate/20220412143552_consume_remaining_encrypt_integration_property_jobs.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class ConsumeRemainingEncryptIntegrationPropertyJobs < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ BATCH_SIZE = 50
+
+ def up
+ Gitlab::BackgroundMigration.steal('EncryptIntegrationProperties')
+
+ model = define_batchable_model('integrations')
+ relation = model.where.not(properties: nil).where(encrypted_properties: nil)
+
+ relation.each_batch(of: BATCH_SIZE) do |batch|
+ range = batch.pluck('MIN(id)', 'MAX(id)').first
+
+ Gitlab::BackgroundMigration::EncryptIntegrationProperties.new.perform(*range)
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/post_migrate/20220413011328_remove_partial_index_on_unencrypted_integrations.rb b/db/post_migrate/20220413011328_remove_partial_index_on_unencrypted_integrations.rb
new file mode 100644
index 00000000000..873080144ab
--- /dev/null
+++ b/db/post_migrate/20220413011328_remove_partial_index_on_unencrypted_integrations.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+#
+# The inverse of 20220412143551_add_partial_index_on_unencrypted_integrations.rb
+class RemovePartialIndexOnUnencryptedIntegrations < Gitlab::Database::Migration[1.0]
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_integrations_on_id_where_not_encrypted'
+ INDEX_FILTER_CONDITION = 'properties IS NOT NULL AND encrypted_properties IS NULL'
+
+ def down
+ add_concurrent_index :integrations, [:id],
+ where: INDEX_FILTER_CONDITION,
+ name: INDEX_NAME
+ end
+
+ def up
+ remove_concurrent_index_by_name :integrations, INDEX_NAME
+ end
+end
diff --git a/db/schema_migrations/20220113164801 b/db/schema_migrations/20220113164801
new file mode 100644
index 00000000000..8354489ac31
--- /dev/null
+++ b/db/schema_migrations/20220113164801
@@ -0,0 +1 @@
+71526ea198c64d23a35f06804f30068591e937df22d74c262fdec9ecf04bf7d4 \ No newline at end of file
diff --git a/db/schema_migrations/20220113164901 b/db/schema_migrations/20220113164901
new file mode 100644
index 00000000000..977ec8bb51b
--- /dev/null
+++ b/db/schema_migrations/20220113164901
@@ -0,0 +1 @@
+b157cec5eab77665ae57f02647c39dc0fb167d78e1894b395c46f59d791ab3e0 \ No newline at end of file
diff --git a/db/schema_migrations/20220120160625 b/db/schema_migrations/20220120160625
new file mode 100644
index 00000000000..287e364d331
--- /dev/null
+++ b/db/schema_migrations/20220120160625
@@ -0,0 +1 @@
+92485ceb25d5733efe9a35a5bd64c9f33253bb10f815590518c6fc8d1c9e5f39 \ No newline at end of file
diff --git a/db/schema_migrations/20220204095121 b/db/schema_migrations/20220204095121
new file mode 100644
index 00000000000..bf12ca08f5a
--- /dev/null
+++ b/db/schema_migrations/20220204095121
@@ -0,0 +1 @@
+bce595c1c6587e785bc49d6e5a7181b5cc0164f2201375ad82d4bd19c217cd35 \ No newline at end of file
diff --git a/db/schema_migrations/20220223124428 b/db/schema_migrations/20220223124428
new file mode 100644
index 00000000000..b163accc957
--- /dev/null
+++ b/db/schema_migrations/20220223124428
@@ -0,0 +1 @@
+8fb72b15bfaa1b58f87cb3f1836df1e8bfa1a5ddec4e480a2cb6a3c9fafe3bda \ No newline at end of file
diff --git a/db/schema_migrations/20220302110724 b/db/schema_migrations/20220302110724
new file mode 100644
index 00000000000..700a39b85c5
--- /dev/null
+++ b/db/schema_migrations/20220302110724
@@ -0,0 +1 @@
+4f565a313c37d12f24afe26a9e344d4273c54d0f080b3108d56ed98bf7299ecc \ No newline at end of file
diff --git a/db/schema_migrations/20220302114046 b/db/schema_migrations/20220302114046
new file mode 100644
index 00000000000..40488b47eb2
--- /dev/null
+++ b/db/schema_migrations/20220302114046
@@ -0,0 +1 @@
+4e2de14559b47a9bf3fa8910fdb84ff62cb18442620f4147e40e8026bf4bcf1b \ No newline at end of file
diff --git a/db/schema_migrations/20220310011530 b/db/schema_migrations/20220310011530
new file mode 100644
index 00000000000..73fa8390231
--- /dev/null
+++ b/db/schema_migrations/20220310011530
@@ -0,0 +1 @@
+a4245a3543796b48f16786e9c178f70d236b3ae4636661f021ad4e8f0c678f2c \ No newline at end of file
diff --git a/db/schema_migrations/20220310011613 b/db/schema_migrations/20220310011613
new file mode 100644
index 00000000000..fc62a04f551
--- /dev/null
+++ b/db/schema_migrations/20220310011613
@@ -0,0 +1 @@
+ef816d9391d67a34121d11e6b6cc37de92768bd21bc301fa10c6652b1a0b66b6 \ No newline at end of file
diff --git a/db/schema_migrations/20220311010352 b/db/schema_migrations/20220311010352
new file mode 100644
index 00000000000..f9f4cf28605
--- /dev/null
+++ b/db/schema_migrations/20220311010352
@@ -0,0 +1 @@
+1d1682cb14041f14f691fcf880e6446ae464645a5ccbd36687620c3279f53e25 \ No newline at end of file
diff --git a/db/schema_migrations/20220314184009 b/db/schema_migrations/20220314184009
new file mode 100644
index 00000000000..1e00cd48937
--- /dev/null
+++ b/db/schema_migrations/20220314184009
@@ -0,0 +1 @@
+258c7a3409aea1c713c2ddd6679de586e7548ce4d7c0811db1d4903f2794c660 \ No newline at end of file
diff --git a/db/schema_migrations/20220314184109 b/db/schema_migrations/20220314184109
new file mode 100644
index 00000000000..60fefe61de5
--- /dev/null
+++ b/db/schema_migrations/20220314184109
@@ -0,0 +1 @@
+85be80bb8c929d017fedfe66c1f18e4a0dbd7dd8f3b683ded60213e621ec06f4 \ No newline at end of file
diff --git a/db/schema_migrations/20220314184209 b/db/schema_migrations/20220314184209
new file mode 100644
index 00000000000..dfe5e7b5888
--- /dev/null
+++ b/db/schema_migrations/20220314184209
@@ -0,0 +1 @@
+41e7a36164fe3b1b582149d9cfbefc6ee2ce804ac85207f918c064b0ef738b53 \ No newline at end of file
diff --git a/db/schema_migrations/20220314194009 b/db/schema_migrations/20220314194009
new file mode 100644
index 00000000000..e836855b8eb
--- /dev/null
+++ b/db/schema_migrations/20220314194009
@@ -0,0 +1 @@
+e58b89906cd09577c1a773768e4cf3f97b870744e4ee6a323e0276895dff0de5 \ No newline at end of file
diff --git a/db/schema_migrations/20220314204009 b/db/schema_migrations/20220314204009
new file mode 100644
index 00000000000..ac1effdd471
--- /dev/null
+++ b/db/schema_migrations/20220314204009
@@ -0,0 +1 @@
+e2fa0265f3c14c8e6f08a4ffc4b682d8805fa634bac66c578684faaee97541cf \ No newline at end of file
diff --git a/db/schema_migrations/20220315171027 b/db/schema_migrations/20220315171027
new file mode 100644
index 00000000000..7a4c65f3b7f
--- /dev/null
+++ b/db/schema_migrations/20220315171027
@@ -0,0 +1 @@
+4c329622299c76ca753381f1ccc0686714d07eeee8acfc834e576d5a5addaafc \ No newline at end of file
diff --git a/db/schema_migrations/20220315171129 b/db/schema_migrations/20220315171129
new file mode 100644
index 00000000000..1f558096664
--- /dev/null
+++ b/db/schema_migrations/20220315171129
@@ -0,0 +1 @@
+7ca832e710026c0721ecdcd50b477073aeaf7cb795c50acd604897f85707b163 \ No newline at end of file
diff --git a/db/schema_migrations/20220315181125 b/db/schema_migrations/20220315181125
new file mode 100644
index 00000000000..93557df54c1
--- /dev/null
+++ b/db/schema_migrations/20220315181125
@@ -0,0 +1 @@
+1276e86db3e2922cd1535e98f17768d1ab0dd653317f918fb8e6819760893a47 \ No newline at end of file
diff --git a/db/schema_migrations/20220315181130 b/db/schema_migrations/20220315181130
new file mode 100644
index 00000000000..17c3ceaba52
--- /dev/null
+++ b/db/schema_migrations/20220315181130
@@ -0,0 +1 @@
+8ab13f76037450704a29220ca6af0174b373ce743620952e3bc197c952d00c1d \ No newline at end of file
diff --git a/db/schema_migrations/20220315181136 b/db/schema_migrations/20220315181136
new file mode 100644
index 00000000000..4dfb1b1a63e
--- /dev/null
+++ b/db/schema_migrations/20220315181136
@@ -0,0 +1 @@
+7dc3d314e76f26a539c0aa009bd45ea6ccc9c6108f798728909fd4b18e3c31b9 \ No newline at end of file
diff --git a/db/schema_migrations/20220315211043 b/db/schema_migrations/20220315211043
new file mode 100644
index 00000000000..6fd80db768e
--- /dev/null
+++ b/db/schema_migrations/20220315211043
@@ -0,0 +1 @@
+ae734a1ae3555a237e427dbcc0ace6c461c50cf98bc1076ca59c90b603b88c29 \ No newline at end of file
diff --git a/db/schema_migrations/20220316095126 b/db/schema_migrations/20220316095126
new file mode 100644
index 00000000000..7530bc25a82
--- /dev/null
+++ b/db/schema_migrations/20220316095126
@@ -0,0 +1 @@
+b2da8b0f113470d3836a361b61dc4e71b0031779b8d05af52e488bed076ebb1d \ No newline at end of file
diff --git a/db/schema_migrations/20220316102900 b/db/schema_migrations/20220316102900
new file mode 100644
index 00000000000..877513ccf40
--- /dev/null
+++ b/db/schema_migrations/20220316102900
@@ -0,0 +1 @@
+13acd0a862301cb5be7b9faacc02688f15e6253543fa7400c2d5f807bc254a25 \ No newline at end of file
diff --git a/db/schema_migrations/20220316102902 b/db/schema_migrations/20220316102902
new file mode 100644
index 00000000000..56082f978d9
--- /dev/null
+++ b/db/schema_migrations/20220316102902
@@ -0,0 +1 @@
+43afb0103ee0069087d6476f5c0f617db5fdb2de3cd583762967e43d5a3a1138 \ No newline at end of file
diff --git a/db/schema_migrations/20220316112118 b/db/schema_migrations/20220316112118
new file mode 100644
index 00000000000..da38f5f9fef
--- /dev/null
+++ b/db/schema_migrations/20220316112118
@@ -0,0 +1 @@
+659accb8efe0223028a74346ecf3aa5b649cda825ac7941bc932bc1d7e6f8d9a \ No newline at end of file
diff --git a/db/schema_migrations/20220316112206 b/db/schema_migrations/20220316112206
new file mode 100644
index 00000000000..5605ebf34b9
--- /dev/null
+++ b/db/schema_migrations/20220316112206
@@ -0,0 +1 @@
+d24c5a5414e44385a132e8f342cb67cc5a7c5fe4bfcc4c15c473397076350bc2 \ No newline at end of file
diff --git a/db/schema_migrations/20220316165539 b/db/schema_migrations/20220316165539
new file mode 100644
index 00000000000..a4a94a4c957
--- /dev/null
+++ b/db/schema_migrations/20220316165539
@@ -0,0 +1 @@
+beeab3a2197f11a40049e983a5184ab9b80370c9867461239e12a5ce36b8f5e8 \ No newline at end of file
diff --git a/db/schema_migrations/20220316202200 b/db/schema_migrations/20220316202200
new file mode 100644
index 00000000000..62c236a6b67
--- /dev/null
+++ b/db/schema_migrations/20220316202200
@@ -0,0 +1 @@
+28722182d4ead079c8c0c36a5c075a29c5da93b4315af277311f561fc945d65f \ No newline at end of file
diff --git a/db/schema_migrations/20220316202402 b/db/schema_migrations/20220316202402
new file mode 100644
index 00000000000..b450772ac80
--- /dev/null
+++ b/db/schema_migrations/20220316202402
@@ -0,0 +1 @@
+006ef4f0c63e39e3874d39528ca6cfd233c17d6256d07bd2c0e7b2262d0a4825 \ No newline at end of file
diff --git a/db/schema_migrations/20220316202640 b/db/schema_migrations/20220316202640
new file mode 100644
index 00000000000..dad19b94335
--- /dev/null
+++ b/db/schema_migrations/20220316202640
@@ -0,0 +1 @@
+7ea2288c45d497e2fde56b1d7c1e82360ed40442a2501a24e9795380adf5b911 \ No newline at end of file
diff --git a/db/schema_migrations/20220317161914 b/db/schema_migrations/20220317161914
new file mode 100644
index 00000000000..7cefac33187
--- /dev/null
+++ b/db/schema_migrations/20220317161914
@@ -0,0 +1 @@
+94a8bc74fc935ba863d22b59b0ac6808bf5a9714c3759ca75a6dbee50c3c647d \ No newline at end of file
diff --git a/db/schema_migrations/20220317170122 b/db/schema_migrations/20220317170122
new file mode 100644
index 00000000000..9b75fa2042a
--- /dev/null
+++ b/db/schema_migrations/20220317170122
@@ -0,0 +1 @@
+0bd78ce207cca13b5c4557ace87c135972ed69cd05ee8c6fcc60a9c060ba8b5f \ No newline at end of file
diff --git a/db/schema_migrations/20220318111040 b/db/schema_migrations/20220318111040
new file mode 100644
index 00000000000..ac1207e7f00
--- /dev/null
+++ b/db/schema_migrations/20220318111040
@@ -0,0 +1 @@
+5da6020c9e4cca8659b45393812ee4d76f6e9422803acaadd8c1b046be8c647a \ No newline at end of file
diff --git a/db/schema_migrations/20220318111729 b/db/schema_migrations/20220318111729
new file mode 100644
index 00000000000..587a1bb6f19
--- /dev/null
+++ b/db/schema_migrations/20220318111729
@@ -0,0 +1 @@
+748ab129352d12d40e5d97dfb8a658ff2d62642e9f5cb1deb19ed871328f9d07 \ No newline at end of file
diff --git a/db/schema_migrations/20220318111949 b/db/schema_migrations/20220318111949
new file mode 100644
index 00000000000..8923f51813e
--- /dev/null
+++ b/db/schema_migrations/20220318111949
@@ -0,0 +1 @@
+416ff5e57b2b13ccb55c6f1e88e6b0603dfc086a8a15be810752a9449ed4f3a1 \ No newline at end of file
diff --git a/db/schema_migrations/20220318120802 b/db/schema_migrations/20220318120802
new file mode 100644
index 00000000000..a306b3cdcd7
--- /dev/null
+++ b/db/schema_migrations/20220318120802
@@ -0,0 +1 @@
+19f25b2f373e7c2799812661baca1902c9c74df67f7a5e88116862fb078a5957 \ No newline at end of file
diff --git a/db/schema_migrations/20220318141037 b/db/schema_migrations/20220318141037
new file mode 100644
index 00000000000..e2451a42392
--- /dev/null
+++ b/db/schema_migrations/20220318141037
@@ -0,0 +1 @@
+d9a9d143ff553cbad5eb32a908370133549850f10b27b30eb6a1bde686054c45 \ No newline at end of file
diff --git a/db/schema_migrations/20220321025720 b/db/schema_migrations/20220321025720
new file mode 100644
index 00000000000..4180969ecf4
--- /dev/null
+++ b/db/schema_migrations/20220321025720
@@ -0,0 +1 @@
+b1d67334e1e52a24b3ea45d1520878dac7ea6dd7fba61d966e4311212993ee77 \ No newline at end of file
diff --git a/db/schema_migrations/20220321150028 b/db/schema_migrations/20220321150028
new file mode 100644
index 00000000000..c041b880941
--- /dev/null
+++ b/db/schema_migrations/20220321150028
@@ -0,0 +1 @@
+0e8c43f8878152e355a435dc0c72874b9808aba376e6969bec85a33ec5c01b1c \ No newline at end of file
diff --git a/db/schema_migrations/20220321201912 b/db/schema_migrations/20220321201912
new file mode 100644
index 00000000000..78d3857dba8
--- /dev/null
+++ b/db/schema_migrations/20220321201912
@@ -0,0 +1 @@
+b9460a2962364ae836237382b84257f30673ffbe682a58776d6aaeab8f28f67d \ No newline at end of file
diff --git a/db/schema_migrations/20220321234317 b/db/schema_migrations/20220321234317
new file mode 100644
index 00000000000..7b24f81ca1c
--- /dev/null
+++ b/db/schema_migrations/20220321234317
@@ -0,0 +1 @@
+ba5c1738b7c368ee8e10e390c959538c4d74055b8bc57f652b06ffe3a1c3becf \ No newline at end of file
diff --git a/db/schema_migrations/20220322023800 b/db/schema_migrations/20220322023800
new file mode 100644
index 00000000000..99e5cbfa7c3
--- /dev/null
+++ b/db/schema_migrations/20220322023800
@@ -0,0 +1 @@
+1aefb5950063a060de1ec20b0808a5488b238b36d86120c34ac5a128c212984e \ No newline at end of file
diff --git a/db/schema_migrations/20220322035654 b/db/schema_migrations/20220322035654
new file mode 100644
index 00000000000..3a427590546
--- /dev/null
+++ b/db/schema_migrations/20220322035654
@@ -0,0 +1 @@
+b37315953ac3cdc6d75f5287a4c264ebdee932f19cfe975f5d2c57b353da35d9 \ No newline at end of file
diff --git a/db/schema_migrations/20220322071127 b/db/schema_migrations/20220322071127
new file mode 100644
index 00000000000..0f7ddb48545
--- /dev/null
+++ b/db/schema_migrations/20220322071127
@@ -0,0 +1 @@
+c7d84b6d92566d66f69732071fe7fc6c4e5ce32475e0d2c42413c9f005aed5b0 \ No newline at end of file
diff --git a/db/schema_migrations/20220322094410 b/db/schema_migrations/20220322094410
new file mode 100644
index 00000000000..1ad1682e22c
--- /dev/null
+++ b/db/schema_migrations/20220322094410
@@ -0,0 +1 @@
+09722b398f82651c433f6b05962827351e6e7c0841f2a6414feb206bb831e523 \ No newline at end of file
diff --git a/db/schema_migrations/20220322132242 b/db/schema_migrations/20220322132242
new file mode 100644
index 00000000000..f21f62874a7
--- /dev/null
+++ b/db/schema_migrations/20220322132242
@@ -0,0 +1 @@
+94dbae9bbfb2da49a0d20b674e15f457c613c8ba0612603dd8fe9ac5699160d1 \ No newline at end of file
diff --git a/db/schema_migrations/20220322143441 b/db/schema_migrations/20220322143441
new file mode 100644
index 00000000000..21176059ea3
--- /dev/null
+++ b/db/schema_migrations/20220322143441
@@ -0,0 +1 @@
+caf0959c3cefb1a3614867feb2c93115fc2b41890624afa0944dc9cfbfdecd59 \ No newline at end of file
diff --git a/db/schema_migrations/20220322205004 b/db/schema_migrations/20220322205004
new file mode 100644
index 00000000000..3a5e26a69ce
--- /dev/null
+++ b/db/schema_migrations/20220322205004
@@ -0,0 +1 @@
+af69da66a3deb250494204fecf4bc91b4fd10f529ab766746ae98072f54bf245 \ No newline at end of file
diff --git a/db/schema_migrations/20220322205008 b/db/schema_migrations/20220322205008
new file mode 100644
index 00000000000..bbd0003fbf3
--- /dev/null
+++ b/db/schema_migrations/20220322205008
@@ -0,0 +1 @@
+465de916b1c951287a101da37156fb0f59a4bd1cb4ab7076dc48e07e326fa4e4 \ No newline at end of file
diff --git a/db/schema_migrations/20220323023800 b/db/schema_migrations/20220323023800
new file mode 100644
index 00000000000..ff735118ede
--- /dev/null
+++ b/db/schema_migrations/20220323023800
@@ -0,0 +1 @@
+1681c19d1f41a05c3dfeded70d128989afb4a81a2e04aacc8879c2c1ab766733 \ No newline at end of file
diff --git a/db/schema_migrations/20220323130000 b/db/schema_migrations/20220323130000
new file mode 100644
index 00000000000..a370ab82750
--- /dev/null
+++ b/db/schema_migrations/20220323130000
@@ -0,0 +1 @@
+6152ff1a3647e1ac26e8f462215a0dec7d96c5552373f4ad99424c7c74e80577 \ No newline at end of file
diff --git a/db/schema_migrations/20220323152202 b/db/schema_migrations/20220323152202
new file mode 100644
index 00000000000..0394218868d
--- /dev/null
+++ b/db/schema_migrations/20220323152202
@@ -0,0 +1 @@
+47b87d4ea5d081904d561e461a266fe20dfcc1f771126340cf14c84302d3383d \ No newline at end of file
diff --git a/db/schema_migrations/20220324032250 b/db/schema_migrations/20220324032250
new file mode 100644
index 00000000000..ef37a8ff223
--- /dev/null
+++ b/db/schema_migrations/20220324032250
@@ -0,0 +1 @@
+fcfead40cfa1d75303bd0d392c09b5b0399ce5163e7ad6f8650360fe3adbe85d \ No newline at end of file
diff --git a/db/schema_migrations/20220324081709 b/db/schema_migrations/20220324081709
new file mode 100644
index 00000000000..f34f2b7aaaa
--- /dev/null
+++ b/db/schema_migrations/20220324081709
@@ -0,0 +1 @@
+6ce75a41607ed1e60ea4ecdfb36703d9f4192dc26ecaa774f2c30818027dd1d7 \ No newline at end of file
diff --git a/db/schema_migrations/20220324110247 b/db/schema_migrations/20220324110247
new file mode 100644
index 00000000000..0bfc9ff4e4e
--- /dev/null
+++ b/db/schema_migrations/20220324110247
@@ -0,0 +1 @@
+35aaf03898795800027c814a6f907af6f011bd5095cae7188234b46f4b2ebb90 \ No newline at end of file
diff --git a/db/schema_migrations/20220324171254 b/db/schema_migrations/20220324171254
new file mode 100644
index 00000000000..df966fd5300
--- /dev/null
+++ b/db/schema_migrations/20220324171254
@@ -0,0 +1 @@
+610c5ded785f174d195a660062bb74e718bfd5a38b13773215e20e8f95c59da4 \ No newline at end of file
diff --git a/db/schema_migrations/20220324173554 b/db/schema_migrations/20220324173554
new file mode 100644
index 00000000000..8292460972f
--- /dev/null
+++ b/db/schema_migrations/20220324173554
@@ -0,0 +1 @@
+9f597a462768531b0c6ad23e6e1a52edb765724518e1cebc0684160b030d6225 \ No newline at end of file
diff --git a/db/schema_migrations/20220324175325 b/db/schema_migrations/20220324175325
new file mode 100644
index 00000000000..e68c820a8f8
--- /dev/null
+++ b/db/schema_migrations/20220324175325
@@ -0,0 +1 @@
+8f423af68f25fb58374321eb38ff830fc47237005a23a66f61d5b794d519ef58 \ No newline at end of file
diff --git a/db/schema_migrations/20220324180717 b/db/schema_migrations/20220324180717
new file mode 100644
index 00000000000..b9bac081bcc
--- /dev/null
+++ b/db/schema_migrations/20220324180717
@@ -0,0 +1 @@
+56706c8d4139c63427838d37b7120c57fd39c7be4caee0ebba39a05cd3c453f7 \ No newline at end of file
diff --git a/db/schema_migrations/20220325000000 b/db/schema_migrations/20220325000000
new file mode 100644
index 00000000000..97f93ef57c7
--- /dev/null
+++ b/db/schema_migrations/20220325000000
@@ -0,0 +1 @@
+fd738cf8a5642f96dc67a294dcf913d797b580a19f35d5ef76573c63bf2dd920 \ No newline at end of file
diff --git a/db/schema_migrations/20220325000001 b/db/schema_migrations/20220325000001
new file mode 100644
index 00000000000..aa258196cb3
--- /dev/null
+++ b/db/schema_migrations/20220325000001
@@ -0,0 +1 @@
+d9ad9c043faf278e33707baeccb5b7733aec408446b3dacf685e126309c4808c \ No newline at end of file
diff --git a/db/schema_migrations/20220325050642 b/db/schema_migrations/20220325050642
new file mode 100644
index 00000000000..74a3205e5bf
--- /dev/null
+++ b/db/schema_migrations/20220325050642
@@ -0,0 +1 @@
+9ce5b7640c5d0c0e7cab0d12600b8378efb6a68922a361b0bee5617a69c3ee53 \ No newline at end of file
diff --git a/db/schema_migrations/20220325155953 b/db/schema_migrations/20220325155953
new file mode 100644
index 00000000000..408f1230a38
--- /dev/null
+++ b/db/schema_migrations/20220325155953
@@ -0,0 +1 @@
+bbcd27340d9d684b6134292772dad6f523ce6e1af9853ce12284a0c138d6b7bd \ No newline at end of file
diff --git a/db/schema_migrations/20220325160153 b/db/schema_migrations/20220325160153
new file mode 100644
index 00000000000..f1894bb1cab
--- /dev/null
+++ b/db/schema_migrations/20220325160153
@@ -0,0 +1 @@
+7f33fc1c6b47e3ff732caa62d15f0d725c03d993eacb24bc603992fc2579e63c \ No newline at end of file
diff --git a/db/schema_migrations/20220326161803 b/db/schema_migrations/20220326161803
new file mode 100644
index 00000000000..9d4fc7eb173
--- /dev/null
+++ b/db/schema_migrations/20220326161803
@@ -0,0 +1 @@
+c051ced08a5879ac1dc35d06509df91bdb0d26026cde127dc5ca4f905cb6a9fa \ No newline at end of file
diff --git a/db/schema_migrations/20220326163653 b/db/schema_migrations/20220326163653
new file mode 100644
index 00000000000..8f3cd7eb9b1
--- /dev/null
+++ b/db/schema_migrations/20220326163653
@@ -0,0 +1 @@
+112902ff530b1a4e34362845d9a521d320f4049bbd7992e8b3c2b2418d35100c \ No newline at end of file
diff --git a/db/schema_migrations/20220329061545 b/db/schema_migrations/20220329061545
new file mode 100644
index 00000000000..7d85c06978f
--- /dev/null
+++ b/db/schema_migrations/20220329061545
@@ -0,0 +1 @@
+29dfbf020302789f70365a69db5cbc24b9030f0be81666833c0ca8a4a8b1a681 \ No newline at end of file
diff --git a/db/schema_migrations/20220329095632 b/db/schema_migrations/20220329095632
new file mode 100644
index 00000000000..ba27739ccf7
--- /dev/null
+++ b/db/schema_migrations/20220329095632
@@ -0,0 +1 @@
+19ab6c5663ec07c7f4bdd92bf6d38e36766b27e6d0f0460f929a71b5e20fa396 \ No newline at end of file
diff --git a/db/schema_migrations/20220329110630 b/db/schema_migrations/20220329110630
new file mode 100644
index 00000000000..01087e9bfb2
--- /dev/null
+++ b/db/schema_migrations/20220329110630
@@ -0,0 +1 @@
+47664025bee8b3728411bde53aa597cb962d859402b0504a1962a3e4f117782f \ No newline at end of file
diff --git a/db/schema_migrations/20220329175119 b/db/schema_migrations/20220329175119
new file mode 100644
index 00000000000..5e0c0306594
--- /dev/null
+++ b/db/schema_migrations/20220329175119
@@ -0,0 +1 @@
+ec5dfe48e13cdbce5fc0c67612cddf1a5b555b3c84e1869ee3a7f047f0f3f1a0 \ No newline at end of file
diff --git a/db/schema_migrations/20220331074722 b/db/schema_migrations/20220331074722
new file mode 100644
index 00000000000..e4953322653
--- /dev/null
+++ b/db/schema_migrations/20220331074722
@@ -0,0 +1 @@
+507f2d64f0810938aba75f993bb7d6216499a754652b0b4c0ee2d0d44fdc3af3 \ No newline at end of file
diff --git a/db/schema_migrations/20220331174026 b/db/schema_migrations/20220331174026
new file mode 100644
index 00000000000..e4bf269e4e7
--- /dev/null
+++ b/db/schema_migrations/20220331174026
@@ -0,0 +1 @@
+b4f2c1c90447a41d69f08ca2c5cbb5fb0baf1fe04e43d5dc86323d01be9e28ef \ No newline at end of file
diff --git a/db/schema_migrations/20220331174459 b/db/schema_migrations/20220331174459
new file mode 100644
index 00000000000..f2f3dcfd778
--- /dev/null
+++ b/db/schema_migrations/20220331174459
@@ -0,0 +1 @@
+cc7da5bba5fd42a0c443290791eeee76491a29ab37a06f0a70806dc09ec1ceab \ No newline at end of file
diff --git a/db/schema_migrations/20220401044858 b/db/schema_migrations/20220401044858
new file mode 100644
index 00000000000..dcdbfc57822
--- /dev/null
+++ b/db/schema_migrations/20220401044858
@@ -0,0 +1 @@
+7d9341440faaf8782bc47a24091148c40d635cc1c980a57999b47aff3d42806d \ No newline at end of file
diff --git a/db/schema_migrations/20220401045116 b/db/schema_migrations/20220401045116
new file mode 100644
index 00000000000..3d6aa17ac69
--- /dev/null
+++ b/db/schema_migrations/20220401045116
@@ -0,0 +1 @@
+1f91d4855c6be0d7baf19f3d63d2efb4ccd8da85a7dcc4ad57fd03891f12fe46 \ No newline at end of file
diff --git a/db/schema_migrations/20220401045621 b/db/schema_migrations/20220401045621
new file mode 100644
index 00000000000..0502ad324da
--- /dev/null
+++ b/db/schema_migrations/20220401045621
@@ -0,0 +1 @@
+9a2274c54a0c0393bf0a2ae7985b957364c63952273383c3aa6ff6c5b4655a42 \ No newline at end of file
diff --git a/db/schema_migrations/20220401045642 b/db/schema_migrations/20220401045642
new file mode 100644
index 00000000000..cd1a7fee28e
--- /dev/null
+++ b/db/schema_migrations/20220401045642
@@ -0,0 +1 @@
+5eabeb19a1b79c21333eb519cf7419c5424cf1270c97637d07bb2a09946ceaf0 \ No newline at end of file
diff --git a/db/schema_migrations/20220401110443 b/db/schema_migrations/20220401110443
new file mode 100644
index 00000000000..30cc8592140
--- /dev/null
+++ b/db/schema_migrations/20220401110443
@@ -0,0 +1 @@
+c35e6149ee37321cd446284a2f0405378f3e34e3c9d11b7d128e9afa6c83281d \ No newline at end of file
diff --git a/db/schema_migrations/20220401110511 b/db/schema_migrations/20220401110511
new file mode 100644
index 00000000000..f0098be6e8e
--- /dev/null
+++ b/db/schema_migrations/20220401110511
@@ -0,0 +1 @@
+f5c934c691b50bff8c4029a975e37e86177cdb24b10bb65be2edd5bda50938b0 \ No newline at end of file
diff --git a/db/schema_migrations/20220401113123 b/db/schema_migrations/20220401113123
new file mode 100644
index 00000000000..58aea29c19c
--- /dev/null
+++ b/db/schema_migrations/20220401113123
@@ -0,0 +1 @@
+4ffb630e2949769c0ad64d43c2f8b6ad432358c44b00da99ec8ce538bb245e1a \ No newline at end of file
diff --git a/db/schema_migrations/20220404114106 b/db/schema_migrations/20220404114106
new file mode 100644
index 00000000000..a0680df974f
--- /dev/null
+++ b/db/schema_migrations/20220404114106
@@ -0,0 +1 @@
+6da0e999ab7bed0f9ee7a7938c9fa9ce4619d554640aa2d387f90e42d880db30 \ No newline at end of file
diff --git a/db/schema_migrations/20220404170446 b/db/schema_migrations/20220404170446
new file mode 100644
index 00000000000..e9a11c9e114
--- /dev/null
+++ b/db/schema_migrations/20220404170446
@@ -0,0 +1 @@
+f3954f6f741e40abb1ff9595f86f896e653eb14943faccfe2a14520ec583fa9c \ No newline at end of file
diff --git a/db/schema_migrations/20220404183350 b/db/schema_migrations/20220404183350
new file mode 100644
index 00000000000..0d7dffd3e79
--- /dev/null
+++ b/db/schema_migrations/20220404183350
@@ -0,0 +1 @@
+fcf7a6569afb7fdb95834179df5632ad14165d27476eb020e9db07e504f75f32 \ No newline at end of file
diff --git a/db/schema_migrations/20220404184814 b/db/schema_migrations/20220404184814
new file mode 100644
index 00000000000..81e413793e1
--- /dev/null
+++ b/db/schema_migrations/20220404184814
@@ -0,0 +1 @@
+f8013613d3ef44ea94db805d1900e7796204eefe373d42151cfe8acd4948a608 \ No newline at end of file
diff --git a/db/schema_migrations/20220404194649 b/db/schema_migrations/20220404194649
new file mode 100644
index 00000000000..4b6cc920cd6
--- /dev/null
+++ b/db/schema_migrations/20220404194649
@@ -0,0 +1 @@
+7897da66c2a941a6a09db6f62fa9069caef235603663077e5dd342a72ac5c7c3 \ No newline at end of file
diff --git a/db/schema_migrations/20220405061122 b/db/schema_migrations/20220405061122
new file mode 100644
index 00000000000..c89ea9d692f
--- /dev/null
+++ b/db/schema_migrations/20220405061122
@@ -0,0 +1 @@
+2b20f2c3bb8dd5d3ba27dcb8854108763a40be9393f4799f16e9c10daf9fff75 \ No newline at end of file
diff --git a/db/schema_migrations/20220405125459 b/db/schema_migrations/20220405125459
new file mode 100644
index 00000000000..1ed46eff43e
--- /dev/null
+++ b/db/schema_migrations/20220405125459
@@ -0,0 +1 @@
+c4dcb2b2e1262d63c56e171796f1cb6fb76d4b7dc090cf585f17a451c2fa784f \ No newline at end of file
diff --git a/db/schema_migrations/20220405181814 b/db/schema_migrations/20220405181814
new file mode 100644
index 00000000000..296cf6efc8b
--- /dev/null
+++ b/db/schema_migrations/20220405181814
@@ -0,0 +1 @@
+0835eaaf3e355f98783a11098a37b894b581176d98c39cdfd3be44e2447fe232 \ No newline at end of file
diff --git a/db/schema_migrations/20220405203843 b/db/schema_migrations/20220405203843
new file mode 100644
index 00000000000..10b831aebb8
--- /dev/null
+++ b/db/schema_migrations/20220405203843
@@ -0,0 +1 @@
+ac1892c5f2131e41774cadc8799cb5fb2c7d36fe567850fc1251a23c2d454695 \ No newline at end of file
diff --git a/db/schema_migrations/20220406113217 b/db/schema_migrations/20220406113217
new file mode 100644
index 00000000000..1fb61b081a4
--- /dev/null
+++ b/db/schema_migrations/20220406113217
@@ -0,0 +1 @@
+161ba8db7400c12dc0550246af8db86487e811803eaecedcb2761f4a8349920b \ No newline at end of file
diff --git a/db/schema_migrations/20220406121831 b/db/schema_migrations/20220406121831
new file mode 100644
index 00000000000..20f22d3deab
--- /dev/null
+++ b/db/schema_migrations/20220406121831
@@ -0,0 +1 @@
+687ba844d775918956f16dee16548f0440506e66e91afd5f52410066ffd5e364 \ No newline at end of file
diff --git a/db/schema_migrations/20220407135820 b/db/schema_migrations/20220407135820
new file mode 100644
index 00000000000..c1d1f8a5891
--- /dev/null
+++ b/db/schema_migrations/20220407135820
@@ -0,0 +1 @@
+ab7bb319a7099714d9863ec16b7dcf8c1aeab495b8635a01dff4a51fab876b6b \ No newline at end of file
diff --git a/db/schema_migrations/20220408001450 b/db/schema_migrations/20220408001450
new file mode 100644
index 00000000000..4d588db09e8
--- /dev/null
+++ b/db/schema_migrations/20220408001450
@@ -0,0 +1 @@
+42d7864cdcec589b7de8bc3a872e2743496d81788a60ddcd213f049fda12474e \ No newline at end of file
diff --git a/db/schema_migrations/20220408135815 b/db/schema_migrations/20220408135815
new file mode 100644
index 00000000000..3a41e4a5420
--- /dev/null
+++ b/db/schema_migrations/20220408135815
@@ -0,0 +1 @@
+01d8ab924e8c76b54d316ba94089eabea28999e4ce747e6c51803e1ea97b37df \ No newline at end of file
diff --git a/db/schema_migrations/20220409160628 b/db/schema_migrations/20220409160628
new file mode 100644
index 00000000000..29b46427dd2
--- /dev/null
+++ b/db/schema_migrations/20220409160628
@@ -0,0 +1 @@
+7952024a6a8df98842fa23ca9a4c328b83816ded3071e7597dbab431a5561e1a \ No newline at end of file
diff --git a/db/schema_migrations/20220412044906 b/db/schema_migrations/20220412044906
new file mode 100644
index 00000000000..a86fcfead61
--- /dev/null
+++ b/db/schema_migrations/20220412044906
@@ -0,0 +1 @@
+1d6ed98ad2da7be75e09d853db86905ed1fb1847d387cc6d1980ff5516db06d9 \ No newline at end of file
diff --git a/db/schema_migrations/20220412143551 b/db/schema_migrations/20220412143551
new file mode 100644
index 00000000000..8f9ce590f4c
--- /dev/null
+++ b/db/schema_migrations/20220412143551
@@ -0,0 +1 @@
+beff437160d30bc0cb6577e5b88edb751f1325b316534010844e053a567906ff \ No newline at end of file
diff --git a/db/schema_migrations/20220412143552 b/db/schema_migrations/20220412143552
new file mode 100644
index 00000000000..286c6d86cbd
--- /dev/null
+++ b/db/schema_migrations/20220412143552
@@ -0,0 +1 @@
+6211f4f1e2708606aa68c139639acdb366cd1f8e4be225800a2e49888f420498 \ No newline at end of file
diff --git a/db/schema_migrations/20220412171810 b/db/schema_migrations/20220412171810
new file mode 100644
index 00000000000..377f268f697
--- /dev/null
+++ b/db/schema_migrations/20220412171810
@@ -0,0 +1 @@
+efba00e36821c5ebe92ba39ad40dd165ab46c97b1b18becdec0d192470c2e8ca \ No newline at end of file
diff --git a/db/schema_migrations/20220413011328 b/db/schema_migrations/20220413011328
new file mode 100644
index 00000000000..3cf51735e27
--- /dev/null
+++ b/db/schema_migrations/20220413011328
@@ -0,0 +1 @@
+442300bd5c2f05807bdf752a9c3280a11f1cc84b21c2d61d99fb73268f7a495f \ No newline at end of file
diff --git a/db/schema_migrations/20220413075921 b/db/schema_migrations/20220413075921
new file mode 100644
index 00000000000..ef26fb07cd6
--- /dev/null
+++ b/db/schema_migrations/20220413075921
@@ -0,0 +1 @@
+b3e580387d56847039c4030fbbbda1131016ef6b068ff60f2e4e48563a331051 \ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index 8d1679b3832..c226da842c3 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -10639,10 +10639,18 @@ CREATE TABLE analytics_cycle_analytics_aggregations (
last_full_run_mrs_updated_at timestamp with time zone,
last_consistency_check_updated_at timestamp with time zone,
enabled boolean DEFAULT true NOT NULL,
+ full_runtimes_in_seconds integer[] DEFAULT '{}'::integer[] NOT NULL,
+ full_processed_records integer[] DEFAULT '{}'::integer[] NOT NULL,
+ last_full_merge_requests_updated_at timestamp with time zone,
+ last_full_issues_updated_at timestamp with time zone,
+ last_full_issues_id integer,
+ last_full_merge_requests_id integer,
CONSTRAINT chk_rails_1ef688e577 CHECK ((cardinality(incremental_runtimes_in_seconds) <= 10)),
CONSTRAINT chk_rails_7810292ec9 CHECK ((cardinality(last_full_run_processed_records) <= 10)),
CONSTRAINT chk_rails_8b9e89687c CHECK ((cardinality(last_full_run_runtimes_in_seconds) <= 10)),
- CONSTRAINT chk_rails_e16bf3913a CHECK ((cardinality(incremental_processed_records) <= 10))
+ CONSTRAINT chk_rails_e16bf3913a CHECK ((cardinality(incremental_processed_records) <= 10)),
+ CONSTRAINT full_processed_records_size CHECK ((cardinality(full_processed_records) <= 10)),
+ CONSTRAINT full_runtimes_in_seconds_size CHECK ((cardinality(full_runtimes_in_seconds) <= 10))
);
CREATE TABLE analytics_cycle_analytics_group_stages (
@@ -11235,7 +11243,6 @@ CREATE TABLE application_settings (
max_ssh_key_lifetime integer,
static_objects_external_storage_auth_token_encrypted text,
future_subscriptions jsonb DEFAULT '[]'::jsonb NOT NULL,
- user_email_lookup_limit integer DEFAULT 60 NOT NULL,
packages_cleanup_package_file_worker_capacity smallint DEFAULT 2 NOT NULL,
container_registry_import_max_tags_count integer DEFAULT 100 NOT NULL,
container_registry_import_max_retries integer DEFAULT 3 NOT NULL,
@@ -11251,8 +11258,22 @@ CREATE TABLE application_settings (
users_get_by_id_limit integer DEFAULT 300 NOT NULL,
users_get_by_id_limit_allowlist text[] DEFAULT '{}'::text[] NOT NULL,
container_registry_expiration_policies_caching boolean DEFAULT true NOT NULL,
- search_rate_limit integer DEFAULT 30 NOT NULL,
- search_rate_limit_unauthenticated integer DEFAULT 10 NOT NULL,
+ search_rate_limit integer DEFAULT 300 NOT NULL,
+ search_rate_limit_unauthenticated integer DEFAULT 100 NOT NULL,
+ encrypted_database_grafana_api_key bytea,
+ encrypted_database_grafana_api_key_iv bytea,
+ database_grafana_api_url text,
+ database_grafana_tag text,
+ public_runner_releases_url text DEFAULT 'https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-runner/releases'::text NOT NULL,
+ encrypted_arkose_labs_public_api_key bytea,
+ encrypted_arkose_labs_public_api_key_iv bytea,
+ encrypted_arkose_labs_private_api_key bytea,
+ encrypted_arkose_labs_private_api_key_iv bytea,
+ arkose_labs_verify_api_url text,
+ delete_inactive_projects boolean DEFAULT false NOT NULL,
+ inactive_projects_delete_after_months integer DEFAULT 2 NOT NULL,
+ inactive_projects_min_size_mb integer DEFAULT 0 NOT NULL,
+ inactive_projects_send_warning_email_after_months integer DEFAULT 1 NOT NULL,
CONSTRAINT app_settings_container_reg_cleanup_tags_max_list_size_positive CHECK ((container_registry_cleanup_tags_service_max_list_size >= 0)),
CONSTRAINT app_settings_dep_proxy_ttl_policies_worker_capacity_positive CHECK ((dependency_proxy_ttl_group_policy_worker_capacity >= 0)),
CONSTRAINT app_settings_ext_pipeline_validation_service_url_text_limit CHECK ((char_length(external_pipeline_validation_service_url) <= 255)),
@@ -11261,8 +11282,10 @@ CREATE TABLE application_settings (
CONSTRAINT app_settings_yaml_max_depth_positive CHECK ((max_yaml_depth > 0)),
CONSTRAINT app_settings_yaml_max_size_positive CHECK ((max_yaml_size_bytes > 0)),
CONSTRAINT check_17d9558205 CHECK ((char_length((kroki_url)::text) <= 1024)),
+ CONSTRAINT check_2b820eaac3 CHECK ((char_length(database_grafana_tag) <= 255)),
CONSTRAINT check_2dba05b802 CHECK ((char_length(gitpod_url) <= 255)),
CONSTRAINT check_32710817e9 CHECK ((char_length(static_objects_external_storage_auth_token_encrypted) <= 255)),
+ CONSTRAINT check_3455368420 CHECK ((char_length(database_grafana_api_url) <= 255)),
CONSTRAINT check_3559645ae5 CHECK ((char_length(container_registry_import_target_plan) <= 255)),
CONSTRAINT check_3def0f1829 CHECK ((char_length(sentry_clientside_dsn) <= 255)),
CONSTRAINT check_4f8b811780 CHECK ((char_length(sentry_dsn) <= 255)),
@@ -11273,6 +11296,7 @@ CREATE TABLE application_settings (
CONSTRAINT check_718b4458ae CHECK ((char_length(personal_access_token_prefix) <= 20)),
CONSTRAINT check_7227fad848 CHECK ((char_length(rate_limiting_response_text) <= 255)),
CONSTRAINT check_85a39b68ff CHECK ((char_length(encrypted_ci_jwt_signing_key_iv) <= 255)),
+ CONSTRAINT check_8dca35398a CHECK ((char_length(public_runner_releases_url) <= 255)),
CONSTRAINT check_9a719834eb CHECK ((char_length(secret_detection_token_revocation_url) <= 255)),
CONSTRAINT check_9c6c447a13 CHECK ((char_length(maintenance_mode_message) <= 255)),
CONSTRAINT check_a5704163cc CHECK ((char_length(secret_detection_revocation_token_types_url) <= 255)),
@@ -11280,7 +11304,8 @@ CREATE TABLE application_settings (
CONSTRAINT check_d820146492 CHECK ((char_length(spam_check_endpoint_url) <= 255)),
CONSTRAINT check_e5024c8801 CHECK ((char_length(elasticsearch_username) <= 255)),
CONSTRAINT check_e5aba18f02 CHECK ((char_length(container_registry_version) <= 255)),
- CONSTRAINT check_ef6176834f CHECK ((char_length(encrypted_cloud_license_auth_token_iv) <= 255))
+ CONSTRAINT check_ef6176834f CHECK ((char_length(encrypted_cloud_license_auth_token_iv) <= 255)),
+ CONSTRAINT check_f6563bc000 CHECK ((char_length(arkose_labs_verify_api_url) <= 255))
);
COMMENT ON COLUMN application_settings.content_validation_endpoint_url IS 'JiHu-specific column';
@@ -11708,6 +11733,8 @@ CREATE TABLE batched_background_migrations (
total_tuple_count bigint,
pause_ms integer DEFAULT 100 NOT NULL,
max_batch_size integer,
+ started_at timestamp with time zone,
+ on_hold_until timestamp with time zone,
CONSTRAINT check_5bb0382d6f CHECK ((char_length(column_name) <= 63)),
CONSTRAINT check_6b6a06254a CHECK ((char_length(table_name) <= 63)),
CONSTRAINT check_batch_size_in_range CHECK ((batch_size >= sub_batch_size)),
@@ -11718,6 +11745,8 @@ CREATE TABLE batched_background_migrations (
CONSTRAINT check_positive_sub_batch_size CHECK ((sub_batch_size > 0))
);
+COMMENT ON COLUMN batched_background_migrations.on_hold_until IS 'execution of this migration is on hold until this time';
+
CREATE SEQUENCE batched_background_migrations_id_seq
START WITH 1
INCREMENT BY 1
@@ -11975,7 +12004,8 @@ CREATE TABLE broadcast_messages (
target_path character varying(255),
broadcast_type smallint DEFAULT 1 NOT NULL,
dismissable boolean,
- target_access_levels integer[] DEFAULT '{}'::integer[] NOT NULL
+ target_access_levels integer[] DEFAULT '{}'::integer[] NOT NULL,
+ theme smallint DEFAULT 0 NOT NULL
);
CREATE SEQUENCE broadcast_messages_id_seq
@@ -13027,8 +13057,10 @@ CREATE TABLE ci_secure_files (
name text NOT NULL,
file text NOT NULL,
checksum bytea NOT NULL,
+ key_data text,
CONSTRAINT check_320790634d CHECK ((char_length(file) <= 255)),
- CONSTRAINT check_402c7b4a56 CHECK ((char_length(name) <= 255))
+ CONSTRAINT check_402c7b4a56 CHECK ((char_length(name) <= 255)),
+ CONSTRAINT check_7279b4e293 CHECK ((char_length(key_data) <= 128))
);
CREATE SEQUENCE ci_secure_files_id_seq
@@ -13724,6 +13756,8 @@ CREATE TABLE container_repositories (
migration_skipped_reason smallint,
migration_state text DEFAULT 'default'::text NOT NULL,
migration_aborted_in_state text,
+ migration_plan text,
+ CONSTRAINT check_05e9012f36 CHECK ((char_length(migration_plan) <= 255)),
CONSTRAINT check_13c58fe73a CHECK ((char_length(migration_state) <= 255)),
CONSTRAINT check_97f0249439 CHECK ((char_length(migration_aborted_in_state) <= 255))
);
@@ -14044,8 +14078,10 @@ CREATE TABLE dast_site_profiles (
auth_username text,
target_type smallint DEFAULT 0 NOT NULL,
scan_method smallint DEFAULT 0 NOT NULL,
+ auth_submit_field text,
CONSTRAINT check_5203110fee CHECK ((char_length(auth_username_field) <= 255)),
CONSTRAINT check_6cfab17b48 CHECK ((char_length(name) <= 255)),
+ CONSTRAINT check_af44f54c96 CHECK ((char_length(auth_submit_field) <= 255)),
CONSTRAINT check_c329dffdba CHECK ((char_length(auth_password_field) <= 255)),
CONSTRAINT check_d446f7047b CHECK ((char_length(auth_url) <= 1024)),
CONSTRAINT check_f22f18002a CHECK ((char_length(auth_username) <= 255))
@@ -14248,7 +14284,8 @@ CREATE TABLE deploy_tokens (
deploy_token_type smallint DEFAULT 2 NOT NULL,
write_registry boolean DEFAULT false NOT NULL,
read_package_registry boolean DEFAULT false NOT NULL,
- write_package_registry boolean DEFAULT false NOT NULL
+ write_package_registry boolean DEFAULT false NOT NULL,
+ creator_id bigint
);
CREATE SEQUENCE deploy_tokens_id_seq
@@ -14268,6 +14305,7 @@ CREATE TABLE deployment_approvals (
updated_at timestamp with time zone NOT NULL,
status smallint NOT NULL,
comment text,
+ approval_rule_id bigint,
CONSTRAINT check_e2eb6a17d8 CHECK ((char_length(comment) <= 255))
);
@@ -14462,6 +14500,7 @@ CREATE TABLE dora_daily_metrics (
deployment_frequency integer,
lead_time_for_changes_in_seconds integer,
time_to_restore_service_in_seconds integer,
+ incidents_count integer,
CONSTRAINT dora_daily_metrics_deployment_frequency_positive CHECK ((deployment_frequency >= 0)),
CONSTRAINT dora_daily_metrics_lead_time_for_changes_in_seconds_positive CHECK ((lead_time_for_changes_in_seconds >= 0))
);
@@ -15666,6 +15705,13 @@ CREATE SEQUENCE group_deploy_tokens_id_seq
ALTER SEQUENCE group_deploy_tokens_id_seq OWNED BY group_deploy_tokens.id;
+CREATE TABLE group_features (
+ group_id bigint NOT NULL,
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ wiki_access_level smallint DEFAULT 20 NOT NULL
+);
+
CREATE TABLE group_group_links (
id bigint NOT NULL,
created_at timestamp with time zone NOT NULL,
@@ -15792,7 +15838,7 @@ CREATE TABLE import_export_uploads (
export_file text,
group_id bigint,
remote_import_url text,
- CONSTRAINT check_58f0d37481 CHECK ((char_length(remote_import_url) <= 512))
+ CONSTRAINT check_58f0d37481 CHECK ((char_length(remote_import_url) <= 2048))
);
CREATE SEQUENCE import_export_uploads_id_seq
@@ -16091,7 +16137,6 @@ CREATE TABLE integrations (
confidential_note_events boolean DEFAULT true,
deployment_events boolean DEFAULT false NOT NULL,
comment_on_event_enabled boolean DEFAULT true NOT NULL,
- template boolean DEFAULT false,
instance boolean DEFAULT false NOT NULL,
comment_detail smallint,
inherit_from_id bigint,
@@ -17321,7 +17366,8 @@ CREATE TABLE namespace_root_storage_statistics (
snippets_size bigint DEFAULT 0 NOT NULL,
pipeline_artifacts_size bigint DEFAULT 0 NOT NULL,
uploads_size bigint DEFAULT 0 NOT NULL,
- dependency_proxy_size bigint DEFAULT 0 NOT NULL
+ dependency_proxy_size bigint DEFAULT 0 NOT NULL,
+ notification_level smallint DEFAULT 100 NOT NULL
);
CREATE TABLE namespace_settings (
@@ -17652,7 +17698,8 @@ CREATE TABLE onboarding_progresses (
secure_secret_detection_run_at timestamp with time zone,
secure_coverage_fuzzing_run_at timestamp with time zone,
secure_cluster_image_scanning_run_at timestamp with time zone,
- secure_api_fuzzing_run_at timestamp with time zone
+ secure_api_fuzzing_run_at timestamp with time zone,
+ license_scanning_run_at timestamp with time zone
);
CREATE SEQUENCE onboarding_progresses_id_seq
@@ -18613,7 +18660,8 @@ CREATE TABLE plan_limits (
dotenv_variables integer DEFAULT 20 NOT NULL,
dotenv_size integer DEFAULT 5120 NOT NULL,
pipeline_triggers integer DEFAULT 25000 NOT NULL,
- project_ci_secure_files integer DEFAULT 100 NOT NULL
+ project_ci_secure_files integer DEFAULT 100 NOT NULL,
+ repository_size bigint DEFAULT 0 NOT NULL
);
CREATE SEQUENCE plan_limits_id_seq
@@ -19258,8 +19306,8 @@ ALTER SEQUENCE project_mirror_data_id_seq OWNED BY project_mirror_data.id;
CREATE TABLE project_pages_metadata (
project_id bigint NOT NULL,
deployed boolean DEFAULT false NOT NULL,
- artifacts_archive_id bigint,
- pages_deployment_id bigint
+ pages_deployment_id bigint,
+ onboarding_complete boolean DEFAULT false NOT NULL
);
CREATE TABLE project_repositories (
@@ -19361,6 +19409,7 @@ CREATE TABLE project_settings (
has_shimo boolean DEFAULT false NOT NULL,
squash_commit_template text,
legacy_open_source_license_available boolean DEFAULT true NOT NULL,
+ target_platforms character varying[] DEFAULT '{}'::character varying[] NOT NULL,
CONSTRAINT check_3a03e7557a CHECK ((char_length(previous_default_branch) <= 4096)),
CONSTRAINT check_b09644994b CHECK ((char_length(squash_commit_template) <= 500)),
CONSTRAINT check_bde223416c CHECK ((show_default_award_emojis IS NOT NULL)),
@@ -19382,7 +19431,8 @@ CREATE TABLE project_statistics (
wiki_size bigint,
snippets_size bigint,
pipeline_artifacts_size bigint DEFAULT 0 NOT NULL,
- uploads_size bigint DEFAULT 0 NOT NULL
+ uploads_size bigint DEFAULT 0 NOT NULL,
+ container_registry_size bigint DEFAULT 0 NOT NULL
);
CREATE SEQUENCE project_statistics_id_seq
@@ -19679,6 +19729,28 @@ CREATE SEQUENCE protected_branches_id_seq
ALTER SEQUENCE protected_branches_id_seq OWNED BY protected_branches.id;
+CREATE TABLE protected_environment_approval_rules (
+ id bigint NOT NULL,
+ protected_environment_id bigint NOT NULL,
+ user_id bigint,
+ group_id bigint,
+ created_at timestamp with time zone NOT NULL,
+ updated_at timestamp with time zone NOT NULL,
+ access_level smallint,
+ required_approvals smallint NOT NULL,
+ CONSTRAINT chk_rails_bed75249bc CHECK ((((access_level IS NOT NULL) AND (group_id IS NULL) AND (user_id IS NULL)) OR ((user_id IS NOT NULL) AND (access_level IS NULL) AND (group_id IS NULL)) OR ((group_id IS NOT NULL) AND (user_id IS NULL) AND (access_level IS NULL)))),
+ CONSTRAINT chk_rails_cfa90ae3b5 CHECK ((required_approvals > 0))
+);
+
+CREATE SEQUENCE protected_environment_approval_rules_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ALTER SEQUENCE protected_environment_approval_rules_id_seq OWNED BY protected_environment_approval_rules.id;
+
CREATE TABLE protected_environment_deploy_access_levels (
id integer NOT NULL,
created_at timestamp with time zone NOT NULL,
@@ -21280,7 +21352,11 @@ CREATE TABLE user_preferences (
experience_level smallint,
view_diffs_file_by_file boolean DEFAULT false NOT NULL,
gitpod_enabled boolean DEFAULT false NOT NULL,
- markdown_surround_selection boolean DEFAULT true NOT NULL
+ markdown_surround_selection boolean DEFAULT true NOT NULL,
+ diffs_deletion_color text,
+ diffs_addition_color text,
+ CONSTRAINT check_89bf269f41 CHECK ((char_length(diffs_deletion_color) <= 7)),
+ CONSTRAINT check_d07ccd35f7 CHECK ((char_length(diffs_addition_color) <= 7))
);
CREATE SEQUENCE user_preferences_id_seq
@@ -21413,6 +21489,7 @@ CREATE TABLE users (
role smallint,
user_type smallint,
static_object_token_encrypted text,
+ otp_secret_expires_at timestamp with time zone,
CONSTRAINT check_7bde697e8e CHECK ((char_length(static_object_token_encrypted) <= 255))
);
@@ -22948,6 +23025,8 @@ ALTER TABLE ONLY protected_branch_unprotect_access_levels ALTER COLUMN id SET DE
ALTER TABLE ONLY protected_branches ALTER COLUMN id SET DEFAULT nextval('protected_branches_id_seq'::regclass);
+ALTER TABLE ONLY protected_environment_approval_rules ALTER COLUMN id SET DEFAULT nextval('protected_environment_approval_rules_id_seq'::regclass);
+
ALTER TABLE ONLY protected_environment_deploy_access_levels ALTER COLUMN id SET DEFAULT nextval('protected_environment_deploy_access_levels_id_seq'::regclass);
ALTER TABLE ONLY protected_environments ALTER COLUMN id SET DEFAULT nextval('protected_environments_id_seq'::regclass);
@@ -23981,6 +24060,9 @@ ALTER TABLE group_import_states
ALTER TABLE sprints
ADD CONSTRAINT check_df3816aed7 CHECK ((due_date IS NOT NULL)) NOT VALID;
+ALTER TABLE projects
+ ADD CONSTRAINT check_fa75869cb1 CHECK ((project_namespace_id IS NOT NULL)) NOT VALID;
+
ALTER TABLE ONLY ci_build_needs
ADD CONSTRAINT ci_build_needs_pkey PRIMARY KEY (id);
@@ -24491,6 +24573,9 @@ ALTER TABLE ONLY group_deploy_keys
ALTER TABLE ONLY group_deploy_tokens
ADD CONSTRAINT group_deploy_tokens_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY group_features
+ ADD CONSTRAINT group_features_pkey PRIMARY KEY (group_id);
+
ALTER TABLE ONLY group_group_links
ADD CONSTRAINT group_group_links_pkey PRIMARY KEY (id);
@@ -25064,6 +25149,9 @@ ALTER TABLE ONLY protected_branch_unprotect_access_levels
ALTER TABLE ONLY protected_branches
ADD CONSTRAINT protected_branches_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY protected_environment_approval_rules
+ ADD CONSTRAINT protected_environment_approval_rules_pkey PRIMARY KEY (id);
+
ALTER TABLE ONLY protected_environment_deploy_access_levels
ADD CONSTRAINT protected_environment_deploy_access_levels_pkey PRIMARY KEY (id);
@@ -26383,8 +26471,6 @@ CREATE INDEX cadence_create_iterations_automation ON iterations_cadences USING b
CREATE INDEX ci_builds_gitlab_monitor_metrics ON ci_builds USING btree (status, created_at, project_id) WHERE ((type)::text = 'Ci::Build'::text);
-CREATE INDEX ci_job_artifacts_expire_at_unlocked_idx ON ci_job_artifacts USING btree (expire_at) WHERE (locked = 0);
-
CREATE INDEX code_owner_approval_required ON protected_branches USING btree (project_id, code_owner_approval_required) WHERE (code_owner_approval_required = true);
CREATE UNIQUE INDEX commit_user_mentions_on_commit_id_and_note_id_unique_index ON commit_user_mentions USING btree (commit_id, note_id);
@@ -26435,6 +26521,8 @@ CREATE INDEX idx_container_repos_on_exp_cleanup_status_project_id_start_date ON
CREATE INDEX idx_container_repos_on_import_started_at_when_importing ON container_repositories USING btree (migration_import_started_at) WHERE (migration_state = 'importing'::text);
+CREATE INDEX idx_container_repos_on_migration_state_migration_plan_created ON container_repositories USING btree (migration_state, migration_plan, created_at);
+
CREATE INDEX idx_container_repos_on_pre_import_done_at_when_pre_import_done ON container_repositories USING btree (migration_pre_import_done_at) WHERE (migration_state = 'pre_import_done'::text);
CREATE INDEX idx_container_repos_on_pre_import_started_at_when_pre_importing ON container_repositories USING btree (migration_pre_import_started_at) WHERE (migration_state = 'pre_importing'::text);
@@ -26579,6 +26667,8 @@ CREATE UNIQUE INDEX idx_vulnerability_issue_links_on_vulnerability_id_and_issue_
CREATE UNIQUE INDEX idx_vulnerability_issue_links_on_vulnerability_id_and_link_type ON vulnerability_issue_links USING btree (vulnerability_id, link_type) WHERE (link_type = 2);
+CREATE UNIQUE INDEX idx_work_item_types_on_namespace_id_and_name_null_namespace ON work_item_types USING btree (btrim(lower(name)), ((namespace_id IS NULL))) WHERE (namespace_id IS NULL);
+
CREATE INDEX index_abuse_reports_on_user_id ON abuse_reports USING btree (user_id);
CREATE INDEX index_agent_activity_events_on_agent_id_and_recorded_at_and_id ON agent_activity_events USING btree (agent_id, recorded_at, id);
@@ -26705,6 +26795,8 @@ CREATE UNIQUE INDEX index_approval_rule_name_for_code_owners_rule_type ON approv
CREATE UNIQUE INDEX index_approval_rule_name_for_sectional_code_owners_rule_type ON approval_merge_request_rules USING btree (merge_request_id, name, section) WHERE (rule_type = 2);
+CREATE INDEX index_approval_rule_on_protected_environment_id ON protected_environment_approval_rules USING btree (protected_environment_id);
+
CREATE INDEX index_approval_rules_code_owners_rule_type ON approval_merge_request_rules USING btree (merge_request_id) WHERE (rule_type = 2);
CREATE INDEX index_approvals_on_merge_request_id ON approvals USING btree (merge_request_id);
@@ -26747,6 +26839,8 @@ CREATE INDEX index_badges_on_group_id ON badges USING btree (group_id);
CREATE INDEX index_badges_on_project_id ON badges USING btree (project_id);
+CREATE INDEX index_batched_background_migrations_on_status ON batched_background_migrations USING btree (status);
+
CREATE UNIQUE INDEX index_batched_background_migrations_on_unique_configuration ON batched_background_migrations USING btree (job_class_name, table_name, column_name, job_arguments);
CREATE INDEX index_batched_jobs_by_batched_migration_id_and_id ON batched_background_migration_jobs USING btree (batched_background_migration_id, id);
@@ -26943,6 +27037,8 @@ CREATE INDEX index_ci_job_artifacts_id_for_terraform_reports ON ci_job_artifacts
CREATE INDEX index_ci_job_artifacts_on_expire_at_and_job_id ON ci_job_artifacts USING btree (expire_at, job_id);
+CREATE INDEX index_ci_job_artifacts_on_expire_at_for_removal ON ci_job_artifacts USING btree (expire_at) WHERE ((locked = 0) AND (expire_at IS NOT NULL));
+
CREATE INDEX index_ci_job_artifacts_on_file_store ON ci_job_artifacts USING btree (file_store);
CREATE INDEX index_ci_job_artifacts_on_file_type_for_devops_adoption ON ci_job_artifacts USING btree (file_type, project_id, created_at) WHERE (file_type = ANY (ARRAY[5, 6, 8, 23]));
@@ -26969,6 +27065,8 @@ CREATE INDEX index_ci_minutes_additional_packs_on_namespace_id_purchase_xid ON c
CREATE UNIQUE INDEX index_ci_namespace_mirrors_on_namespace_id ON ci_namespace_mirrors USING btree (namespace_id);
+CREATE INDEX index_ci_namespace_mirrors_on_traversal_ids_unnest ON ci_namespace_mirrors USING btree ((traversal_ids[1]), (traversal_ids[2]), (traversal_ids[3]), (traversal_ids[4])) INCLUDE (traversal_ids, namespace_id);
+
CREATE UNIQUE INDEX index_ci_namespace_monthly_usages_on_namespace_id_and_date ON ci_namespace_monthly_usages USING btree (namespace_id, date);
CREATE INDEX index_ci_pending_builds_id_on_protected_partial ON ci_pending_builds USING btree (id) WHERE (protected = true);
@@ -27237,7 +27335,7 @@ CREATE INDEX index_composer_cache_files_where_namespace_id_is_null ON packages_c
CREATE INDEX index_container_expiration_policies_on_next_run_at_and_enabled ON container_expiration_policies USING btree (next_run_at, enabled);
-CREATE INDEX index_container_repositories_on_greatest_done_at ON container_repositories USING btree (GREATEST(migration_pre_import_done_at, migration_import_done_at, migration_aborted_at)) WHERE (migration_state = ANY (ARRAY['import_done'::text, 'pre_import_done'::text, 'import_aborted'::text]));
+CREATE INDEX index_container_repositories_on_greatest_completed_at ON container_repositories USING btree (GREATEST(migration_pre_import_done_at, migration_import_done_at, migration_aborted_at, migration_skipped_at)) WHERE (migration_state = ANY (ARRAY['import_done'::text, 'pre_import_done'::text, 'import_aborted'::text, 'import_skipped'::text]));
CREATE INDEX index_container_repositories_on_migration_state_import_done_at ON container_repositories USING btree (migration_state, migration_import_done_at);
@@ -27271,7 +27369,7 @@ CREATE INDEX index_customer_relations_contacts_on_group_id ON customer_relations
CREATE INDEX index_customer_relations_contacts_on_organization_id ON customer_relations_contacts USING btree (organization_id);
-CREATE UNIQUE INDEX index_customer_relations_organizations_on_unique_name_per_group ON customer_relations_organizations USING btree (group_id, lower(name));
+CREATE UNIQUE INDEX index_customer_relations_contacts_on_unique_email_per_group ON customer_relations_contacts USING btree (group_id, lower(email), id);
CREATE UNIQUE INDEX index_cycle_analytics_stage_event_hashes_on_hash_sha_256 ON analytics_cycle_analytics_stage_event_hashes USING btree (hash_sha256);
@@ -27335,12 +27433,16 @@ CREATE INDEX index_deploy_keys_projects_on_deploy_key_id ON deploy_keys_projects
CREATE INDEX index_deploy_keys_projects_on_project_id ON deploy_keys_projects USING btree (project_id);
+CREATE INDEX index_deploy_tokens_on_creator_id ON deploy_tokens USING btree (creator_id);
+
CREATE UNIQUE INDEX index_deploy_tokens_on_token ON deploy_tokens USING btree (token);
CREATE INDEX index_deploy_tokens_on_token_and_expires_at_and_id ON deploy_tokens USING btree (token, expires_at, id) WHERE (revoked IS FALSE);
CREATE UNIQUE INDEX index_deploy_tokens_on_token_encrypted ON deploy_tokens USING btree (token_encrypted);
+CREATE INDEX index_deployment_approvals_on_approval_rule_id ON deployment_approvals USING btree (approval_rule_id);
+
CREATE UNIQUE INDEX index_deployment_approvals_on_deployment_id_and_user_id ON deployment_approvals USING btree (deployment_id, user_id);
CREATE INDEX index_deployment_approvals_on_user_id ON deployment_approvals USING btree (user_id);
@@ -27349,6 +27451,8 @@ CREATE UNIQUE INDEX index_deployment_clusters_on_cluster_id_and_deployment_id ON
CREATE INDEX index_deployment_merge_requests_on_merge_request_id ON deployment_merge_requests USING btree (merge_request_id);
+CREATE INDEX index_deployments_for_visible_scope ON deployments USING btree (environment_id, finished_at DESC) WHERE (status = ANY (ARRAY[1, 2, 3, 4, 6]));
+
CREATE INDEX index_deployments_on_archived_project_id_iid ON deployments USING btree (archived, project_id, iid);
CREATE INDEX index_deployments_on_cluster_id_and_status ON deployments USING btree (cluster_id, status);
@@ -27817,22 +27921,16 @@ CREATE UNIQUE INDEX index_integrations_on_project_id_and_type_new_unique ON inte
CREATE UNIQUE INDEX index_integrations_on_project_id_and_type_unique ON integrations USING btree (project_id, type);
-CREATE INDEX index_integrations_on_template ON integrations USING btree (template);
-
CREATE INDEX index_integrations_on_type ON integrations USING btree (type);
CREATE UNIQUE INDEX index_integrations_on_type_and_instance_partial ON integrations USING btree (type, instance) WHERE (instance = true);
-CREATE UNIQUE INDEX index_integrations_on_type_and_template_partial ON integrations USING btree (type, template) WHERE (template = true);
-
CREATE INDEX index_integrations_on_type_id_when_active_and_project_id_not_nu ON integrations USING btree (type, id) WHERE ((active = true) AND (project_id IS NOT NULL));
CREATE INDEX index_integrations_on_type_new ON integrations USING btree (type_new);
CREATE INDEX index_integrations_on_type_new_and_instance_partial ON integrations USING btree (type_new, instance) WHERE (instance = true);
-CREATE INDEX index_integrations_on_type_new_and_template_partial ON integrations USING btree (type_new, template) WHERE (template = true);
-
CREATE INDEX index_integrations_on_type_new_id_when_active_and_has_project ON integrations USING btree (type_new, id) WHERE ((active = true) AND (project_id IS NOT NULL));
CREATE UNIQUE INDEX index_integrations_on_unique_group_id_and_type ON integrations USING btree (group_id, type);
@@ -27927,8 +28025,6 @@ CREATE INDEX index_issues_on_updated_at ON issues USING btree (updated_at);
CREATE INDEX index_issues_on_updated_by_id ON issues USING btree (updated_by_id) WHERE (updated_by_id IS NOT NULL);
-CREATE INDEX index_issues_on_work_item_type_id ON issues USING btree (work_item_type_id);
-
CREATE INDEX index_iterations_cadences_on_group_id ON iterations_cadences USING btree (group_id);
CREATE UNIQUE INDEX index_jira_connect_installations_on_client_key ON jira_connect_installations USING btree (client_key);
@@ -28047,6 +28143,8 @@ CREATE UNIQUE INDEX index_members_on_invite_token ON members USING btree (invite
CREATE INDEX index_members_on_member_namespace_id ON members USING btree (member_namespace_id);
+CREATE INDEX index_members_on_non_requested_non_invited_and_state_awaiting ON members USING btree (source_id) WHERE ((requested_at IS NULL) AND (invite_token IS NULL) AND (access_level > 5) AND (state = 1));
+
CREATE INDEX index_members_on_requested_at ON members USING btree (requested_at);
CREATE INDEX index_members_on_source_id_and_source_type ON members USING btree (source_id, source_type);
@@ -28325,14 +28423,14 @@ CREATE INDEX index_on_issues_closed_incidents_by_project_id_and_closed_at ON iss
CREATE INDEX index_on_label_links_all_columns ON label_links USING btree (target_id, label_id, target_type);
-CREATE INDEX index_on_merge_request_assignees_state ON merge_request_assignees USING btree (state) WHERE (state = 2);
-
CREATE INDEX index_on_merge_request_assignees_updated_state_by_user_id ON merge_request_assignees USING btree (updated_state_by_user_id);
-CREATE INDEX index_on_merge_request_reviewers_state ON merge_request_reviewers USING btree (state) WHERE (state = 2);
+CREATE INDEX index_on_merge_request_assignees_user_id_and_state ON merge_request_assignees USING btree (user_id, state) WHERE (state = 2);
CREATE INDEX index_on_merge_request_reviewers_updated_state_by_user_id ON merge_request_reviewers USING btree (updated_state_by_user_id);
+CREATE INDEX index_on_merge_request_reviewers_user_id_and_state ON merge_request_reviewers USING btree (user_id, state) WHERE (state = 2);
+
CREATE INDEX index_on_merge_requests_for_latest_diffs ON merge_requests USING btree (target_project_id) INCLUDE (id, latest_merge_request_diff_id);
COMMENT ON INDEX index_on_merge_requests_for_latest_diffs IS 'Index used to efficiently obtain the oldest merge request for a commit SHA';
@@ -28391,9 +28489,11 @@ CREATE UNIQUE INDEX index_ops_feature_flags_issues_on_feature_flag_id_and_issue_
CREATE UNIQUE INDEX index_ops_strategies_user_lists_on_strategy_id_and_user_list_id ON operations_strategies_user_lists USING btree (strategy_id, user_list_id);
+CREATE UNIQUE INDEX index_organizations_on_unique_name_per_group ON customer_relations_organizations USING btree (group_id, lower(name), id);
+
CREATE INDEX index_packages_build_infos_on_pipeline_id ON packages_build_infos USING btree (pipeline_id);
-CREATE INDEX index_packages_build_infos_package_id_pipeline_id ON packages_build_infos USING btree (package_id, pipeline_id);
+CREATE INDEX index_packages_build_infos_package_id_pipeline_id_id ON packages_build_infos USING btree (package_id, pipeline_id, id);
CREATE UNIQUE INDEX index_packages_composer_cache_namespace_and_sha ON packages_composer_cache_files USING btree (namespace_id, file_sha256);
@@ -28611,8 +28711,6 @@ CREATE UNIQUE INDEX index_project_mirror_data_on_project_id ON project_mirror_da
CREATE INDEX index_project_mirror_data_on_status ON project_mirror_data USING btree (status);
-CREATE INDEX index_project_pages_metadata_on_artifacts_archive_id ON project_pages_metadata USING btree (artifacts_archive_id);
-
CREATE INDEX index_project_pages_metadata_on_pages_deployment_id ON project_pages_metadata USING btree (pages_deployment_id);
CREATE INDEX index_project_pages_metadata_on_project_id_and_deployed_is_true ON project_pages_metadata USING btree (project_id) WHERE (deployed = true);
@@ -28783,6 +28881,10 @@ CREATE INDEX index_protected_branch_unprotect_access_levels_on_user_id ON protec
CREATE INDEX index_protected_branches_on_project_id ON protected_branches USING btree (project_id);
+CREATE INDEX index_protected_environment_approval_rules_on_group_id ON protected_environment_approval_rules USING btree (group_id);
+
+CREATE INDEX index_protected_environment_approval_rules_on_user_id ON protected_environment_approval_rules USING btree (user_id);
+
CREATE INDEX index_protected_environment_deploy_access ON protected_environment_deploy_access_levels USING btree (protected_environment_id);
CREATE INDEX index_protected_environment_deploy_access_levels_on_group_id ON protected_environment_deploy_access_levels USING btree (group_id);
@@ -28955,6 +29057,8 @@ CREATE INDEX index_security_findings_on_project_fingerprint ON security_findings
CREATE INDEX index_security_findings_on_scan_id_and_deduplicated ON security_findings USING btree (scan_id, deduplicated);
+CREATE INDEX index_security_findings_on_scan_id_and_id ON security_findings USING btree (scan_id, id);
+
CREATE INDEX index_security_findings_on_scanner_id ON security_findings USING btree (scanner_id);
CREATE INDEX index_security_findings_on_severity ON security_findings USING btree (severity);
@@ -29335,6 +29439,8 @@ CREATE UNIQUE INDEX index_vuln_historical_statistics_on_project_id_and_date ON v
CREATE INDEX index_vuln_reads_on_project_id_state_severity_and_vuln_id ON vulnerability_reads USING btree (project_id, state, severity, vulnerability_id DESC);
+CREATE INDEX index_vulnerabilites_common_finder_query ON vulnerabilities USING btree (project_id, state, report_type, severity, id);
+
CREATE INDEX index_vulnerabilities_on_author_id ON vulnerabilities USING btree (author_id);
CREATE INDEX index_vulnerabilities_on_confirmed_by_id ON vulnerabilities USING btree (confirmed_by_id);
@@ -29435,6 +29541,8 @@ CREATE UNIQUE INDEX index_vulnerability_occurrences_on_uuid ON vulnerability_occ
CREATE INDEX index_vulnerability_occurrences_on_vulnerability_id ON vulnerability_occurrences USING btree (vulnerability_id);
+CREATE INDEX index_vulnerability_reads_common_finder_query ON vulnerability_reads USING btree (project_id, state, report_type, severity, vulnerability_id DESC);
+
CREATE INDEX index_vulnerability_reads_on_cluster_agent_id ON vulnerability_reads USING btree (cluster_agent_id) WHERE (report_type = 7);
CREATE INDEX index_vulnerability_reads_on_location_image ON vulnerability_reads USING btree (location_image) WHERE (report_type = ANY (ARRAY[2, 7]));
@@ -29565,7 +29673,7 @@ CREATE INDEX tmp_gitlab_subscriptions_max_seats_used_migration ON gitlab_subscri
CREATE INDEX tmp_gitlab_subscriptions_max_seats_used_migration_2 ON gitlab_subscriptions USING btree (id) WHERE ((start_date < '2021-08-02'::date) AND (max_seats_used <> 0) AND (max_seats_used > seats_in_use) AND (max_seats_used > seats));
-CREATE INDEX tmp_idx_vulnerability_occurrences_on_id_where_report_type_7_99 ON vulnerability_occurrences USING btree (id) WHERE (report_type = ANY (ARRAY[7, 99]));
+CREATE INDEX tmp_idx_container_repos_on_non_migrated ON container_repositories USING btree (project_id, id) WHERE ((migration_state <> 'import_done'::text) AND (created_at < '2022-01-23 00:00:00'::timestamp without time zone));
CREATE INDEX tmp_index_ci_job_artifacts_on_id_where_trace_and_expire_at ON ci_job_artifacts USING btree (id) WHERE ((file_type = 3) AND (expire_at = ANY (ARRAY['2021-04-22 00:00:00+00'::timestamp with time zone, '2021-05-22 00:00:00+00'::timestamp with time zone, '2021-06-22 00:00:00+00'::timestamp with time zone, '2022-01-22 00:00:00+00'::timestamp with time zone, '2022-02-22 00:00:00+00'::timestamp with time zone, '2022-03-22 00:00:00+00'::timestamp with time zone, '2022-04-22 00:00:00+00'::timestamp with time zone])));
@@ -29575,8 +29683,16 @@ CREATE INDEX tmp_index_for_namespace_id_migration_on_group_members ON members US
CREATE INDEX tmp_index_for_namespace_id_migration_on_routes ON routes USING btree (id) WHERE ((namespace_id IS NULL) AND ((source_type)::text = 'Namespace'::text));
+CREATE INDEX tmp_index_for_null_project_namespace_id ON projects USING btree (id) WHERE (project_namespace_id IS NULL);
+
+CREATE INDEX tmp_index_for_project_namespace_id_migration_on_routes ON routes USING btree (id) WHERE ((namespace_id IS NULL) AND ((source_type)::text = 'Project'::text));
+
+CREATE INDEX tmp_index_issues_on_issue_type_and_id ON issues USING btree (issue_type, id);
+
CREATE INDEX tmp_index_members_on_state ON members USING btree (state) WHERE (state = 2);
+CREATE INDEX tmp_index_merge_requests_draft_and_status_leaky_regex ON merge_requests USING btree (id) WHERE ((draft = true) AND (state_id = 1) AND ((title)::text ~* '^\[draft\]|\(draft\)|draft:|draft|\[WIP\]|WIP:|WIP'::text) AND ((title)::text !~* '^(\[draft\]|\(draft\)|draft:|draft|\[WIP\]|WIP:|WIP)'::text));
+
CREATE INDEX tmp_index_namespaces_empty_traversal_ids_with_child_namespaces ON namespaces USING btree (id) WHERE ((parent_id IS NOT NULL) AND (traversal_ids = '{}'::integer[]));
CREATE INDEX tmp_index_namespaces_empty_traversal_ids_with_root_namespaces ON namespaces USING btree (id) WHERE ((parent_id IS NULL) AND (traversal_ids = '{}'::integer[]));
@@ -29607,8 +29723,12 @@ CREATE UNIQUE INDEX uniq_pkgs_debian_project_distributions_project_id_and_suite
CREATE UNIQUE INDEX unique_merge_request_metrics_by_merge_request_id ON merge_request_metrics USING btree (merge_request_id);
+CREATE UNIQUE INDEX unique_projects_on_name_namespace_id ON projects USING btree (name, namespace_id);
+
CREATE INDEX user_follow_users_followee_id_idx ON user_follow_users USING btree (followee_id);
+CREATE INDEX users_forbidden_state_idx ON users USING btree (id) WHERE ((confirmed_at IS NOT NULL) AND ((state)::text <> ALL (ARRAY['blocked'::text, 'banned'::text, 'ldap_blocked'::text])));
+
CREATE UNIQUE INDEX vulnerability_feedback_unique_idx ON vulnerability_feedback USING btree (project_id, category, feedback_type, project_fingerprint);
CREATE UNIQUE INDEX vulnerability_occurrence_pipelines_on_unique_keys ON vulnerability_occurrence_pipelines USING btree (occurrence_id, pipeline_id);
@@ -30899,8 +31019,6 @@ CREATE TRIGGER chat_names_loose_fk_trigger AFTER DELETE ON chat_names REFERENCIN
CREATE TRIGGER ci_builds_loose_fk_trigger AFTER DELETE ON ci_builds REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();
-CREATE TRIGGER ci_job_artifacts_loose_fk_trigger AFTER DELETE ON ci_job_artifacts REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();
-
CREATE TRIGGER ci_pipelines_loose_fk_trigger AFTER DELETE ON ci_pipelines REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();
CREATE TRIGGER ci_runners_loose_fk_trigger AFTER DELETE ON ci_runners REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();
@@ -31168,6 +31286,9 @@ ALTER TABLE ONLY ci_pipelines
ALTER TABLE ONLY merge_request_reviewers
ADD CONSTRAINT fk_3d674b9f23 FOREIGN KEY (updated_state_by_user_id) REFERENCES users(id) ON DELETE SET NULL;
+ALTER TABLE ONLY protected_environment_approval_rules
+ ADD CONSTRAINT fk_405568b491 FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY ci_pipeline_schedule_variables
ADD CONSTRAINT fk_41c35fda51 FOREIGN KEY (pipeline_schedule_id) REFERENCES ci_pipeline_schedules(id) ON DELETE CASCADE;
@@ -31231,6 +31352,9 @@ ALTER TABLE ONLY project_access_tokens
ALTER TABLE ONLY merge_requests
ADD CONSTRAINT fk_6149611a04 FOREIGN KEY (assignee_id) REFERENCES users(id) ON DELETE SET NULL;
+ALTER TABLE ONLY deployment_approvals
+ ADD CONSTRAINT fk_61cdbdc5b9 FOREIGN KEY (approval_rule_id) REFERENCES protected_environment_approval_rules(id) ON DELETE SET NULL;
+
ALTER TABLE ONLY dast_profile_schedules
ADD CONSTRAINT fk_61d52aa0e7 FOREIGN KEY (dast_profile_id) REFERENCES dast_profiles(id) ON DELETE CASCADE;
@@ -31261,6 +31385,9 @@ ALTER TABLE ONLY namespaces
ALTER TABLE ONLY geo_event_log
ADD CONSTRAINT fk_6ada82d42a FOREIGN KEY (container_repository_updated_event_id) REFERENCES geo_container_repository_updated_events(id) ON DELETE CASCADE;
+ALTER TABLE ONLY projects
+ ADD CONSTRAINT fk_6ca23af0a3 FOREIGN KEY (project_namespace_id) REFERENCES namespaces(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY dast_profile_schedules
ADD CONSTRAINT fk_6cca0d8800 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
@@ -31270,12 +31397,15 @@ ALTER TABLE ONLY projects
ALTER TABLE ONLY terraform_state_versions
ADD CONSTRAINT fk_6e81384d7f FOREIGN KEY (created_by_user_id) REFERENCES users(id) ON DELETE SET NULL;
+ALTER TABLE ONLY protected_environment_approval_rules
+ ADD CONSTRAINT fk_6ee8249821 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
+
+ALTER TABLE ONLY deploy_tokens
+ ADD CONSTRAINT fk_7082f8a288 FOREIGN KEY (creator_id) REFERENCES users(id) ON DELETE SET NULL;
+
ALTER TABLE ONLY protected_branch_push_access_levels
ADD CONSTRAINT fk_7111b68cdb FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
-ALTER TABLE ONLY projects
- ADD CONSTRAINT fk_71625606ac FOREIGN KEY (project_namespace_id) REFERENCES namespaces(id) ON DELETE SET NULL;
-
ALTER TABLE ONLY integrations
ADD CONSTRAINT fk_71cce407f9 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;
@@ -31696,9 +31826,6 @@ ALTER TABLE ONLY ci_builds_metadata
ALTER TABLE ONLY gitlab_subscriptions
ADD CONSTRAINT fk_e2595d00a1 FOREIGN KEY (namespace_id) REFERENCES namespaces(id) ON DELETE CASCADE;
-ALTER TABLE ONLY ci_builds
- ADD CONSTRAINT fk_e4ef9c2f27 FOREIGN KEY (runner_id) REFERENCES ci_runners(id) ON DELETE SET NULL NOT VALID;
-
ALTER TABLE ONLY merge_requests
ADD CONSTRAINT fk_e719a85f8a FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE SET NULL;
@@ -32137,6 +32264,9 @@ ALTER TABLE ONLY requirements
ALTER TABLE ONLY metrics_dashboard_annotations
ADD CONSTRAINT fk_rails_345ab51043 FOREIGN KEY (cluster_id) REFERENCES clusters(id) ON DELETE CASCADE;
+ALTER TABLE ONLY group_features
+ ADD CONSTRAINT fk_rails_356514082b FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY wiki_page_slugs
ADD CONSTRAINT fk_rails_358b46be14 FOREIGN KEY (wiki_page_meta_id) REFERENCES wiki_page_meta(id) ON DELETE CASCADE;
@@ -32284,6 +32414,9 @@ ALTER TABLE ONLY scim_identities
ALTER TABLE ONLY snippet_user_mentions
ADD CONSTRAINT fk_rails_4d3f96b2cb FOREIGN KEY (note_id) REFERENCES notes(id) ON DELETE CASCADE;
+ALTER TABLE ONLY protected_environment_approval_rules
+ ADD CONSTRAINT fk_rails_4e554f96f5 FOREIGN KEY (protected_environment_id) REFERENCES protected_environments(id) ON DELETE CASCADE;
+
ALTER TABLE ONLY deployment_clusters
ADD CONSTRAINT fk_rails_4e6243e120 FOREIGN KEY (cluster_id) REFERENCES clusters(id) ON DELETE CASCADE;