pub mod api_error;
pub mod bootstrap;
pub mod client_api;
pub mod database;
pub mod handlers;
pub mod ip_whitelist;
pub mod logging;
#[cfg(feature = "openapi")]
pub mod openapi;
pub mod routes;
pub mod server_sim;
pub mod tokens;
pub mod validation;
#[cfg(feature = "jwt-auth")]
pub mod auth;
#[cfg(feature = "admin-api")]
pub mod admin;
#[cfg(feature = "rate-limiting")]
pub mod rate_limit;
pub use client_api::{
bind_handler, client_heartbeat_handler, release_handler, validate_feature_handler,
validate_handler, validate_or_bind_handler, BindRequest, BindResponse, ClientError,
ClientErrorCode, ClientHeartbeatRequest, ClientHeartbeatResponse, ReleaseRequest,
ReleaseResponse, ValidateFeatureRequest, ValidateFeatureResponse, ValidateOrBindRequest,
ValidateRequest, ValidateResponse,
};
pub use database::Database;
pub use handlers::{
activate_license_handler, deactivate_license_handler, heartbeat_handler,
validate_license_handler, AppState,
};
pub use routes::build_router;
#[cfg(feature = "jwt-auth")]
pub use auth::{
AuthError, AuthLayer, AuthMiddleware, AuthState, AuthenticatedUser, Claims, JwtValidator,
OptionalUser,
};
#[cfg(feature = "admin-api")]
pub use admin::{
admin_release_handler, batch_create_license_handler, blacklist_license_handler,
create_license_handler, extend_license_handler, get_license_handler, list_licenses_handler,
reinstate_license_handler, revoke_license_handler, update_license_handler,
update_usage_handler, AdminReleaseRequest, AdminReleaseResponse, BlacklistLicenseRequest,
BlacklistLicenseResponse, ExtendLicenseRequest, ExtendLicenseResponse, ReinstateLicenseRequest,
ReinstateLicenseResponse, RevokeLicenseRequest, RevokeLicenseResponse, UpdateUsageRequest,
UpdateUsageResponse,
};
#[cfg(feature = "rate-limiting")]
pub use rate_limit::{
create_rate_limiter, rate_limit_error_response, RateLimitType, SmartIpKeyExtractor,
};
pub use validation::{
validate_datetime, validate_feature_name, validate_hardware_id, validate_length,
validate_license_key, validate_not_empty, validate_optional_not_empty, validate_org_id,
validate_uuid, ValidationError, ValidationResult,
};
pub use tokens::{
create_token_handler, get_token_handler, list_tokens_handler, revoke_token_handler, ApiToken,
CreateTokenRequest, CreateTokenResponse, ListTokensResponse, RevokeTokenResponse,
TokenMetadata, TokenResponse,
};
pub use bootstrap::{
check_bootstrap_token, execute_token_command, parse_token_command, TokenCommand,
BOOTSTRAP_TOKEN_ENV,
};
pub use api_error::{ApiError, ErrorBody, ErrorCode};
pub use logging::{
generate_request_id, log_license_binding_event, log_license_event, request_logging_middleware,
DatabaseHealth, HealthResponse, LicenseEvent, REQUEST_ID_HEADER,
};
#[cfg(feature = "openapi")]
pub use openapi::get_openapi;
pub use ip_whitelist::{IpNetwork, IpWhitelist, IpWhitelistLayer, IpWhitelistMiddleware};