@vfarcic/dot-ai
Version:
AI-powered development productivity platform that enhances software development workflows through intelligent automation and AI-driven assistance
136 lines • 4.39 kB
TypeScript
/**
* Core Policy Operations
*
* Handles policy intent management operations including CRUD operations
* and Kyverno cluster policy cleanup
*/
import { Logger } from './error-handling';
import { PolicyVectorService } from './policy-vector-service';
/**
* Kyverno policy metadata
*/
interface KyvernoPolicyInfo {
name: string;
labels?: Record<string, string>;
creationTimestamp?: string;
}
/**
* Kyverno delete result
*/
interface KyvernoDeleteResult {
successful: Array<{
policyId?: string;
deletedAt: string;
}>;
failed: Array<{
policyId?: string;
error: string;
}>;
total: number;
}
/**
* Policy operation result
*/
interface PolicyOperationResult {
success: boolean;
operation?: string;
dataType?: string;
message?: string;
error?: string;
data?: unknown;
deletedKyvernoPolicies?: KyvernoDeleteResult;
requiresConfirmation?: boolean;
confirmationMessage?: string;
confirmation?: string | {
question: string;
options: string[];
};
note?: string;
deletedPolicyIntent?: {
id: string;
description: string;
};
deletedPolicyIntents?: unknown[];
deletedCount?: number;
workflow?: unknown;
storage?: unknown;
policyIntents?: unknown[];
policyIntent?: unknown;
totalCount?: number;
searchResults?: unknown[];
kyvernoCleanup?: unknown;
kyvernoPolicies?: unknown;
}
/**
* Policy delete arguments
*/
interface PolicyDeleteArgs {
operation?: string;
dataType?: string;
id?: string;
response?: string;
}
/**
* Policy operation arguments
*/
interface PolicyOperationArgs {
sessionId?: string;
response?: string;
id?: string;
limit?: number;
step?: string;
[key: string]: unknown;
}
/**
* Validation result from connection checks
*/
interface ValidationCheckResult {
success: boolean;
error?: string;
}
/**
* Get initialized policy service
*/
export declare function getPolicyService(): Promise<PolicyVectorService>;
/**
* Find Kyverno policies by policy intent ID using label selector
* PRD #359: Uses unified plugin registry
*/
export declare function findKyvernoPoliciesByPolicyId(policyId: string, logger: Logger, requestId: string): Promise<KyvernoPolicyInfo[]>;
/**
* Find all Kyverno policies that have policy-intent/id labels
* PRD #359: Uses unified plugin registry
*/
export declare function findAllKyvernoPoliciesForPolicyIntents(logger: Logger, requestId: string): Promise<Array<KyvernoPolicyInfo & {
policyId?: string;
}>>;
/**
* Delete Kyverno policies by policy intent ID using label selector
* PRD #359: Uses unified plugin registry
*/
export declare function deleteKyvernoPoliciesByPolicyId(policyId: string, logger: Logger, requestId: string): Promise<KyvernoDeleteResult>;
/**
* Delete all Kyverno policies that have policy-intent/id labels
* PRD #359: Uses unified plugin registry
*/
export declare function deleteAllKyvernoPoliciesForPolicyIntents(logger: Logger, requestId: string): Promise<KyvernoDeleteResult>;
/**
* Handle individual policy delete with Kyverno cleanup
* PRD #359: Uses unified plugin registry
*/
export declare function handlePolicyDelete(policyId: string, policyService: PolicyVectorService, args: PolicyDeleteArgs, logger: Logger, requestId: string): Promise<PolicyOperationResult>;
/**
* Handle deleteAll policies with batch Kyverno cleanup
* PRD #359: Uses unified plugin registry
*/
export declare function handlePolicyDeleteAll(policyService: PolicyVectorService, args: PolicyDeleteArgs & {
response?: string;
}, logger: Logger, requestId: string): Promise<PolicyOperationResult>;
/**
* Main policy operations handler - delegates to specific operation functions
* Requires shared validation utilities to be passed as parameters to avoid circular imports
* PRD #359: Uses unified plugin registry for kubectl operations
*/
export declare function handlePolicyOperation(operation: string, args: PolicyOperationArgs, logger: Logger, requestId: string, validateVectorDBConnection: (vectorService: PolicyVectorService, logger: Logger, requestId: string) => Promise<ValidationCheckResult>, validateEmbeddingService: (logger: Logger, requestId: string) => Promise<ValidationCheckResult>): Promise<PolicyOperationResult>;
export {};
//# sourceMappingURL=policy-operations.d.ts.map