website/docs: update preview status of different features (cherry-pick #11817) (#11818)

website/docs: update preview status of different features (#11817)

* remove preview from RAC



* add preview page instead of info box



* remove preview from rbac



* add preview to gdtc



* add preview to kerberos source



---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: Jens L. <jens@goauthentik.io>
This commit is contained in:
gcp-cherry-pick-bot[bot]
2024-10-25 21:42:45 +02:00
committed by GitHub
parent f0e4f93fe6
commit 6cfd2bd1af
16 changed files with 100 additions and 105 deletions

View File

@ -129,11 +129,7 @@ export class RACProviderViewPage extends AKElement {
if (!this.provider) { if (!this.provider) {
return html``; return html``;
} }
return html`<div slot="header" class="pf-c-banner pf-m-info"> return html`${this.provider?.assignedApplicationName
${msg("RAC is in preview.")}
<a href="mailto:hello+feature/rac@goauthentik.io">${msg("Send us feedback!")}</a>
</div>
${this.provider?.assignedApplicationName
? html`` ? html``
: html`<div slot="header" class="pf-c-banner pf-m-warning"> : html`<div slot="header" class="pf-c-banner pf-m-warning">
${msg("Warning: Provider is not used by an Application.")} ${msg("Warning: Provider is not used by an Application.")}

View File

@ -7,7 +7,6 @@ import { msg } from "@lit/localize";
import { CSSResult, TemplateResult, html } from "lit"; import { CSSResult, TemplateResult, html } from "lit";
import { customElement, property } from "lit/decorators.js"; import { customElement, property } from "lit/decorators.js";
import PFBanner from "@patternfly/patternfly/components/Banner/banner.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css"; import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css";
@ -53,17 +52,13 @@ export class ObjectPermissionModal extends AKElement {
objectPk?: string | number; objectPk?: string | number;
static get styles(): CSSResult[] { static get styles(): CSSResult[] {
return [PFBase, PFButton, PFBanner]; return [PFBase, PFButton];
} }
render(): TemplateResult { render(): TemplateResult {
return html` return html`
<ak-forms-modal .showSubmitButton=${false} cancelText=${msg("Close")}> <ak-forms-modal .showSubmitButton=${false} cancelText=${msg("Close")}>
<span slot="header"> ${msg("Update Permissions")} </span> <span slot="header"> ${msg("Update Permissions")} </span>
<div class="pf-c-banner pf-m-info" slot="above-form">
${msg("RBAC is in preview.")}
<a href="mailto:hello@goauthentik.io">${msg("Send us feedback!")}</a>
</div>
<ak-rbac-object-permission-modal-form <ak-rbac-object-permission-modal-form
slot="form" slot="form"
.model=${this.model} .model=${this.model}

View File

@ -11,7 +11,6 @@ import { msg } from "@lit/localize";
import { html, nothing } from "lit"; import { html, nothing } from "lit";
import { customElement, property } from "lit/decorators.js"; import { customElement, property } from "lit/decorators.js";
import PFBanner from "@patternfly/patternfly/components/Banner/banner.css";
import PFCard from "@patternfly/patternfly/components/Card/card.css"; import PFCard from "@patternfly/patternfly/components/Card/card.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css"; import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css"; import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css";
@ -31,66 +30,60 @@ export class ObjectPermissionPage extends AKElement {
embedded = false; embedded = false;
static get styles() { static get styles() {
return [PFBase, PFGrid, PFPage, PFCard, PFBanner]; return [PFBase, PFGrid, PFPage, PFCard];
} }
render() { render() {
return html`${!this.embedded return html` <ak-tabs pageIdentifier="permissionPage" ?vertical=${!this.embedded}>
? html`<div class="pf-c-banner pf-m-info"> ${this.model === RbacPermissionsAssignedByUsersListModelEnum.CoreUser
${msg("RBAC is in preview.")} ? this.renderCoreUser()
<a href="mailto:hello@goauthentik.io">${msg("Send us feedback!")}</a>
</div>`
: nothing} : nothing}
<ak-tabs pageIdentifier="permissionPage" ?vertical=${!this.embedded}> ${this.model === RbacPermissionsAssignedByUsersListModelEnum.RbacRole
${this.model === RbacPermissionsAssignedByUsersListModelEnum.CoreUser ? this.renderRbacRole()
? this.renderCoreUser() : nothing}
: nothing} <section
${this.model === RbacPermissionsAssignedByUsersListModelEnum.RbacRole slot="page-object-user"
? this.renderRbacRole() data-tab-title="${msg("User Object Permissions")}"
: nothing} class="pf-c-page__main-section pf-m-no-padding-mobile"
<section >
slot="page-object-user" <div class="pf-l-grid pf-m-gutter">
data-tab-title="${msg("User Object Permissions")}" <div class="pf-c-card pf-l-grid__item pf-m-12-col">
class="pf-c-page__main-section pf-m-no-padding-mobile" <div class="pf-c-card__title">${msg("User Object Permissions")}</div>
> <div class="pf-c-card__body">
<div class="pf-l-grid pf-m-gutter"> ${msg("Permissions set on users which affect this object.")}
<div class="pf-c-card pf-l-grid__item pf-m-12-col"> </div>
<div class="pf-c-card__title">${msg("User Object Permissions")}</div> <div class="pf-c-card__body">
<div class="pf-c-card__body"> <ak-rbac-user-object-permission-table
${msg("Permissions set on users which affect this object.")} .model=${this.model}
</div> .objectPk=${this.objectPk}
<div class="pf-c-card__body"> >
<ak-rbac-user-object-permission-table </ak-rbac-user-object-permission-table>
.model=${this.model}
.objectPk=${this.objectPk}
>
</ak-rbac-user-object-permission-table>
</div>
</div> </div>
</div> </div>
</section> </div>
<section </section>
slot="page-object-role" <section
data-tab-title="${msg("Role Object Permissions")}" slot="page-object-role"
class="pf-c-page__main-section pf-m-no-padding-mobile" data-tab-title="${msg("Role Object Permissions")}"
> class="pf-c-page__main-section pf-m-no-padding-mobile"
<div class="pf-l-grid pf-m-gutter"> >
<div class="pf-c-card pf-l-grid__item pf-m-12-col"> <div class="pf-l-grid pf-m-gutter">
<div class="pf-c-card__title">${msg("Role Object Permissions")}</div> <div class="pf-c-card pf-l-grid__item pf-m-12-col">
<div class="pf-c-card__body"> <div class="pf-c-card__title">${msg("Role Object Permissions")}</div>
${msg("Permissions set on roles which affect this object.")} <div class="pf-c-card__body">
</div> ${msg("Permissions set on roles which affect this object.")}
<div class="pf-c-card__body"> </div>
<ak-rbac-role-object-permission-table <div class="pf-c-card__body">
.model=${this.model} <ak-rbac-role-object-permission-table
.objectPk=${this.objectPk} .model=${this.model}
> .objectPk=${this.objectPk}
</ak-rbac-role-object-permission-table> >
</div> </ak-rbac-role-object-permission-table>
</div> </div>
</div> </div>
</section> </div>
</ak-tabs>`; </section>
</ak-tabs>`;
} }
renderCoreUser() { renderCoreUser() {

View File

@ -9,12 +9,10 @@ import { TablePage } from "@goauthentik/elements/table/TablePage";
import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; import "@patternfly/elements/pf-tooltip/pf-tooltip.js";
import { msg } from "@lit/localize"; import { msg } from "@lit/localize";
import { CSSResult, TemplateResult, html } from "lit"; import { TemplateResult, html } from "lit";
import { customElement, property } from "lit/decorators.js"; import { customElement, property } from "lit/decorators.js";
import { ifDefined } from "lit/directives/if-defined.js"; import { ifDefined } from "lit/directives/if-defined.js";
import PFBanner from "@patternfly/patternfly/components/Banner/banner.css";
import { RbacApi, Role } from "@goauthentik/api"; import { RbacApi, Role } from "@goauthentik/api";
@customElement("ak-role-list") @customElement("ak-role-list")
@ -37,10 +35,6 @@ export class RoleListPage extends TablePage<Role> {
@property() @property()
order = "name"; order = "name";
static get styles(): CSSResult[] {
return [...super.styles, PFBanner];
}
async apiEndpoint(): Promise<PaginatedResponse<Role>> { async apiEndpoint(): Promise<PaginatedResponse<Role>> {
return new RbacApi(DEFAULT_CONFIG).rbacRolesList(await this.defaultEndpointConfig()); return new RbacApi(DEFAULT_CONFIG).rbacRolesList(await this.defaultEndpointConfig());
} }
@ -78,10 +72,6 @@ export class RoleListPage extends TablePage<Role> {
description=${ifDefined(this.pageDescription())} description=${ifDefined(this.pageDescription())}
> >
</ak-page-header> </ak-page-header>
<div class="pf-c-banner pf-m-info">
${msg("RBAC is in preview.")}
<a href="mailto:hello@goauthentik.io">${msg("Send us feedback!")}</a>
</div>
<section class="pf-c-page__main-section pf-m-no-padding-mobile"> <section class="pf-c-page__main-section pf-m-no-padding-mobile">
<div class="pf-c-card">${this.renderTable()}</div> <div class="pf-c-card">${this.renderTable()}</div>
</section>`; </section>`;

View File

@ -18,6 +18,7 @@ import { msg } from "@lit/localize";
import { CSSResult, TemplateResult, html } from "lit"; import { CSSResult, TemplateResult, html } from "lit";
import { customElement, property, state } from "lit/decorators.js"; import { customElement, property, state } from "lit/decorators.js";
import PFBanner from "@patternfly/patternfly/components/Banner/banner.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css"; import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFCard from "@patternfly/patternfly/components/Card/card.css"; import PFCard from "@patternfly/patternfly/components/Card/card.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css"; import PFContent from "@patternfly/patternfly/components/Content/content.css";
@ -54,7 +55,17 @@ export class KerberosSourceViewPage extends AKElement {
syncState?: SyncStatus; syncState?: SyncStatus;
static get styles(): CSSResult[] { static get styles(): CSSResult[] {
return [PFBase, PFPage, PFButton, PFGrid, PFContent, PFCard, PFDescriptionList, PFList]; return [
PFBase,
PFPage,
PFButton,
PFGrid,
PFContent,
PFCard,
PFDescriptionList,
PFBanner,
PFList,
];
} }
constructor() { constructor() {
@ -121,6 +132,12 @@ export class KerberosSourceViewPage extends AKElement {
this.load(); this.load();
}} }}
> >
<div slot="header" class="pf-c-banner pf-m-info">
${msg("Kerberos Source is in preview.")}
<a href="mailto:hello+feature/kerberos-source@goauthentik.io"
>${msg("Send us feedback!")}</a
>
</div>
<div class="pf-l-grid pf-m-gutter"> <div class="pf-l-grid pf-m-gutter">
<div class="pf-c-card pf-l-grid__item pf-m-12-col"> <div class="pf-c-card pf-l-grid__item pf-m-12-col">
<div class="pf-c-card__body"> <div class="pf-c-card__body">

View File

@ -10,6 +10,8 @@ import { msg } from "@lit/localize";
import { TemplateResult, html } from "lit"; import { TemplateResult, html } from "lit";
import { customElement } from "lit/decorators.js"; import { customElement } from "lit/decorators.js";
import PFBanner from "@patternfly/patternfly/components/Banner/banner.css";
import { AuthenticatorEndpointGDTCStage, StagesApi } from "@goauthentik/api"; import { AuthenticatorEndpointGDTCStage, StagesApi } from "@goauthentik/api";
@customElement("ak-stage-authenticator-endpoint-gdtc-form") @customElement("ak-stage-authenticator-endpoint-gdtc-form")
@ -33,8 +35,16 @@ export class AuthenticatorEndpointGDTCStageForm extends BaseStageForm<Authentica
} }
} }
static get styles() {
return super.styles.concat(PFBanner);
}
renderForm(): TemplateResult { renderForm(): TemplateResult {
return html` <span> return html`<div class="pf-c-banner pf-m-info">
${msg("Endpoint Google Chrome Device Trust is in preview.")}
<a href="mailto:hello+feature/gdtc@goauthentik.io">${msg("Send us feedback!")}</a>
</div>
<span>
${msg( ${msg(
"Stage used to verify users' browsers using Google Chrome Device Trust. This stage can be used in authentication/authorization flows.", "Stage used to verify users' browsers using Google Chrome Device Trust. This stage can be used in authentication/authorization flows.",
)} )}

View File

@ -3,6 +3,7 @@ title: Endpoint Authenticator Google Device Trust Connector Stage
--- ---
<span class="badge badge--primary">Enterprise</span> <span class="badge badge--primary">Enterprise</span>
<span class="badge badge--preview">Preview</span>
<span class="badge badge--version">authentik 2024.10+</span> <span class="badge badge--version">authentik 2024.10+</span>
--- ---

View File

@ -3,15 +3,12 @@ title: Add an Entra ID provider
--- ---
<span class="badge badge--primary">Enterprise</span> <span class="badge badge--primary">Enterprise</span>
<span class="badge badge--preview">Preview</span>
--- ---
For more information about using an Entra ID provider, see the [Overview](./index.md) documentation. For more information about using an Entra ID provider, see the [Overview](./index.md) documentation.
:::info
This feature is in technical preview, so please report any bugs on [GitHub](https://github.com/goauthentik/authentik/issues).
:::
## Prerequisites ## Prerequisites
To create an Entra ID provider provider in authentik, you must have already [configured Entra ID](./setup-entra.md) to integrate with authentik. You will need to obtain from Entra three values: the Application (client) ID, the Directory (tenant) ID, and the Client secret. When adding an Entra ID provider in authentik, you must provide these values. To create an Entra ID provider provider in authentik, you must have already [configured Entra ID](./setup-entra.md) to integrate with authentik. You will need to obtain from Entra three values: the Application (client) ID, the Directory (tenant) ID, and the Client secret. When adding an Entra ID provider in authentik, you must provide these values.

View File

@ -3,13 +3,10 @@ title: Microsoft Entra ID provider
--- ---
<span class="badge badge--primary">Enterprise</span> <span class="badge badge--primary">Enterprise</span>
<span class="badge badge--preview">Preview</span>
--- ---
:::info
This feature is in technical preview, so please report any bugs on [GitHub](https://github.com/goauthentik/authentik/issues).
:::
With the Microsoft Entra ID provider, authentik serves as the single source of truth for all users and groups. Configuring Entra ID as a provider allows for auto-discovery of user and group accounts, on-going synchronization of user data such as email address, name, and status, and integrated data mapping of field names and values. With the Microsoft Entra ID provider, authentik serves as the single source of truth for all users and groups. Configuring Entra ID as a provider allows for auto-discovery of user and group accounts, on-going synchronization of user data such as email address, name, and status, and integrated data mapping of field names and values.
- For instructions to configure your Entra ID tenant to integrate with authentik, refer to [Configure Entra ID](./setup-entra.md). - For instructions to configure your Entra ID tenant to integrate with authentik, refer to [Configure Entra ID](./setup-entra.md).

View File

@ -3,13 +3,10 @@ title: Create a Google Workspace provider
--- ---
<span class="badge badge--primary">Enterprise</span> <span class="badge badge--primary">Enterprise</span>
<span class="badge badge--preview">Preview</span>
--- ---
:::info
This feature is in technical preview, so please report any bugs on [GitHub](https://github.com/goauthentik/authentik/issues).
:::
For more information about using a Google Workspace provider, see the [Overview](./index.md) documentation. For more information about using a Google Workspace provider, see the [Overview](./index.md) documentation.
## Prerequisites ## Prerequisites

View File

@ -3,13 +3,10 @@ title: Google Workspace provider
--- ---
<span class="badge badge--primary">Enterprise</span> <span class="badge badge--primary">Enterprise</span>
<span class="badge badge--preview">Preview</span>
--- ---
:::info
This feature is in technical preview, so please report any bugs on [GitHub](https://github.com/goauthentik/authentik/issues).
:::
With the Google Workspace provider, authentik serves as the single source of truth for all users and groups, when using Google products like Gmail. With the Google Workspace provider, authentik serves as the single source of truth for all users and groups, when using Google products like Gmail.
- For instructions to configure your Google Workspace to integrate with authentik, refer to [Configure Google Workspace](./setup-gws.md). - For instructions to configure your Google Workspace to integrate with authentik, refer to [Configure Google Workspace](./setup-gws.md).

View File

@ -2,17 +2,13 @@
title: Create a Remote Access Control (RAC) provider title: Create a Remote Access Control (RAC) provider
--- ---
:::info
This feature is in technical preview, so please report any bugs on [GitHub](https://github.com/goauthentik/authentik/issues).
:::
The RAC provider is a highly flexible feature for accessing remote machines. This document provides instructions for the basic creation and configuration of a RAC provider within a defined scenario. The RAC provider is a highly flexible feature for accessing remote machines. This document provides instructions for the basic creation and configuration of a RAC provider within a defined scenario.
Fow more information about using a RAC provider, see the [Overview](./index.md) documentation. You can also view our video on YouTube for setting up RAC. Fow more information about using a RAC provider, see the [Overview](./index.md) documentation. You can also view our video on YouTube for setting up RAC.
<iframe width="560" height="315" src="https://www.youtube.com/embed/9wahIBRV6Ts;start=22" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube.com/embed/9wahIBRV6Ts;start=22" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Prereqisites ## Prerequisites
The RAC provider requires the deployment of the [RAC Outpost](../../outposts/index.mdx). The RAC provider requires the deployment of the [RAC Outpost](../../outposts/index.mdx).

View File

@ -6,10 +6,6 @@ title: Remote Access Control (RAC) Provider
--- ---
:::info
This feature is in technical preview, so please report any bugs on [GitHub](https://github.com/goauthentik/authentik/issues).
:::
:::info :::info
This provider requires the deployment of the [RAC Outpost](../../outposts/index.mdx). This provider requires the deployment of the [RAC Outpost](../../outposts/index.mdx).
::: :::

View File

@ -2,6 +2,11 @@
title: Kerberos title: Kerberos
--- ---
<span class="badge badge--preview">Preview</span>
<span class="badge badge--version">authentik 2024.10+</span>
---
This source allows users to enroll themselves with an existing Kerberos identity. This source allows users to enroll themselves with an existing Kerberos identity.
## Preparation ## Preparation

View File

@ -2,9 +2,9 @@
title: SCIM Source title: SCIM Source
--- ---
:::info <span class="badge badge--preview">Preview</span>
This feature is in technical preview, so please report any bugs on [GitHub](https://github.com/goauthentik/authentik/issues).
::: ---
The SCIM source allows other applications to directly create users and groups within authentik. SCIM provides predefined schema for users and groups, with a RESTful API, to enable automatic user provisioning and deprovisioning, SCIM is supported by applications such as Microsoft Entra ID, Google Workspace, and Okta. The SCIM source allows other applications to directly create users and groups within authentik. SCIM provides predefined schema for users and groups, with a RESTful API, to enable automatic user provisioning and deprovisioning, SCIM is supported by applications such as Microsoft Entra ID, Google Workspace, and Okta.

View File

@ -125,3 +125,11 @@ body {
font-size: 0.75rem; font-size: 0.75rem;
vertical-align: middle; vertical-align: middle;
} }
.badge--preview {
--ifm-badge-background-color: rgb(115, 188, 247);
color: var(--ifm-color-primary-contrast-foreground);
--ifm-badge-border-color: var(--ifm-badge-background-color);
font-size: 0.75rem;
vertical-align: middle;
}