@doneisbetter/sso
Version:
A secure, privacy-focused SSO solution with ephemeral token handling
58 lines (54 loc) • 1.08 kB
text/typescript
import { ObjectId } from 'mongodb';
export interface TenantConfig {
id: string;
name: string;
domain: string;
settings: {
allowedRedirectDomains: string[];
tokenExpiryMinutes: number;
ipWhitelist: string[];
rateLimit: {
requestsPerMinute: number;
burstSize: number;
};
};
apiKeys: {
key: string;
name: string;
createdAt: string;
lastUsed: string;
}[];
createdAt: string;
updatedAt: string;
}
export interface TenantAuthLog {
tenantId: string;
identifier: string;
action: 'created' | 'used' | 'revoked';
timestamp: string;
source: string;
ip: string;
userAgent: string;
}
export interface TenantDocument {
_id?: ObjectId;
name: string;
domain: string;
settings: {
allowedRedirectDomains: string[];
tokenExpiryMinutes: number;
ipWhitelist: string[];
rateLimit: {
requestsPerMinute: number;
burstSize: number;
};
};
apiKeys: {
key: string;
name: string;
createdAt: string;
lastUsed: string;
}[];
createdAt: string;
updatedAt: string;
}