#![doc = include_str!("../README.md")]
#![forbid(unsafe_code)]
mod admin;
mod config;
mod csv;
mod email;
mod events;
mod harness;
mod http;
mod lint;
mod logging;
mod module;
mod ports;
mod problem;
mod problems;
mod rate_limit;
mod scope;
mod sidecar;
mod signer;
mod surface;
mod template;
mod venture;
pub use admin::{bearer_token, constant_time_eq, require_admin};
pub use config::{Config, ConfigError, EmptyConfig, HarnessConfig, MapConfig, ModuleConfig};
pub use csv::{FORMULA_PREFIXES, escape as csv_escape, row as csv_row};
pub use email::{
MAX_EMAIL_BYTES, MAX_LOCAL_BYTES, invalid_email_problem, is_valid,
normalize as normalize_email, validation_error,
};
pub use events::{AnyError, EventBus, EventHandler, EventName};
pub use harness::{Harness, HarnessBuilder, Runtime};
pub use http::{Form, Json, MAX_BODY_BYTES, X_REQUEST_ID, rate_limited, request_id_is_valid};
pub use lint::{card_data_hit, lint_card_data, lint_portable_sql};
pub use logging::{
RedactingVisitor, is_email_field, is_secret_field, redacted_value, set_error_forwarder,
subject_hash,
};
pub use module::{
BoxFuture, HARNESS_API, Migrations, Module, ModuleContext, SqlMigration, harness_api_mismatch,
migration_checksum, migration_edited,
};
pub use ports::{
Blob, BlobError, BlobObject, Captcha, CaptchaError, Charge, CheckoutRequest, CheckoutSession,
Clock, ConnectAccountLink, ConnectAccountLinkRequest, Database, DbError, Decision, Defer,
DispatchError, Dispatcher, HttpClient, HttpError, IdGen, KeyValue, Kid, KvError, LineItem,
MailError, Mailer, Message, Money, NoopDefer, Notification, Payload, Payments, PaymentsError,
Port, Ports, Priority, Push, PushError, PushOutcome, RateLimitError, RateLimiter, Refund,
RefundRequest, Row, Rows, ScopedBlob, SendOutcome, SignatureError, Signer, Statement,
SubscriptionCheckoutRequest, SystemClock, TransferCharge, TryFromValue, UlidIdGen, Verdict,
WebhookEvent, timeout,
};
pub use problem::Problem;
pub use problems::{ProblemDef, SLUGS, registry as problem_registry};
pub use rate_limit::{client_ip, rate_limit_keys};
pub use scope::Scope;
pub use sidecar::{HARNESS_SIDECARS, SidecarMount, SidecarMounts, X_HARNESS_API, X_HARNESS_MODULE};
pub use signer::{HmacSigner, MIN_SECRET_BYTES, SignerError};
pub use surface::{
Action, Audience, Column, HINT_KEYWORDS, ModuleSurface, Outcome, RenderedSurface, SURFACE_API,
Surface, SurfaceDocument, SurfaceSource, UiContext, UiMount, VentureSurface, View, hint_field,
schema_for,
};
pub use template::{Rendered, Template, TemplateError, TemplateRegistry};
pub use venture::{Brand, Venture, VentureEnv};