Skip to main content

Module schema

Module schema 

Source
Expand description

Compiled Schema Types

This module defines the Rust-owned schema representation loaded from a compiled schema at startup time.

§Architecture

Authoring language                   Rust
(Python, TS, Go, …)                 ────
@fraiseql.type    ─┐
@fraiseql.query    ├─→ schema.json ─→ fraiseql-cli compile ─→ CompiledSchema
@fraiseql.mutation─┘                                           (Rust-owned)
                                                                     │
                                                                     ▼
                                                           Axum serves requests
                                                   (authoring language not involved)

§Key Invariant

After CompiledSchema::from_json(), all data is Rust-owned. No authoring-language objects are referenced during request handling.

§Usage

// Requires: a compiled schema JSON file from `fraiseql-cli compile`.
use fraiseql_core::schema::CompiledSchema;
// From schema.compiled.json produced by `fraiseql-cli compile`
let schema = CompiledSchema::from_json(json_str, false)?;

// From CLI config file
let schema = CompiledSchema::from_json(&std::fs::read_to_string("schema.json")?, false)?;

// Access schema info
println!("Types: {}", schema.types.len());
println!("Queries: {}", schema.queries.len());

Re-exports§

pub use graphql_value::GraphQLValue;
pub use security_config::InjectedParamSource;
pub use security_config::RoleDefinition;
pub use security_config::SecurityConfig;
pub use security_config::TenancyConfig;
pub use security_config::TenancyMode;

Modules§

domain_types
Domain-specific string newtypes for GraphQL schema identifiers.
graphql_value
Typed GraphQL literal values.
introspection_types
GraphQL introspection mirror types.
security_config
Security configuration types for compiled schemas.

Structs§

ArgumentDefinition
Query/mutation/subscription argument definition.
AuthorizationPolicy
Authorization policy (RBAC/ABAC).
AuthorizationRule
Custom authorization rule.
AutoParams
Auto-wired query parameters.
ChangeImpact
Result of analyzing the impact of deleting or modifying a type.
CircuitBreakerConfig
Circuit breaker configuration for federation entity resolution.
CompiledSchema
Complete compiled schema - all type information for serving.
CompiledSecurityConfig
Security configuration compiled from fraiseql.toml.
CrudNamingConfig
CRUD function naming configuration, compiled from [crud] in fraiseql.toml.
CyclePath
A path representing a circular dependency in the schema.
DebugConfig
Debug/development configuration (compiled from [debug] in fraiseql.toml).
DeprecationInfo
Deprecation information for a field or type.
DirectiveDefinition
A custom directive definition for schema extension.
EnterpriseSecurityConfig
Enterprise security features.
EntityCircuitBreakerOverride
Per-entity circuit breaker configuration override.
EnumDefinition
A GraphQL enum type definition.
EnumValueDefinition
A single value within a GraphQL enum type.
EventHandler
Event handler configuration.
FederationConfig
Federation configuration for Apollo Federation v2 support.
FederationEntity
Federated entity configuration.
FieldAuthRule
Field-level authorization rule.
FieldDefinition
A field within a GraphQL type.
FieldEncryptionConfig
Encryption configuration for a field in the compiled schema.
GrpcConfig
gRPC transport configuration (compiled from [grpc] in fraiseql.toml).
HierarchyDefinition
A single hierarchy definition mapping a name to its database table and ltree path column.
InputFieldDefinition
A field within a GraphQL input object type.
InputObjectDefinition
A GraphQL input object type definition.
InterfaceDefinition
A GraphQL interface type definition.
IntrospectionBuilder
Builds introspection schema from compiled schema.
IntrospectionDirective
__Directive introspection type.
IntrospectionEnumValue
__EnumValue introspection type.
IntrospectionField
__Field introspection type.
IntrospectionInputValue
__InputValue introspection type.
IntrospectionResponses
Pre-built introspection responses for fast serving.
IntrospectionSchema
__Schema introspection type.
IntrospectionType
__Type introspection type.
IntrospectionTypeRef
Type reference (simplified type with just name).
IntrospectionValidationRule
Validation rule for input field in introspection format.
McpConfig
MCP (Model Context Protocol) server configuration (compiled from [mcp] in fraiseql.toml).
MutationDefinition
A mutation definition compiled from @fraiseql.mutation.
ObserverDefinition
Observer definition - database change event listener.
ObserversConfig
Observers/event system configuration.
QueryDefinition
A query definition compiled from @fraiseql.query.
Relationship
A relationship between two schema types for REST resource embedding.
RestConfig
REST transport configuration (compiled from [rest] in fraiseql.toml).
RetryConfig
Retry configuration for observer actions.
SchemaDependencyGraph
Schema dependency graph for analyzing type relationships.
SessionVariableMapping
One session variable declaration.
SessionVariablesConfig
Top-level session variables configuration in the compiled schema.
SqlProjectionHint
SQL projection hint for database-specific field projection optimization.
StaticFilterCondition
A static filter condition for subscription matching.
SubscriptionDefinition
A subscription definition.
SubscriptionFilter
Filter configuration for subscription event matching.
SubscriptionHooksConfig
Webhook URLs invoked during subscription lifecycle events.
SubscriptionsConfig
WebSocket subscription configuration (compiled from [subscriptions] in fraiseql.toml).
TypeDefinition
A GraphQL type definition compiled from @fraiseql.type.
UnionDefinition
A GraphQL union type definition.
ValidationConfig
Query validation limits (compiled from [validation] in fraiseql.toml).
VectorConfig
Configuration for a vector field (pgvector).

Enums§

Cardinality
Relationship cardinality between REST resources.
CrudNamingPreset
Built-in CRUD naming preset for automatic sql_source resolution.
CursorType
The type of column used as the keyset cursor for relay pagination.
DeleteResponse
How DELETE endpoints report success.
DirectiveLocation
__DirectiveLocation enum per GraphQL spec §4.1.5.
DirectiveLocationKind
Directive location kinds for custom directive definitions.
DistanceMetric
Distance metric for vector similarity calculations.
FieldDenyPolicy
Policy applied when a user lacks the required scope for a field.
FieldType
Supported field types in GraphQL schema.
FilterOperator
Filter comparison operators.
MutationOperation
Mutation operation types.
NamingConvention
Naming convention for GraphQL operation names.
SessionVariableSource
Where a session variable’s value comes from.
TypeKind
__TypeKind enum per GraphQL spec §4.1.4.
VectorIndexType
Index type for vector similarity search.

Constants§

BUILTIN_SCALARS
Builtin GraphQL scalar types that are always available.
CURRENT_SCHEMA_FORMAT_VERSION
Current schema format version.
RICH_SCALARS
Rich scalar types with validation rules beyond basic GraphQL scalars.

Functions§

canonicalize_json
Recursively sort all JSON object keys to produce a canonical representation.
is_known_scalar
Check if a type name is a known scalar (builtin or rich).
is_safe_sql_identifier
Validates that a string is a safe SQL identifier.

Type Aliases§

HierarchiesConfig
Maps hierarchy names to their HierarchyDefinition.