better-auth-compliance
Version:
Regional compliance and privacy plugin for Better Auth - GDPR, CCPA, and data protection automation
71 lines (68 loc) • 1.54 kB
text/typescript
import type { BetterAuthPlugin } from "better-auth";
export interface ComplianceRegulation {
enabled?: boolean;
[key: string]: any;
}
export interface ComplianceOptions {
regulations?: {
gdpr?: ComplianceRegulation & {
consentRequired?: boolean;
dataRetention?: number;
rightToDeletion?: boolean;
dataPortability?: boolean;
};
ccpa?: ComplianceRegulation & {
optOutRequired?: boolean;
doNotSell?: boolean;
};
coppa?: ComplianceRegulation & {
minimumAge?: number;
parentalConsent?: boolean;
};
};
consent?: {
cookie?: {
required?: boolean;
categories?: string[];
expiry?: number;
};
dataProcessing?: {
required?: boolean;
version?: string;
updateNotification?: boolean;
};
};
dataResidency?: {
enabled?: boolean;
defaultRegion?: string;
userRegions?: Record<string, string[]>;
};
privacy?: {
anonymizeAfter?: number;
encryptPII?: boolean;
minimizeData?: boolean;
auditAccess?: boolean;
};
}
export function compliancePlugin(options?: ComplianceOptions): BetterAuthPlugin {
return {
id: "compliance",
init() {
// Initialize compliance features
},
hooks: {
before: [
{
matcher(ctx) {
// Check consent before processing
return true;
},
handler: async (ctx) => {
// TODO: Verify consent and compliance
return;
}
}
]
}
};
}