Skip to main content

forge_core/
lib.rs

1/// Internal sealing marker preventing manual handler-trait implementations.
2#[doc(hidden)]
3pub mod __sealed {
4    pub trait Sealed {}
5}
6
7pub mod auth;
8pub mod cluster;
9pub mod config;
10pub mod context;
11pub mod cron;
12pub mod daemon;
13pub mod email;
14pub mod env;
15pub mod error;
16pub mod function;
17pub mod http;
18pub mod job;
19pub mod mcp;
20pub mod oauth;
21pub mod pagination;
22pub mod rate_limit;
23pub mod realtime;
24pub mod schema;
25pub mod signals;
26pub mod tenant;
27pub mod types;
28pub mod util;
29pub mod webhook;
30pub mod workflow;
31
32pub mod testing;
33
34pub use auth::{
35    Claims, ClaimsBuilder, DefaultRoleResolver, RoleResolver, SharedRoleResolver, TokenPair,
36    default_role_resolver,
37};
38pub use cluster::{ClusterInfo, LeaderInfo, LeaderRole, NodeId, NodeInfo, NodeRole, NodeStatus};
39pub use config::{ForgeConfig, McpConfig, SignalsConfig};
40pub use context::{AuthenticatedContext, HandlerContext};
41pub use cron::{CronContext, CronInfo, CronSchedule, ForgeCron};
42pub use daemon::{DaemonContext, DaemonInfo, DaemonStatus, ForgeDaemon};
43pub use env::{EnvAccess, EnvProvider, MockEnvProvider, RealEnvProvider};
44pub use error::{ForgeError, Result};
45pub use function::{
46    AuthContext, AuthTokenTtl, DbConn, ForgeConn, ForgeDb, ForgeMutation, ForgeQuery, FunctionInfo,
47    FunctionKind, JobDispatch, KvHandle, LogLevel, MutationContext, QueryContext, RequestMetadata,
48    TokenIssuer, WorkflowDispatch,
49};
50pub use http::{
51    CircuitBreakerClient, CircuitBreakerConfig, CircuitBreakerError, CircuitBreakerOpen,
52    CircuitState, CircuitStatus, HttpClient, HttpRequestBuilder,
53};
54pub use job::{ForgeJob, JobContext, JobInfo, JobPriority, JobStatus, RetryConfig};
55pub use mcp::{
56    ForgeMcpTool, McpContent, McpContentBlock, McpToolAnnotations, McpToolContext, McpToolIcon,
57    McpToolInfo, McpToolResult,
58};
59pub use pagination::{Cursor, Page, PageInfo};
60pub use rate_limit::{
61    ParseRateLimitKeyError, RateLimitConfig, RateLimitHeaders, RateLimitKey, RateLimitResult,
62};
63pub use realtime::{
64    AuthScope, Change, ChangeOperation, Delta, QueryGroup, QueryGroupId, ReadSet, SessionId,
65    SessionInfo, SessionStatus, Subscriber, SubscriberId, SubscriptionId, SubscriptionState,
66    TrackingMode,
67};
68pub use schema::{FieldDef, ModelMeta, SchemaRegistry, TableDef};
69pub use schemars;
70pub use tenant::{TenantContext, TenantIsolationMode};
71pub use types::{Instant, LocalDate, LocalTime, Upload};
72pub use webhook::{
73    ForgeWebhook, IdempotencyConfig, IdempotencySource, SignatureAlgorithm, SignatureConfig,
74    WebhookContext, WebhookInfo, WebhookResult, WebhookSignature,
75};
76pub use workflow::{
77    ForgeWorkflow, SuspendReason, WorkflowContext, WorkflowEvent, WorkflowEventSender,
78    WorkflowInfo, WorkflowStatus,
79};