diff --git a/frontend/src/pages/UnstractAdministrationPage.css b/frontend/src/pages/UnstractAdministrationPage.css
new file mode 100644
index 0000000000..14a35ed755
--- /dev/null
+++ b/frontend/src/pages/UnstractAdministrationPage.css
@@ -0,0 +1,4 @@
+.administration-fallback {
+ padding: 24px;
+ text-align: center;
+}
diff --git a/frontend/src/pages/UnstractAdministrationPage.jsx b/frontend/src/pages/UnstractAdministrationPage.jsx
new file mode 100644
index 0000000000..6fa07ea6aa
--- /dev/null
+++ b/frontend/src/pages/UnstractAdministrationPage.jsx
@@ -0,0 +1,25 @@
+import "./UnstractAdministrationPage.css";
+
+let UnstractAdministration;
+
+try {
+ UnstractAdministration =
+ require("../plugins/subscription-admin/components/UnstractAdministration.jsx").UnstractAdministration;
+} catch (err) {
+ // NOSONAR
+ // Cloud-only feature, not available in OSS
+}
+
+function UnstractAdministrationPage() {
+ if (!UnstractAdministration) {
+ return (
+
+
Administration Panel
+
This feature is only available in Unstract Cloud.
+
+ );
+ }
+ return ;
+}
+
+export { UnstractAdministrationPage };
diff --git a/frontend/src/routes/Router.jsx b/frontend/src/routes/Router.jsx
index 104a3c52f4..533903975b 100644
--- a/frontend/src/routes/Router.jsx
+++ b/frontend/src/routes/Router.jsx
@@ -86,6 +86,15 @@ try {
// Do nothing, Not-found Page will be triggered.
}
+let LlmWhispererCustomCheckoutPage;
+try {
+ LlmWhispererCustomCheckoutPage =
+ require("../plugins/llm-whisperer/pages/LlmWhispererCustomCheckoutPage.jsx").LlmWhispererCustomCheckoutPage;
+} catch (err) {
+ // NOSONAR
+ // Do nothing, Not-found Page will be triggered.
+}
+
function Router() {
const MainAppRoute = useMainAppRoutes();
return (
@@ -147,6 +156,12 @@ function Router() {
element={}
/>
)}
+ {LlmWhispererCustomCheckoutPage && (
+ }
+ />
+ )}
}>
{MainAppRoute}
{llmWhispererRouter && (
diff --git a/frontend/src/routes/useMainAppRoutes.js b/frontend/src/routes/useMainAppRoutes.js
index b2c6a6919f..494f89d3ec 100644
--- a/frontend/src/routes/useMainAppRoutes.js
+++ b/frontend/src/routes/useMainAppRoutes.js
@@ -6,6 +6,7 @@ import { ToolsSettingsPage } from "../pages/ToolsSettingsPage.jsx";
import { SettingsPage } from "../pages/SettingsPage.jsx";
import { PlatformSettings } from "../components/settings/platform/PlatformSettings.jsx";
import { RequireAdmin } from "../components/helpers/auth/RequireAdmin.js";
+import { useSessionStore } from "../store/session-store";
import { UsersPage } from "../pages/UsersPage.jsx";
import { InviteEditUserPage } from "../pages/InviteEditUserPage.jsx";
import { DefaultTriad } from "../components/settings/default-triad/DefaultTriad.jsx";
@@ -22,6 +23,7 @@ import { OutputAnalyzerPage } from "../pages/OutputAnalyzerPage.jsx";
import { LogsPage } from "../pages/LogsPage.jsx";
import { deploymentTypes } from "../helpers/GetStaticData.js";
import ConnectorsPage from "../pages/ConnectorsPage.jsx";
+import { UnstractAdministrationPage } from "../pages/UnstractAdministrationPage.jsx";
let RequirePlatformAdmin;
let PlatformAdminPage;
@@ -98,6 +100,11 @@ try {
}
function useMainAppRoutes() {
+ const { sessionDetails } = useSessionStore();
+ const isStaff = sessionDetails?.isStaff || sessionDetails?.is_staff;
+ const orgName = sessionDetails?.orgName;
+ const isOpenSource = orgName === "mock_org";
+
const routes = (
<>
}>
@@ -117,6 +124,12 @@ function useMainAppRoutes() {
} />
)}
+ {isStaff && !isOpenSource && (
+ }
+ />
+ )}
} />