+
+
+
+ {{ 'SETTING.FEATURES.SOURCE.' + source | translate }}
+
+
diff --git a/console/src/app/components/features/features.component.scss b/console/src/app/components/features/features.component.scss
new file mode 100644
index 0000000000..841a4f48a9
--- /dev/null
+++ b/console/src/app/components/features/features.component.scss
@@ -0,0 +1,69 @@
+.feature-settings-wrapper {
+ .feature-title-row {
+ display: flex;
+ align-items: center;
+
+ h1 {
+ margin: 0;
+ }
+
+ a .icon {
+ font-size: 1.2rem;
+ height: 1.2rem;
+ line-height: 1.2rem;
+ }
+ }
+
+ .features {
+ .feature-row {
+ display: flex;
+ flex-direction: column;
+
+ .row {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .buttongroup {
+ margin-right: 0.5rem;
+ margin-top: 0.5rem;
+
+ .toggle-row {
+ display: flex;
+ align-items: center;
+
+ i {
+ margin-right: 0.5rem;
+ }
+
+ .info-i {
+ font-size: 1.2rem;
+ margin-left: 0.5rem;
+ margin-right: 0;
+ }
+
+ .current-dot {
+ height: 8px;
+ width: 8px;
+ border-radius: 50%;
+ // background-color: rgb(84, 142, 230);
+ margin-left: 0.5rem;
+
+ &.enabled {
+ background-color: var(--success);
+ }
+
+ &.disabled {
+ background-color: var(--warn);
+ }
+ }
+ }
+ }
+ }
+
+ .feature-info {
+ margin-bottom: 1rem;
+ }
+ }
+ }
+}
diff --git a/console/src/app/components/features/features.component.spec.ts b/console/src/app/components/features/features.component.spec.ts
new file mode 100644
index 0000000000..52616b1bf4
--- /dev/null
+++ b/console/src/app/components/features/features.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+
+import { FeaturesComponent } from './features.component';
+
+describe('FeaturesComponent', () => {
+ let component: FeaturesComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [FeaturesComponent],
+ }).compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(FeaturesComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/console/src/app/components/features/features.component.ts b/console/src/app/components/features/features.component.ts
new file mode 100644
index 0000000000..74750d9ccc
--- /dev/null
+++ b/console/src/app/components/features/features.component.ts
@@ -0,0 +1,255 @@
+import { CommonModule } from '@angular/common';
+import { Component, OnDestroy } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { MatButtonModule } from '@angular/material/button';
+import { MatButtonToggleModule } from '@angular/material/button-toggle';
+import { MatCheckboxModule } from '@angular/material/checkbox';
+import { MatDialog } from '@angular/material/dialog';
+import { MatIconModule } from '@angular/material/icon';
+import { MatTooltipModule } from '@angular/material/tooltip';
+import { TranslateModule } from '@ngx-translate/core';
+import { BehaviorSubject, Subject } from 'rxjs';
+import { HasRoleModule } from 'src/app/directives/has-role/has-role.module';
+import { CardModule } from 'src/app/modules/card/card.module';
+import { DisplayJsonDialogComponent } from 'src/app/modules/display-json-dialog/display-json-dialog.component';
+import { InfoSectionModule } from 'src/app/modules/info-section/info-section.module';
+import { HasRolePipeModule } from 'src/app/pipes/has-role-pipe/has-role-pipe.module';
+import { Event } from 'src/app/proto/generated/zitadel/event_pb';
+import { Source } from 'src/app/proto/generated/zitadel/feature/v2beta/feature_pb';
+import {
+ GetInstanceFeaturesResponse,
+ SetInstanceFeaturesRequest,
+} from 'src/app/proto/generated/zitadel/feature/v2beta/instance_pb';
+import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service';
+import { FeatureService } from 'src/app/services/feature.service';
+import { ToastService } from 'src/app/services/toast.service';
+
+enum ToggleState {
+ ENABLED = 'ENABLED',
+ DISABLED = 'DISABLED',
+ INHERITED = 'INHERITED',
+}
+
+type FeatureState = { source: Source; state: ToggleState };
+type ToggleStates = {
+ loginDefaultOrg?: FeatureState;
+ oidcTriggerIntrospectionProjections?: FeatureState;
+ oidcLegacyIntrospection?: FeatureState;
+ userSchema?: FeatureState;
+ oidcTokenExchange?: FeatureState;
+ actions?: FeatureState;
+};
+
+@Component({
+ imports: [
+ CommonModule,
+ FormsModule,
+ MatButtonToggleModule,
+ HasRolePipeModule,
+ MatIconModule,
+ CardModule,
+ TranslateModule,
+ MatButtonModule,
+ MatCheckboxModule,
+ InfoSectionModule,
+ MatTooltipModule,
+ HasRoleModule,
+ ],
+ standalone: true,
+ selector: 'cnsl-features',
+ templateUrl: './features.component.html',
+ styleUrls: ['./features.component.scss'],
+})
+export class FeaturesComponent implements OnDestroy {
+ private destroy$: Subject = new Subject();
+
+ public _loading: BehaviorSubject = new BehaviorSubject(false);
+ public featureData: GetInstanceFeaturesResponse.AsObject | undefined = undefined;
+
+ public toggleStates: ToggleStates | undefined = undefined;
+ public Source: any = Source;
+ public ToggleState: any = ToggleState;
+
+ constructor(
+ private featureService: FeatureService,
+ private breadcrumbService: BreadcrumbService,
+ private toast: ToastService,
+ private dialog: MatDialog,
+ ) {
+ const breadcrumbs = [
+ new Breadcrumb({
+ type: BreadcrumbType.INSTANCE,
+ name: 'Instance',
+ routerLink: ['/instance'],
+ }),
+ ];
+ this.breadcrumbService.setBreadcrumb(breadcrumbs);
+
+ this.getFeatures(true);
+ }
+
+ ngOnDestroy(): void {
+ this.destroy$.next();
+ this.destroy$.complete();
+ }
+
+ public openDialog(event: Event): void {
+ this.dialog.open(DisplayJsonDialogComponent, {
+ data: {
+ event: event,
+ },
+ width: '450px',
+ });
+ }
+
+ public validateAndSave() {
+ this.featureService.resetInstanceFeatures().then(() => {
+ const req = new SetInstanceFeaturesRequest();
+ let changed = false;
+
+ console.log(this.toggleStates);
+
+ if (this.toggleStates?.loginDefaultOrg?.state !== ToggleState.INHERITED) {
+ req.setLoginDefaultOrg(this.toggleStates?.loginDefaultOrg?.state === ToggleState.ENABLED);
+ changed = true;
+ }
+ if (this.toggleStates?.oidcTriggerIntrospectionProjections?.state !== ToggleState.INHERITED) {
+ req.setOidcTriggerIntrospectionProjections(
+ this.toggleStates?.oidcTriggerIntrospectionProjections?.state === ToggleState.ENABLED,
+ );
+ changed = true;
+ }
+ if (this.toggleStates?.oidcLegacyIntrospection?.state !== ToggleState.INHERITED) {
+ req.setOidcLegacyIntrospection(this.toggleStates?.oidcLegacyIntrospection?.state === ToggleState.ENABLED);
+ changed = true;
+ }
+ if (this.toggleStates?.userSchema?.state !== ToggleState.INHERITED) {
+ req.setUserSchema(this.toggleStates?.userSchema?.state === ToggleState.ENABLED);
+ changed = true;
+ }
+ if (this.toggleStates?.oidcTokenExchange?.state !== ToggleState.INHERITED) {
+ req.setOidcTokenExchange(this.toggleStates?.oidcTokenExchange?.state === ToggleState.ENABLED);
+ changed = true;
+ }
+ if (this.toggleStates?.actions?.state !== ToggleState.INHERITED) {
+ req.setActions(this.toggleStates?.actions?.state === ToggleState.ENABLED);
+ changed = true;
+ }
+
+ if (changed) {
+ this.featureService
+ .setInstanceFeatures(req)
+ .then(() => {
+ this.toast.showInfo('POLICY.TOAST.SET', true);
+ })
+ .catch((error) => {
+ this.toast.showError(error);
+ });
+ }
+ });
+ }
+
+ private getFeatures(inheritance: boolean) {
+ this.featureService.getInstanceFeatures(inheritance).then((instanceFeaturesResponse) => {
+ this.featureData = instanceFeaturesResponse.toObject();
+ console.log(this.featureData);
+
+ this.toggleStates = {
+ loginDefaultOrg: {
+ source: this.featureData.loginDefaultOrg?.source || Source.SOURCE_SYSTEM,
+ state:
+ this.featureData.loginDefaultOrg?.source === Source.SOURCE_SYSTEM ||
+ this.featureData.loginDefaultOrg?.source === Source.SOURCE_UNSPECIFIED
+ ? ToggleState.INHERITED
+ : !!this.featureData.loginDefaultOrg?.enabled
+ ? ToggleState.ENABLED
+ : ToggleState.DISABLED,
+ },
+ oidcTriggerIntrospectionProjections: {
+ source: this.featureData.oidcTriggerIntrospectionProjections?.source || Source.SOURCE_SYSTEM,
+ state:
+ this.featureData.oidcTriggerIntrospectionProjections?.source === Source.SOURCE_SYSTEM ||
+ this.featureData.oidcTriggerIntrospectionProjections?.source === Source.SOURCE_UNSPECIFIED
+ ? ToggleState.INHERITED
+ : !!this.featureData.oidcTriggerIntrospectionProjections?.enabled
+ ? ToggleState.ENABLED
+ : ToggleState.DISABLED,
+ },
+ oidcLegacyIntrospection: {
+ source: this.featureData.oidcLegacyIntrospection?.source || Source.SOURCE_SYSTEM,
+ state:
+ this.featureData.oidcLegacyIntrospection?.source === Source.SOURCE_SYSTEM ||
+ this.featureData.oidcLegacyIntrospection?.source === Source.SOURCE_UNSPECIFIED
+ ? ToggleState.INHERITED
+ : !!this.featureData.oidcLegacyIntrospection?.enabled
+ ? ToggleState.ENABLED
+ : ToggleState.DISABLED,
+ },
+ userSchema: {
+ source: this.featureData.userSchema?.source || Source.SOURCE_SYSTEM,
+ state:
+ this.featureData.userSchema?.source === Source.SOURCE_SYSTEM ||
+ this.featureData.userSchema?.source === Source.SOURCE_UNSPECIFIED
+ ? ToggleState.INHERITED
+ : !!this.featureData.userSchema?.enabled
+ ? ToggleState.ENABLED
+ : ToggleState.DISABLED,
+ },
+ oidcTokenExchange: {
+ source: this.featureData.oidcTokenExchange?.source || Source.SOURCE_SYSTEM,
+ state:
+ this.featureData.oidcTokenExchange?.source === Source.SOURCE_SYSTEM ||
+ this.featureData.oidcTokenExchange?.source === Source.SOURCE_UNSPECIFIED
+ ? ToggleState.INHERITED
+ : !!this.featureData.oidcTokenExchange?.enabled
+ ? ToggleState.ENABLED
+ : ToggleState.DISABLED,
+ },
+ actions: {
+ source: Source.SOURCE_SYSTEM,
+ state:
+ this.featureData.actions?.source === Source.SOURCE_SYSTEM ||
+ this.featureData.actions?.source === Source.SOURCE_UNSPECIFIED
+ ? ToggleState.INHERITED
+ : !!this.featureData.actions?.enabled
+ ? ToggleState.ENABLED
+ : ToggleState.DISABLED,
+ },
+ };
+ });
+ }
+
+ public resetSettings(): void {
+ this.featureService
+ .resetInstanceFeatures()
+ .then(() => {
+ this.toast.showInfo('POLICY.TOAST.RESETSUCCESS', true);
+ setTimeout(() => {
+ this.getFeatures(true);
+ }, 1000);
+ })
+ .catch((error) => {
+ this.toast.showError(error);
+ });
+ }
+
+ public saveFeatures(): void {
+ if (this.featureData) {
+ const req = new SetInstanceFeaturesRequest();
+ req.setLoginDefaultOrg(!!this.featureData.loginDefaultOrg?.enabled);
+ req.setOidcLegacyIntrospection(!!this.featureData.oidcLegacyIntrospection?.enabled);
+ req.setOidcTokenExchange(!!this.featureData.oidcTokenExchange?.enabled);
+ req.setOidcTriggerIntrospectionProjections(!!this.featureData.oidcTriggerIntrospectionProjections?.enabled);
+ req.setUserSchema(!!this.featureData.userSchema?.enabled);
+
+ this.featureService
+ .setInstanceFeatures(req)
+ .then(() => {
+ this.toast.showInfo('POLICY.TOAST.SET', true);
+ })
+ .catch((error) => {
+ this.toast.showError(error);
+ });
+ }
+ }
+}
diff --git a/console/src/app/modules/settings-list/settings-list.component.html b/console/src/app/modules/settings-list/settings-list.component.html
index 8f98d0b287..0038737b8d 100644
--- a/console/src/app/modules/settings-list/settings-list.component.html
+++ b/console/src/app/modules/settings-list/settings-list.component.html
@@ -12,6 +12,9 @@
+
+
+
diff --git a/console/src/app/modules/settings-list/settings-list.module.ts b/console/src/app/modules/settings-list/settings-list.module.ts
index f84ad42dd7..0472476c51 100644
--- a/console/src/app/modules/settings-list/settings-list.module.ts
+++ b/console/src/app/modules/settings-list/settings-list.module.ts
@@ -27,8 +27,8 @@ import { SettingsListComponent } from './settings-list.component';
import FailedEventsModule from '../failed-events/failed-events.module';
import IamViewsModule from '../iam-views/iam-views.module';
import EventsModule from '../events/events.module';
-import OrgListModule from 'src/app/pages/org-list/org-list.module';
import { OrgTableModule } from '../org-table/org-table.module';
+import { FeaturesComponent } from 'src/app/components/features/features.component';
@NgModule({
declarations: [SettingsListComponent],
@@ -53,6 +53,7 @@ import { OrgTableModule } from '../org-table/org-table.module';
DomainPolicyModule,
TranslateModule,
HasRolePipeModule,
+ FeaturesComponent,
NotificationSMTPProviderModule,
NotificationSMSProviderModule,
OIDCConfigurationModule,
diff --git a/console/src/app/modules/settings-list/settings.ts b/console/src/app/modules/settings-list/settings.ts
index a5c07930f2..a945a8c7c7 100644
--- a/console/src/app/modules/settings-list/settings.ts
+++ b/console/src/app/modules/settings-list/settings.ts
@@ -10,6 +10,15 @@ export const ORGANIZATIONS: SidenavSetting = {
},
};
+export const FEATURESETTINGS: SidenavSetting = {
+ id: 'features',
+ i18nKey: 'SETTINGS.LIST.FEATURESETTINGS',
+ groupI18nKey: 'SETTINGS.GROUPS.GENERAL',
+ requiredRoles: {
+ [PolicyComponentServiceType.ADMIN]: ['iam.restrictions.read'],
+ },
+};
+
export const LANGUAGES: SidenavSetting = {
id: 'languages',
i18nKey: 'SETTINGS.LIST.LANGUAGES',
diff --git a/console/src/app/pages/instance/instance.component.ts b/console/src/app/pages/instance/instance.component.ts
index 1ab7f061ef..8798027400 100644
--- a/console/src/app/pages/instance/instance.component.ts
+++ b/console/src/app/pages/instance/instance.component.ts
@@ -32,6 +32,7 @@ import {
FAILEDEVENTS,
EVENTS,
ORGANIZATIONS,
+ FEATURESETTINGS,
} from '../../modules/settings-list/settings';
import { SidenavSetting } from 'src/app/modules/sidenav/sidenav.component';
import { GrpcAuthService } from 'src/app/services/grpc-auth.service';
@@ -53,6 +54,7 @@ export class InstanceComponent implements OnInit, OnDestroy {
public id: string = '';
public defaultSettingsList: SidenavSetting[] = [
ORGANIZATIONS,
+ FEATURESETTINGS,
// notifications
// { showWarn: true, ...NOTIFICATIONS },
NOTIFICATIONS,
diff --git a/console/src/app/services/feature.service.ts b/console/src/app/services/feature.service.ts
new file mode 100644
index 0000000000..b991971bba
--- /dev/null
+++ b/console/src/app/services/feature.service.ts
@@ -0,0 +1,57 @@
+import { Injectable } from '@angular/core';
+import { GrpcService } from './grpc.service';
+
+import {
+ GetInstanceFeaturesRequest,
+ GetInstanceFeaturesResponse,
+ ResetInstanceFeaturesRequest,
+ SetInstanceFeaturesRequest,
+ SetInstanceFeaturesResponse,
+} from '../proto/generated/zitadel/feature/v2beta/instance_pb';
+import {
+ GetOrganizationFeaturesRequest,
+ GetOrganizationFeaturesResponse,
+} from '../proto/generated/zitadel/feature/v2beta/organization_pb';
+import { GetUserFeaturesRequest, GetUserFeaturesResponse } from '../proto/generated/zitadel/feature/v2beta/user_pb';
+import { GetSystemFeaturesRequest, GetSystemFeaturesResponse } from '../proto/generated/zitadel/feature/v2beta/system_pb';
+
+@Injectable({
+ providedIn: 'root',
+})
+export class FeatureService {
+ constructor(private readonly grpcService: GrpcService) {}
+
+ public getInstanceFeatures(inheritance: boolean): Promise {
+ const req = new GetInstanceFeaturesRequest();
+ req.setInheritance(inheritance);
+ return this.grpcService.feature.getInstanceFeatures(req, null).then((resp) => resp);
+ }
+
+ public setInstanceFeatures(req: SetInstanceFeaturesRequest): Promise {
+ return this.grpcService.feature.setInstanceFeatures(req, null);
+ }
+
+ public resetInstanceFeatures(): Promise {
+ const req = new ResetInstanceFeaturesRequest();
+ return this.grpcService.feature.resetInstanceFeatures(req, null);
+ }
+
+ public getOrganizationFeatures(orgId: string, inheritance: boolean): Promise {
+ const req = new GetOrganizationFeaturesRequest();
+ req.setOrganizationId(orgId);
+ req.setInheritance(inheritance);
+ return this.grpcService.feature.getOrganizationFeatures(req, null).then((resp) => resp);
+ }
+
+ public getSystemFeatures(): Promise {
+ const req = new GetSystemFeaturesRequest();
+ return this.grpcService.feature.getSystemFeatures(req, null).then((resp) => resp);
+ }
+
+ public getUserFeatures(userId: string, inheritance: boolean): Promise {
+ const req = new GetUserFeaturesRequest();
+ req.setInheritance(inheritance);
+ req.setUserId(userId);
+ return this.grpcService.feature.getUserFeatures(req, null).then((resp) => resp);
+ }
+}
diff --git a/console/src/app/services/grpc.service.ts b/console/src/app/services/grpc.service.ts
index 895dae9af5..8a87f95ef0 100644
--- a/console/src/app/services/grpc.service.ts
+++ b/console/src/app/services/grpc.service.ts
@@ -17,6 +17,7 @@ import { ExhaustedGrpcInterceptor } from './interceptors/exhausted.grpc.intercep
import { I18nInterceptor } from './interceptors/i18n.interceptor';
import { OrgInterceptor } from './interceptors/org.interceptor';
import { StorageService } from './storage.service';
+import { FeatureServiceClient } from '../proto/generated/zitadel/feature/v2beta/Feature_serviceServiceClientPb';
@Injectable({
providedIn: 'root',
@@ -25,6 +26,7 @@ export class GrpcService {
public auth!: AuthServiceClient;
public mgmt!: ManagementServiceClient;
public admin!: AdminServiceClient;
+ public feature!: FeatureServiceClient;
constructor(
private envService: EnvironmentService,
@@ -76,6 +78,12 @@ export class GrpcService {
// @ts-ignore
interceptors,
);
+ this.feature = new FeatureServiceClient(
+ env.api,
+ null,
+ // @ts-ignore
+ interceptors,
+ );
const authConfig: AuthConfig = {
scope: 'openid profile email',
diff --git a/console/src/assets/i18n/bg.json b/console/src/assets/i18n/bg.json
index 566ea0037b..14aeaa99ac 100644
--- a/console/src/assets/i18n/bg.json
+++ b/console/src/assets/i18n/bg.json
@@ -86,6 +86,10 @@
"TITLE": "Настройки на организацията",
"DESCRIPTION": "Персонализирайте настройките на вашата организация."
},
+ "FEATURES": {
+ "TITLE": "Настройки на функциите",
+ "DESCRIPTION": "Отключете функции за вашия екземпляр."
+ },
"IDPS": {
"TITLE": "Доставчици на идентичност",
"DESCRIPTION": "Създайте и активирайте външни доставчици на идентичност. Изберете известен доставчик или конфигурирайте друг OIDC, OAuth или SAML съвместим доставчик по ваш избор. Можете дори да използвате вашите съществуващи JWT токени като федерирани идентичности, като конфигурирате доставчик на идентичност с JWT.",
@@ -1308,6 +1312,7 @@
},
"LIST": {
"ORGS": "Организации",
+ "FEATURESETTINGS": "Настройки на функциите",
"LANGUAGES": "Езици",
"LOGIN": "Поведение при влизане и сигурност",
"LOCKOUT": "Блокиране",
@@ -1438,6 +1443,27 @@
"IMPERSONATIONENABLED": "Разрешаване на имитация",
"IMPERSONATIONDESCRIPTION": "Тази настройка позволява да се използва имитация по принцип. Обърнете внимание, че имитаторът също се нуждае от присвоени подходящи роли `*_IMPERSONATOR`."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Организация по подразбиране за влизане",
+ "LOGINDEFAULTORG_DESCRIPTION": "Потребителският интерфейс за влизане ще използва настройките на организацията по подразбиране (а не на инстанцията), ако не е зададен контекст на организация.",
+ "OIDCLEGACYINTROSPECTION": "Наследено осмисляне OIDC",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "На скоро префакторизирахме крайния пункт за осмисляне заради производителностни причини. Тази функция може да се използва за връщане към наследената реализация, ако възникнат неочаквани грешки.",
+ "OIDCTOKENEXCHANGE": "Обмяна на токени OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Активиране на експерименталния тип на дарение urn:ietf:params:oauth:grant-type:token-exchange за краен пункт на токен OIDC. Обменът на токени може да се използва за заявка на токени с по-малък обхват или за имперсонализиране на други потребители. Вижте политиката за сигурност, за да разрешите имперсонализацията на инстанция.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Тригери за проекции на осмисляне на OIDC",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Активиране на тригери за проекции по време на заявка за осмисляне. Това може да действа като обходен механизъм, ако има забележими проблеми с консистентността в отговора на осмислянето, но може да окаже влияние върху производителността. Планираме да премахнем тригерите за заявки за осмисляне в бъдеще.",
+ "USERSCHEMA": "Потребителска схема",
+ "USERSCHEMA_DESCRIPTION": "Потребителските схеми позволяват управление на данните за схемите на потребителите. Ако е активиран флагът, ще можете да използвате новото API и неговите функции.",
+ "ACTIONS": "Действия",
+ "ACTIONS_DESCRIPTION": "Действия v2 позволяват управление на выполнения на данни и цели. Ако флагът е активиран, ще можете да използвате новия API и неговите функции.",
+ "STATES": {
+ "INHERITED": "Наследено",
+ "ENABLED": "Активирано",
+ "DISABLED": "Деактивирано"
+ },
+ "INHERITED_DESCRIPTION": "Тази настройка задава стойността по подразбиране на системата.",
+ "RESET": "Задай всички на наследено"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Нулиране на настройката",
diff --git a/console/src/assets/i18n/cs.json b/console/src/assets/i18n/cs.json
index 91af40f0f4..2caac0adbc 100644
--- a/console/src/assets/i18n/cs.json
+++ b/console/src/assets/i18n/cs.json
@@ -86,6 +86,10 @@
"TITLE": "Nastavení organizace",
"DESCRIPTION": "Přizpůsobte nastavení vaší organizace."
},
+ "FEATURES": {
+ "TITLE": "Nastavení funkcí",
+ "DESCRIPTION": "Odemkněte funkce pro vaši instanci."
+ },
"IDPS": {
"TITLE": "Poskytovatelé identity",
"DESCRIPTION": "Vytvořte a aktivujte externí poskytovatele identity. Vyberte známého poskytovatele nebo nakonfigurujte jakýkoliv jiný OIDC, OAuth nebo SAML kompatibilní poskytovatel podle vašeho výběru. Můžete dokonce použít vaše stávající JWT tokeny jako federované identity konfigurací JWT poskytovatele identity.",
@@ -1315,6 +1319,7 @@
},
"LIST": {
"ORGS": "Organizace",
+ "FEATURESETTINGS": "Nastavení funkcí",
"LANGUAGES": "Jazyky",
"LOGIN": "Chování při přihlášení a bezpečnost",
"LOCKOUT": "Blokování",
@@ -1445,6 +1450,27 @@
"IMPERSONATIONENABLED": "Povolit předstírání jiné identity",
"IMPERSONATIONDESCRIPTION": "Toto nastavení v zásadě umožňuje používat zosobnění. Všimněte si, že imitátor potřebuje také přiřazené příslušné role `*_IMPERSONATOR`."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Výchozí organizace pro přihlášení",
+ "LOGINDEFAULTORG_DESCRIPTION": "Přihlašovací rozhraní použije nastavení výchozí organizace (a ne z instance), pokud není nastaven žádný kontext organizace.",
+ "OIDCLEGACYINTROSPECTION": "Dědictví OIDC introspekce",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Nedávno jsme přepracovali bod introspekce z výkonnostních důvodů. Tato funkce lze použít k rollbacku na dědickou implementaci, pokud se objeví neočekávané chyby.",
+ "OIDCTOKENEXCHANGE": "Výměna tokenů OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Povolit experimentální typ udělení urn:ietf:params:oauth:grant-type:token-exchange pro bod tokenového bodu OIDC. Výměna tokenů lze použít k žádosti o tokeny s menším rozsahem nebo k impersonaci jiných uživatelů. Podívejte se na bezpečnostní politiku, abyste umožnili impersonaci na instanci.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Spouštěče projekcí introspekce OIDC",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Povolit spouštěče projekcí během požadavku na introspekci. To může sloužit jako obcházení, pokud existují zjevné problémy s konzistencí v odpovědi na introspekci, ale může to mít vliv na výkon. Plánujeme odstranit spouštěče pro požadavky na introspekci v budoucnosti.",
+ "USERSCHEMA": "Schéma uživatele",
+ "USERSCHEMA_DESCRIPTION": "Schémata uživatelů umožňují spravovat datová schémata uživatelů. Pokud je příznak povolen, budete moci používat nové API a jeho funkce.",
+ "ACTIONS": "Akce",
+ "ACTIONS_DESCRIPTION": "Akce v2 umožňují správu datových provedení a cílů. Pokud je tento příznak povolen, budete moci používat nové API a jeho funkce.",
+ "STATES": {
+ "INHERITED": "Děděno",
+ "ENABLED": "Povoleno",
+ "DISABLED": "Zakázáno"
+ },
+ "INHERITED_DESCRIPTION": "Toto nastavení nastaví hodnotu na výchozí hodnotu systému.",
+ "RESET": "Nastavit vše na děděné"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Resetovat nastavení",
diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json
index e54be4ce04..452d51925a 100644
--- a/console/src/assets/i18n/de.json
+++ b/console/src/assets/i18n/de.json
@@ -86,6 +86,10 @@
"TITLE": "Organisationseinstellungen",
"DESCRIPTION": "Passe die Einstellungen deiner Organisation an."
},
+ "FEATURES": {
+ "TITLE": "Funktionseinstellungen",
+ "DESCRIPTION": "Schalten Sie Funktionen für Ihre Instanz frei."
+ },
"IDPS": {
"TITLE": "Identitätsanbieter",
"DESCRIPTION": "Erstelle und aktiviere externe Identitätsanbieter. Wähle einen bekannten Anbieter aus oder konfiguriere einen anderen OIDC-, OAuth- oder SAML-kompatiblen Anbieter deiner Wahl. Du kannst sogar deine vorhandenen JWT-Tokens als föderierte Identitäten verwenden, indem du einen JWT-Identitätsanbieter konfigurierst.",
@@ -1314,6 +1318,7 @@
},
"LIST": {
"ORGS": "Organisationen",
+ "FEATURESETTINGS": "Features",
"LANGUAGES": "Sprachen",
"LOGIN": "Loginverhalten und Sicherheit",
"LOCKOUT": "Sperrmechanismen",
@@ -1444,6 +1449,27 @@
"IMPERSONATIONENABLED": "Identitätswechsel zulassen",
"IMPERSONATIONDESCRIPTION": "Diese Einstellung ermöglicht grundsätzlich die Verwendung von Identitätswechseln. Beachten Sie, dass dem Imitator auch die entsprechenden `*_IMPERSONATOR`-Rollen zugewiesen werden müssen."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Standardorganisation für die Anmeldung",
+ "LOGINDEFAULTORG_DESCRIPTION": "Die Anmelde-Benutzeroberfläche verwendet die Einstellungen der Standardorganisation (und nicht von der Instanz), wenn kein Organisationskontext festgelegt ist.",
+ "OIDCLEGACYINTROSPECTION": "OIDC Legacy-Introspektion",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Wir haben kürzlich den Introspektionsendpunkt aus Leistungsgründen neu strukturiert. Mit diesem Feature können Sie zur alten Implementierung zurückkehren, falls unerwartete Fehler auftreten.",
+ "OIDCTOKENEXCHANGE": "OIDC Token-Austausch",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Aktivieren Sie den experimentellen urn:ietf:params:oauth:grant-type:token-exchange-Grant-Typ für den OIDC-Token-Endpunkt. Der Token-Austausch kann verwendet werden, um Token mit einem geringeren Umfang anzufordern oder andere Benutzer zu impersonieren. Siehe die Sicherheitsrichtlinie, um die Impersonation auf einer Instanz zu erlauben.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "OIDC Trigger-Introspektionsprojektionen",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Aktivieren Sie Projektionstrigger während einer Introspektionsanfrage. Dies kann als Workaround fungieren, wenn bemerkbare Konsistenzprobleme in der Introspektionsantwort auftreten, kann sich jedoch auf die Leistung auswirken. Wir planen, Trigger für Introspektionsanfragen in Zukunft zu entfernen.",
+ "USERSCHEMA": "Benutzerschema",
+ "USERSCHEMA_DESCRIPTION": "Benutzerschemata ermöglichen das Verwalten von Datenschemata von Benutzern. Wenn die Flagge aktiviert ist, können Sie die neue API und ihre Funktionen verwenden.",
+ "ACTIONS": "Aktionen",
+ "ACTIONS_DESCRIPTION": "Aktionen v2 ermöglichen die Verwaltung von Datenausführungen und Zielen. Wenn das Flag aktiviert ist, können Sie die neue API und ihre Funktionen verwenden.",
+ "STATES": {
+ "INHERITED": "Erben",
+ "ENABLED": "Aktiviert",
+ "DISABLED": "Deaktiviert"
+ },
+ "INHERITED_DESCRIPTION": "Diese Einstellung setzt den Wert auf den Standardwert des Systems.",
+ "RESET": "Alle auf Erben setzen"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Einstellungen zurücksetzen",
diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json
index 73824bef68..ec2d50ddcf 100644
--- a/console/src/assets/i18n/en.json
+++ b/console/src/assets/i18n/en.json
@@ -86,6 +86,10 @@
"TITLE": "Organization Settings",
"DESCRIPTION": "Customize the settings of your organization."
},
+ "FEATURES": {
+ "TITLE": "Feature Settings",
+ "DESCRIPTION": "Unlock features for your instance."
+ },
"IDPS": {
"TITLE": "Identity Providers",
"DESCRIPTION": "Create and activate external identity providers. Choose a well-known provider or configure any other OIDC, OAuth or SAML compatible provider of your choice. You can even use your existing JWT tokens as federated identities by configuring a JWT identity provider.",
@@ -1315,6 +1319,7 @@
},
"LIST": {
"ORGS": "Organizations",
+ "FEATURESETTINGS": "Features",
"LANGUAGES": "Languages",
"LOGIN": "Login Behavior and Security",
"LOCKOUT": "Lockout",
@@ -1445,6 +1450,27 @@
"IMPERSONATIONENABLED": "Allow Impersonation",
"IMPERSONATIONDESCRIPTION": "This setting allows to use impersonation in principle. Note that the impersonator needs the appropriate `*_IMPERSONATOR` roles assigned as well."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Login Default Org",
+ "LOGINDEFAULTORG_DESCRIPTION": "The login UI will use the settings of the default org (and not from the instance) if no organization context is set",
+ "OIDCLEGACYINTROSPECTION": "OIDC Legacy introspection",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "We have recently refactored the introspection endpoint for performance reasons. This feature can be used to rollback to the legacy implementation if unexpected bugs arise.",
+ "OIDCTOKENEXCHANGE": "OIDC Token Exchange",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Enable the experimental urn:ietf:params:oauth:grant-type:token-exchange grant type for the OIDC token endpoint. Token exchange can be used to request tokens with a lesser scope or impersonate other users. See the security policy to allow impersonation on an instance.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "OIDC Trigger introspection Projections",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Enable projection triggers during an introspection request. This can act as workaround if there are noticeable consistency issues in the introspection response but can have an impact on performance. We are planning to remove triggers for introspection requests in the future.",
+ "USERSCHEMA": "User Schema",
+ "USERSCHEMA_DESCRIPTION": "User Schemas allow to manage data schemas of user. If the flag is enabled, you'll be able to use the new API and its features.",
+ "ACTIONS": "Actions",
+ "ACTIONS_DESCRIPTION": "Actions v2 allow to manage data executions and targets. If the flag is enabled, you'll be able to use the new API and its features.",
+ "STATES": {
+ "INHERITED": "Inherit",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
+ },
+ "INHERITED_DESCRIPTION": "This sets the value to the default value of the system.",
+ "RESET": "Set all to inherit"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Reset Setting",
diff --git a/console/src/assets/i18n/es.json b/console/src/assets/i18n/es.json
index 70dd86bc84..0240083bd7 100644
--- a/console/src/assets/i18n/es.json
+++ b/console/src/assets/i18n/es.json
@@ -86,6 +86,10 @@
"TITLE": "Configuración de la Organización",
"DESCRIPTION": "Personaliza la configuración de tu organización."
},
+ "FEATURES": {
+ "TITLE": "Configuración de funciones",
+ "DESCRIPTION": "Desbloquee funciones para su instancia."
+ },
"IDPS": {
"TITLE": "Proveedores de Identidad",
"DESCRIPTION": "Crea y activa proveedores de identidad externos. Elige un proveedor conocido o configura cualquier otro proveedor compatible con OIDC, OAuth o SAML de tu elección. Incluso puedes usar tus tokens JWT existentes como identidades federadas configurando un proveedor de identidad JWT.",
@@ -1316,6 +1320,7 @@
},
"LIST": {
"ORGS": "Organizaciones",
+ "FEATURESETTINGS": "Ajustes de funcionalidades",
"LANGUAGES": "Idiomas",
"LOGIN": "Comportamiento del inicio de sesión y de la seguridad",
"LOCKOUT": "Bloqueo",
@@ -1446,6 +1451,27 @@
"IMPERSONATIONENABLED": "Permitir suplantación",
"IMPERSONATIONDESCRIPTION": "Esta configuración permite utilizar la suplantación en principio. Tenga en cuenta que el imitador también necesita que se le asignen los roles `*_IMPERSONATOR` apropiados."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Organización predeterminada de inicio de sesión",
+ "LOGINDEFAULTORG_DESCRIPTION": "La interfaz de inicio de sesión utilizará la configuración de la organización predeterminada (y no de la instancia) si no se establece ningún contexto de organización.",
+ "OIDCLEGACYINTROSPECTION": "Introspección heredada OIDC",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Recientemente hemos refactorizado el punto de introspección por razones de rendimiento. Esta función se puede utilizar para volver a la implementación heredada si surgen errores inesperados.",
+ "OIDCTOKENEXCHANGE": "Intercambio de tokens OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Habilita el tipo de concesión experimental urn:ietf:params:oauth:grant-type:token-exchange para el punto de extremo de token OIDC. El intercambio de tokens se puede utilizar para solicitar tokens con un alcance menor o suplantar a otros usuarios. Consulta la política de seguridad para permitir la suplantación en una instancia.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Desencadenadores de proyecciones de introspección OIDC",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Habilita los desencadenadores de proyección durante una solicitud de introspección. Esto puede actuar como un mecanismo alternativo si hay problemas de coherencia perceptibles en la respuesta a la introspección, pero puede afectar al rendimiento. Estamos planeando eliminar los desencadenadores para las solicitudes de introspección en el futuro.",
+ "USERSCHEMA": "Esquema de usuario",
+ "USERSCHEMA_DESCRIPTION": "Los esquemas de usuario permiten gestionar los esquemas de datos de los usuarios. Si se activa la bandera, podrás utilizar la nueva API y sus funciones.",
+ "ACTIONS": "Acciones",
+ "ACTIONS_DESCRIPTION": "Acciones v2 permite administrar las ejecuciones y objetivos de datos. Si la bandera está habilitada, podrá utilizar la nueva API y sus funciones.",
+ "STATES": {
+ "INHERITED": "Heredado",
+ "ENABLED": "Habilitado",
+ "DISABLED": "Deshabilitado"
+ },
+ "INHERITED_DESCRIPTION": "Esta configuración establece el valor al valor predeterminado del sistema.",
+ "RESET": "Establecer todo a heredado"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Restablecer ajuste",
diff --git a/console/src/assets/i18n/fr.json b/console/src/assets/i18n/fr.json
index 56d3e7e63e..fa6fc918d6 100644
--- a/console/src/assets/i18n/fr.json
+++ b/console/src/assets/i18n/fr.json
@@ -86,6 +86,10 @@
"TITLE": "Paramètres de l'Organisation",
"DESCRIPTION": "Personnalise les paramètres de ton organisation."
},
+ "FEATURES": {
+ "TITLE": "Paramètres des fonctionnalités",
+ "DESCRIPTION": "Débloquez des fonctionnalités pour votre instance."
+ },
"IDPS": {
"TITLE": "Fournisseurs d'Identité",
"DESCRIPTION": "Crée et active des fournisseurs d'identité externes. Choisis un fournisseur bien connu ou configure tout autre fournisseur compatible OIDC, OAuth ou SAML de ton choix. Tu peux même utiliser tes tokens JWT existants comme identités fédérées en configurant un fournisseur d'identité JWT.",
@@ -1314,6 +1318,7 @@
},
"LIST": {
"ORGS": "Organisations",
+ "FEATURESETTINGS": "Paramètres de fonctionnalité",
"LANGUAGES": "Langues",
"LOGIN": "Comportement de connexion et sécurité",
"LOCKOUT": "Verrouillage",
@@ -1444,6 +1449,27 @@
"IMPERSONATIONENABLED": "Autoriser l'usurpation d'identité",
"IMPERSONATIONDESCRIPTION": "Ce paramètre permet en principe d'utiliser l'usurpation d'identité. Notez que l'usurpateur d'identité doit également recevoir les rôles `*_IMPERSONATOR` appropriés."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Organisation par défaut de connexion",
+ "LOGINDEFAULTORG_DESCRIPTION": "L'interface de connexion utilisera les paramètres de l'organisation par défaut (et non de l'instance) si aucun contexte d'organisation n'est défini.",
+ "OIDCLEGACYINTROSPECTION": "Introspection héritée OIDC",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Nous avons récemment refondu le point d'introspection pour des raisons de performances. Cette fonctionnalité peut être utilisée pour revenir à l'implémentation héritée en cas de bogues inattendus.",
+ "OIDCTOKENEXCHANGE": "Échange de jetons OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Activez le type de subvention expérimentale urn:ietf:params:oauth:grant-type:token-exchange pour le point de terminaison de jeton OIDC. L'échange de jetons peut être utilisé pour demander des jetons avec une portée moindre ou pour usurper d'autres utilisateurs. Consultez la politique de sécurité pour autoriser l'usurpation sur une instance.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Déclencheurs de projections d'introspection OIDC",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Activez les déclencheurs de projection lors d'une demande d'introspection. Cela peut agir comme un contournement s'il existe des problèmes de cohérence perceptibles dans la réponse à l'introspection, mais cela peut avoir un impact sur les performances. Nous prévoyons de supprimer les déclencheurs pour les demandes d'introspection à l'avenir.",
+ "USERSCHEMA": "Schéma utilisateur",
+ "USERSCHEMA_DESCRIPTION": "Les schémas utilisateur permettent de gérer les schémas de données des utilisateurs. Si le drapeau est activé, vous pourrez utiliser la nouvelle API et ses fonctionnalités.",
+ "ACTIONS": "Actions",
+ "ACTIONS_DESCRIPTION": "Les actions v2 permettent de gérer les exécutions et les cibles de données. Si l'indicateur est activé, vous pourrez utiliser la nouvelle API et ses fonctionnalités.",
+ "STATES": {
+ "INHERITED": "Hérité",
+ "ENABLED": "Activé",
+ "DISABLED": "Désactivé"
+ },
+ "INHERITED_DESCRIPTION": "Ce paramètre définit la valeur par défaut du système.",
+ "RESET": "Réinitialiser tout sur hérité"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Réinitialiser les paramètres",
diff --git a/console/src/assets/i18n/it.json b/console/src/assets/i18n/it.json
index 8b13f5518a..da104c2ca8 100644
--- a/console/src/assets/i18n/it.json
+++ b/console/src/assets/i18n/it.json
@@ -86,6 +86,10 @@
"TITLE": "Impostazioni dell'Organizzazione",
"DESCRIPTION": "Personalizza le impostazioni della tua organizzazione."
},
+ "FEATURES": {
+ "TITLE": "Impostazioni delle funzionalità",
+ "DESCRIPTION": "Sblocca funzionalità per la tua istanza."
+ },
"IDPS": {
"TITLE": "Fornitori di Identità",
"DESCRIPTION": "Crea e attiva fornitori di identità esterni. Scegli un fornitore ben noto o configura qualsiasi altro fornitore compatibile con OIDC, OAuth o SAML della tua scelta. Puoi anche utilizzare i tuoi token JWT esistenti come identità federate configurando un fornitore di identità JWT.",
@@ -1314,6 +1318,7 @@
},
"LIST": {
"ORGS": "Organizzazioni",
+ "FEATURESETTINGS": "Impostazioni delle funzionalità",
"LANGUAGES": "Lingue",
"LOGIN": "Comportamento login e sicurezza",
"LOCKOUT": "Meccanismi di bloccaggio",
@@ -1444,6 +1449,27 @@
"IMPERSONATIONENABLED": "Consenti la rappresentazione",
"IMPERSONATIONDESCRIPTION": "Questa impostazione consente in linea di principio di utilizzare la rappresentazione. Tieni presente che il sosia ha bisogno anche dei ruoli `*_IMPERSONATOR` appropriati assegnati."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Organizzazione predefinita per l'accesso",
+ "LOGINDEFAULTORG_DESCRIPTION": "L'interfaccia di accesso utilizzerà le impostazioni dell'organizzazione predefinita (e non dell'istanza) se non è impostato alcun contesto organizzativo.",
+ "OIDCLEGACYINTROSPECTION": "Introspezione legacy OIDC",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Abbiamo recentemente ristrutturato il punto di introspezione per motivi di prestazioni. Questa funzionalità può essere utilizzata per tornare alla vecchia implementazione in caso di bug imprevisti.",
+ "OIDCTOKENEXCHANGE": "Scambio token OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Abilita il tipo di concessione sperimentale urn:ietf:params:oauth:grant-type:token-exchange per il punto finale del token OIDC. Lo scambio di token può essere utilizzato per richiedere token con uno scopo inferiore o impersonare altri utenti. Consultare la policy di sicurezza per consentire l'impersonificazione su un'istanza.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Proiezioni trigger OIDC per l'introspezione",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Abilita i trigger di proiezione durante una richiesta di introspezione. Questo può agire come soluzione alternativa se ci sono problemi di coerenza evidenti nella risposta all'introspezione, ma può influire sulle prestazioni. Stiamo pianificando di rimuovere i trigger per le richieste di introspezione in futuro.",
+ "USERSCHEMA": "Schema utente",
+ "USERSCHEMA_DESCRIPTION": "Gli schemi utente consentono di gestire gli schemi di dati degli utenti. Se la flag è attivata, sarà possibile utilizzare la nuova API e le sue funzionalità.",
+ "ACTIONS": "Azioni",
+ "ACTIONS_DESCRIPTION": "Le azioni v2 consentono di gestire le esecuzioni e gli obiettivi dei dati. Se l'indicatore è abilitato, potrai utilizzare la nuova API e le sue funzionalità.",
+ "STATES": {
+ "INHERITED": "Predefinito",
+ "ENABLED": "Abilitato",
+ "DISABLED": "Disabilitato"
+ },
+ "INHERITED_DESCRIPTION": "Questa impostazione imposta il valore predefinito del sistema.",
+ "RESET": "Imposta tutto su predefinito"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Ripristina impostazioni",
diff --git a/console/src/assets/i18n/ja.json b/console/src/assets/i18n/ja.json
index dcc2484222..0f56cf7eb5 100644
--- a/console/src/assets/i18n/ja.json
+++ b/console/src/assets/i18n/ja.json
@@ -86,10 +86,13 @@
"TITLE": "組織設定",
"DESCRIPTION": "組織の設定をカスタマイズします。"
},
+ "FEATURES": {
+ "TITLE": "機能設定",
+ "DESCRIPTION": "インスタンスの機能のロックを解除します。"
+ },
"IDPS": {
"TITLE": "IDプロバイダー",
"DESCRIPTION": "外部IDプロバイダーを作成してアクティブにします。よく知られたプロバイダーを選択するか、他のOIDC、OAuth、SAML互換プロバイダーを設定します。既存のJWTトークンを連合アイデンティティとして使用するために、JWT IDプロバイダーを設定することもできます。",
- "DESCRIPTION": "外部IDプロバイダーを作成して有効化します。よく知られているプロバイダーを選択するか、あるいはOIDC、OAuth、SAML互換の他のプロバイダーを自由に設定してください。既存のJWTトークンを、JWT IDプロバイダーを設定することで、フェデレーテッドアイデンティティとして使用することもできます。",
"NEXT": "次は?",
"SAML": {
"TITLE": "SAML IDプロバイダーを設定する",
@@ -1316,6 +1319,7 @@
},
"LIST": {
"ORGS": "組織",
+ "FEATURESETTINGS": "機能設定",
"LANGUAGES": "一般設定",
"LOGIN": "ログイン動作とセキュリティ",
"LOCKOUT": "ロックアウト",
@@ -1446,6 +1450,27 @@
"IMPERSONATIONENABLED": "偽装を許可します",
"IMPERSONATIONDESCRIPTION": "この設定では、原則として偽装を使用できます。偽装者には、適切な `*_IMPERSONATOR` ロールも割り当てられている必要があることに注意してください。"
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "ログイン時の既定組織",
+ "LOGINDEFAULTORG_DESCRIPTION": "組織コンテキストが設定されていない場合、ログイン UI は既定の組織の設定を使用します (インスタンスの設定ではなく)",
+ "OIDCLEGACYINTROSPECTION": "OIDC レガシーイントロスペクション",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "パフォーマンス上の理由から最近イントロスペクション エンドポイントをリファクタリングしました。この機能は、予期しないバグが発生した場合にレガシー実装にロールバックするために使用できます。",
+ "OIDCTOKENEXCHANGE": "OIDC トークン交換",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "OIDC トークン エンドポイント用に実験的な urn:ietf:params:oauth:grant-type:token-exchange 付与タイプを有効にします。トークン交換は、より少ないスコープを持つトークンを要求するか、他のユーザーになりすますために使用できます。インスタンスでのなりすましを許可するには、セキュリティポリシーを参照してください。",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "OIDC トリガーイントロスペクションプロジェクション",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "イントロスペクション要求中にプロジェクショントリガーを有効にします。これは、イントロスペクションレスポンスに顕著な整合性問題がある場合の回避策として機能しますが、パフォーマンスに影響を与える可能性があります。今後、イントロスペクション要求のトリガーを削除する予定です。",
+ "USERSCHEMA": "ユーザー スキーマ",
+ "USERSCHEMA_DESCRIPTION": "ユーザー スキーマを使用すると、ユーザーのデータスキーマを管理できます。フラグが有効になっている場合、新しい APIとその機能を使用できます。",
+ "ACTIONS": "アクション",
+ "ACTIONS_DESCRIPTION": "Actions v2は、データの実行とターゲットを管理できます。フラグが有効になっている場合、新しい APIとその機能を使用できます。",
+ "STATES": {
+ "INHERITED": "継承",
+ "ENABLED": "有効",
+ "DISABLED": "無効"
+ },
+ "INHERITED_DESCRIPTION": "この設定は、値をシステムのデフォルト値に設定します。",
+ "RESET": "すべて継承に設定"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "設定のリセット",
diff --git a/console/src/assets/i18n/mk.json b/console/src/assets/i18n/mk.json
index 99c55a999d..88237890ca 100644
--- a/console/src/assets/i18n/mk.json
+++ b/console/src/assets/i18n/mk.json
@@ -86,6 +86,10 @@
"TITLE": "Поставки за организацијата",
"DESCRIPTION": "Прилагодете ги поставките за вашата организација."
},
+ "FEATURES": {
+ "TITLE": "Поставки за функции",
+ "DESCRIPTION": "Отклучете ги функциите на вашиот пример."
+ },
"IDPS": {
"TITLE": "Провајдери на идентитет",
"DESCRIPTION": "Креирајте и активирајте надворешни провајдери на идентитет. Изберете познат провајдер или конфигурирајте било кој друг OIDC, OAuth или SAML компатибилен провајдер по ваш избор. Можете дури и да ги користите вашите постоечки JWT токени како федеративни идентитети со конфигурирање на JWT провајдер на идентитет.",
@@ -1316,6 +1320,7 @@
},
"LIST": {
"ORGS": "Организации",
+ "FEATURESETTINGS": "Подесувања на функцијата",
"LANGUAGES": "Општо",
"LOGIN": "Правила и безбедност при најава",
"LOCKOUT": "Забрана на пристап",
@@ -1446,6 +1451,27 @@
"IMPERSONATIONENABLED": "Дозволи имитирање",
"IMPERSONATIONDESCRIPTION": "Оваа поставка овозможува да се користи имитирање во принцип. Имајте предвид дека на имитаторот му требаат доделени соодветни улоги `*_IMPERSONATOR`"
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Најава Стандардна организација",
+ "LOGINDEFAULTORG_DESCRIPTION": "Интерфејсот за најавување ќе ги користи поставките на стандардната организација (а не од примерот) ако не е поставен контекст на организацијата",
+ "OIDCLEGACYINTROSPECTION": "Интроспекција на наследството на OIDC",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Неодамна ја рефакториравме крајната точка на интроспекција поради перформанси. Оваа функција може да се користи за враќање на наследната имплементација доколку се појават неочекувани грешки.",
+ "OIDCTOKENEXCHANGE": "Размена на токени OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Овозможете го експерименталниот тип на грант urn:ietf:params:oauth:grant-type:token-exchange за крајната точка на токенот OIDC. Размената на токени може да се користи за барање токени со помал опсег или имитирање на други корисници. Погледнете ја безбедносната политика за да дозволите имитирање на пример.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Проекции за интроспекција на активирањето на OIDC",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Овозможете предизвикувачи за проекција за време на барање за интроспекција. Ова може да дејствува како заобиколување ако има забележителни проблеми со конзистентноста во одговорот на интроспекцијата, но може да има влијание врз перформансите. Планираме да ги отстраниме предизвикувачите за барањата за интроспекција во иднина.",
+ "USERSCHEMA": "Корисничка шема",
+ "USERSCHEMA_DESCRIPTION": "Корисничките шеми овозможуваат управување со податоци шеми на корисникот. Ако знамето е овозможено, ќе можете да го користите новиот API и неговите функции.",
+ "ACTIONS": "Акции",
+ "ACTIONS_DESCRIPTION": "Акциите v2 овозможуваат управување со извршување на податоци и цели. Ако знамето е овозможено, ќе можете да го користите новиот API и неговите функции.",
+ "STATES": {
+ "INHERITED": "Наследи",
+ "ENABLED": "Овозможено",
+ "DISABLED": "Оневозможено"
+ },
+ "INHERITED_DESCRIPTION": "Оваа поставка ја постави вредноста на стандардната вредност на системот.",
+ "RESET": "Поставете ги сите да наследат"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Ресетирање на подесувањата",
diff --git a/console/src/assets/i18n/nl.json b/console/src/assets/i18n/nl.json
index ece8acc83f..398156ddb2 100644
--- a/console/src/assets/i18n/nl.json
+++ b/console/src/assets/i18n/nl.json
@@ -86,6 +86,10 @@
"TITLE": "Organisatie-instellingen",
"DESCRIPTION": "Pas de instellingen van je organisatie aan."
},
+ "FEATURES": {
+ "TITLE": "Functie-instellingen",
+ "DESCRIPTION": "Ontgrendel functies voor uw exemplaar."
+ },
"IDPS": {
"TITLE": "Identiteitsproviders",
"DESCRIPTION": "Maak en activeer externe identiteitsproviders. Kies een bekende provider of configureer een andere OIDC, OAuth of SAML compatibele provider naar keuze. Je kunt zelfs je bestaande JWT-tokens gebruiken als gefedereerde identiteiten door een JWT-identiteitsprovider te configureren.",
@@ -1315,6 +1319,7 @@
},
"LIST": {
"ORGS": "Organisaties",
+ "FEATURESETTINGS": "Functie-instellingen",
"LANGUAGES": "Talen",
"LOGIN": "Login Gedrag en Beveiliging",
"LOCKOUT": "Lockout",
@@ -1445,6 +1450,27 @@
"IMPERSONATIONENABLED": "Imitatie toestaan",
"IMPERSONATIONDESCRIPTION": "Deze instelling maakt het in principe mogelijk om imitatie te gebruiken. Houd er rekening mee dat aan de imitator ook de juiste `*_IMPERSONATOR` rollen moeten worden toegewezen."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Standaard inlogorganisatie",
+ "LOGINDEFAULTORG_DESCRIPTION": "Als er geen organisatiecontext is ingesteld, gebruikt de inlog-UI de instellingen van de standaardorganisatie (en niet van de instantie)",
+ "OIDCLEGACYINTROSPECTION": "Oude OIDC-introspectie",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "We hebben onlangs het introspectie-endpoint opnieuw gefactoreerd omwille van de prestaties. Deze functie kan worden gebruikt om terug te keren naar de oude implementatie als er onverwachte bugs optreden.",
+ "OIDCTOKENEXCHANGE": "OIDC-tokenuitwisseling",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Schakel het experimentele type verlening urn:ietf:params:oauth:grant-type:token-exchange in voor het OIDC-tokenendpoint. Tokenuitwisseling kan worden gebruikt om tokens met een kleinere scope op te vragen of om zich voor te doen als andere gebruikers. Raadpleeg het beveiligingsbeleid om impersonation op een instantie toe te staan.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "OIDC-triggers voor introspectieprojecties",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Schakel projectietriggers in tijdens een introspectieverzoek. Dit kan dienen als een tijdelijke oplossing als er merkbare consistentieproblemen optreden in het introspectieantwoord, maar het kan wel prestaties beïnvloeden. We zijn van plan om triggers voor introspectieverzoeken in de toekomst te verwijderen.",
+ "USERSCHEMA": "Gebruikerschema",
+ "USERSCHEMA_DESCRIPTION": "Met gebruikerschema's kunt u de dataschema's van gebruikers beheren. Als de vlag is ingeschakeld, kunt u de nieuwe API en zijn functies gebruiken.",
+ "ACTIONS": "Acties",
+ "ACTIONS_DESCRIPTION": "Actions v2 maken het mogelijk om data-uitvoeringen en doelen te beheren. Als de vlag is ingeschakeld, kunt u de nieuwe API en zijn functies gebruiken.",
+ "STATES": {
+ "INHERITED": "Overgenomen",
+ "ENABLED": "Ingeschakeld",
+ "DISABLED": "Uitgeschakeld"
+ },
+ "INHERITED_DESCRIPTION": "Deze instelling stelt de waarde in op de standaardwaarde van het systeem.",
+ "RESET": "Alles instellen op overgenomen"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Reset Instelling",
diff --git a/console/src/assets/i18n/pl.json b/console/src/assets/i18n/pl.json
index a39947f8c3..7f3cbc226b 100644
--- a/console/src/assets/i18n/pl.json
+++ b/console/src/assets/i18n/pl.json
@@ -86,6 +86,10 @@
"TITLE": "Ustawienia organizacji",
"DESCRIPTION": "Dostosuj ustawienia swojej organizacji."
},
+ "FEATURES": {
+ "TITLE": "Ustawienia funkcji",
+ "DESCRIPTION": "Odblokuj funkcje swojej instancji."
+ },
"IDPS": {
"TITLE": "Dostawcy tożsamości",
"DESCRIPTION": "Utwórz i aktywuj zewnętrznych dostawców tożsamości. Wybierz znanego dostawcę lub skonfiguruj dowolnego innego dostawcę zgodnego z OIDC, OAuth lub SAML według własnego wyboru. Możesz nawet użyć istniejących tokenów JWT jako tożsamości federacyjnych, konfigurując dostawcę tożsamości JWT.",
@@ -1314,6 +1318,7 @@
},
"LIST": {
"ORGS": "Organizacje",
+ "FEATURESETTINGS": "Ustawienia funkcji",
"LANGUAGES": "Języki",
"LOGIN": "Zachowanie logowania i bezpieczeństwo",
"LOCKOUT": "Blokada",
@@ -1444,6 +1449,27 @@
"IMPERSONATIONENABLED": "Zezwalaj na podszywanie się",
"IMPERSONATIONDESCRIPTION": "To ustawienie pozwala w zasadzie na użycie personifikacji. Należy pamiętać, że osoba personifikująca potrzebuje również przypisanych odpowiednich ról `*_IMPERSONATOR`."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Domyślna Organizacja Logowania",
+ "LOGINDEFAULTORG_DESCRIPTION": "Jeśli nie ustawiono kontekstu organizacji, interfejs logowania będzie używać ustawień domyślnej organizacji (a nie instancji)",
+ "OIDCLEGACYINTROSPECTION": "Starsza Introspekcja OIDC",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Ostatnio przeprojektowaliśmy punkt końcowy introspekcji ze względów wydajnościowych. Ta funkcja może być używana do cofnięcia do starszej implementacji, jeśli wystąpią nieoczekiwane błędy.",
+ "OIDCTOKENEXCHANGE": "Wymiana Tokenów OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Włącz eksperymentalny typ grantu urn:ietf:params:oauth:grant-type:token-exchange dla punktu końcowego tokena OIDC. Wymiana tokenów może być używana do żądania tokenów o mniejszym zakresie lub podszywania się za innych użytkowników. Aby zezwolić na podszywanie się na instancji, zapoznaj się z polityką bezpieczeństwa.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Projekcje Introspekcji Wyzwalane przez OIDC",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Włącz wyzwalacze projekcji podczas żądania introspekcji. Może to stanowić obejście, jeśli w odpowiedzi introspekcji występują zauważalne problemy z spójnością, ale może mieć wpływ na wydajność. Planujemy w przyszłości usunąć wyzwalacze dla żądań introspekcji.",
+ "USERSCHEMA": "Schemat Użytkownika",
+ "USERSCHEMA_DESCRIPTION": "Schematy użytkowników umożliwiają zarządzanie schematami danych użytkowników. Jeśli flaga jest włączona, będziesz mógł korzystać z nowego interfejsu API i jego funkcji.",
+ "ACTIONS": "Akcje",
+ "ACTIONS_DESCRIPTION": "Akcje v2 umożliwiają zarządzanie wykonaniami danych i celami. Jeżeli flaga jest włączona, będziesz mógł korzystać z nowego interfejsu API i jego funkcji.",
+ "STATES": {
+ "INHERITED": "Dziedziczony",
+ "ENABLED": "Włączony",
+ "DISABLED": "Wyłączony"
+ },
+ "INHERITED_DESCRIPTION": "To ustawienie przypisuje wartość do wartości domyślnej systemu.",
+ "RESET": "Ustaw wszystko na dziedziczone"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Resetuj ustawienia",
diff --git a/console/src/assets/i18n/pt.json b/console/src/assets/i18n/pt.json
index ca8ae8b012..c19bb19e9d 100644
--- a/console/src/assets/i18n/pt.json
+++ b/console/src/assets/i18n/pt.json
@@ -86,6 +86,10 @@
"TITLE": "Configurações da Organização",
"DESCRIPTION": "Personalize as configurações da sua organização."
},
+ "FEATURES": {
+ "TITLE": "Configurações de recursos",
+ "DESCRIPTION": "Desbloqueie recursos para sua instância."
+ },
"IDPS": {
"TITLE": "Provedores de Identidade",
"DESCRIPTION": "Crie e ative provedores de identidade externos. Escolha um provedor conhecido ou configure qualquer outro provedor compatível com OIDC, OAuth ou SAML de sua escolha. Você pode até usar seus tokens JWT existentes como identidades federadas configurando um provedor de identidade JWT.",
@@ -1316,6 +1320,7 @@
},
"LIST": {
"ORGS": "Organizações",
+ "FEATURESETTINGS": "Configurações de Recursos",
"LANGUAGES": "Idiomas",
"LOGIN": "Comportamento de Login e Segurança",
"LOCKOUT": "Bloqueio",
@@ -1446,6 +1451,27 @@
"IMPERSONATIONENABLED": "Permitir representação",
"IMPERSONATIONDESCRIPTION": "Esta configuração permite usar a representação em princípio. Observe que o imitador também precisa das funções `*_IMPERSONATOR` apropriadas atribuídas."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Organização Padrão de Login",
+ "LOGINDEFAULTORG_DESCRIPTION": "A interface de login utilizará as configurações da organização padrão (e não da instância) se nenhum contexto de organização estiver definido",
+ "OIDCLEGACYINTROSPECTION": "Introspecção Legada OIDC",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Recentemente refatoramos o endpoint de introspecção por motivos de performance. Esse recurso pode ser usado para reverter para a implementação legada caso surjam bugs inesperados.",
+ "OIDCTOKENEXCHANGE": "Troca de Token OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Habilita o tipo de concessão experimental urn:ietf:params:oauth:grant-type:token-exchange para o endpoint de token OIDC. A troca de token pode ser usada para solicitar tokens com escopo menor ou personificar outros usuários. Consulte a política de segurança para permitir a personificação em uma instância.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Projeções de Introspecção com Gatilho OIDC",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Habilita gatilhos de projeção durante uma solicitação de introspecção. Isso pode funcionar como uma solução alternativa se houver problemas de consistência perceptíveis na resposta de introspecção, mas pode impactar o desempenho. Planejamos remover gatilhos para solicitações de introspecção no futuro.",
+ "USERSCHEMA": "Esquema de Usuário",
+ "USERSCHEMAS_DESCRIPTION": "Esquemas de Usuário permitem gerenciar esquemas de dados do usuário. Se o sinalizador estiver ativado, você poderá usar a nova API e seus recursos.",
+ "ACTIONS": "Ações",
+ "ACTIONS_DESCRIPTION": "Actions v2 permitem gerenciar execuções e destinos de dados. Se a flag estiver habilitada, você poderá usar a nova API e seus recursos.",
+ "STATES": {
+ "INHERITED": "Herdade",
+ "ENABLED": "Habilitado",
+ "DISABLED": "Desabilitado"
+ },
+ "INHERITED_DESCRIPTION": "Essa configuração define o valor para o padrão do sistema.",
+ "RESET": "Definir tudo para herdar"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Redefinir configuração",
diff --git a/console/src/assets/i18n/ru.json b/console/src/assets/i18n/ru.json
index 538e02956b..1310a4645e 100644
--- a/console/src/assets/i18n/ru.json
+++ b/console/src/assets/i18n/ru.json
@@ -86,6 +86,10 @@
"TITLE": "Настройки организации",
"DESCRIPTION": "Настройте параметры вашей организации."
},
+ "FEATURES": {
+ "TITLE": "Настройки функции",
+ "DESCRIPTION": "Разблокируйте функции для вашего экземпляра."
+ },
"IDPS": {
"TITLE": "Поставщики идентификации",
"DESCRIPTION": "Создайте и активируйте внешних поставщиков идентификации. Выберите известного поставщика или настройте любого другого совместимого с OIDC, OAuth или SAML поставщика по вашему выбору. Вы даже можете использовать ваши существующие JWT токены как федеративные идентификаторы, настроив поставщика идентификации JWT.",
@@ -1361,8 +1365,8 @@
"DESCRIPTION": "Данные настройки расширяют и перезаписывают настройки вашего экземпляра."
},
"LIST": {
- "GENERAL": "Общее",
"ORGS": "Организации",
+ "FEATURESETTINGS": "Настройки функций",
"LANGUAGES": "Языки",
"LOGIN": "Действия при входе и безопасность",
"LOCKOUT": "Блокировка",
@@ -1498,6 +1502,27 @@
"IMPERSONATIONENABLED": "Разрешить олицетворение",
"IMPERSONATIONDESCRIPTION": "Этот параметр позволяет в принципе использовать олицетворение. Обратите внимание, что имитатору также необходимо назначить соответствующие роли `*_IMPERSONATOR`."
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "Организация по умолчанию для входа",
+ "LOGINDEFAULTORG_DESCRIPTION": "Если контекст организации не установлен, пользовательский интерфейс входа будет использовать настройки организации по умолчанию (а не экземпляра)",
+ "OIDCLEGACYINTROSPECTION": "Устаревшая интроспекция OIDC",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "Недавно мы переработали конечную точку интроспекции для повышения производительности. Эта функция может использоваться для отката к устаревшей реализации, если возникнут непредвиденные ошибки.",
+ "OIDCTOKENEXCHANGE": "Обмен токенами OIDC",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "Включите экспериментальный тип гранта urn:ietf:params:oauth:grant-type:token-exchange для конечной точки токена OIDC. Обмен токенами можно использовать для запроса токенов с меньшей областью действия или для impersonation (выдачи себя за) других пользователей. Информацию о разрешении impersonation на экземпляре см. в политике безопасности.",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "Проекции интроспекции с триггером OIDC",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "Включите триггеры проекций во время запроса интроспекции. Это может служить обходным путем, если в ответе интроспекции наблюдаются заметные проблемы согласованности, но может повлиять на производительность. В будущем мы планируем удалить триггеры для запросов интроспекции.",
+ "USERSCHEMA": "Схема пользователя",
+ "USERSCHEMA_DESCRIPTION": "Схемы пользователей позволяют управлять схемами данных пользователей. Если флаг включен, вы сможете использовать новый API и его функции.",
+ "ACTIONS": "Действия",
+ "ACTIONS_DESCRIPTION": "Actions v2 позволяют управлять выполнением данных и целевыми объектами. Если флаг включен, вы сможете использовать новый API и его функции.",
+ "STATES": {
+ "INHERITED": "Наследовать",
+ "ENABLED": "Включено",
+ "DISABLED": "Выключено"
+ },
+ "INHERITED_DESCRIPTION": "Эта настройка устанавливает значение по умолчанию для системы.",
+ "RESET": "Установить все по умолчанию"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "Сбросить настройки",
diff --git a/console/src/assets/i18n/zh.json b/console/src/assets/i18n/zh.json
index 5ee5139780..be584045ba 100644
--- a/console/src/assets/i18n/zh.json
+++ b/console/src/assets/i18n/zh.json
@@ -86,6 +86,10 @@
"TITLE": "组织设置",
"DESCRIPTION": "自定义您的组织设置。"
},
+ "FEATURES": {
+ "TITLE": "功能设置",
+ "DESCRIPTION": "解锁您的实例的功能。"
+ },
"IDPS": {
"TITLE": "身份提供商",
"DESCRIPTION": "创建并激活外部身份提供商。选择一个知名提供商或根据您的选择配置任何其他兼容OIDC、OAuth或SAML的提供商。您甚至可以通过配置JWT身份提供商,使用您现有的JWT令牌作为联合身份。",
@@ -1314,6 +1318,7 @@
},
"LIST": {
"ORGS": "组织",
+ "FEATURESETTINGS": "功能设置",
"LANGUAGES": "语言",
"LOGIN": "登录行为和安全",
"LOCKOUT": "安全锁策略",
@@ -1444,6 +1449,27 @@
"IMPERSONATIONENABLED": "允许模拟",
"IMPERSONATIONDESCRIPTION": "此设置原则上允许使用模拟。请注意,模拟者还需要分配适当的 `*_IMPERSONATOR` 角色。"
},
+ "FEATURES": {
+ "LOGINDEFAULTORG": "登录默认组织",
+ "LOGINDEFAULTORG_DESCRIPTION": "如果没有设置组织上下文,登录界面将使用默认组织的设置(而不是实例的设置)",
+ "OIDCLEGACYINTROSPECTION": "OIDC 传统内省",
+ "OIDCLEGACYINTROSPECTION_DESCRIPTION": "我们最近出于性能原因重构了内省端点。如果出现意外错误,可以使用此功能回滚到传统实现。",
+ "OIDCTOKENEXCHANGE": "OIDC 令牌交换",
+ "OIDCTOKENEXCHANGE_DESCRIPTION": "启用 OIDC 令牌端点的实验性 urn:ietf:params:oauth:grant-type:token-exchange 授权类型。令牌交换可用于请求具有较少范围的令牌或模拟其他用户。请参阅安全策略以允许在实例上模拟。",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS": "OIDC 触发内省投影",
+ "OIDCTRIGGERINTROSPECTIONPROJECTIONS_DESCRIPTION": "在内省请求期间启用投影触发器。如果内省响应中存在明显的一致性问题,这可以作为一个解决方法,但可能会影响性能。我们计划在未来删除内省请求的触发器。",
+ "USERSCHEMA": "用户架构",
+ "USERSCHEMA_DESCRIPTION": "用户架构允许管理用户的数据架构。如果启用此标志,您将可以使用新的 API 及其功能。",
+ "ACTIONS": "操作",
+ "ACTIONS_DESCRIPTION": "Actions v2 可以管理数据执行和目标。如果启用此标志,您将可以使用新的 API 及其功能。",
+ "STATES": {
+ "INHERITED": "继承",
+ "ENABLED": "已启用",
+ "DISABLED": "已禁用"
+ },
+ "INHERITED_DESCRIPTION": "此设置将值设置为系统默认值。",
+ "RESET": "全部设置为继承"
+ },
"DIALOG": {
"RESET": {
"DEFAULTTITLE": "重置设置",