diff --git a/doc/administration/moderate_users.md b/doc/administration/moderate_users.md index ad3ab85fc3b00d992e853c0f1f88436d6ced680b..cebcf59e7e5c05d8c76cb59d9d8c312f41ea3c45 100644 --- a/doc/administration/moderate_users.md +++ b/doc/administration/moderate_users.md @@ -218,7 +218,7 @@ For more information, see [user deactivation emails](settings/email.md#user-deac To deactivate users with the GitLab API, see [deactivate user](../api/user_moderation.md#deactivate-a-user). For information about permanent user restrictions, see [block and unblock users](#block-and-unblock-users). To remove a user from a GitLab.com subscription, see -[Remove users from your subscription](../subscriptions/manage_users_and_seats.md#remove-users-from-subscription). +[Remove users from your subscription](../subscriptions/billing_and_usage.md#remove-users-from-subscription). ### Automatically deactivate dormant users diff --git a/doc/development/documentation/styleguide/word_list.md b/doc/development/documentation/styleguide/word_list.md index 5786a72b1445d91eda6aaaaaca1abf2cbf49c506..05df7239f129a6dfc49282e9b452d300e645a8ad 100644 --- a/doc/development/documentation/styleguide/word_list.md +++ b/doc/development/documentation/styleguide/word_list.md @@ -2376,7 +2376,7 @@ Searching is different from [filtering](#filter). When referring to the subscription billing model: - For GitLab.com, use **seats**. Customers purchase seats. Users occupy seats when they are invited - to a group, with some [exceptions](../../../subscriptions/manage_users_and_seats.md#gitlabcom-billing-and-usage). + to a group, with some [exceptions](../../../subscriptions/billing_and_usage.md#for-gitlabcom). - For GitLab Self-Managed, use **users**. Customers purchase subscriptions for a specified number of **users**. ## section diff --git a/doc/subscriptions/billing_and_usage.md b/doc/subscriptions/billing_and_usage.md new file mode 100644 index 0000000000000000000000000000000000000000..d9661dc735d45f75924699f791c4bcb0d9169fb0 --- /dev/null +++ b/doc/subscriptions/billing_and_usage.md @@ -0,0 +1,301 @@ +--- +stage: Fulfillment +group: Seat Management +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments +description: View and manage subscription billing and usage. +title: Billing and usage +--- + +{{< details >}} + +- Tier: Premium, Ultimate +- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated + +{{< /details >}} + +GitLab uses different billing models depending on the offering you use. +Understanding how billing works helps you manage costs and get insights into the seat usage of your subscription. + +## For GitLab.com + +{{< details >}} + +- Offering: GitLab.com + +{{< /details >}} + +A GitLab.com subscription uses a concurrent (_seat_) model. +You pay for a subscription according to the maximum number of users assigned to the top-level group, +its subgroups and projects during the billing period. +You can add and remove users during the subscription period without incurring additional charges, +as long as the total users at any given time doesn't exceed the subscription count. +If the total users exceeds your subscription count, you will incur an overage, +which must be paid at your next [reconciliation](quarterly_reconciliation.md). + +A top-level group can be [changed](../user/group/manage.md#change-a-groups-path) like any other group. + +### Seats owed + +If the number of billable users exceeds the number of **seats in subscription**, known +as the number of **seats owed**, you must pay for the excess number of users. + +For example, if you purchase a subscription for 10 users: + +| Event | Billable members | Maximum users | +|:---------------------------------------------------|:-----------------|:--------------| +| Ten users occupy all 10 seats. | 10 | 10 | +| Two new users join. | 12 | 12 | +| Three users leave and their accounts are removed. | 9 | 12 | + +Seats owed = 12 - 10 (Maximum users - users in subscription) + +To prevent charges from seats owed, you can +[turn on restricted access](../user/group/manage.md#turn-on-restricted-access). +This setting restricts groups from adding new billable users when there are no seats left in the subscription. + +### Seat usage alerts + +{{< history >}} + +- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/348481) in GitLab 15.2 [with a flag](../administration/feature_flags/_index.md) named `seat_flag_alerts`. +- [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/362041) in GitLab 15.4. Feature flag `seat_flag_alerts` removed. + +{{< /history >}} + +If you have the Owner role for a top-level group that is linked to a subscription enrolled in +[quarterly subscription reconciliations](quarterly_reconciliation.md), +you receive alerts about the seat usage in the subscription. + +The alert displays on group, subgroup, and project pages. +After you dismiss the alert, it doesn't display again until another seat is used. + +The alert displays at the following intervals: + +| Seats in subscription | Alert | +|-----------------------|---------------------| +| 0-15 | One seat remains. | +| 16-25 | Two seats remain. | +| 26-99 | 10% of seats remain.| +| 100-999 | 8% of seats remain. | +| 1000+ | 5% of seats remain. | + +### View seat usage + +To view a list of seats being used: + +1. On the left sidebar, select **Search or go to** and find your group. +1. Select **Settings > Usage quotas**. +1. Select the **Seats** tab. + +For each user, a list shows groups and projects where the user is a direct member. + +- **Group invite** indicates the user is a member of a [group invited to a group](../user/project/members/sharing_projects_groups.md#invite-a-group-to-a-group). +- **Project invite** indicates the user is a member of a [group invited to a project](../user/project/members/sharing_projects_groups.md#invite-a-group-to-a-project). + +The data in seat usage listing, **Seats in use**, and **Seats in subscription** are updated live. +The counts for **Max seats used** and **Seats owed** are updated once per day. + +#### View billing information + +To view your subscription information and a summary of seat counts: + +1. On the left sidebar, select **Search or go to** and find your group. +1. Select **Settings > Billing**. + +- The usage statistics are updated once per day, which might cause a difference between the information + in the **Usage quotas** page and the **Billing page**. +- The **Last login** field is updated when a user signs in after they have signed out. If there is an active session + when a user re-authenticates (for example, after a 24 hour SAML session timeout), this field is not updated. + +### Search users' seat usage + +You can view the users that use seats on your subscription. +To search for a user's seat usage: + +1. On the left sidebar, select **Search or go to** and find your group. +1. Select **Settings > Usage quotas**. +1. On the **Seats** tab, in the search field, enter the user's name or username. + The search string must have minimum three characters. + +The search returns a list of users whose first name, last name, or username match the search string. + +For example, for a user with the first name Amir, +the search string `ami` results in a match, but `amr` does not. + +### Export seat usage data + +To export seat usage data as a CSV file: + +1. On the left sidebar, select **Search or go to** and find your group. +1. Select **Settings > Usage quotas**. +1. In the **Seats** tab, select **Export list**. + +### Export seat usage history + +Prerequisites: + +- You must have the Owner role for the group. + +To export seat usage history as a CSV file: + +1. On the left sidebar, select **Search or go to** and find your group. +1. Select **Settings > Usage quotas**. +1. In the **Seats** tab, select **Export seat usage history**. + +The generated list contains all seats being used, +and is not affected by the current search. + +### Remove users from subscription + +To remove a billable user from your GitLab.com subscription: + +1. On the left sidebar, select **Search or go to** and find your group. +1. Select **Settings > Billing**. +1. In the **Seats currently in use** section, select **See usage**. +1. In the row for the user you want to remove, on the right side, select **Remove user**. +1. Re-type the username and select **Remove user**. + +If you add a member to a group by using the [share a group with another group](../user/project/members/sharing_projects_groups.md#invite-a-group-to-a-group) feature, you can't remove the member by using this method. Instead, you can either: + +- [Remove the member from the shared group](../user/group/_index.md#remove-a-member-from-the-group). +- [Remove the invited group](../user/project/members/sharing_projects_groups.md#remove-an-invited-group). + +## For GitLab Self-Managed + +{{< details >}} + +- Offering: GitLab Self-Managed + +{{< /details >}} + +A GitLab Self-Managed subscription uses a hybrid model. You pay for a subscription +according to the maximum number of users enabled during the +subscription period. + +For instances that are not offline or on a closed network, the maximum number of +simultaneous users in the GitLab Self-Managed instance is checked each quarter. + +If an instance is unable to generate a quarterly usage report, the existing +true up model is used. Prorated charges are not +possible without a quarterly usage report. + +The number of users in subscription represents the number of users included in your current license, +based on what you've paid for. +This number remains the same throughout your subscription period unless you purchase more seats. + +The number of maximum users reflects the highest number of billable users on your system for the current license period. + +You can view and export your [license usage](../administration/license_usage.md). + +### Users over subscription + +A GitLab subscription is valid for a specific number of seats. +The number of users over subscription shows how many users are in excess of the +number allowed by the subscription, in the current subscription period. + +Calculated as `Maximum users` - `Users in subscription` for the current license +term. For example, you purchase a subscription for 10 users. + +| Event | Billable users | Maximum users | +|:---------------------------------------------------|:-----------------|:--------------| +| Ten users occupy all 10 seats. | 10 | 10 | +| Two new users join. | 12 | 12 | +| Three users leave and their accounts are blocked. | 9 | 12 | +| Four new users join. | 13 | 13 | + +Users over subscription = 13 - 10 (maximum users - users in license) + +The users over subscription value is always zero for trial license. + +If users over subscription value is above zero, then you have more users in your +GitLab instance than you are licensed for. You must pay for the additional users +[before or at the time of renewal](quarterly_reconciliation.md). This process is +called true up. If you don't pay in time, your license key does not work. + +To view the number of users over subscription, go to the **Admin** area. + +### View users + +View the lists of users in your instance: + +1. On the left sidebar, at the bottom, select **Admin**. +1. Select **Users**. + +Select a user to view their account information. + +#### Check daily and historical billable users + +Prerequisites: + +- You must be an administrator. + +You can get a list of daily and historical billable users in your GitLab instance: + +1. [Start a Rails console session](../administration/operations/rails_console.md#starting-a-rails-console-session). +1. Count the number of users in the instance: + + ```ruby + User.billable.count + ``` + +1. Get the historical maximum number of users on the instance from the past year: + + ```ruby + ::HistoricalData.max_historical_user_count(from: 1.year.ago.beginning_of_day, to: Time.current.end_of_day) + ``` + +#### Update daily and historical billable users + +Prerequisites: + +- You must be an administrator. + +You can trigger a manual update of the daily and historical billable users in your GitLab instance. + +1. [Start a Rails console session](../administration/operations/rails_console.md#starting-a-rails-console-session). +1. Force an update of the daily billable users: + + ```ruby + identifier = Analytics::UsageTrends::Measurement.identifiers[:billable_users] + ::Analytics::UsageTrends::CounterJobWorker.new.perform(identifier, User.minimum(:id), User.maximum(:id), Time.zone.now) + ``` + +1. Force an update of the historical max billable users: + + ```ruby + ::HistoricalDataWorker.new.perform + ``` + +### Manage users and subscription seats + +Managing the number of users against the number of subscription seats can be difficult: + +- If [LDAP is integrated with GitLab](../administration/auth/ldap/_index.md), anyone + in the configured domain can sign up for a GitLab account. This can result in + an unexpected bill at time of renewal. +- If sign-up is turned on in your instance, anyone who can access the instance can + sign up for an account. + +GitLab has several features to help you manage the number of users. You can: + +- [Require administrator approval for new sign ups](../administration/settings/sign_up_restrictions.md#require-administrator-approval-for-new-sign-ups). +- Automatically block new users, either through + [LDAP](../administration/auth/ldap/_index.md#basic-configuration-settings) or + [OmniAuth](../integration/omniauth.md#configure-common-settings). +- [Limit the number of billable users](../administration/settings/sign_up_restrictions.md#user-cap) + who can sign up or be added to a subscription without administrator approval. +- [Disable new sign-ups](../administration/settings/sign_up_restrictions.md), + and instead manage new users manually. +- View a breakdown of users by role in the + [Users statistics](../administration/admin_area.md#users-statistics) page. + +To increase the number of users covered by your license, [buy more seats](manage_users_and_seats.md#buy-more-seats) +during the subscription period. The cost of seats added during the subscription +period is prorated from the date of purchase through to the end of the subscription +period. You can continue to add users even if you reach the number of users in +license count. GitLab [bills you for the overage](quarterly_reconciliation.md). + +If your subscription was activated with an activation code, the additional seats are reflected in +your instance immediately. If you're using a license file, you receive an updated file. +To add the seats, [add the license file](../administration/license_file.md) +to your instance. diff --git a/doc/subscriptions/gitlab_com/_index.md b/doc/subscriptions/gitlab_com/_index.md index 11d25f447b5a826c2daa81563e426d1ad578ff92..5469942a97c2e2c7c8e7cca9e1d67a2ba565d89b 100644 --- a/doc/subscriptions/gitlab_com/_index.md +++ b/doc/subscriptions/gitlab_com/_index.md @@ -1,11 +1,11 @@ --- -redirect_to: '../manage_users_and_seats.md#gitlabcom-billing-and-usage' +redirect_to: '../billing_and_usage.md#for-gitlabcom' remove_date: '2025-11-04' --- -This document was moved to [another location](../manage_users_and_seats.md#gitlabcom-billing-and-usage). +This document was moved to [another location](../billing_and_usage.md#for-gitlabcom). diff --git a/doc/subscriptions/manage_subscription.md b/doc/subscriptions/manage_subscription.md index 436ad28898368fea281772895f21550b35724b15..f07144e48ca7de5fa071f36324a24a56981402b6 100644 --- a/doc/subscriptions/manage_subscription.md +++ b/doc/subscriptions/manage_subscription.md @@ -157,7 +157,7 @@ For more information, see the documentation on: - [User statistics](../administration/admin_area.md#users-statistics). - [License usage](../administration/license_usage.md). -- [Managing users and subscription seats](manage_users_and_seats.md#manage-users-and-subscription-seats). +- [Managing users and subscription seats](billing_and_usage.md#manage-users-and-subscription-seats). ## Upgrade subscription tier @@ -239,7 +239,7 @@ Subscriptions purchased through the Customers Portal are set to auto-renew by de but you can [turn off automatic subscription renewal](#turn-on-or-turn-off-automatic-subscription-renewal). The number of user seats is adjusted to fit the number of billable users in your -[group](manage_users_and_seats.md#view-seat-usage) or [instance](manage_users_and_seats.md#view-users) +[group](billing_and_usage.md#view-seat-usage) or [instance](billing_and_usage.md#view-users) at the time of renewal, if that number is higher than the current subscription quantity. #### Turn on or turn off automatic subscription renewal @@ -282,7 +282,7 @@ To manually renew your subscription: [overage](quarterly_reconciliation.md) is due when you renew. In the **Users over license** text box, enter the number of - [users over subscription](manage_users_and_seats.md#users-over-subscription) for the user overage incurred. + [users over subscription](billing_and_usage.md#users-over-subscription) for the user overage incurred. 1. Optional. If renewing add-on products, review and update the desired quantity. You can also remove products. 1. Optional. If upgrading the subscription tier, select the desired option. 1. Review your renewal details and select **Renew subscription** to complete the @@ -300,7 +300,7 @@ Subscription renewals with fewer seats must have or exceed the current number of Before you renew your subscription: - For GitLab.com, -[reduce the number of billable users](manage_users_and_seats.md#remove-users-from-subscription) +[reduce the number of billable users](billing_and_usage.md#remove-users-from-subscription) if it exceeds the number of seats you want to renew for. - For GitLab Self-Managed, [block inactive or unwanted users](../administration/moderate_users.md#block-a-user). @@ -440,7 +440,7 @@ Customers Portal: - Company name - Licensee name - Licensee email -- Historical [maximum user count](manage_users_and_seats.md#self-managed-billing-and-usage) +- Historical [maximum user count](billing_and_usage.md#for-gitlab-self-managed) - [Billable users count](manage_users_and_seats.md#billable-users) - GitLab version - Hostname @@ -493,7 +493,7 @@ To change the group linked to a GitLab.com subscription: - If the subscription is not linked to a group, select **Link subscription to a group**. - If the subscription is already linked to a group, select **Subscription actions** ({{< icon name="ellipsis_v" >}}) > **Change linked group**. 1. Select the desired group from the **New Namespace** dropdown list. For a group to appear here, you must have the Owner role for that group. -1. If the [total number of users](manage_users_and_seats.md#view-seat-usage) in your group exceeds the number of seats in your subscription, +1. If the [total number of users](billing_and_usage.md#view-seat-usage) in your group exceeds the number of seats in your subscription, you are prompted to pay for the additional users. Subscription charges are calculated based on the total number of users in a group, including its subgroups and nested projects. diff --git a/doc/subscriptions/manage_users_and_seats.md b/doc/subscriptions/manage_users_and_seats.md index 9b7287e431ec44140236c60d7d297c94172a45b0..d570994f0ef657d9774b9e3146d0b2f126e6697f 100644 --- a/doc/subscriptions/manage_users_and_seats.md +++ b/doc/subscriptions/manage_users_and_seats.md @@ -133,287 +133,3 @@ If you want to reduce the number of seats in your subscription, you can [renew f If you want to reduce seats after you have renewed or purchased a subscription, open a ticket with the Billing team or contact your GitLab sales representative. For assistance, visit the [Contact us](https://customers.gitlab.com/contact_us) page in your Customers Portal account. - -## Self-Managed billing and usage - -{{< details >}} - -- Offering: GitLab Self-Managed - -{{< /details >}} - -A GitLab Self-Managed subscription uses a hybrid model. You pay for a subscription -according to the maximum number of users enabled during the -subscription period. - -For instances that are not offline or on a closed network, the maximum number of -simultaneous users in the GitLab Self-Managed instance is checked each quarter. - -If an instance is unable to generate a quarterly usage report, the existing -true up model is used. Prorated charges are not -possible without a quarterly usage report. - -The number of users in subscription represents the number of users included in your current license, -based on what you've paid for. -This number remains the same throughout your subscription period unless you purchase more seats. - -The number of maximum users reflects the highest number of billable users on your system for the current license period. - -You can view and export your [license usage](../administration/license_usage.md). - -### Users over subscription - -A GitLab subscription is valid for a specific number of seats. -The number of users over subscription shows how many users are in excess of the -number allowed by the subscription, in the current subscription period. - -Calculated as `Maximum users` - `Users in subscription` for the current license -term. For example, you purchase a subscription for 10 users. - -| Event | Billable users | Maximum users | -|:---------------------------------------------------|:-----------------|:--------------| -| Ten users occupy all 10 seats. | 10 | 10 | -| Two new users join. | 12 | 12 | -| Three users leave and their accounts are blocked. | 9 | 12 | -| Four new users join. | 13 | 13 | - -Users over subscription = 13 - 10 (Maximum users - users in license) - -The users over subscription value is always zero for trial license. - -If users over subscription value is above zero, then you have more users in your -GitLab instance than you are licensed for. You must pay for the additional users -[before or at the time of renewal](quarterly_reconciliation.md). This is -called the "true up" process. If you do not do this, your license key does not work. - -To view the number of users over subscription, go to the **Admin** area. - -### View users - -View the lists of users in your instance: - -1. On the left sidebar, at the bottom, select **Admin**. -1. Select **Users**. - -Select a user to view their account information. - -#### Check daily and historical billable users - -Prerequisites: - -- You must be an administrator. - -You can get a list of daily and historical billable users in your GitLab instance: - -1. [Start a Rails console session](../administration/operations/rails_console.md#starting-a-rails-console-session). -1. Count the number of users in the instance: - - ```ruby - User.billable.count - ``` - -1. Get the historical maximum number of users on the instance from the past year: - - ```ruby - ::HistoricalData.max_historical_user_count(from: 1.year.ago.beginning_of_day, to: Time.current.end_of_day) - ``` - -#### Update daily and historical billable users - -Prerequisites: - -- You must be an administrator. - -You can trigger a manual update of the daily and historical billable users in your GitLab instance. - -1. [Start a Rails console session](../administration/operations/rails_console.md#starting-a-rails-console-session). -1. Force an update of the daily billable users: - - ```ruby - identifier = Analytics::UsageTrends::Measurement.identifiers[:billable_users] - ::Analytics::UsageTrends::CounterJobWorker.new.perform(identifier, User.minimum(:id), User.maximum(:id), Time.zone.now) - ``` - -1. Force an update of the historical max billable users: - - ```ruby - ::HistoricalDataWorker.new.perform - ``` - -### Manage users and subscription seats - -Managing the number of users against the number of subscription seats can be difficult: - -- If [LDAP is integrated with GitLab](../administration/auth/ldap/_index.md), anyone - in the configured domain can sign up for a GitLab account. This can result in - an unexpected bill at time of renewal. -- If sign-up is turned on in your instance, anyone who can access the instance can - sign up for an account. - -GitLab has several features to help you manage the number of users. You can: - -- [Require administrator approval for new sign ups](../administration/settings/sign_up_restrictions.md#require-administrator-approval-for-new-sign-ups). -- Automatically block new users, either through - [LDAP](../administration/auth/ldap/_index.md#basic-configuration-settings) or - [OmniAuth](../integration/omniauth.md#configure-common-settings). -- [Limit the number of billable users](../administration/settings/sign_up_restrictions.md#user-cap) - who can sign up or be added to a subscription without administrator approval. -- [Disable new sign-ups](../administration/settings/sign_up_restrictions.md), - and instead manage new users manually. -- View a breakdown of users by role in the - [Users statistics](../administration/admin_area.md#users-statistics) page. - -To increase the number of users covered by your license, [buy more seats](#buy-more-seats) -during the subscription period. The cost of seats added during the subscription -period is prorated from the date of purchase through to the end of the subscription -period. You can continue to add users even if you reach the number of users in -license count. GitLab [bills you for the overage](quarterly_reconciliation.md). - -If your subscription was activated with an activation code, the additional seats are reflected in -your instance immediately. If you're using a license file, you receive an updated file. -To add the seats, [add the license file](../administration/license_file.md) -to your instance. - -## GitLab.com billing and usage - -{{< details >}} - -- Offering: GitLab.com - -{{< /details >}} - -A GitLab.com subscription uses a concurrent (_seat_) model. -You pay for a subscription according to the maximum number of users assigned to the top-level group, -its subgroups and projects during the billing period. -You can add and remove users during the subscription period without incurring additional charges, -as long as the total users at any given time doesn't exceed the subscription count. -If the total users exceeds your subscription count, you will incur an overage, -which must be paid at your next [reconciliation](quarterly_reconciliation.md). - -A top-level group can be [changed](../user/group/manage.md#change-a-groups-path) like any other group. - -### Seats owed - -If the number of billable users exceeds the number of **seats in subscription**, known -as the number of **seats owed**, you must pay for the excess number of users. - -For example, if you purchase a subscription for 10 users: - -| Event | Billable members | Maximum users | -|:---------------------------------------------------|:-----------------|:--------------| -| Ten users occupy all 10 seats. | 10 | 10 | -| Two new users join. | 12 | 12 | -| Three users leave and their accounts are removed. | 9 | 12 | - -Seats owed = 12 - 10 (Maximum users - users in subscription) - -To prevent charges from seats owed, you can -[turn on restricted access](../user/group/manage.md#turn-on-restricted-access). -This setting restricts groups from adding new billable users when there are no seats left in the subscription. - -### Seat usage alerts - -{{< history >}} - -- [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/348481) in GitLab 15.2 [with a flag](../administration/feature_flags/_index.md) named `seat_flag_alerts`. -- [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/362041) in GitLab 15.4. Feature flag `seat_flag_alerts` removed. - -{{< /history >}} - -If you have the Owner role for a top-level group that is linked to a subscription enrolled in -[quarterly subscription reconciliations](quarterly_reconciliation.md), -you receive alerts about the seat usage in the subscription. - -The alert displays on group, subgroup, and project pages. -After you dismiss the alert, it doesn't display again until another seat is used. - -The alert displays at the following intervals: - -| Seats in subscription | Alert | -|-----------------------|---------------------| -| 0-15 | One seat remains. | -| 16-25 | Two seats remain. | -| 26-99 | 10% of seats remain.| -| 100-999 | 8% of seats remain. | -| 1000+ | 5% of seats remain. | - -### View seat usage - -To view a list of seats being used: - -1. On the left sidebar, select **Search or go to** and find your group. -1. Select **Settings** > **Usage quotas**. -1. Select the **Seats** tab. - -For each user, a list shows groups and projects where the user is a direct member. - -- **Group invite** indicates the user is a member of a [group invited to a group](../user/project/members/sharing_projects_groups.md#invite-a-group-to-a-group). -- **Project invite** indicates the user is a member of a [group invited to a project](../user/project/members/sharing_projects_groups.md#invite-a-group-to-a-project). - -The data in seat usage listing, **Seats in use**, and **Seats in subscription** are updated live. -The counts for **Max seats used** and **Seats owed** are updated once per day. - -#### View billing information - -To view your subscription information and a summary of seat counts: - -1. On the left sidebar, select **Search or go to** and find your group. -1. Select **Settings** > **Billing**. - -- The usage statistics are updated once per day, which may cause a difference between the information - in the **Usage quotas** page and the **Billing page**. -- The **Last login** field is updated when a user signs in after they have signed out. If there is an active session - when a user re-authenticates (for example, after a 24 hour SAML session timeout), this field is not updated. - -### Search users' seat usage - -You can view the users that use seats on your subscription. -To search for a user's seat usage: - -1. On the left sidebar, select **Search or go to** and find your group. -1. Select **Settings** > **Usage quotas**. -1. On the **Seats** tab, in the search field, enter the user's name or username. - The search string must have minimum three characters. - -The search returns a list of users whose first name, last name, or username match the search string. - -For example, for a user with the first name Amir, -the search string `ami` results in a match, but `amr` does not. - -### Export seat usage data - -To export seat usage data as a CSV file: - -1. On the left sidebar, select **Search or go to** and find your group. -1. Select **Settings** > **Usage quotas**. -1. In the **Seats** tab, select **Export list**. - -### Export seat usage history - -Prerequisites: - -- You must have the Owner role for the group. - -To export seat usage history as a CSV file: - -1. On the left sidebar, select **Search or go to** and find your group. -1. Select **Settings** > **Usage quotas**. -1. In the **Seats** tab, select **Export seat usage history**. - -The generated list contains all seats being used, -and is not affected by the current search. - -### Remove users from subscription - -To remove a billable user from your GitLab.com subscription: - -1. On the left sidebar, select **Search or go to** and find your group. -1. Select **Settings** > **Billing**. -1. In the **Seats currently in use** section, select **See usage**. -1. In the row for the user you want to remove, on the right side, select **Remove user**. -1. Re-type the username and select **Remove user**. - -If you add a member to a group by using the [share a group with another group](../user/project/members/sharing_projects_groups.md#invite-a-group-to-a-group) feature, you can't remove the member by using this method. Instead, you can either: - -- [Remove the member from the shared group](../user/group/_index.md#remove-a-member-from-the-group). -- [Remove the invited group](../user/project/members/sharing_projects_groups.md#remove-an-invited-group). diff --git a/doc/subscriptions/quarterly_reconciliation.md b/doc/subscriptions/quarterly_reconciliation.md index b8a883db031b6096e7f968e15bcf1223b53c6de7..9596e267c4df4c2350148af59fb08ecc4770f305 100644 --- a/doc/subscriptions/quarterly_reconciliation.md +++ b/doc/subscriptions/quarterly_reconciliation.md @@ -26,8 +26,8 @@ You pay less annually, which can result in substantial savings. Learn more about: -- [How seat usage is determined](manage_users_and_seats.md#gitlabcom-billing-and-usage) on GitLab.com. -- [How GitLab bills for users](manage_users_and_seats.md#self-managed-billing-and-usage) on GitLab Self-Managed. +- [How seat usage is determined](billing_and_usage.md#for-gitlabcom) on GitLab.com. +- [How GitLab bills for users](billing_and_usage.md#for-gitlab-self-managed) on GitLab Self-Managed. To prevent overages, you can turn on restricted access for your [group](../user/group/manage.md#turn-on-restricted-access) or [instance](../administration/settings/sign_up_restrictions.md#turn-on-restricted-access). @@ -87,7 +87,7 @@ Alternatively, you can reconcile any overages by [purchasing additional seats](m At the end of each subscription quarter, GitLab notifies you about overages. The date you're notified about the overage is not the same as the date you are billed. -1. An email that communicates the [overage seat quantity](manage_users_and_seats.md#seats-owed) +1. An email that communicates the [overage seat quantity](billing_and_usage.md#seats-owed) and expected invoice amount is sent: - On GitLab.com: On the reconciliation date, to group owners and billing account managers. diff --git a/doc/user/custom_roles/_index.md b/doc/user/custom_roles/_index.md index 24154d4c6fa12cdba11b479aacb0031941694bd7..a745af13e0c14456af42a319b066088dc8a49f04 100644 --- a/doc/user/custom_roles/_index.md +++ b/doc/user/custom_roles/_index.md @@ -33,7 +33,7 @@ There are two types of custom roles: - Custom member roles: - Can be assigned to members of a group or project. - Gains the same permissions in any subgroups or projects. For more information, see [membership types](../../user/project/members/_index.md#membership-types). - - [Uses a seat](../../subscriptions/manage_users_and_seats.md#gitlabcom-billing-and-usage) and becomes a [billable user](../../subscriptions/manage_users_and_seats.md#billable-users). + - [Uses a seat](../../subscriptions/billing_and_usage.md#for-gitlabcom) and becomes a [billable user](../../subscriptions/manage_users_and_seats.md#billable-users). - A custom Guest member role that includes only the `read_code` permission does not use a seat. - Custom admin roles: - Can be assigned to any user on the instance. diff --git a/doc/user/group/_index.md b/doc/user/group/_index.md index 0e9adb63fbe45f416babe1d4f988e9627368200b..5d328f3b14002799a67edda0899728456a6a8eab 100644 --- a/doc/user/group/_index.md +++ b/doc/user/group/_index.md @@ -382,7 +382,7 @@ For more information, see [issue 23020](https://gitlab.com/gitlab-org/gitlab/-/i {{< /alert >}} -To view all namespace members (and their respective occupied seats), in the top-level namespace, [view the **Usage quotas** page](../../subscriptions/manage_users_and_seats.md#view-seat-usage). +To view all namespace members (and their respective occupied seats), in the top-level namespace, [view the **Usage quotas** page](../../subscriptions/billing_and_usage.md#view-seat-usage). ## Filter and sort members in a group diff --git a/ee/app/assets/javascripts/usage_quotas/seats/constants.js b/ee/app/assets/javascripts/usage_quotas/seats/constants.js index 31619f14d51da00c90ef5b600ee230637901115d..6ae5f030e072d1a4971e40fc0275a70b6939b165 100644 --- a/ee/app/assets/javascripts/usage_quotas/seats/constants.js +++ b/ee/app/assets/javascripts/usage_quotas/seats/constants.js @@ -104,10 +104,10 @@ export const SORT_OPTIONS = [ }, ]; export const EXPLORE_PAID_PLANS_CLICKED = 'explore_paid_plans_clicked'; -export const seatsInUseLink = helpPagePath('subscriptions/manage_users_and_seats', { - anchor: 'gitlabcom-billing-and-usage', +export const seatsInUseLink = helpPagePath('subscriptions/billing_and_usage', { + anchor: 'for-gitlabcom', }); -export const seatsOwedLink = helpPagePath('subscriptions/manage_users_and_seats', { +export const seatsOwedLink = helpPagePath('subscriptions/billing_and_usage', { anchor: 'seats-owed', }); export const seatsUsedLink = helpPagePath('subscriptions/manage_subscription', { diff --git a/ee/app/views/license_mailer/approaching_active_user_count_limit.html.haml b/ee/app/views/license_mailer/approaching_active_user_count_limit.html.haml index a29c2e210faf396a7a4f5b8620ed664ee4a07e6b..1f88ff302dcc502ff344acb1505e6306906ca97a 100644 --- a/ee/app/views/license_mailer/approaching_active_user_count_limit.html.haml +++ b/ee/app/views/license_mailer/approaching_active_user_count_limit.html.haml @@ -1,5 +1,5 @@ -- users_over_subscription_link = link_to("users over subscription", help_page_url('subscriptions/manage_users_and_seats.md', anchor: 'users-over-subscription')) -- self_managed_subscriptions_doc_link = link_to("self-managed subscriptions", help_page_url('subscriptions/manage_users_and_seats.md', anchor: 'self-managed-billing-and-usage')) +- users_over_subscription_link = link_to("users over subscription", help_page_url('subscriptions/billing_and_usage.md', anchor: 'users-over-subscription')) +- self_managed_subscriptions_doc_link = link_to("self-managed subscriptions", help_page_url('subscriptions/billing_and_usage.md', anchor: 'for-gitlab-self-managed')) - subscriptions_doc_link = link_to("our documentation", help_page_url('subscriptions/_index.md')) %p diff --git a/ee/spec/frontend/usage_quotas/seats/components/subscription_seats_statistics_card_spec.js b/ee/spec/frontend/usage_quotas/seats/components/subscription_seats_statistics_card_spec.js index 4ad9416216cf94a5b312aae95cd58c92dfb5786a..25079615970bda1702d97bb0edaa51c4e7622aa8 100644 --- a/ee/spec/frontend/usage_quotas/seats/components/subscription_seats_statistics_card_spec.js +++ b/ee/spec/frontend/usage_quotas/seats/components/subscription_seats_statistics_card_spec.js @@ -93,7 +93,7 @@ describe('SubscriptionSeatsStatisticsCard', () => { it('renders the tooltip link', () => { expect(findTooltipLink().attributes('href')).toBe( - '/help/subscriptions/manage_users_and_seats#gitlabcom-billing-and-usage', + '/help/subscriptions/billing_and_usage#for-gitlabcom', ); }); @@ -129,7 +129,7 @@ describe('SubscriptionSeatsStatisticsCard', () => { it('renders the tooltip link', () => { expect(findTooltipLink().attributes('href')).toBe( - '/help/subscriptions/manage_users_and_seats#gitlabcom-billing-and-usage', + '/help/subscriptions/billing_and_usage#for-gitlabcom', ); }); @@ -164,7 +164,7 @@ describe('SubscriptionSeatsStatisticsCard', () => { it('renders the tooltip link', () => { expect(findTooltipLink().attributes('href')).toBe( - '/help/subscriptions/manage_users_and_seats#gitlabcom-billing-and-usage', + '/help/subscriptions/billing_and_usage#for-gitlabcom', ); }); @@ -234,7 +234,7 @@ describe('SubscriptionSeatsStatisticsCard', () => { it('renders the tooltip link', () => { expect(findTooltipLink().attributes('href')).toBe( - '/help/subscriptions/manage_users_and_seats#gitlabcom-billing-and-usage', + '/help/subscriptions/billing_and_usage#for-gitlabcom', ); });