81 lines
1.8 KiB
TypeScript
81 lines
1.8 KiB
TypeScript
// ============================================================================
|
|
// Admin Data Types
|
|
// ============================================================================
|
|
|
|
import type { TAuthProviderStatus, TAuthProviderType } from './auth.ts';
|
|
|
|
export interface IOAuthConfig {
|
|
clientId: string;
|
|
clientSecretEncrypted: string;
|
|
issuer: string;
|
|
authorizationUrl?: string;
|
|
tokenUrl?: string;
|
|
userInfoUrl?: string;
|
|
scopes: string[];
|
|
callbackUrl: string;
|
|
}
|
|
|
|
export interface ILdapConfig {
|
|
serverUrl: string;
|
|
bindDn: string;
|
|
bindPasswordEncrypted: string;
|
|
baseDn: string;
|
|
userSearchFilter: string;
|
|
tlsEnabled: boolean;
|
|
tlsCaCert?: string;
|
|
}
|
|
|
|
export interface IAttributeMapping {
|
|
email: string;
|
|
username: string;
|
|
displayName: string;
|
|
avatarUrl?: string;
|
|
groups?: string;
|
|
}
|
|
|
|
export interface IProvisioningSettings {
|
|
jitEnabled: boolean;
|
|
autoLinkByEmail: boolean;
|
|
allowedEmailDomains?: string[];
|
|
}
|
|
|
|
export interface IAuthProvider {
|
|
id: string;
|
|
name: string;
|
|
displayName: string;
|
|
type: TAuthProviderType;
|
|
status: TAuthProviderStatus;
|
|
priority: number;
|
|
oauthConfig?: IOAuthConfig;
|
|
ldapConfig?: ILdapConfig;
|
|
attributeMapping: IAttributeMapping;
|
|
provisioning: IProvisioningSettings;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
createdById: string;
|
|
lastTestedAt?: string;
|
|
lastTestResult?: 'success' | 'failure';
|
|
lastTestError?: string;
|
|
}
|
|
|
|
export interface IPlatformAuthSettings {
|
|
localAuthEnabled: boolean;
|
|
allowUserRegistration: boolean;
|
|
sessionDurationMinutes: number;
|
|
defaultProviderId?: string;
|
|
}
|
|
|
|
export interface IPlatformSettings {
|
|
id: string;
|
|
auth: IPlatformAuthSettings;
|
|
updatedAt: string;
|
|
updatedById?: string;
|
|
}
|
|
|
|
export interface IConnectionTestResult {
|
|
success: boolean;
|
|
latencyMs: number;
|
|
serverInfo?: Record<string, unknown>;
|
|
error?: string;
|
|
}
|