diff --git a/COMPONENTS.md b/COMPONENTS.md index 34cf8aeef22d..55e372ae6e1d 100644 --- a/COMPONENTS.md +++ b/COMPONENTS.md @@ -292,8 +292,9 @@ empty string default. ### Summary bars -Summary bars indicate subscription requirements, version requirements, or -administrator-only features at the top of a page. +Summary bars indicate the account type, subscription, purchase path, version +requirements, the role or permission a task needs, or the feature's +availability at the top of a page. **Example:** @@ -301,14 +302,21 @@ administrator-only features at the top of a page. **Setup:** -1. Add feature to `/data/summary.yaml`: +1. Add feature to `/data/summary.yaml`. The file is a flat map keyed by + feature name, and `subscription` is a list: ```yaml -features: - Docker Scout: - subscription: Business - availability: GA - requires: "Docker Desktop 4.17 or later" +Docker Scout: + subscription: [Pro, Team, Business] + availability: GA + requires: "Docker Desktop 4.17 or later" +Activity logs: + subscription: [Team, Business] + role: Owner + permission: View activity logs +Gordon plans: + account: Individual + purchase: Self-serve ``` 2. Add shortcode to page: @@ -319,12 +327,40 @@ features: **Attributes in summary.yaml:** -| Attribute | Description | Values | -| ------------ | ------------------------------------- | ------------------------------------------------- | -| subscription | Subscription tier required | All, Personal, Pro, Team, Business | -| availability | Product development stage | Experimental, Beta, Early Access, GA, Retired | -| requires | Minimum version requirement | String describing version (link to release notes) | -| for | Audience for the feature | Administrators, Individuals | +| Attribute | Description | Values | +| ------------ | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| account | Account the plan or setting belongs to | Individual, Organization | +| subscription | Subscription tiers required (list). Use `Available to all organization accounts` when the task is not limited to a plan. Set it only when the page is gated to those tiers. The bar displays Personal, Pro, Team, and Business as Docker Personal, Docker Pro, Docker Team, and Docker Business to match the [pricing page](https://www.docker.com/pricing/). | Personal, Pro, Team, Business, AI Governance, Docker Offload, Available to all organization accounts, and the Docker Hardened Images tiers | +| purchase | How you buy the plan | Self-serve, Sales-led | +| role | Core role that has the task | Owner, Editor, Company owner | +| permission | Custom role permission that grants the same task. Must match an exact name from the permissions reference. | An exact permission name from `content/manuals/security/roles-and-permissions/custom-roles/permissions-reference.md` | +| availability | Product development stage | Experimental, Beta, Early Access, GA, Retired | +| requires | Minimum version or other prerequisite | String describing the requirement (link to release notes) | +| for | Audience for the feature | Administrators, Individuals. Prefer `role` and `permission` for new records; `for` remains for records that still set it | + +Role and permission render as separate lines. The **Core role** and +**Custom role permission** labels (without the colon) link to the +[core roles](/manuals/security/roles-and-permissions/core-roles.md) and +[custom roles](/manuals/security/roles-and-permissions/custom-roles/_index.md) +overview pages. The core role is the built-in role that already includes the +task. The permission name appears as plain text after the label, followed by a +key icon. A custom role on a Docker Business subscription can grant that +permission to a member. A record with only a role shows the core role line. + +**Page override:** + +When several pages share one record but each page is gated by a different +permission, pass `permission` on the shortcode. The page value replaces the +record value for that page only: + +```markdown +{{* summary-bar feature_name="Admin orgs" permission="Manage teams" */>}} +``` + +The build fails when `permission`, on the record or on the page, is not an +exact name from the permissions reference, the same way it fails for an +unknown `feature_name`. A page can't override `subscription` or `role`; +passing either on the shortcode fails the build. Change the record instead. ### Buttons diff --git a/content/manuals/accounts/company/new-company.md b/content/manuals/accounts/company/new-company.md index de9b55f015f0..734e4db9d0fb 100644 --- a/content/manuals/accounts/company/new-company.md +++ b/content/manuals/accounts/company/new-company.md @@ -14,13 +14,6 @@ aliases: Learn how to create a new company in Docker Home, a centralized dashboard for managing organizations. -## Prerequisites - -Before you begin, you must: - -- Be the owner of the organization you want to add to your company -- Have a Docker Business subscription - ## Create a company To create a new company: diff --git a/content/manuals/accounts/organization/activity-logs.md b/content/manuals/accounts/organization/activity-logs.md index db269a80ca56..fb1b618476e1 100644 --- a/content/manuals/accounts/organization/activity-logs.md +++ b/content/manuals/accounts/organization/activity-logs.md @@ -19,9 +19,6 @@ Activity logs show a chronological list of organization and repository changes in Docker Home. Use them to see what changed, when it changed, and who made the change. -Organization owners and members with a custom role that includes the -**View activity logs** permission can open the activity log. - > [!TIP] > > Use activity logs for an admin audit trail of your organization and diff --git a/content/manuals/accounts/organization/insights.md b/content/manuals/accounts/organization/insights.md index c40fef0921b3..b07d7838bf24 100644 --- a/content/manuals/accounts/organization/insights.md +++ b/content/manuals/accounts/organization/insights.md @@ -30,7 +30,6 @@ use. To use Insights, you must meet the following requirements: -- A Docker Business subscription - Administrators must [enforce sign-in](/manuals/desktop/enterprise/enforce-sign-in/_index.md) for users diff --git a/content/manuals/accounts/organization/manage/general-settings.md b/content/manuals/accounts/organization/manage/general-settings.md index 78f9363b634e..e4811981847a 100644 --- a/content/manuals/accounts/organization/manage/general-settings.md +++ b/content/manuals/accounts/organization/manage/general-settings.md @@ -10,6 +10,8 @@ aliases: - /accounts/organization/setup/general-settings/ --- +{{< summary-bar feature_name="Organization information" >}} + Learn how to update your organization information. ## Update organization information diff --git a/content/manuals/accounts/organization/manage/manage-a-team.md b/content/manuals/accounts/organization/manage/manage-a-team.md index 7c9c595068d4..66802f8e1a40 100644 --- a/content/manuals/accounts/organization/manage/manage-a-team.md +++ b/content/manuals/accounts/organization/manage/manage-a-team.md @@ -11,7 +11,7 @@ aliases: - /admin/organization/manage-a-team/ --- -{{< summary-bar feature_name="Admin orgs" >}} +{{< summary-bar feature_name="Admin orgs" permission="Manage teams" >}} You can create teams for your organization in Docker Home or Docker Hub, and configure team repository access in Docker Hub. diff --git a/content/manuals/accounts/organization/manage/manage-licenses.md b/content/manuals/accounts/organization/manage/manage-licenses.md index 212a9571969d..c2b32795e00e 100644 --- a/content/manuals/accounts/organization/manage/manage-licenses.md +++ b/content/manuals/accounts/organization/manage/manage-licenses.md @@ -13,9 +13,10 @@ aliases: - /admin/organization/manage/manage-licenses/ --- -Licenses control which organization members can use supported Docker products. -As an organization owner, you manage license availability for your -organization. +{{< summary-bar feature_name="Licenses" >}} + +Licenses control which organization members can use supported Docker +products. You manage license availability for your organization. > [!TIP] > To learn more about product licenses, Docker Team and Business seats, and diff --git a/content/manuals/accounts/organization/manage/manage-products.md b/content/manuals/accounts/organization/manage/manage-products.md index fa8ae9a7faf2..09ec554cf85d 100644 --- a/content/manuals/accounts/organization/manage/manage-products.md +++ b/content/manuals/accounts/organization/manage/manage-products.md @@ -9,7 +9,7 @@ aliases: - /admin/organization/manage-products/ --- -{{< summary-bar feature_name="Admin orgs" >}} +{{< summary-bar feature_name="Admin orgs" permission="Manage Desktop settings" >}} Use this page to learn how to control and monitor product access and usage for your organization's members. If you're looking for setup and diff --git a/content/manuals/accounts/organization/manage/manage-seats.md b/content/manuals/accounts/organization/manage/manage-seats.md index b08f6d6dc248..9cb9d23b24ad 100644 --- a/content/manuals/accounts/organization/manage/manage-seats.md +++ b/content/manuals/accounts/organization/manage/manage-seats.md @@ -15,6 +15,8 @@ aliases: weight: 50 --- +{{< summary-bar feature_name="Admin orgs" permission="Manage billing" >}} + You can add or remove seats from your Docker Team or Business subscription at any time to accommodate team changes. When you add seats mid-billing cycle, you're charged a prorated amount for the additional seats. > [!IMPORTANT] diff --git a/content/manuals/accounts/organization/manage/members.md b/content/manuals/accounts/organization/manage/members.md index 309a46e0b167..a0a6ff21e1e0 100644 --- a/content/manuals/accounts/organization/manage/members.md +++ b/content/manuals/accounts/organization/manage/members.md @@ -16,6 +16,8 @@ aliases: - /admin/organization/members/ --- +{{< summary-bar feature_name="Admin orgs" permission="Member management" >}} + Invite and manage members for your organization in Docker Home. ## Invite members diff --git a/content/manuals/accounts/organization/setup/convert-account.md b/content/manuals/accounts/organization/setup/convert-account.md index f067f803627c..393b0458d296 100644 --- a/content/manuals/accounts/organization/setup/convert-account.md +++ b/content/manuals/accounts/organization/setup/convert-account.md @@ -20,7 +20,7 @@ aliases: toc_max: 3 --- -{{< summary-bar feature_name="Admin orgs" >}} +{{< summary-bar feature_name="Create organization" >}} When you convert, your [Docker ID](/manuals/accounts/_index.md) becomes an organization instead of diff --git a/content/manuals/accounts/organization/setup/onboard.md b/content/manuals/accounts/organization/setup/onboard.md index 950c246a7245..273d10d605b4 100644 --- a/content/manuals/accounts/organization/setup/onboard.md +++ b/content/manuals/accounts/organization/setup/onboard.md @@ -38,11 +38,9 @@ pull limits and other benefits when they are signed in. ## Prerequisites -Before you onboard your organization, you need a Docker Team or Business -subscription. For details, see -[Docker subscriptions and features](https://www.docker.com/pricing?ref=Docs&refAction=DocsAdminOnboard). When you buy a self-serve subscription, the on-screen instructions guide -you through creating an organization. +you through creating an organization. For plan details, see +[Docker subscriptions and features](https://www.docker.com/pricing?ref=Docs&refAction=DocsAdminOnboard). If you bought a subscription through Docker Sales and you haven't created an organization yet, see diff --git a/content/manuals/accounts/organization/setup/orgs.md b/content/manuals/accounts/organization/setup/orgs.md index 6efa3c2bd353..1cfffce6d50c 100644 --- a/content/manuals/accounts/organization/setup/orgs.md +++ b/content/manuals/accounts/organization/setup/orgs.md @@ -16,7 +16,7 @@ aliases: - /admin/organization/orgs/ --- -{{< summary-bar feature_name="Admin orgs" >}} +{{< summary-bar feature_name="Create organization" >}} Create an organization to group members and teams under one namespace and one subscription. Your Docker ID stays an individual account. To use an diff --git a/content/manuals/security/access-tokens/organization-access-tokens.md b/content/manuals/security/access-tokens/organization-access-tokens.md index 210fae59b463..27f26af979b3 100644 --- a/content/manuals/security/access-tokens/organization-access-tokens.md +++ b/content/manuals/security/access-tokens/organization-access-tokens.md @@ -23,7 +23,8 @@ working when people join or leave the organization. Unlike a personal access token (PAT), an OAT belongs to the organization. Any organization owner can see, edit, deactivate, or -delete it. Each token has its own scopes, so it can only reach the +delete it. A company owner can do the same for organizations in the +company. Each token has its own scopes, so it can only reach the repositories and organization settings you choose. > [!WARNING] @@ -42,17 +43,6 @@ repositories and organization settings you choose. - Deactivate or delete a token as soon as it's compromised or no longer needed -## Prerequisites - -To create and manage OATs, you need: - -- A Docker Team or Docker Business subscription -- One of these roles in the organization: - - Organization owner - - Company owner, for organizations that belong to a company - - A [custom role](/manuals/security/roles-and-permissions/custom-roles/permissions-reference.md) - that includes the **Manage organization access tokens** permission - ## Create an organization access token > [!IMPORTANT] diff --git a/content/manuals/security/access-tokens/personal-access-tokens.md b/content/manuals/security/access-tokens/personal-access-tokens.md index d9ca7739f3b1..2dac002f28ff 100644 --- a/content/manuals/security/access-tokens/personal-access-tokens.md +++ b/content/manuals/security/access-tokens/personal-access-tokens.md @@ -24,8 +24,7 @@ changing your password. From Docker Home, you can view the token list, which shows when each token was last used. Treat PATs like passwords and keep them secure. Store tokens in a -credential manager and never commit them to source code. Before you -create a PAT, you must verify your email address. +credential manager and never commit them to source code. > [!TIP] > diff --git a/content/manuals/security/authentication/2fa/manage.md b/content/manuals/security/authentication/2fa/manage.md index 3284b09900cc..4f9e0b3987db 100644 --- a/content/manuals/security/authentication/2fa/manage.md +++ b/content/manuals/security/authentication/2fa/manage.md @@ -27,7 +27,6 @@ Before you turn on 2FA, you need: - A time-based one-time password (TOTP) authenticator app on your phone or another device - Your Docker account password -- A verified email address on your account ## Enable two-factor authentication diff --git a/content/manuals/security/authentication/oidc-connections/create-manage.md b/content/manuals/security/authentication/oidc-connections/create-manage.md index 2f847d6ba54a..2e1208fd3ba4 100644 --- a/content/manuals/security/authentication/oidc-connections/create-manage.md +++ b/content/manuals/security/authentication/oidc-connections/create-manage.md @@ -11,8 +11,8 @@ aliases: {{< summary-bar feature_name="OIDC connections" >}} -Organization owners and editors create and manage OIDC connections from -**OIDC connections** in Docker Home. After you create a connection, +Create and manage OIDC connections from **OIDC connections** in Docker +Home. After you create a connection, configure your GitHub Actions workflow so it can sign in to Docker Hub with a short-lived token. diff --git a/content/manuals/security/provisioning/auto-provisioning.md b/content/manuals/security/provisioning/auto-provisioning.md index 36afbb2f6f30..b1dacbd5a99e 100644 --- a/content/manuals/security/provisioning/auto-provisioning.md +++ b/content/manuals/security/provisioning/auto-provisioning.md @@ -8,6 +8,8 @@ aliases: - /enterprise/security/provisioning/auto-provisioning/ --- +{{< summary-bar feature_name="Domain management" >}} + Auto-provisioning automatically adds users to your organization when they sign in with email addresses that match your verified domains. You must verify a domain before enabling auto-provisioning. diff --git a/content/manuals/security/provisioning/scim/_index.md b/content/manuals/security/provisioning/scim/_index.md index 00e0daf5d797..f9a49d718ec1 100644 --- a/content/manuals/security/provisioning/scim/_index.md +++ b/content/manuals/security/provisioning/scim/_index.md @@ -25,7 +25,7 @@ account lifecycle. Before you begin, you must have: - SSO configured for your organization -- Administrator access to Docker Home and your identity provider +- Administrator access to your identity provider ## How SCIM works diff --git a/content/manuals/security/provisioning/scim/group-mapping.md b/content/manuals/security/provisioning/scim/group-mapping.md index b06a994962bf..f7883ab5cd34 100644 --- a/content/manuals/security/provisioning/scim/group-mapping.md +++ b/content/manuals/security/provisioning/scim/group-mapping.md @@ -35,7 +35,7 @@ Use group mapping to manage team membership through SAML SSO, SCIM, or both. Before you begin, you must have: - SSO configured for your organization -- Administrator access to Docker Home and your identity provider +- Administrator access to your identity provider ## How group mapping works diff --git a/content/manuals/security/roles-and-permissions/custom-roles/_index.md b/content/manuals/security/roles-and-permissions/custom-roles/_index.md index a05c36638067..d28c4687d0da 100644 --- a/content/manuals/security/roles-and-permissions/custom-roles/_index.md +++ b/content/manuals/security/roles-and-permissions/custom-roles/_index.md @@ -33,11 +33,6 @@ If Docker's predefined permission sets meet your needs, use [core roles](/manuals/security/roles-and-permissions/_index.md) instead. -## Prerequisites - -- A Docker Business subscription -- Owner permissions in your Docker organization - ## Creating custom roles To create a custom role, you select permissions from organization management, diff --git a/content/manuals/subscription-billing/manage/details.md b/content/manuals/subscription-billing/manage/details.md index 15cb1381712f..31f75193a376 100644 --- a/content/manuals/subscription-billing/manage/details.md +++ b/content/manuals/subscription-billing/manage/details.md @@ -9,6 +9,8 @@ aliases: - /billing/cycle/ --- +{{< summary-bar feature_name="Billing" >}} + You can update your billing contact information, address, and notification email at any time. Existing invoices, whether paid or unpaid, cannot be updated. Changes only apply to future invoices. ## Update billing details diff --git a/content/manuals/subscription-billing/manage/history.md b/content/manuals/subscription-billing/manage/history.md index 62a8792697e4..b2985b1bce0e 100644 --- a/content/manuals/subscription-billing/manage/history.md +++ b/content/manuals/subscription-billing/manage/history.md @@ -9,6 +9,8 @@ aliases: - /billing/core-billing/history/ --- +{{< summary-bar feature_name="Billing" permission="View billing" >}} + Docker issues an invoice each time a subscription to a Docker plan renews or changes. You can track invoices issued to your account so you can review the plans you've subscribed to over time, check payment status, and download records as needed. diff --git a/content/manuals/subscription-billing/manage/payment-method.md b/content/manuals/subscription-billing/manage/payment-method.md index 1d3c7ba39cff..1be62a367b6b 100644 --- a/content/manuals/subscription-billing/manage/payment-method.md +++ b/content/manuals/subscription-billing/manage/payment-method.md @@ -13,6 +13,8 @@ aliases: - /billing/core-billing/payment-method/ --- +{{< summary-bar feature_name="Billing" >}} + Docker supports several payment methods for paid individual accounts and organizations. This page describes supported payment types, how to manage payments from [Docker Home](https://app.docker.com/), and how to set up pay diff --git a/content/manuals/subscription-billing/manage/plans.md b/content/manuals/subscription-billing/manage/plans.md index 5c6429a4f1da..856fa2497ad7 100644 --- a/content/manuals/subscription-billing/manage/plans.md +++ b/content/manuals/subscription-billing/manage/plans.md @@ -20,6 +20,8 @@ aliases: - /billing/subscription-management/ --- +{{< summary-bar feature_name="Billing" >}} + You can add and manage your plans from the billing portal in Docker Home. Within the billing portal, you use the product catalog to view self-serve Docker products, while the Overview page shows your active plans with options to upgrade or cancel. diff --git a/content/manuals/subscription-billing/manage/tax-certificate.md b/content/manuals/subscription-billing/manage/tax-certificate.md index 4261c1af901d..b2851e8eeb51 100644 --- a/content/manuals/subscription-billing/manage/tax-certificate.md +++ b/content/manuals/subscription-billing/manage/tax-certificate.md @@ -12,6 +12,8 @@ aliases: - /billing/tax-certificate/ --- +{{< summary-bar feature_name="Billing" >}} + Depending on your location, Docker may collect sales tax or VAT on your subscription. Tax relief is the same idea in both cases, but the process differs: diff --git a/content/manuals/subscription-billing/plans/ai-governance.md b/content/manuals/subscription-billing/plans/ai-governance.md index 8974be8af030..e0876b3e7994 100644 --- a/content/manuals/subscription-billing/plans/ai-governance.md +++ b/content/manuals/subscription-billing/plans/ai-governance.md @@ -14,6 +14,8 @@ aliases: - /subscription/ai-governance/ --- +{{< summary-bar feature_name="AI Governance plan" >}} + > [!TIP] > To subscribe to AI Governance, contact sales. diff --git a/content/manuals/subscription-billing/plans/dhi.md b/content/manuals/subscription-billing/plans/dhi.md index 8cccd147fa67..a6fb8c2f1df6 100644 --- a/content/manuals/subscription-billing/plans/dhi.md +++ b/content/manuals/subscription-billing/plans/dhi.md @@ -15,6 +15,8 @@ aliases: - /subscription/plans/dhi-select/ --- +{{< summary-bar feature_name="DHI plans" >}} + [Docker Hardened Images (DHI)](/manuals/dhi/_index.md) are secure, minimal, production-ready container images maintained by Docker. - DHI Community is free and available to every developer. diff --git a/content/manuals/subscription-billing/plans/docker-agentic-platform.md b/content/manuals/subscription-billing/plans/docker-agentic-platform.md index e89373de23f7..3f60904838e7 100644 --- a/content/manuals/subscription-billing/plans/docker-agentic-platform.md +++ b/content/manuals/subscription-billing/plans/docker-agentic-platform.md @@ -14,10 +14,7 @@ aliases: - /subscription/plans/docker-agentic-platform/ --- -> [!TIP] -> Docker Agentic Platform signups receive a one-time promotional -> credit toward cloud compute usage. To review your balance, see -> [Credits](/manuals/subscription-billing/manage/_index.md#credits). +{{< summary-bar feature_name="Docker Agentic Platform" >}} [Docker Agentic Platform](https://agentic-platform.docker.com/) is a pay-as-you-go plan for running agent and tool workloads in isolated @@ -27,6 +24,12 @@ subscription fee. To activate access for the Console, cloud sandbox CLI, or API and SDKs, follow [Signup and billing](/manuals/agentic-platform/signup.md#activate-cloud-access). +> [!TIP] +> +> Docker Agentic Platform signups receive a one-time promotional +> credit toward cloud compute usage. To review your balance, see +> [Credits](/manuals/subscription-billing/manage/_index.md#credits). + ## Usage > [!NOTE] diff --git a/content/manuals/subscription-billing/plans/docker-verified-publisher.md b/content/manuals/subscription-billing/plans/docker-verified-publisher.md index 4e712d58b2a3..46c02e9a5a9c 100644 --- a/content/manuals/subscription-billing/plans/docker-verified-publisher.md +++ b/content/manuals/subscription-billing/plans/docker-verified-publisher.md @@ -13,6 +13,8 @@ aliases: - /subscription/plans/docker-verified-publisher/ --- +{{< summary-bar feature_name="Docker Verified Publisher" >}} + > [!TIP] > DVP plans require an approved application before you can subscribe. > See [Apply for DVP Starter or Growth](#apply-for-dvp-starter-or-growth). diff --git a/content/manuals/subscription-billing/plans/gordon.md b/content/manuals/subscription-billing/plans/gordon.md index 0470a2ae610c..cf8ccbfc67e6 100644 --- a/content/manuals/subscription-billing/plans/gordon.md +++ b/content/manuals/subscription-billing/plans/gordon.md @@ -14,6 +14,8 @@ aliases: - /subscription/gordon/ --- +{{< summary-bar feature_name="Gordon plans" >}} + [Gordon](/manuals/ai/gordon/_index.md) is an AI assistant for Docker workflows. For pricing details, see the [Gordon product page](https://www.docker.com/products/gordon/). - Gordon Base is included at no cost with Docker plans. It covers everyday Docker workflow questions with a baseline monthly usage allowance. diff --git a/data/summary.yaml b/data/summary.yaml index cae0e0b9817d..dd05697624b9 100644 --- a/data/summary.yaml +++ b/data/summary.yaml @@ -1,18 +1,24 @@ 2FA: subscription: [Personal, Pro] - for: Individuals + requires: A verified email address AI Governance Audit Logs: subscription: [AI Governance] requires: Docker Sandboxes [0.39.0](/manuals/ai/sandboxes/release-notes.md) or later +AI Governance plan: + account: Organization + purchase: Sales-led Activity logs: subscription: [Team, Business] - for: Administrators + role: Owner + permission: View activity logs Admin Console: subscription: [Business] for: Administrators Admin orgs: subscription: [Team, Business] - for: Administrators + role: Owner +Create organization: + subscription: [Team, Business] Air-gapped containers: subscription: [Business] for: Administrators @@ -22,6 +28,9 @@ Amazon S3 cache: availability: Experimental Gordon: requires: Docker Desktop [4.74.0](/manuals/desktop/release-notes.md#4740) or later +Gordon plans: + account: Individual + purchase: Self-serve Gordon DHI migration: availability: Experimental requires: Docker Desktop [4.38.0](/manuals/desktop/release-notes.md#4380) or later @@ -30,6 +39,10 @@ Automated builds: subscription: [Pro, Team, Business] Azure blob: availability: Experimental +Billing: + subscription: [Personal, Pro, Team, Business] + role: Owner + permission: Manage billing Build additional contexts: requires: Docker Compose [2.17.0](https://github.com/docker/compose/releases/tag/v2.17.0) and later Build checks: @@ -79,7 +92,7 @@ Cache backend API: availability: Experimental Company: subscription: [Business] - for: Administrators + role: Company owner Compliance reporting: subscription: [Business] for: Administrators @@ -155,13 +168,20 @@ Compose SDK: requires: Docker Compose [5.0.0](https://github.com/docker/compose/releases/tag/v5.0.0) and later Custom roles: subscription: [Business] - for: Administrators + role: Owner + permission: Manage custom roles Dev Environments: availability: Beta +Docker Agentic Platform: + account: Individual + purchase: Self-serve Docker Build Cloud: subscription: [Pro, Team, Business] Docker CLI OpenTelemetry: requires: Docker Engine [26.1.0](/manuals/engine/release-notes/26.1.md#2610) and later +Docker Verified Publisher: + account: Organization + purchase: Self-serve Docker Offload: subscription: [Docker Offload] requires: Docker Desktop 4.68 or later @@ -177,6 +197,9 @@ Docker Hardened Images: subscription: [Docker Hardened Images Select or Enterprise] Docker Hardened Images Enterprise: subscription: [Docker Hardened Images Enterprise] +DHI plans: + account: Organization + purchase: Self-serve Docker Hardened Images EU data residency: availability: Early Access subscription: [Docker Hardened Images Select or Enterprise] @@ -222,10 +245,12 @@ Docker Scout Mount Permissions: requires: Docker Desktop [4.34.0](/manuals/desktop/release-notes.md#4340) and later OIDC connections: subscription: [Team, Business] - for: Administrators + role: Editor + permission: Manage OIDC connections Domain management: subscription: [Business] - for: Administrators + role: Owner + permission: Manage domains Domain audit: subscription: [Business] for: Administrators @@ -235,7 +260,8 @@ Enforce sign-in: Gated distribution: availability: Early Access General admin: - for: Administrators + subscription: [Available to all organization accounts] + role: Owner GitHub Actions cache: availability: Experimental Hardened Docker Desktop: @@ -253,11 +279,15 @@ Immutable tags: availability: Beta Insights: subscription: [Business] - for: Administrators + role: Owner Intune: for: Administrators Jamf Pro: for: Administrators +Licenses: + subscription: [Team, Business, AI Governance, Docker Offload] + role: Owner + permission: Manage licenses Load by default: requires: Docker Buildx [0.14.0](https://github.com/docker/buildx/releases/tag/v0.14.0) and later Evaluate policies: @@ -267,10 +297,15 @@ MSI installer: for: Administrators OATs: subscription: [Team, Business] - for: Administrators + role: Owner + permission: Manage organization access tokens +Organization information: + subscription: [Available to all organization accounts] + role: Owner + permission: Update organization information PATs: subscription: [Personal, Pro] - for: Individuals + requires: A verified email address Pay by invoice: subscription: [Team, Business] PKG installer: @@ -288,7 +323,8 @@ SOCKS5 proxy support: subscription: [Business] SSO: subscription: [Business] - for: Administrators + role: Owner + permission: Manage SSO and SCIM Synchronized file sharing: subscription: [Pro, Team, Business] Unassociated machines: diff --git a/layouts/_shortcodes/summary-bar.html b/layouts/_shortcodes/summary-bar.html index aa434c1dd17c..16cfeae53620 100644 --- a/layouts/_shortcodes/summary-bar.html +++ b/layouts/_shortcodes/summary-bar.html @@ -3,6 +3,18 @@ {{ if not $feature }} {{ errorf "[summary-bar] invalid feature: %s %v" $featureName .Position }} {{ end }} +{{ if .Get "subscription" }} + {{ errorf "[summary-bar] subscription can't be overridden on the page; set it on the %q record in data/summary.yaml %v" $featureName .Position }} +{{ end }} +{{ if .Get "role" }} + {{ errorf "[summary-bar] role can't be overridden on the page; set it on the %q record in data/summary.yaml %v" $featureName .Position }} +{{ end }} +{{ if .Get "account" }} + {{ errorf "[summary-bar] account can't be overridden on the page; set it on the %q record in data/summary.yaml %v" $featureName .Position }} +{{ end }} +{{ if .Get "purchase" }} + {{ errorf "[summary-bar] purchase can't be overridden on the page; set it on the %q record in data/summary.yaml %v" $featureName .Position }} +{{ end }} {{ if $feature }} {{ $subscriptionIcons := dict "Business" "building-office" @@ -10,11 +22,19 @@ "Pro" "user-plus" "Personal" "user" "Available to all" "globe-alt" + "Available to all organization accounts" "globe-alt" "Docker Hardened Images Enterprise" "/icons/dhi.svg" "Docker Hardened Images Select or Enterprise" "/icons/dhi.svg" "Docker Offload" "cloud" "AI Governance" "shield-check" }} + {{/* Short YAML keys map to pricing-page names for display. */}} + {{ $subscriptionLabels := dict + "Personal" "Docker Personal" + "Pro" "Docker Pro" + "Team" "Docker Team" + "Business" "Docker Business" + }} {{ $availabilityIcons := dict "Experimental" "beaker" "Beta" "bolt" @@ -22,19 +42,62 @@ "GA" "check-circle" "Retired" "archive-box" }} + {{ $accountIcons := dict + "Individual" "user" + "Organization" "building-office" + }} + {{ $purchaseIcons := dict + "Self-serve" "shopping-cart" + "Sales-led" "phone" + }} {{ $requiresIcon := "arrow-down-circle" }} + {{ $roleIcon := "shield-check" }} + {{ $permissionIcon := "key" }} {{ $forIcons := dict "Administrators" "shield-check" "Individuals" "user-circle" }} + {{/* The page value wins over the record value. */}} + {{ $permission := .Get "permission" | default $feature.permission }} + {{ if $permission }} + {{/* Only exact names from the custom role permissions reference are allowed. */}} + {{ $permissionsReference := "content/manuals/security/roles-and-permissions/custom-roles/permissions-reference.md" }} + {{ $permissionNames := slice }} + {{ range split (os.ReadFile $permissionsReference) "\n" }} + {{ with findRESubmatch `^\| ([^|:][^|]*?) +\|` . 1 }} + {{ $name := index (index . 0) 1 }} + {{ if ne $name "Permission" }} + {{ $permissionNames = $permissionNames | append $name }} + {{ end }} + {{ end }} + {{ end }} + {{ if not (in $permissionNames $permission) }} + {{ errorf "[summary-bar] invalid permission: %q is not a permission in %s %v" $permission $permissionsReference .Position }} + {{ end }} + {{ end }}