1pub mod app;
15pub mod auth;
16pub mod compliance;
17pub mod core;
18pub mod data;
19pub mod event;
20pub mod http;
21pub mod messaging;
22pub mod observability;
23pub mod openapi;
24pub mod realtime;
25pub mod resilience;
26pub mod security;
27pub mod validation;
28pub mod web;
29
30pub use auth::cookie;
35pub use auth::guards;
36pub use auth::oauth;
37pub use auth::session;
38
39pub use core::plugins;
41pub use web::cache;
42pub use web::interceptors;
43
44#[doc(hidden)]
46pub use axum as __axum;
47pub use futures;
48pub use inventory;
49pub use schemars;
50pub use serde_json;
51pub use validator;
52
53pub use app::App;
54pub use web::{Error, RequestContext};
55
56#[doc(hidden)]
57#[inline]
58pub fn __schema_for<T: schemars::JsonSchema>() -> serde_json::Value {
59 serde_json::to_value(schemars::schema_for!(T)).unwrap_or(serde_json::Value::Null)
60}
61
62#[doc(hidden)]
68pub mod __macro_support {
69 pub use crate::auth::guards::Guard;
70 pub use crate::auth::policy::check_policies;
71 pub use crate::compliance::masking::mask_response;
72 pub use crate::core::engine::*;
73 pub use crate::data::tx::run_transactional;
74 pub use crate::http::Json;
75 pub use crate::messaging::{EventContext, EventHandlerDescriptor};
76 pub use crate::observability::audit::emit_route_audit;
77 pub use crate::realtime::gateway::{GatewayDescriptor, GatewayRuntime, MessageHandler};
78 pub use crate::realtime::{ArclyGateway, WsClient};
79 pub use crate::resilience::timeout::run_with_timeout;
80 pub use crate::resilience::{BreakerOpen, CircuitBreaker};
81 pub use crate::web::context::RequestContext;
82 pub use crate::web::extract::*;
83 pub use crate::web::idempotency::run_idempotent;
84 pub use crate::web::interceptors::{Interceptor, NextHandler};
85 pub use crate::web::Error;
86}
87
88pub mod prelude {
90 pub use crate::app::App;
91 pub use crate::auth::cookie::{CookieConfig, CookieService, SameSite};
92 pub use crate::auth::guards::{
93 JwtAuthGuard, RoleGuard, SessionAuthGuard, JWT_AUTH, SESSION_AUTH,
94 };
95 pub use crate::auth::oauth::{OAuth2Provider, OAuth2Service, OAuth2UserInfo};
96 pub use crate::auth::policy::{
97 check_policies, Decision, EnvAttributes, PolicyEngine, PolicyInput, PolicySet, PolicySource,
98 };
99 pub use crate::auth::secrets::{spawn_secret_watcher, Rotating, SecretSource, SecretVersion};
100 pub use crate::auth::session::{Session, SessionConfig, SessionManager, SessionStore};
101 pub use crate::auth::{JwtConfig, JwtService};
102 pub use crate::cache::{stats as cache_stats, CacheInterceptor, CacheStats};
103 pub use crate::compliance::{MaskRule, MaskStrategy, Masker, MaskingPolicy};
104 pub use crate::core::engine::FrozenDiContainer;
105 pub use crate::core::plugins::{ArclyPlugin, ArclyPluginContext, PluginError, PluginStage};
106 pub use crate::data::db::{ArclyDbPool, DbDriver, OwnedDbConn};
107 #[cfg(feature = "db-sqlx")]
108 pub use crate::data::migrate::{Migration, MigrationReport, MigrationRunner};
109 pub use crate::data::outbox::{
110 with_transaction, OutboxEntry, OutboxPublisher, OutboxRelay, OutboxStore, OutboxTx,
111 TransactionalDataSource,
112 };
113 pub use crate::data::tx::{in_transaction, with_current_tx, ArclyTransaction};
114 pub use crate::data::{
115 AccessIntent, DataError, DataSource, DataSourceRegistry, ReadAfterWritePin,
116 };
117 pub use crate::http::{IntoResponse, Json, Response};
118 pub use crate::interceptors::{
119 EnvelopeResponse, Interceptor, LatencyLog, NextHandler, TelemetryLog, TraceInterceptor,
120 };
121 pub use crate::messaging::{
122 ConsumerRuntime, EventContext, EventHandlerDescriptor, InboundMessage, MessageTransport,
123 };
124 pub use crate::observability::audit::{AuditOutcome, AuditPipeline, AuditRecord, AuditSink};
125 pub use crate::observability::health::{HealthCheck, HealthRegistry, HealthStatus};
126 pub use crate::observability::plugin::ArclyObservabilityPlugin;
127 pub use crate::openapi::{ApiKeyIn, OpenApiInfo, SecurityScheme};
128 pub use crate::resilience::{
129 Bulkhead, DLockBackend, DistributedLock, DistributedRateLimit, FailurePolicy, LockGuard,
130 RateDecision, RateLimit, RateLimitBackend,
131 };
132 pub use crate::security::{configure as configure_security, FrameOptions, SecurityConfig};
133 pub use crate::validation::Validated;
134 pub use crate::web::error::{
135 BadRequest, Conflict, FieldError, Forbidden, GatewayTimeout, HttpError, HttpException,
136 Internal, NotFound, ProblemDetails, ServiceUnavailable, TooManyRequests, Unauthorized,
137 Validation,
138 };
139 pub use crate::web::idempotency::{IdempotencyDecision, IdempotencyStore};
140 pub use crate::web::responses::{Accepted, Created, NoContent};
141 pub use crate::web::tenant::{
142 TenantConfig, TenantGuard, TenantId, TenantRegistry, TenantStrategy, TENANT,
143 };
144 pub use crate::web::{Error, Inject, RequestContext};
145 pub use arcly_http_macros::{
146 circuit_breaker, AuditLog, CacheKey, CacheTTL, Controller, Delete, Deprecated,
147 EventConsumer, EventPattern, Get, Idempotent, Injectable, MaskFields, Module, Patch, Post,
148 Put, RequirePolicies, Timeout, Transactional, UseInterceptors, Version,
149 };
150 pub use schemars::JsonSchema;
151 pub use validator::Validate;
152}