feat(onboarding): test integration connections

This commit is contained in:
Thomas Camlong authored and ajnart committed 2026-08-14 11:32:12 +02:00
1 parent 276431ef4c
commit dd707bed7e
3 files changed
+71 -6

No files matched your search

@@ -43,7 +43,7 @@ import {
widgetIntegrationLimits,
} from "@homarr/definitions";
import type { IntegrationKind, OnboardingLayoutPreset, WidgetKind } from "@homarr/definitions";
import { onboardingCompleteSetupSchema } from "@homarr/validation/onboarding";
import { onboardingCompleteSetupSchema, onboardingIntegrationDraftSchema } from "@homarr/validation/onboarding";
import { onboardingClaimSettingKey } from "../../onboarding-claim";
import { env } from "../../env";
@@ -148,6 +148,24 @@ export const onboardRouter = createTRPCRouter({
await nextOnboardingStepAsync(ctx.db);
}),
testIntegration: onboardingProcedure
.requiresStep("setup")
.input(onboardingIntegrationDraftSchema)
.mutation(async ({ input }) => {
const result = await testConnectionAsync({
id: stableOnboardingId("integration", input.sourceId),
name: input.name,
url: input.url,
kind: input.kind,
secrets: input.secrets,
}).catch((error) => {
if (!(error instanceof MissingSecretError)) throw error;
throw new TRPCError({ code: "BAD_REQUEST", message: error.message });
});
return { success: result.success };
}),
detectRuntimeCapabilities: onboardingProcedure
.requiresStep("setup")
.output(runtimeCapabilitiesSchema)