The following page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features or functionality remain at the sole discretion of GitLab Inc.
Foundations helps enterprise customers setup and adopt GitLab quickly, efficiently and securely.
The Foundations Stage is at the core of the GitLab platform. It is a glue that spans across different stages and enables our customers to setup and adopt GitLab by providing a frictionless Import experience to bring your applications into GitLab, Integrations with your ecosystem and an intuitive and effective Navigation system.
The Foundations stage is made up of four groups. You can find the direction pages of these groups here:
The existing team members for the Foundations Stage can be found under the links below:
Aligning with Core Platform section theme "GitLab is easy to deploy and adopt", the foundations stage will aim to drive adoption of GitLab through a faster & smoother onboarding process. Our onboarding process will support our customers needs for lower downtime & improved reliability of importers. This will increase number of customers who onboard to GitLab as well as reduce the time it takes to onboard, increasing overall adoption of GitLab.
`- We will prioritize enhancing the experience for enterprise customers by developing tools that improve business continuity, reduce downtime, provide easy-to-understand error messages, and ensure reliable data migration. For instance, "Import Evaluation Tool" can be run before the migration and will help customers understand how long will migration take, what can and cannot be migrated, and possibly even suggest "migration waves" to break down a huge import into several chunks. This feature in combination with faster import reduces the downtime and allows flexibility to work through migration in off-hours improving business continuity
Typically, an enterprise will have a security team, DevOps teams, and an internal compliance officer. They collectively try to understand how the product in the organization is being delivered and have manual processes to examine compliance. By automating some of these tasks, we can accelerate the time to delivery for our customers and reduce the cost of compliance. For instance, security standards & best practices defined at project, group or organization level could be applied automatically to detect if the code merged is compliant or not. Additional security measures could be applied to prevent the branch from being merged if a certain level of compliance is not met. This DevOps automation could be applied to organization-specific, industry-specific ( e.g. PCI-DSS), or government-related ( e.g. GDPR ) regulations to increase operational efficiency and bake in security as part of the development lifecycle.
The Foundations stage is uniquely positioned to minimize the time it takes for our customers to deliver throughout the DevSecOps life cycle. We will help our customers deliver faster by
This theme is directly aligned with "World Class DevSecOps experience". The foundations stage spans across different stages of the DevSecOps lifecycle. Our goal is to improve the overall user experience by improving the usability & accessibility of GitLab with our continued efforts on design system adoption & new and improved navigation. We will continue to make it easier for our users to find what they are looking for, to pick up where they left off, and to orient them in GitLab. For instance, If you're a System Admin who updates MR settings annually (such as merging only on a successful pipeline or with approval from 2+ reviewers), we aim to simplify the process. No need to recall previous actions or sift through notes.
In three years, we expect :
In 2024, we are focused on two main areas:
Ability to migrate projects by direct transfer was released as Beta (available to everyone) in GitLab 15.8.
The Personal productivity team will continue to build cross-stage UIs and user workflows that should be consistent, clearly designed, and iterated on like a feature to improve the overall user experience of GitLab. In rest of the FY24 and FY25, we will work on
GitLab identifies who our DevSecOps application is built for utilizing the following categorization. We list our view of who we will support when in priority order.
Manage uses Stage MAU as a primary measure of success. This represents the unique number of users getting value from the stage; all groups should be able to contribute to improving this number.
Individual groups track progress against a number of group-specific performance indicators All links are to the internal handbook:
Group | Dashboard URL |
---|---|
Import | MAU importing |
Integrations | GMAU - MAU for Jira and Slack Integrations |
Personal productivity | Percentage views on New Nav vs. Old Nav |
Manage operates under GitLab's values, but is a stage that seeks to particularly excel in certain areas that support our goals above. We seek to be leaders at GitLab by:
Import existing work into GitLab from a wide variety of sources.
Priority: high • Documentation • Direction
Support for crowd-sourced internationalization of GitLab.
Priority: low • Documentation • Direction
Web and email notifications
How users move through the product
How users configure product features.
Improve and maintain the features, style, and build process for the GitLab Documentation website.
Priority: medium • Documentation • Direction
GitLab offers a REST and GraphQL API to give customers options on how to best integrate with GitLab.
Integrations are places where the GitLab product connects to features and services from other products. These integrations seek to offer our customers a seamless experience between these products, and range from lightweight features like Slack notifications for projects, to deep and complex integrations with Atlassian JIRA that connect a wide array of functionality throughout the GitLab product. This category is at the "viable" level of maturity.
Webhooks are a generic way for projects to be integrated with any other service. GitLab's Webhooks proactively send data to another service when certain events happen. These are increasingly important for external vendors, as they offer a key way to integrate with GitLab that doesn't require them building inside our codebase.
GitLab's design system called Pajamas. Used internally to power GitLab in order to improve user interface consistency and accessibility.
Global Search is made up of two primary experiences, Basic Search and Advanced Search.
Basic Search is the default search experience for self-managed users as well as Free users of GitLab.com. It provides a way to search across the DevOps platform. Basic search includes Code Search for one project.
Advanced Search, in GitLab Premium and above, is an optional feature that uses Elasticsearch to enable additional search features for sorting, filtering, and improved relevancy. This category is at the "complete" level of maturity.
Code Search gives users the ability to explore all their code. Code searches are a significated portion of searches run by users, and Code Search is a fundamental need for organizations with complex or large amounts of code and multiple repositories. This category is at the "complete" level of maturity.
The Foundations stage has several features that enable users to quickly get started with using GitLab. These features are available in Core and are Free. However, as we move into specific use-cases for Enterprise customers that need to manage their GitLab organization at scale, features will be introduced into paid tiers as well and are intended to drive company-level financial goals.
Full list of features by tier under Foundations stage are here
There are a number of other issues that we've identified as being interesting that we are potentially thinking about, but do not currently have planned by setting a milestone for delivery. Some are good ideas we want to do, but don't yet know when; some we may never get around to, some may be replaced by another idea, and some are just waiting for that right spark of inspiration to turn them into something special.
Remember that at GitLab, everyone can contribute! This is one of our fundamental values and something we truly believe in, so if you have feedback on any of these items you're more than welcome to jump into the discussion. Our vision and product are truly something we build together!
Member
API entity to take actual Member
objects instead of User
PATH_REGEX_STR
OmniauthCallbacksController
with controller tests.db/schema.rb
is writable@user
in authenticates_with_two_factor.rb and devise/sessions/two_factor.html.haml
set_remember_me
approaches for LDAP and OAuth//api
allow_local_requests_from_hooks_and_services
to be set via API.po
filesapp/assets/stylesheets/pages/help.scss
app/assets/stylesheets/pages/login.scss
app/assets/stylesheets/page_bundles/members.scss
Auto DevOps pipeline is enabled
messagejira_service
modelimports.log
as wellpluralize
in favour of n_
gettext helperthen
subscribed
argument to GraphQL querytype
field to GraphQL querysubscribed
field to GrahpQL querydb_key_base
issuable_meta
method inside issuables_helper
to use complete, predefined sentences rather than constructing them.createFlash
with createAlert
ee/app/views/shared/promotions/_promote_group_webhooks.html.haml
to the one compatible with GlEmptyState
ee/app/views/shared/promotions/_promote_audit_events.html.haml
to the one compatible with GlEmptyState
destination_name
column to destination_slug
for bulk imports on db levellabel
and help_text
arguments and refactor how slots workapp/views/admin/application_settings/appearances/_form.html.haml
to use Layouts::HorizontalSectionComponent
app/views/admin/application_settings/appearances/_system_header_footer_form.html.haml
to use Layouts::HorizontalSectionComponent
app/views/admin/hooks/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/admin/users/_access_levels.html.haml
to use Layouts::HorizontalSectionComponent
app/views/admin/users/_admin_notes.html.haml
to use Layouts::HorizontalSectionComponent
app/views/admin/users/_form.html.haml
to use Layouts::HorizontalSectionComponent
app/views/groups/settings/access_tokens/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/audit_log.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/show.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/accounts/show.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/active_sessions/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/chat_names/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/emails/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/gpg_keys/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/keys/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/notifications/show.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/passwords/edit.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/personal_access_tokens/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/preferences/show.html.haml
to use Layouts::HorizontalSectionComponent
app/views/profiles/two_factor_auths/show.html.haml
to use Layouts::HorizontalSectionComponent
app/views/projects/hooks/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/projects/settings/access_tokens/index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/shared/doorkeeper/applications/_index.html.haml
to use Layouts::HorizontalSectionComponent
app/views/shared/file_hooks/_index.html.haml
to use Layouts::HorizontalSectionComponent
ee/app/views/admin/users/_limits.html.haml
to use Layouts::HorizontalSectionComponent
ee/app/views/admin/users/_namespace_plan_fieldset.html.haml
to use Layouts::HorizontalSectionComponent
Layouts::HorizontalSectionComponent
ViewComponentproject_import_level_configuration
feature flagwrapper = null
from Vue component testsmaster
, only if needed.gitlab-rake gitlab:check
should check for noexec mounted /var/opt/gitlab/gitaly/run/branches_to_be_notified: protected
behaviour with a protected default branch UltimatecreateAlert
to handle multiple alertsPOST /projects/remote-import
accept AWS Session_key
NumpadEnter
in the new dropdownMergeChecksApp
Vue component in app/views/projects/_merge_request_pipelines_and_threads_options.html.haml
?raw
and remove usage of v-safe-html to render imagesproject_export_as_ndjson
and project_import_ndjson
FFs"display
field to standalone
to support full screen app like experience on mobile devicesimport_sources
is corruptedredirect_to
wrongly shows "notice" alertsalpha
features from used_deprecated_fields
allowedlisted?
from Utils to Gitlab::PathTraversal
gitlab-sidekiq-cluster
from root/sidekiq_cluster
codegitlab-metrics_server
from root/metrics_server
codeswagger-ui-dist
with swagger-ui
npm packagedisallowVueBuiltInComponents
/disallowVue3BuiltInComponents
in eslintbreadcrumb-class-vue
in app/assets/javascripts/repository/components/breadcrumbs.vue
breadcrumb-class-haml
in app/views/projects/artifacts/_file_navigation.html.haml
breadcrumb-class-haml
in app/views/projects/artifacts/browse.html.haml
breadcrumb-class-haml
in app/views/projects/blob/_breadcrumb.html.haml
breadcrumb-class-haml
in app/views/projects/commits/show.html.haml
breadcrumb-class-haml
in app/views/projects/graphs/charts.html.haml
breadcrumb-class-haml
in app/views/users/_overview.html.haml
breadcrumb-class-haml
in app/views/projects/find_file/show.html.haml
bootstrap-dropdown-toggle-haml
in app/views/layouts/header/_super_sidebar_logged_out.haml
gitlab-rake gitlab:web_hook:retry
command for projectsbutton-class
in app/assets/javascripts/behaviors/copy_code.js
data-testid
from the GlCollapsibleListobx instead of a qa-selector
in jira_issue_creation_vulnerabilities.vueGitlab::Database::LoadBalancing
code into gitlab-database-load_balancing
gemimporting
on objects through global contextgithub_importer
queue namespaceGET /api/:version/project/:project_id_or_path/*
zoekt_dot_com_rollout
protected_environments
with deploy_access_levels
is expected to eq 1alert-iconless-vue
in app/assets/javascripts/sidebar/components/confidential/sidebar_confidentiality_content.vue
search-input-vue
in app/assets/javascripts/issues/show/components/fields/description_template.vue
table-tag-vue
in app/assets/javascripts/vue_merge_request_widget/components/artifacts_list.vue
table-tag-vue
in ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_list.vue
form-textarea-native-vue
in app/assets/javascripts/vue_merge_request_widget/components/states/commit_edit.vue
form-textarea-native-vue
in app/assets/javascripts/merge_conflicts/merge_conflict_resolver_app.vue
js-toggle-lazy-diff
GlKeysetPagination
in app/assets/javascripts/analytics/cycle_analytics/components/stage_table.vue
GlKeysetPagination
in app/assets/javascripts/ci/artifacts/components/job_artifacts_table.vue
GlKeysetPagination
in app/assets/javascripts/ci/pipeline_schedules/components/pipeline_schedules.vue
GlKeysetPagination
in app/assets/javascripts/clusters_list/components/agent_table.vue
GlKeysetPagination
in app/assets/javascripts/diffs/components/app.vue
GlKeysetPagination
in app/assets/javascripts/error_tracking/components/error_tracking_list.vue
GlKeysetPagination
in app/assets/javascripts/organizations/activity/components/app.vue
GlKeysetPagination
in app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/paginated_table_with_search_and_tabs.vue
GlKeysetPagination
in ee/app/assets/javascripts/analytics/merge_request_analytics/components/throughput_table.vue
GlKeysetPagination
in ee/app/assets/javascripts/audit_events/components/audit_events_table.vue
GlKeysetPagination
in ee/app/assets/javascripts/iterations/components/iteration_report_issues.vue
GlKeysetPagination
in ee/app/assets/javascripts/requirements/components/requirements_root.vue
GlKeysetPagination
in ee/app/assets/javascripts/security_dashboard/components/pipeline/security_dashboard_table.vue
AccessDeniedError
in GraphQL consistentlyBaseImporter
zoekt_always_use_multi_node_search
zoekt_index_circuit_breaker
data_consistency: :delayed
in the workersWatch
events to include all eventszoekt_search_proxy
!
as a delimiter to search and insert MR references into Duo chatlast_pipeline
with wrong ref
<nav>
element for client-side manipulation of breadcrumbsapp/assets/javascripts/import_entities/import_groups/components/import_table.vue
to to GlDisclosureDropdown or GlCollapsibleListboxapp/assets/javascripts/jira_import/components/jira_import_form.vue
to to GlDisclosureDropdown or GlCollapsibleListboxembeddings
database config from GitLab/CNG/Omnibusself
token_idactivity_stream_graphql
waitForFinalTick
helper, or similarvue/no-unused-properties
violations in app/assets/javascripts/search/
rubocop:docs
rake task components to their own classdeploy
phases are reported to JIRAmasked_and_hidden=false
is created as masked and hiddenProject visibility
icon to breadcrumbsreassignment_throttling_table_check
comment_on_event_enabled: false
not recognized when using API endpoint /api/v4/groups/$GROUP_ID/integrations/jira
-secret_path
is setnew_project_creation_form
FF is enableduser_contribution.ndjson
for Offline Transferzoekt_reduce_parallelism
– Reduce parallelism to handle OOMpush_events
enabled by default when using the APIusername
and icon_url
for slack/mattermost integrationX-GitLab-NotificationReason
email header (and email footer)gitlab-rake gitlab:env:info
outputjsconfig.json
file to map our custom webpack resolve pathsarchived: only
to the group descendants finder/admin
interfaceallowedList
of :params
to be included in structured logs (confidential notes leaked in production_json.log)git
commandsCan't resolve ee_else_ce
errorRelationFactory::OVERRIDES
import/export
Cloud-Native: use remotely stored .zip
archivesmerge_requests
, and other relations, like notes
we might call GitalyRatelimit-Reset
and no Retry-After
ImportFailure
smerge_request
detail to deprecated
field propertyresolve:
keyword argumentf.label
when text is not explicitDeferred
watch:
of settings_panel.vueJiraConnect::Client#send_info
method?authenticate_with
api_guard.rb
, auth_finders.rb
project_settings.has_confluence
project_settings.has_confluence
at_least_one_of
with a catch-all method of ensuring at least 1 param is passed during a PUTbulk_imports
factoryicon_url
on Mattermost Integrationautoprefixer-rails
gem with direct use of autoprefixer
npm dependencyunknown
for Integrations::JiraLast edited
to UI table of projects that override instance-level integrationsGoogle::Apis::TransmissionError: execution expired
error404
after importing an exported projectthrottle_unauthenticated_*
columns in application settingslfs_enabled
and packages_enabled
to Project Export/ImportZentao::Client#ping
Zentao::Client
app/views/layouts/nav/breadcrumbs/_breadcrumbs.html.haml
to GlBreadcrumb
spec/features/groups/import_export/import_file_spec.rb
| Import/Export - Group Import when the user uploads an invalid export file displays an errorlabels_select_vue
in jira_issues_sidebar_root
labels_select_vue
in zentao_issues_sidebar_root
owner_name
and owner_email
from project webhook dataapi_field_names
to API entityHasIssueTrackerFields
should validate new_issues_url
jid
missinggo-gitlab
Client LibraryGraphqlHelpers#resolve
GET /api/:version/projects/:id/hooks
can be slowcolor
parameter in Broadcast Message API documentationdev_info
request in Jira integration~/vue_shared/components/user_select/user_select.vue
to use GlListboxgitlab_for_jira_app_saas_active
and gitlab_for_jira_app_self_managed_active
metrics to track usage of GitLab for Jira App - Part 2expect_webhook_executed
and expect_no_webhook_executed
within the codebaseBulkInsertSafe
after any other concernsSeparate database for web hook logs
search_code_with_zoekt
and index_code_with_zoekt
feature flagsremove_legacy_diff_note_on_github_import
Project.integrations
GraphQL fieldYour Work
should also have an Authored
option?raw
for legacy importsBatchLoader
documentationapp/assets/javascripts/notes/components/discussion_filter.vue
disclosure to the listbox componentReview Requests
page as the startpagebutton-class-vue
in app/assets/javascripts/awards_handler.js
enabled
lookupscmd+k
as a shortcut to open command palette in command modetable-class-haml
in app/views/profiles/chat_names/index.html.haml
deferred
on database healthy - Direct Transfersingle_endpoint_notes_import
for very large projectscongregate
for the Customer Engagementtable-tag-vue
in app/assets/javascripts/import_entities/import_projects/components/import_projects_table.vue
line
gitlab_email_reply_to
setting to first email addressapp/assets/javascripts/whats_new/index.js
import/gitea
spec/lib/api/helpers/integrations_helpers_spec.rb
test.api_arguments
updated_at
instead of callbacksapp/services/issues/base_service.rb
zoekt_search_with_replica
search_mr_filter_author
crud_component.vue
search_mr_target_branch
use_inherited_setting
to true Premiumrepo:
option Premiumoutline: 0;
for accessibility violationselasticsearch_work_item_embedding
current_application_settings
when reading settingsGitlab::CurrentSettings
to AppConfig::Settings
webkit-prefix
from SCSS filesspinner-deprecated
Mixinonly one notification per review
option to Matrix IntegrationExhausted number of retries to export: ci_pipelines
and Exhausted number of retries to export: merge_requests
pick_from_old_menus
and transform_old_menus
logicactivity
field into a resolver class in app/graphql/types/current_user_type.rb
Last Updated: 2024-01-03