diff --git a/messages/en-US.json b/messages/en-US.json
index 361771d87..7d00c8105 100644
--- a/messages/en-US.json
+++ b/messages/en-US.json
@@ -509,6 +509,7 @@
"userSaved": "User saved",
"userSavedDescription": "The user has been updated.",
"autoProvisioned": "Auto Provisioned",
+ "autoProvisionSettings": "Auto Provision Settings",
"autoProvisionedDescription": "Allow this user to be automatically managed by identity provider",
"accessControlsDescription": "Manage what this user can access and do in the organization",
"accessControlsSubmit": "Save Access Controls",
@@ -1042,7 +1043,6 @@
"pageNotFoundDescription": "Oops! The page you're looking for doesn't exist.",
"overview": "Overview",
"home": "Home",
- "accessControl": "Access Control",
"settings": "Settings",
"usersAll": "All Users",
"license": "License",
@@ -1942,6 +1942,24 @@
"invalidValue": "Invalid value",
"idpTypeLabel": "Identity Provider Type",
"roleMappingExpressionPlaceholder": "e.g., contains(groups, 'admin') && 'Admin' || 'Member'",
+ "roleMappingModeFixedRoles": "Fixed roles",
+ "roleMappingModeMappingBuilder": "Mapping builder",
+ "roleMappingModeRawExpression": "Raw expression",
+ "roleMappingFixedRolesPlaceholderSelect": "Select one or more roles",
+ "roleMappingFixedRolesPlaceholderFreeform": "Type role names (exact match per organization)",
+ "roleMappingFixedRolesDescriptionSameForAll": "Assign the same role set to every auto-provisioned user.",
+ "roleMappingFixedRolesDescriptionDefaultPolicy": "For default policies, type role names that exist in each organization where users are provisioned. Names must match exactly.",
+ "roleMappingClaimPath": "Claim path",
+ "roleMappingClaimPathPlaceholder": "groups",
+ "roleMappingClaimPathDescription": "Path in the token payload that contains source values (for example, groups).",
+ "roleMappingMatchValue": "Match value",
+ "roleMappingAssignRoles": "Assign roles",
+ "roleMappingAddMappingRule": "Add mapping rule",
+ "roleMappingRawExpressionResultDescription": "Expression must evaluate to a string or string array.",
+ "roleMappingMatchValuePlaceholder": "Match value (for example: admin)",
+ "roleMappingAssignRolesPlaceholderFreeform": "Type role names (exact per org)",
+ "roleMappingBuilderFreeformRowHint": "Role names must match a role in each target organization.",
+ "roleMappingRemoveRule": "Remove",
"idpGoogleConfiguration": "Google Configuration",
"idpGoogleConfigurationDescription": "Configure the Google OAuth2 credentials",
"idpGoogleClientIdDescription": "Google OAuth2 Client ID",
@@ -2514,9 +2532,9 @@
"remoteExitNodeRegenerateCredentialsConfirmation": "Are you sure you want to regenerate the credentials for this remote exit node?",
"remoteExitNodeRegenerateCredentialsWarning": "This will regenerate the credentials. The remote exit node will stay connected until you manually restart it and use the new credentials.",
"agent": "Agent",
- "personalUseOnly": "Personal Use Only",
- "loginPageLicenseWatermark": "This instance is licensed for personal use only.",
- "instanceIsUnlicensed": "This instance is unlicensed.",
+ "personalUseOnly": "Personal Use Only",
+ "loginPageLicenseWatermark": "This instance is licensed for personal use only.",
+ "instanceIsUnlicensed": "This instance is unlicensed.",
"portRestrictions": "Port Restrictions",
"allPorts": "All",
"custom": "Custom",
@@ -2570,7 +2588,7 @@
"automaticModeDescription": " Show maintenance page only when all backend targets are down or unhealthy. Your resource continues working normally as long as at least one target is healthy.",
"forced": "Forced",
"forcedModeDescription": "Always show the maintenance page regardless of backend health. Use this for planned maintenance when you want to prevent all access.",
- "warning:" : "Warning:",
+ "warning:": "Warning:",
"forcedeModeWarning": "All traffic will be directed to the maintenance page. Your backend resources will not receive any requests.",
"pageTitle": "Page Title",
"pageTitleDescription": "The main heading displayed on the maintenance page",
@@ -2687,5 +2705,6 @@
"approvalsEmptyStateStep2Description": "Edit a role and enable the 'Require Device Approvals' option. Users with this role will need admin approval for new devices.",
"approvalsEmptyStatePreviewDescription": "Preview: When enabled, pending device requests will appear here for review",
"approvalsEmptyStateButtonText": "Manage Roles",
- "domainErrorTitle": "We are having trouble verifying your domain"
+ "domainErrorTitle": "We are having trouble verifying your domain",
+ "idpAdminAutoProvisionPoliciesTabHint": "Configure role mapping and organization policies on the Auto Provision Settings tab."
}
diff --git a/src/app/admin/idp/[idpId]/general/page.tsx b/src/app/admin/idp/[idpId]/general/page.tsx
index d431efa2d..a5ed14a6e 100644
--- a/src/app/admin/idp/[idpId]/general/page.tsx
+++ b/src/app/admin/idp/[idpId]/general/page.tsx
@@ -15,7 +15,8 @@ import {
import { Input } from "@app/components/ui/input";
import { useForm } from "react-hook-form";
import { toast } from "@app/hooks/useToast";
-import { useRouter, useParams, redirect } from "next/navigation";
+import { useRouter, useParams } from "next/navigation";
+import Link from "next/link";
import {
SettingsContainer,
SettingsSection,
@@ -189,15 +190,6 @@ export default function GeneralPage() {
-
-
-
- {t("redirectUrlAbout")}
-
-
- {t("redirectUrlAboutDescription")}
-
-
-
- {t("idpAutoProvisionUsersDescription")}
-
+