SchemaConfig: {
    baseIRI: string;
    cardImage?: string;
    color?: string;
    description: string;
    detailUiSchemata?: Record<string, UISchemaElement>;
    entityBaseIRI: string;
    icon?: SchemaIcon;
    initialData?: string;
    label: string;
    primaryFields: PrimaryFieldDeclaration;
    schema: JSONSchema7;
    schemaName: string;
    storageKey: string;
    typeNameLabelMap: Record<string, string>;
    typeNameUiSchemaOptionsMap: Record<string, unknown>;
    uischemata?: Record<string, UISchemaElement>;
    version: string;
}

Fully-resolved, ready-to-use schema configuration for a Graviola-driven app.

Forms, tables, detail views and CRUD all derive from this single object. The companion OverridableSchemaConfig type adds two ergonomic fields (uischemaScopeOverrides, detailUiSchemaScopeOverrides) which the makeSchemaConfig builder compiles down into the uischemata / detailUiSchemata maps below.

Type declaration

  • baseIRI: string

    Base IRI for the application (typeName -> ${baseIRI}${typeName} by default).

  • OptionalcardImage?: string

    Optional card image URL for landing-page tiles.

  • Optionalcolor?: string

    Optional accent color for the schema.

  • description: string

    Short description shown on landing pages or in tooltips.

  • OptionaldetailUiSchemata?: Record<string, UISchemaElement>

    Optional pre-built UISchemaElement roots used for the schema-driven detail view.

  • entityBaseIRI: string

    Base IRI used when minting new entity IRIs.

  • Optionalicon?: SchemaIcon

    Optional icon (emoji string or React component).

  • OptionalinitialData?: string

    Optional initial data string (Turtle / JSON-LD) seeded into the store on first run.

  • label: string

    Human-readable label shown to end users.

  • primaryFields: PrimaryFieldDeclaration

    Primary-field declarations (label/description/image) per typeName.

  • schema: JSONSchema7

    The JSON Schema definition document with definitions map.

  • schemaName: string

    Stable machine-readable name (used in routes, persistence keys, etc.).

  • storageKey: string

    Local-storage key namespace for the in-browser store.

  • typeNameLabelMap: Record<string, string>

    Display labels per typeName (e.g. "Item" -> "Artikel").

  • typeNameUiSchemaOptionsMap: Record<string, unknown>

    Additional UI-schema options merged into the auto-generated stub controls per typeName.

  • Optionaluischemata?: Record<string, UISchemaElement>

    Optional pre-built UISchemaElement roots used for editing forms.

  • version: string

    Schema version (independent of package version).