Skip to main content

lenso_contracts/
lib.rs

1//! Public module-authoring contracts for the Lenso backend framework.
2//!
3//! This crate is deliberately smaller than the backend workspace. It exposes
4//! stable manifest declarations and lint helpers that module authors can use
5//! without depending on internal `platform-*` crates.
6
7mod admin;
8mod admin_schema;
9mod catalog;
10mod console;
11mod cron;
12mod events;
13mod http;
14mod lifecycle;
15mod manifest;
16mod module_release;
17pub mod operation;
18mod runtime;
19mod schema;
20mod story_display;
21
22pub use admin::{
23    AdminAction, AdminActionConfirmation, AdminActionDangerLevel, AdminActionInputField,
24    AdminActionInputSchema, AdminDeclarativeComponent, AdminDeclarativePage,
25    AdminDeclarativeSection, AdminDeclarativeSurface, AdminEmbeddedEntry, AdminEmbeddedRuntime,
26    AdminEmbeddedSurface, AdminMetricBinding, AdminPermission, AdminSandboxPolicy, AdminSurface,
27};
28pub use admin_schema::{AdminSchema, EntitySchema, FieldSchema, FieldType};
29pub use catalog::*;
30pub use console::{
31    CONSOLE_BRIDGE_PROTOCOL, ConsoleActionInputBinding, ConsoleActionInputValue,
32    ConsoleContribution, ConsoleContributionAction, ConsoleContributionKind, ConsoleNavigation,
33    ConsoleNavigationGroup, ConsolePermissionGrant, ConsolePermissionRequest, ConsoleSlot,
34    ConsoleSlotContext, ConsoleSlotContextField, ConsoleSlotContextFieldType, ConsoleSurface,
35    ConsoleSurfacePresentation, ConsoleWorkspaceRef,
36};
37pub use cron::{CronParseError, CronSchedule, validate_cron_expression};
38pub use events::{EventHandlerDeclaration, EventSurface};
39pub use http::{
40    ModuleHttpMethod, ModuleHttpRoute, ModuleRouteLint, ModuleRouteLintSeverity,
41    lint_module_http_routes,
42};
43pub use lifecycle::{
44    LifecycleActivationJobDeclaration, LifecycleActivationRunPolicy,
45    LifecycleStartupCheckDeclaration, LifecycleStartupCheckKind, LifecycleSurface,
46};
47pub use manifest::{
48    MODULE_MANIFEST_PROTOCOL, ModuleCapabilityReference, ModuleConfigActivation,
49    ModuleConfigContract, ModuleConfigField, ModuleConfigFieldType, ModuleConfigMutability,
50    ModuleConfigScope, ModuleConfigValidation, ModuleManifest, ModuleManifestBuilder,
51    ModuleManifestLint, ModuleManifestLintSeverity, ModuleMigrationActivation,
52    ModuleMigrationDeclaration, ModuleRequirement, lint_module_manifest,
53    lint_module_manifest_parts, module_capability_references,
54};
55pub use module_release::{
56    ArtifactReference, AttestationReference, ConsoleUiArtifact, ConsoleUiArtifactEntry,
57    ConsoleUiArtifactFormat, LinkedModuleDelivery, MODULE_RELEASE_PROTOCOL,
58    ModuleCompatibilityDeclaration, ModuleContractIssue, ModuleDelivery, ModuleRelease,
59    ServiceModuleDelivery, ServiceResponsibilityProfile, canonical_json, digest_json,
60};
61pub use operation::{
62    ServiceOperationIdempotency, ServiceOperationMetadata, ServiceOperationSafeProbe,
63};
64pub use runtime::{
65    RuntimeFunctionDeclaration, RuntimeRetryPolicyDeclaration, RuntimeSurface,
66    ScheduledFunctionDeclaration, WORKFLOW_COMPATIBILITY_PROTOCOL, WORKFLOW_DEFINITION_PROTOCOL,
67    WorkflowCompatibilityCategory, WorkflowCompatibilityReason, WorkflowCompatibilityResult,
68    WorkflowCompensationDeclaration, WorkflowDataContract, WorkflowDefinition,
69    WorkflowDefinitionReference, WorkflowRetryPolicyDeclaration, WorkflowStepDeclaration,
70    evaluate_workflow_compatibility, workflow_compatibility_artifact, workflow_definition_schema,
71};
72pub use schema::{module_manifest_schema, module_release_schema};
73pub use story_display::{StoryDisplayDescriptor, StoryDisplaySource};