feat(web): onboarding wizard (MS22-P1f) (#616)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
This commit was merged in pull request #616.
This commit is contained in:
80
apps/web/src/lib/api/onboarding.ts
Normal file
80
apps/web/src/lib/api/onboarding.ts
Normal file
@@ -0,0 +1,80 @@
|
||||
import { apiGet, apiPost } from "./client";
|
||||
|
||||
export interface OnboardingStatus {
|
||||
completed: boolean;
|
||||
}
|
||||
|
||||
export interface BreakglassAdminRequest {
|
||||
username: string;
|
||||
password: string;
|
||||
}
|
||||
|
||||
export interface BreakglassAdminResponse {
|
||||
id: string;
|
||||
username: string;
|
||||
}
|
||||
|
||||
export interface ConfigureOidcRequest {
|
||||
issuerUrl: string;
|
||||
clientId: string;
|
||||
clientSecret: string;
|
||||
}
|
||||
|
||||
export interface ProviderModel {
|
||||
id: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
export interface AddOnboardingProviderRequest {
|
||||
name: string;
|
||||
displayName: string;
|
||||
type: string;
|
||||
baseUrl?: string;
|
||||
apiKey?: string;
|
||||
models?: ProviderModel[];
|
||||
}
|
||||
|
||||
export interface AddOnboardingProviderResponse {
|
||||
id: string;
|
||||
}
|
||||
|
||||
export interface TestOnboardingProviderRequest {
|
||||
type: string;
|
||||
baseUrl?: string;
|
||||
apiKey?: string;
|
||||
}
|
||||
|
||||
export interface TestOnboardingProviderResponse {
|
||||
success: boolean;
|
||||
error?: string;
|
||||
}
|
||||
|
||||
export async function fetchOnboardingStatus(): Promise<OnboardingStatus> {
|
||||
return apiGet<OnboardingStatus>("/api/onboarding/status");
|
||||
}
|
||||
|
||||
export async function createBreakglassAdmin(
|
||||
request: BreakglassAdminRequest
|
||||
): Promise<BreakglassAdminResponse> {
|
||||
return apiPost<BreakglassAdminResponse>("/api/onboarding/breakglass", request);
|
||||
}
|
||||
|
||||
export async function configureOidcProvider(request: ConfigureOidcRequest): Promise<void> {
|
||||
await apiPost<unknown>("/api/onboarding/oidc", request);
|
||||
}
|
||||
|
||||
export async function addOnboardingProvider(
|
||||
request: AddOnboardingProviderRequest
|
||||
): Promise<AddOnboardingProviderResponse> {
|
||||
return apiPost<AddOnboardingProviderResponse>("/api/onboarding/provider", request);
|
||||
}
|
||||
|
||||
export async function testOnboardingProvider(
|
||||
request: TestOnboardingProviderRequest
|
||||
): Promise<TestOnboardingProviderResponse> {
|
||||
return apiPost<TestOnboardingProviderResponse>("/api/onboarding/provider/test", request);
|
||||
}
|
||||
|
||||
export async function completeOnboarding(): Promise<void> {
|
||||
await apiPost<unknown>("/api/onboarding/complete");
|
||||
}
|
||||
Reference in New Issue
Block a user