forge-core 0.9.0

Core types and traits for the Forge framework
Documentation
//! Core types, traits, and contexts for the Forge framework.
//!
//! This crate defines all handler traits ([`function::ForgeQuery`], [`function::ForgeMutation`],
//! [`job::ForgeJob`], [`cron::ForgeCron`], [`workflow::ForgeWorkflow`], [`daemon::ForgeDaemon`],
//! [`webhook::ForgeWebhook`], [`mcp::ForgeMcpTool`]), execution contexts, error types,
//! configuration, and testing infrastructure.
//!
//! Library code depends on `forge-core` for types. The runtime (`forge-runtime`) implements
//! the execution engine. Proc macros (`forge-macros`) generate trait implementations.

pub mod auth;
pub mod cluster;
pub mod config;
pub mod cron;
pub mod daemon;
pub mod env;
pub mod error;
pub mod function;
pub mod http;
pub mod job;
pub mod mcp;
pub mod oauth;
pub mod rate_limit;
pub mod realtime;
pub mod schema;
pub mod signals;
pub mod tenant;
pub mod types;
pub mod util;
pub mod webhook;
pub mod workflow;

// Testing utilities
pub mod testing;

pub use auth::{Claims, ClaimsBuilder, TokenPair};
pub use cluster::{ClusterInfo, LeaderInfo, LeaderRole, NodeId, NodeInfo, NodeRole, NodeStatus};
pub use config::{ForgeConfig, McpConfig, SignalsConfig};
pub use cron::{CronContext, CronInfo, CronSchedule, ForgeCron};
pub use daemon::{DaemonContext, DaemonInfo, DaemonStatus, ForgeDaemon};
pub use env::{EnvAccess, EnvProvider, MockEnvProvider, RealEnvProvider};
pub use error::{ForgeError, Result};
pub use function::{
    AuthContext, AuthTokenTtl, DbConn, ForgeConn, ForgeDb, ForgeMutation, ForgeQuery, FunctionInfo,
    FunctionKind, JobDispatch, JobInfoLookup, MutationContext, OutboxBuffer, PendingJob,
    PendingWorkflow, QueryContext, RequestMetadata, TokenIssuer, WorkflowDispatch,
};
pub use http::{
    CircuitBreakerClient, CircuitBreakerConfig, CircuitBreakerError, CircuitBreakerOpen,
    CircuitState, CircuitStatus, HttpClient, HttpRequestBuilder,
};
pub use job::{ForgeJob, JobContext, JobInfo, JobPriority, JobStatus, RetryConfig};
pub use mcp::{
    ForgeMcpTool, McpContent, McpContentBlock, McpToolAnnotations, McpToolContext, McpToolIcon,
    McpToolInfo, McpToolResult,
};
pub use rate_limit::{RateLimitConfig, RateLimitHeaders, RateLimitKey, RateLimitResult};
pub use realtime::{
    AuthScope, BloomFilter, Change, ChangeOperation, Delta, QueryGroup, QueryGroupId, ReadSet,
    SessionId, SessionInfo, SessionStatus, Subscriber, SubscriberId, SubscriptionId,
    SubscriptionState, TrackingMode,
};
pub use schema::{FieldDef, ModelMeta, SchemaRegistry, TableDef};
pub use schemars;
pub use tenant::{HasTenant, TenantContext, TenantIsolationMode};
pub use types::{Instant, LocalDate, LocalTime, Upload};
pub use webhook::{
    ForgeWebhook, IdempotencyConfig, IdempotencySource, SignatureAlgorithm, SignatureConfig,
    WebhookContext, WebhookInfo, WebhookResult, WebhookSignature,
};
pub use workflow::{
    ForgeWorkflow, ParallelBuilder, ParallelResults, SuspendReason, WorkflowContext, WorkflowEvent,
    WorkflowEventSender, WorkflowInfo, WorkflowStatus,
};