diff --git a/docker/Dockerfile.dev.api b/docker/Dockerfile.dev.api
index d4f4e3a7b..def660dfa 100644
--- a/docker/Dockerfile.dev.api
+++ b/docker/Dockerfile.dev.api
@@ -22,6 +22,7 @@ ENV PYTHONPATH="/app:${PYTHONPATH}"
ENV PATH="/venv/bin:${PATH}"
ENV VIRTUAL_ENV="/venv"
ENV POSTHOG_DISABLED="true"
+ENV FRIGADE_DISABLED="true"
ENTRYPOINT ["/app/keep/entrypoint.sh"]
diff --git a/docs/deployment/configuration.mdx b/docs/deployment/configuration.mdx
index ddf404912..61a7a501d 100644
--- a/docs/deployment/configuration.mdx
+++ b/docs/deployment/configuration.mdx
@@ -157,6 +157,18 @@ Sentry configuration controls Keep's integration with Sentry for error monitorin
|:-------------------:|:-------:|:----------:|:-------------:|:-------------:|
| **SENTRY_DISABLED** | Disables Sentry integration | No | "false" | "true" or "false" |
+
+### Frigade
+
+
+Frigade configuration controls Keep's integration with the Frigade onboarding platform.
+
+
+| Env var | Purpose | Required | Default Value | Valid options |
+|:-------------------:|:-------:|:----------:|:-------------:|:-------------:|
+| **FRIGADE_DISABLED** | Disables Frigade integration | No | "false" | "true" or "false" |
+
+
### Ngrok
Ngrok configuration enables secure tunneling to your Keep instance. These settings are particularly useful for development or when you need to expose your local Keep instance to the internet securely.
diff --git a/keep-ui/app/(keep)/settings/webhook-settings.tsx b/keep-ui/app/(keep)/settings/webhook-settings.tsx
index 6e28c76b7..379721ac4 100644
--- a/keep-ui/app/(keep)/settings/webhook-settings.tsx
+++ b/keep-ui/app/(keep)/settings/webhook-settings.tsx
@@ -23,6 +23,7 @@ import { v4 as uuidv4 } from "uuid";
import { ExclamationCircleIcon } from "@heroicons/react/24/outline";
import * as Frigade from "@frigade/react";
import { useApi } from "@/shared/lib/hooks/useApi";
+import { useConfig } from "@/utils/hooks/useConfig";
interface Webhook {
webhookApi: string;
@@ -38,6 +39,7 @@ export default function WebhookSettings({ selectedTab }: Props) {
const [codeTabIndex, setCodeTabIndex] = useState(0);
const api = useApi();
+ const { data: config } = useConfig();
const { data, error, isLoading } = useSWR(
api.isReady() && selectedTab === "webhook" ? `/settings/webhook` : null,
@@ -188,7 +190,9 @@ req.end();
>
Click to create an example Alert
-
+ {config?.FRIGADE_DISABLED ? null : (
+
+ )}
{
const { data: session } = useSession();
+ const { data: config } = useConfig();
+
+ if (!config || config.FRIGADE_DISABLED === "true") {
+ return <>
+ {children}
+ >;
+ }
return (
{
+ const { data: config } = useConfig();
+
const { flow } = Frigade.useFlow(ONBOARDING_FLOW_ID);
const [isOnboardingOpen, setIsOnboardingOpen] = useState(false);
const isMounted = useMounted();
@@ -94,7 +96,7 @@ export const UserInfo = ({ session }: UserInfoProps) => {
return (
<>
- {isMounted && flow?.isCompleted === false && (
+ {isMounted && !config?.FRIGADE_DISABLED && flow?.isCompleted === false && (
-