import type { IAppRoleMapping } from '../data/role.js'; import type { IOidcSettings, TAppType, TOAuthClientType } from '../data/app.js'; export interface IOAuthClientDto { clientId: string; clientType: TOAuthClientType; redirectUris: string[]; postLogoutRedirectUris: string[]; allowedScopes: string[]; grantTypes: ('authorization_code' | 'refresh_token')[]; hasActiveClientSecret: boolean; retiringClientSecretCount: number; nextRetiringClientSecretExpiry?: number; } export interface IGlobalAppDto { id: string; type: 'global'; data: { name: string; description: string; logoUrl: string; appUrl: string; oauthCredentials: IOAuthClientDto; oidcSettings: IOidcSettings; isActive: boolean; category: string; createdAt: number; }; } export interface IAppDto extends IGlobalAppDto { } export interface IAppConnectionDto { id: string; data: { organizationId: string; appId: string; appType: TAppType; status: 'active' | 'disconnected'; connectedAt: number; grantedScopes: string[]; roleMappings?: IAppRoleMapping[]; }; }