UNPKG

@cdklabs/cdk-amazonmq

Version:
93 lines (92 loc) 3.91 kB
import { CfnBroker } from "aws-cdk-lib/aws-amazonmq"; import { Admin } from "../admin"; import { RabbitMqAuthenticationStrategy } from "../rabbitmq-authentication-strategy"; /** * Interface for RabbitMQ broker user management implementations. * * This interface allows different user management strategies to be plugged * into RabbitMQ broker deployments, providing flexibility in how users * and authentication are configured. */ export interface IRabbitMqBrokerUserManagement { /** * Renders the user management configuration for the broker deployment. * * @returns The user management definition containing users and authentication strategy */ render(): RabbitMqBrokerDeploymentUserManagementDefinition; } /** * Configuration definition for RabbitMQ broker user management. * * This interface defines the structure of user management configuration * that will be applied to the broker deployment. */ export interface RabbitMqBrokerDeploymentUserManagementDefinition { /** * List of users to be created on the broker. * * For SIMPLE authentication, this contains the actual user credentials. * For CONFIG_MANAGED authentication, this is typically empty as users * are managed externally. */ readonly users: CfnBroker.UserProperty[]; /** * The authentication strategy to use for this broker. * * Determines how user authentication will be handled by the broker. */ readonly authenticationStrategy?: RabbitMqAuthenticationStrategy; } /** * Configuration options for simple authentication user management. * * Simple authentication uses RabbitMQ's Management plugin for user management * where users are stored in the broker's internal database. */ export interface RabbitMqSimpleAuthenticationUserManagementOptions { /** * Administrative user credentials for the broker. * * This user will have full administrative privileges on the broker * and can manage other users, virtual hosts, and broker configuration. */ readonly admin: Admin; } /** * Factory class for creating RabbitMQ broker user management configurations. * * This class provides static methods to create different types of user management * strategies for RabbitMQ brokers, supporting both simple and config-managed * authentication approaches. */ export declare class RabbitMqBrokerUserManagement { /** * Creates a simple authentication user management configuration. * * Simple authentication uses RabbitMQ's Management plugin for user management * where user credentials are stored in the broker's internal database. This is * the traditional approach for RabbitMQ user management. * * @param options Configuration options including admin user credentials * @returns A user management implementation using simple authentication */ static simple(options: RabbitMqSimpleAuthenticationUserManagementOptions): IRabbitMqBrokerUserManagement; /** * Creates a config-managed authentication user management configuration. * * Config-managed authentication allows for external user management systems * to handle authentication instead of using RabbitMQ's built-in user database. * This approach provides more flexibility for integrating with existing * authentication infrastructure and supports advanced authentication scenarios. * * With config-managed authentication: * - No users are created in the broker's internal database * - Authentication is handled through external configuration * - Currently supports OAuth authentication and authorization * - Requires additional configuration outside of the broker deployment * * @returns A user management implementation using config-managed authentication */ static configManaged(): IRabbitMqBrokerUserManagement; }