Skip to main content

forge_core/
lib.rs

1pub mod auth;
2pub mod cluster;
3pub mod config;
4pub mod cron;
5pub mod daemon;
6pub mod env;
7pub mod error;
8pub mod function;
9pub mod http;
10pub mod job;
11pub mod mcp;
12pub mod oauth;
13pub mod rate_limit;
14pub mod realtime;
15pub mod schema;
16pub mod signals;
17pub mod tenant;
18pub mod types;
19pub mod util;
20pub mod webhook;
21pub mod workflow;
22
23// Testing utilities
24pub mod testing;
25
26pub use auth::{Claims, ClaimsBuilder, TokenPair};
27pub use cluster::{ClusterInfo, LeaderInfo, LeaderRole, NodeId, NodeInfo, NodeRole, NodeStatus};
28pub use config::{ForgeConfig, McpConfig, SignalsConfig};
29pub use cron::{CronContext, CronInfo, CronSchedule, ForgeCron};
30pub use daemon::{DaemonContext, DaemonInfo, DaemonStatus, ForgeDaemon};
31pub use env::{EnvAccess, EnvProvider, MockEnvProvider, RealEnvProvider};
32pub use error::{ForgeError, Result};
33pub use function::{
34    AuthContext, AuthTokenTtl, ForgeConn, ForgeDb, ForgeMutation, ForgeQuery, FunctionInfo,
35    FunctionKind, JobDispatch, JobInfoLookup, MutationContext, OutboxBuffer, PendingJob,
36    PendingWorkflow, QueryContext, RequestMetadata, TokenIssuer, WorkflowDispatch,
37};
38pub use http::{
39    CircuitBreakerClient, CircuitBreakerConfig, CircuitBreakerError, CircuitBreakerOpen,
40    CircuitState, CircuitStatus, HttpClient, HttpRequestBuilder,
41};
42pub use job::{ForgeJob, JobContext, JobInfo, JobPriority, JobStatus, RetryConfig};
43pub use mcp::{
44    ForgeMcpTool, McpContent, McpContentBlock, McpToolAnnotations, McpToolContext, McpToolIcon,
45    McpToolInfo, McpToolResult,
46};
47pub use rate_limit::{RateLimitConfig, RateLimitHeaders, RateLimitKey, RateLimitResult};
48pub use realtime::{
49    AuthScope, BloomFilter, Change, ChangeOperation, Delta, QueryGroup, QueryGroupId, ReadSet,
50    SessionId, SessionInfo, SessionStatus, Subscriber, SubscriberId, SubscriptionId,
51    SubscriptionState, TrackingMode,
52};
53pub use schema::{FieldDef, ModelMeta, SchemaRegistry, TableDef};
54pub use schemars;
55pub use tenant::{HasTenant, TenantContext, TenantIsolationMode};
56pub use types::{Instant, LocalDate, LocalTime, Upload};
57pub use webhook::{
58    ForgeWebhook, IdempotencyConfig, IdempotencySource, SignatureAlgorithm, SignatureConfig,
59    WebhookContext, WebhookInfo, WebhookResult, WebhookSignature,
60};
61pub use workflow::{
62    ForgeWorkflow, ParallelBuilder, ParallelResults, SuspendReason, WorkflowContext, WorkflowEvent,
63    WorkflowEventSender, WorkflowInfo, WorkflowStatus,
64};