@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
42 lines • 1.85 kB
TypeScript
import { NextRequest, NextResponse } from "next/server";
export interface TenantContext {
siteId: string;
siteName: string;
siteSlug: string;
domain?: string | null;
subdomain?: string | null;
isPublished: boolean;
settings?: Record<string, unknown> | null;
}
type RoutingStrategy = "subdomain" | "domain" | "path";
interface MultiTenantConfig {
strategy: RoutingStrategy;
mainDomain: string;
adminPath: string;
apiPath: string;
publicPath: string;
excludePaths: string[];
}
export declare class MultiTenantManager {
private config;
constructor(config?: Partial<MultiTenantConfig>);
extractTenantContext(request: NextRequest): Promise<TenantContext | null>;
private extractFromSubdomain;
private extractFromDomain;
private extractFromPath;
shouldProcessAsTenant(request: NextRequest): boolean;
handleTenantRouting(request: NextRequest, tenantContext: TenantContext): Promise<NextResponse>;
isAdminAccess(request: NextRequest): boolean;
isApiRequest(request: NextRequest): boolean;
isStaticRequest(request: NextRequest): boolean;
}
export declare const multiTenantManager: MultiTenantManager;
export declare function multiTenantMiddleware(request: NextRequest): Promise<NextResponse>;
export declare function getTenantId(request: NextRequest | Request): string | null;
export declare function getTenantSlug(request: NextRequest | Request): string | null;
export declare function getTenantName(request: NextRequest | Request): string | null;
export declare function getTenantDomain(request: NextRequest | Request): string | null;
export declare function getTenantSubdomain(request: NextRequest | Request): string | null;
export declare function getTenantContext(headers: Headers): TenantContext | null;
export {};
//# sourceMappingURL=multi-tenant.d.ts.map