Skip to content
代码片段 群组 项目
提交 f4bdf1fe 编辑于 作者: GitLab Bot's avatar GitLab Bot
浏览文件

Automatic merge of gitlab-org/gitlab master

No related branches found
No related tags found
2 合并请求!3031Merge per-main-jh to main-jh by luzhiyuan,!3030Merge per-main-jh to main-jh
显示
1537 个添加27 个删除
<script> <script>
import { GlButton, GlForm, GlLoadingIcon, GlCollapsibleListbox } from '@gitlab/ui'; import {
GlButton,
GlForm,
GlLoadingIcon,
GlCollapsibleListbox,
GlTooltipDirective,
} from '@gitlab/ui';
import { isEmpty, debounce } from 'lodash'; import { isEmpty, debounce } from 'lodash';
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants'; import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
import { sanitize } from '~/lib/dompurify';
import { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';
import { keysFor } from '~/behaviors/shortcuts/keybindings';
import { s__, __, sprintf } from '~/locale'; import { s__, __, sprintf } from '~/locale';
...@@ -19,6 +28,9 @@ export default { ...@@ -19,6 +28,9 @@ export default {
GlForm, GlForm,
GlCollapsibleListbox, GlCollapsibleListbox,
}, },
directives: {
GlTooltip: GlTooltipDirective,
},
props: { props: {
canUpdate: { canUpdate: {
type: Boolean, type: Boolean,
...@@ -108,6 +120,11 @@ export default { ...@@ -108,6 +120,11 @@ export default {
required: false, required: false,
default: __('Search'), default: __('Search'),
}, },
shortcut: {
type: Object,
required: false,
default: () => ({}),
},
}, },
data() { data() {
return { return {
...@@ -131,6 +148,22 @@ export default { ...@@ -131,6 +148,22 @@ export default {
? sprintf(__(`No %{label}`), { label: this.dropdownLabel.toLowerCase() }) ? sprintf(__(`No %{label}`), { label: this.dropdownLabel.toLowerCase() })
: this.toggleDropdownText; : this.toggleDropdownText;
}, },
disableShortcuts() {
return shouldDisableShortcuts() || Object.keys(this.shortcut).length === 0;
},
shortcutDescription() {
return this.disableShortcuts ? null : this.shortcut.description;
},
shortcutKey() {
return this.disableShortcuts ? null : keysFor(this.shortcut)[0];
},
tooltipText() {
const description = this.shortcutDescription;
const key = this.shortcutKey;
return this.disableShortcuts
? null
: sanitize(`${description} <kbd class="flat gl-ml-1" aria-hidden=true>${key}</kbd>`);
},
}, },
watch: { watch: {
itemValue: { itemValue: {
...@@ -198,6 +231,8 @@ export default { ...@@ -198,6 +231,8 @@ export default {
<gl-loading-icon v-if="updateInProgress" /> <gl-loading-icon v-if="updateInProgress" />
<gl-button <gl-button
v-if="canUpdate && !isEditing" v-if="canUpdate && !isEditing"
v-gl-tooltip.viewport.html
:title="tooltipText"
data-testid="edit-button" data-testid="edit-button"
category="tertiary" category="tertiary"
size="small" size="small"
......
...@@ -10,6 +10,7 @@ import UncollapsedAssigneeList from '~/sidebar/components/assignees/uncollapsed_ ...@@ -10,6 +10,7 @@ import UncollapsedAssigneeList from '~/sidebar/components/assignees/uncollapsed_
import WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue'; import WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue';
import { s__, sprintf, __ } from '~/locale'; import { s__, sprintf, __ } from '~/locale';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import { ISSUE_MR_CHANGE_ASSIGNEE } from '~/behaviors/shortcuts/keybindings';
import updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql'; import updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';
import updateNewWorkItemMutation from '../graphql/update_new_work_item.mutation.graphql'; import updateNewWorkItemMutation from '../graphql/update_new_work_item.mutation.graphql';
import { i18n, TRACKING_CATEGORY_SHOW } from '../constants'; import { i18n, TRACKING_CATEGORY_SHOW } from '../constants';
...@@ -79,6 +80,7 @@ export default { ...@@ -79,6 +80,7 @@ export default {
currentUser: null, currentUser: null,
updateInProgress: false, updateInProgress: false,
localUsers: [], localUsers: [],
shortcut: ISSUE_MR_CHANGE_ASSIGNEE,
}; };
}, },
apollo: { apollo: {
...@@ -337,6 +339,7 @@ export default { ...@@ -337,6 +339,7 @@ export default {
:header-text="headerText" :header-text="headerText"
:update-in-progress="updateInProgress" :update-in-progress="updateInProgress"
:reset-button-label="__('Clear')" :reset-button-label="__('Clear')"
:shortcut="shortcut"
clear-search-on-item-select clear-search-on-item-select
data-testid="work-item-assignees" data-testid="work-item-assignees"
@dropdownShown="onDropdownShown" @dropdownShown="onDropdownShown"
......
...@@ -18,6 +18,9 @@ import { TYPENAME_GROUP } from '~/graphql_shared/constants'; ...@@ -18,6 +18,9 @@ import { TYPENAME_GROUP } from '~/graphql_shared/constants';
import { isLoggedIn } from '~/lib/utils/common_utils'; import { isLoggedIn } from '~/lib/utils/common_utils';
import { WORKSPACE_PROJECT } from '~/issues/constants'; import { WORKSPACE_PROJECT } from '~/issues/constants';
import { addShortcutsExtension } from '~/behaviors/shortcuts'; import { addShortcutsExtension } from '~/behaviors/shortcuts';
import { sanitize } from '~/lib/dompurify';
import { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';
import { keysFor, ISSUABLE_EDIT_DESCRIPTION } from '~/behaviors/shortcuts/keybindings';
import ShortcutsWorkItems from '~/behaviors/shortcuts/shortcuts_work_items'; import ShortcutsWorkItems from '~/behaviors/shortcuts/shortcuts_work_items';
import { import {
i18n, i18n,
...@@ -462,6 +465,16 @@ export default { ...@@ -462,6 +465,16 @@ export default {
shouldShowEditButton() { shouldShowEditButton() {
return !this.editMode && this.canUpdate; return !this.editMode && this.canUpdate;
}, },
editShortcutKey() {
return shouldDisableShortcuts() ? null : keysFor(ISSUABLE_EDIT_DESCRIPTION)[0];
},
editTooltip() {
const description = __('Edit title and description');
const key = this.editShortcutKey;
return shouldDisableShortcuts()
? description
: sanitize(`${description} <kbd class="flat gl-ml-1" aria-hidden=true>${key}</kbd>`);
},
modalCloseButtonClass() { modalCloseButtonClass() {
return { return {
'sm:gl-hidden': !this.error, 'sm:gl-hidden': !this.error,
...@@ -933,6 +946,8 @@ export default { ...@@ -933,6 +946,8 @@ export default {
<div class="gl-ml-auto gl-mt-1 gl-flex gl-gap-3 gl-self-start"> <div class="gl-ml-auto gl-mt-1 gl-flex gl-gap-3 gl-self-start">
<gl-button <gl-button
v-if="shouldShowEditButton" v-if="shouldShowEditButton"
v-gl-tooltip.bottom.html
:title="editTooltip"
category="secondary" category="secondary"
data-testid="work-item-edit-form-button" data-testid="work-item-edit-form-button"
class="shortcut-edit-wi-description" class="shortcut-edit-wi-description"
......
...@@ -10,6 +10,7 @@ import groupLabelsQuery from '~/sidebar/components/labels/labels_select_widget/g ...@@ -10,6 +10,7 @@ import groupLabelsQuery from '~/sidebar/components/labels/labels_select_widget/g
import projectLabelsQuery from '~/sidebar/components/labels/labels_select_widget/graphql/project_labels.query.graphql'; import projectLabelsQuery from '~/sidebar/components/labels/labels_select_widget/graphql/project_labels.query.graphql';
import { isScopedLabel } from '~/lib/utils/common_utils'; import { isScopedLabel } from '~/lib/utils/common_utils';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import { ISSUABLE_CHANGE_LABEL } from '~/behaviors/shortcuts/keybindings';
import workItemByIidQuery from '../graphql/work_item_by_iid.query.graphql'; import workItemByIidQuery from '../graphql/work_item_by_iid.query.graphql';
import updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql'; import updateWorkItemMutation from '../graphql/update_work_item.mutation.graphql';
import updateNewWorkItemMutation from '../graphql/update_new_work_item.mutation.graphql'; import updateNewWorkItemMutation from '../graphql/update_new_work_item.mutation.graphql';
...@@ -72,6 +73,7 @@ export default { ...@@ -72,6 +73,7 @@ export default {
addLabelIds: [], addLabelIds: [],
labelsCache: [], labelsCache: [],
labelsToShowAtTopOfTheListbox: [], labelsToShowAtTopOfTheListbox: [],
shortcut: ISSUABLE_CHANGE_LABEL,
}; };
}, },
computed: { computed: {
...@@ -334,6 +336,7 @@ export default { ...@@ -334,6 +336,7 @@ export default {
:toggle-dropdown-text="dropdownText" :toggle-dropdown-text="dropdownText"
:header-text="__('Select labels')" :header-text="__('Select labels')"
:reset-button-label="__('Clear')" :reset-button-label="__('Clear')"
:shortcut="shortcut"
show-footer show-footer
multi-select multi-select
clear-search-on-item-select clear-search-on-item-select
......
...@@ -7,6 +7,7 @@ import { getIdFromGraphQLId } from '~/graphql_shared/utils'; ...@@ -7,6 +7,7 @@ import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import { s__, __ } from '~/locale'; import { s__, __ } from '~/locale';
import { MILESTONE_STATE } from '~/sidebar/constants'; import { MILESTONE_STATE } from '~/sidebar/constants';
import WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue'; import WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue';
import { ISSUE_MR_CHANGE_MILESTONE } from '~/behaviors/shortcuts/keybindings';
import projectMilestonesQuery from '~/sidebar/queries/project_milestones.query.graphql'; import projectMilestonesQuery from '~/sidebar/queries/project_milestones.query.graphql';
import groupMilestonesQuery from '~/sidebar/queries/group_milestones.query.graphql'; import groupMilestonesQuery from '~/sidebar/queries/group_milestones.query.graphql';
import updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql'; import updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';
...@@ -68,6 +69,7 @@ export default { ...@@ -68,6 +69,7 @@ export default {
updateInProgress: false, updateInProgress: false,
milestones: [], milestones: [],
localMilestone: this.workItemMilestone, localMilestone: this.workItemMilestone,
shortcut: ISSUE_MR_CHANGE_MILESTONE,
}; };
}, },
computed: { computed: {
...@@ -235,6 +237,7 @@ export default { ...@@ -235,6 +237,7 @@ export default {
:toggle-dropdown-text="dropdownText" :toggle-dropdown-text="dropdownText"
:header-text="__('Select milestone')" :header-text="__('Select milestone')"
:reset-button-label="__('Clear')" :reset-button-label="__('Clear')"
:shortcut="shortcut"
data-testid="work-item-milestone" data-testid="work-item-milestone"
@dropdownShown="onDropdownShown" @dropdownShown="onDropdownShown"
@searchStarted="search" @searchStarted="search"
......
...@@ -173,12 +173,14 @@ def extensions_marketplace_view ...@@ -173,12 +173,14 @@ def extensions_marketplace_view
end end
def build_extensions_marketplace_view(title:, message:) def build_extensions_marketplace_view(title:, message:)
extensions_marketplace_home = "%{linkStart}#{::WebIde::ExtensionMarketplace.marketplace_home_url}%{linkEnd}" marketplace_home_url = ::WebIde::ExtensionMarketplace.marketplace_home_url(user: current_user)
extensions_marketplace_home = "%{linkStart}#{marketplace_home_url}%{linkEnd}"
{ {
name: 'extensions_marketplace', name: 'extensions_marketplace',
message: format(message, extensions_marketplace_home: extensions_marketplace_home), message: format(message, extensions_marketplace_home: extensions_marketplace_home),
title: title, title: title,
message_url: WebIde::ExtensionMarketplace.marketplace_home_url, message_url: marketplace_home_url,
help_link: WebIde::ExtensionMarketplace.help_preferences_url help_link: WebIde::ExtensionMarketplace.help_preferences_url
} }
end end
......
...@@ -19,7 +19,12 @@ class WebHookLog < ApplicationRecord ...@@ -19,7 +19,12 @@ class WebHookLog < ApplicationRecord
self.primary_key = :id self.primary_key = :id
partitioned_by :created_at, strategy: :monthly, retain_for: 1.month # The partitioning definition here has been temporarily moved to config/initializers/postgres_partitioning.rb
# so that it does not interact with the changing WebHookLog.table_name as influenced by the
# ::Ci::Partitionable::Switch module.
# In config/initializers/postgres_partitioning.rb:
# - web_hook_logs_daily is registered for daily partitioning for when the flag is ON
# - web_hook_logs is registered for monthly partitioning for when the flag is OFF
belongs_to :web_hook belongs_to :web_hook
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
- rich_text_editor_help_text = s_('Preferences|Type in rich text, as you see it.') - rich_text_editor_help_text = s_('Preferences|Type in rich text, as you see it.')
- @color_modes = Gitlab::ColorModes::available_modes.to_json - @color_modes = Gitlab::ColorModes::available_modes.to_json
- @themes = Gitlab::Themes::available_themes.to_json - @themes = Gitlab::Themes::available_themes.to_json
- extensions_marketplace_url = ::WebIde::ExtensionMarketplace.marketplace_home_url - extensions_marketplace_url = ::WebIde::ExtensionMarketplace.marketplace_home_url(user: current_user)
- data_attributes = { color_modes: @color_modes, themes: @themes, integration_views: integration_views.to_json, user_fields: user_fields, body_classes: Gitlab::Themes.body_classes, profile_preferences_path: profile_preferences_path, extensions_marketplace_url: extensions_marketplace_url } - data_attributes = { color_modes: @color_modes, themes: @themes, integration_views: integration_views.to_json, user_fields: user_fields, body_classes: Gitlab::Themes.body_classes, profile_preferences_path: profile_preferences_path, extensions_marketplace_url: extensions_marketplace_url }
- @force_desktop_expanded_sidebar = true - @force_desktop_expanded_sidebar = true
......
...@@ -35,8 +35,9 @@ ...@@ -35,8 +35,9 @@
Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog, Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog,
LooseForeignKeys::DeletedRecord, LooseForeignKeys::DeletedRecord,
Users::GroupVisit, Users::GroupVisit,
Users::ProjectVisit, Users::ProjectVisit
WebHookLog # WebHookLog is temporarily removed from this list and managed without a model
# during the switch from web_hook_logs to web_hook_logs_daily
]) ])
if Gitlab.ee? if Gitlab.ee?
...@@ -84,12 +85,20 @@ ...@@ -84,12 +85,20 @@
# Enable partition management for the backfill table during web_hook_logs partitioning. # Enable partition management for the backfill table during web_hook_logs partitioning.
# This way new partitions will be created as the trigger syncs new rows across to this table. # This way new partitions will be created as the trigger syncs new rows across to this table.
# We're controlling the table backing WebHookLog with the feature flag web_hook_logs_daily_enabled.
# So that the feature flag does not interact with the partition manager, register both web_hook_logs tables here,
# disconnected from the feature flag.
Gitlab::Database::Partitioning.register_tables( Gitlab::Database::Partitioning.register_tables(
[ [
{ {
limit_connection_names: %i[main], limit_connection_names: %i[main],
table_name: 'web_hook_logs_daily', table_name: 'web_hook_logs_daily',
partitioned_column: :created_at, strategy: :daily, retain_for: 14.days partitioned_column: :created_at, strategy: :daily, retain_for: 14.days
},
{
limit_connection_names: %i[main],
table_name: 'web_hook_logs',
partitioned_column: :created_at, strategy: :monthly, retain_for: 1.month
} }
] ]
) )
......
...@@ -18,7 +18,7 @@ described, it is possible to adapt these instructions to your needs. ...@@ -18,7 +18,7 @@ described, it is possible to adapt these instructions to your needs.
## Architecture overview ## Architecture overview
![Architecture for running Geo in a multi-node configuration with primary and secondary backend services](img/geo-ha-diagram_v12.png) ![Architecture for running Geo in a multi-node configuration with primary and secondary backend services](img/geo-ha-diagram_v11_11.png)
_[diagram source - GitLab employees only](https://docs.google.com/drawings/d/1z0VlizKiLNXVVVaERFwgsIOuEgjcUqDTWPdQYsE7Z4c/edit)_ _[diagram source - GitLab employees only](https://docs.google.com/drawings/d/1z0VlizKiLNXVVVaERFwgsIOuEgjcUqDTWPdQYsE7Z4c/edit)_
......
...@@ -252,7 +252,7 @@ Disabling the proxying feature flag has the following general effects: ...@@ -252,7 +252,7 @@ Disabling the proxying feature flag has the following general effects:
- The secondary site does not proxy HTTP requests to the primary site. Instead, it attempts to serve them itself, or fail. - The secondary site does not proxy HTTP requests to the primary site. Instead, it attempts to serve them itself, or fail.
- Git requests generally succeed. Git pushes are redirected or proxied to the primary site. - Git requests generally succeed. Git pushes are redirected or proxied to the primary site.
- Other than Git requests, any HTTP request which may write data fails. Read requests generally succeed. - Other than Git requests, any HTTP request which may write data fails. Read requests generally succeed.
- The secondary site UI shows a banner: ![Secondary Site UI Banner for Read-Only](img/secondary_proxy_read_only_v17.8.png) - The secondary site UI shows a banner: ![Secondary Site UI Banner for Read-Only](img/secondary_proxy_read_only_v17_8.png)
| Feature / component | Succeed | Notes | | Feature / component | Succeed | Notes |
| :-------------------------------------------------- | :------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | :-------------------------------------------------- | :------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
......
...@@ -5,19 +5,42 @@ info: To determine the technical writer assigned to the Stage/Group associated w ...@@ -5,19 +5,42 @@ info: To determine the technical writer assigned to the Stage/Group associated w
title: Troubleshooting the container registry title: Troubleshooting the container registry
--- ---
Before diving in to the following sections, here's some basic troubleshooting: Before investigating specific issues, try these troubleshooting steps:
1. Check to make sure that the system clock on your Docker client and GitLab server have 1. Verify that the system clock on your Docker client and GitLab server are synchronized (for example, through NTP).
been synchronized (for example, via NTP).
1. If you are using an S3-backed Registry, double check that the IAM 1. For S3-backed registries, verify your IAM permissions and S3 credentials (including region) are correct.
permissions and the S3 credentials (including region) are correct. See For more information, see the [sample IAM policy](https://distribution.github.io/distribution/storage-drivers/s3/).
[the sample IAM policy](https://distribution.github.io/distribution/storage-drivers/s3/)
for more details.
1. Check the Registry logs (for example `/var/log/gitlab/registry/current`) and the GitLab production logs 1. Check for errors in the registry logs (for example, `/var/log/gitlab/registry/current`) and the GitLab production logs
for errors (for example `/var/log/gitlab/gitlab-rails/production.log`). You may be able to find clues (for example, `/var/log/gitlab/gitlab-rails/production.log`).
there.
1. Review the NGINX configuration file for the container registry (for example, `/var/opt/gitlab/nginx/conf/gitlab-registry.conf`)
to confirm which port receives requests.
1. Verify that requests are correctly forwarded to the container registry:
```shell
curl --verbose --noproxy "*" https://<hostname>:<port>/v2/_catalog
```
The response should include a line with `Www-Authenticate: Bearer` containing `service="container_registry"`. For example:
```plaintext
< HTTP/1.1 401 Unauthorized
< Server: nginx
< Date: Fri, 07 Mar 2025 08:24:43 GMT
< Content-Type: application/json
< Content-Length: 162
< Connection: keep-alive
< Docker-Distribution-Api-Version: registry/2.0
< Www-Authenticate: Bearer realm="https://<hostname>/jwt/auth",service="container_registry",scope="registry:catalog:*"
< X-Content-Type-Options: nosniff
<
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":
[{"Type":"registry","Class":"","Name":"catalog","ProjectPath":"","Action":"*"}]}]}
* Connection #0 to host <hostname> left intact
```
## Using self-signed certificates with container registry ## Using self-signed certificates with container registry
......
...@@ -15,8 +15,6 @@ title: Gmail actions ...@@ -15,8 +15,6 @@ title: Gmail actions
GitLab supports [Google actions in email](https://developers.google.com/gmail/markup/actions/actions-overview). GitLab supports [Google actions in email](https://developers.google.com/gmail/markup/actions/actions-overview).
When you configure this integration, emails that require an action are marked in Gmail. When you configure this integration, emails that require an action are marked in Gmail.
![Gmail actions button](img/gmail_action_buttons_for_gitlab_v8.png)
To get this functioning, you must be registered with Google. For instructions, see To get this functioning, you must be registered with Google. For instructions, see
[Register with Google](https://developers.google.com/gmail/markup/registering-with-google). [Register with Google](https://developers.google.com/gmail/markup/registering-with-google).
......
doc/integration/img/gmail_action_buttons_for_gitlab_v8.png

11.3 KB

...@@ -181,7 +181,7 @@ each step in the process: ...@@ -181,7 +181,7 @@ each step in the process:
1. Parse content and renders the initial page. 1. Parse content and renders the initial page.
1. Trigger the standard "document ready" event. 1. Trigger the standard "document ready" event.
This phase uses either `DAST_PAGE_READY_AFTER_NAVIGATION_TIMEOUT` (for full page loads) or `DAST_PAGE_READY_AFTER_ACTION_TIMEOUT` (for in-page actions), which sets the maximum wait time for document loading. This phase uses either `DAST_PAGE_READY_AFTER_NAVIGATION_TIMEOUT` (for full page loads) or `DAST_PAGE_READY_AFTER_ACTION_TIMEOUT` (for in-page actions), which sets the maximum wait time for document loading.
1. **Client-Side rendering**: After initial loading, many single-page applications: 1. **Client-Side rendering**: After initial loading, many single-page applications:
...@@ -190,7 +190,7 @@ each step in the process: ...@@ -190,7 +190,7 @@ each step in the process:
- Render a DOM and performs updates based on fetched data (`DAST_PAGE_DOM_READY_TIMEOUT`). - Render a DOM and performs updates based on fetched data (`DAST_PAGE_DOM_READY_TIMEOUT`).
- Display page loading indicators (`DAST_PAGE_IS_LOADING_ELEMENT`). - Display page loading indicators (`DAST_PAGE_IS_LOADING_ELEMENT`).
The scanner monitors these activities to determine when the page is ready for interaction. The scanner monitors these activities to determine when the page is ready for interaction.
The following chart illustrates the sequence timeouts used when crawling a page: The following chart illustrates the sequence timeouts used when crawling a page:
......
此差异已折叠。
...@@ -134,19 +134,19 @@ Setting the username for the newly provisioned users when assigning them the SCI ...@@ -134,19 +134,19 @@ Setting the username for the newly provisioned users when assigning them the SCI
### Basic SAML app configuration ### Basic SAML app configuration
![OneLogin application details](img/OneLogin-app_details_v12.png) ![OneLogin application details](img/OneLogin-app_details_v12_8.png)
### Parameters ### Parameters
![OneLogin application details](img/OneLogin-parameters_v12.png) ![OneLogin application details](img/OneLogin-parameters_v12_8.png)
### Adding a user ### Adding a user
![OneLogin user add](img/OneLogin-userAdd_v12.png) ![OneLogin user add](img/OneLogin-userAdd_v12_8.png)
### SSO settings ### SSO settings
![OneLogin SSO settings](img/OneLogin-SSOsettings_v12.png) ![OneLogin SSO settings](img/OneLogin-SSOsettings_v12_8.png)
## SAML response example ## SAML response example
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册