/** * ABAC (Attribute-Based Access Control) Module * * This module provides a complete, true ABAC implementation following standard * ABAC architecture principles. Unlike role-based access control (RBAC), this * system makes authorization decisions based on attributes of the subject, * resource, action, and environment. * * Key Components: * - Policy Decision Point (PDP): ABACEngine * - Policy Information Point (PIP): AttributeProviders * - Policy Administration Point (PAP): PolicyRepository * - Policy Enforcement Point (PEP): Middleware (separate module) * * @example * ```typescript * import { ABACEngine, PolicyBuilder, AttributeRef } from './abac'; * * // Create a true ABAC policy (no roles required) * const policy = PolicyBuilder.create('document-access') * .permit() * .condition( * ConditionBuilder.equals(AttributeRef.subject('department'), AttributeRef.resource('department')) * .and(ConditionBuilder.greaterThan(AttributeRef.subject('clearanceLevel'), AttributeRef.resource('classification'))) * ) * .build(); * * // Evaluate access based on attributes * const decision = await engine.evaluate(request, [policy]); * ``` */ export * from './types'; export { ABACEngine } from './engine'; export { AttributeRef, Attributes, ConditionBuilder, PolicyBuilder, PolicyPatterns, TargetBuilder } from './policyBuilder'; export { BaseAttributeProvider, CachedAttributeProvider, CompositeAttributeProvider, DatabaseAttributeProvider, EnvironmentAttributeProvider, InMemoryAttributeProvider, LdapAttributeProvider, RestApiAttributeProvider } from './attributeProviders'; export { validatePolicies, validatePolicy, validatePolicyOrThrow, type PolicyValidationError, type PolicyValidationResult, type PolicyValidationWarning } from './policyValidator'; export { exportPoliciesToJSON, exportPolicyToJSON, filterPoliciesByTarget, groupPoliciesByEffect, loadAndValidatePoliciesFromFile, loadPoliciesFromFile, loadPoliciesFromJSON, PolicyCache, prismaAdapter, saveAndValidatePoliciesToFile, saveAndValidatePolicyToFile, savePoliciesToFile, savePolicyToFile } from './policyLoaders'; export { AuditService, FunctionRegistry, MetricsCollector, type AuditServiceConfig } from './services'; export { CombiningAlgorithmFactory, DenyOverridesAlgorithm, DenyUnlessPermitAlgorithm, FirstApplicableAlgorithm, ICombiningAlgorithm, OnlyOneApplicableAlgorithm, PermitOverridesAlgorithm, PermitUnlessDenyAlgorithm } from './combining'; export { AttributeResolver, PolicyEvaluator } from './evaluation'; export { ABACError, AttributeResolutionError, CombiningAlgorithmError, ConfigurationError, EvaluationError, formatErrorForUser, getErrorMessage, isABACError, PolicyNotFoundError, PolicyStorageError, RequestValidationError, ValidationError, wrapError } from './errors'; export type { ABACDecision, ABACEngineConfig, ABACPolicy, ABACRequest, Action, Advice, AttributeProvider, Condition, Environment, Obligation, PolicyTarget, Resource, Subject } from './types'; export { AttributeCategory, AttributeDataType, CombiningAlgorithm, ComparisonOperator, Decision, Effect, LogicalOperator } from './types'; //# sourceMappingURL=index.d.ts.map