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