SchemaConfig: {
    baseIRI: string;
    calcProfile?: CompiledProfile;
    cardImage?: string;
    color?: string;
    description: string;
    detailUiSchemata?: Record<string, UISchemaElement>;
    entityBaseIRI: string;
    icon?: SchemaIcon;
    initialData?: string;
    label: string;
    menuSidebarConfig?: SidebarConfig;
    menuUISchema?: MenuUISchema;
    primaryFields: PrimaryFieldDeclaration;
    schema: JSONSchema7;
    schemaName: string;
    searchFacetSchema?: SearchFacetSchema;
    storageKey: string;
    tableUiSchema?: TableUiSchema;
    tableUiSchemaByType?: Record<string, TableUiSchema>;
    typeNameLabelMap: Record<string, string>;
    typeNameUiSchemaOptionsMap: Record<string, unknown>;
    uischemata?: Record<string, UISchemaElement>;
    version: string;
    viewConfig?: SideSchemaViewConfig;
}

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 ergonomic fields (uischemaScopeOverrides, detailUiSchemaScopeOverrides, …) which defineGraviolaApp / schemaConfigFromSidecars compile into resolved maps.

Type declaration

  • baseIRI: string

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

  • OptionalcalcProfile?: CompiledProfile

    Compiled calculated-fields profile (from calc-profile sidecar).

  • 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.

  • OptionalmenuSidebarConfig?: SidebarConfig

    Sidebar prioritization / hidden definitions.

  • OptionalmenuUISchema?: MenuUISchema

    Sidebar menu entries per definition key.

  • 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.).

  • OptionalsearchFacetSchema?: SearchFacetSchema

    Full-text / facet sidecar (from search-facet sidecar).

  • storageKey: string

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

  • OptionaltableUiSchema?: TableUiSchema

    Optional single table UI schema (legacy / shared).

  • OptionaltableUiSchemaByType?: Record<string, TableUiSchema>

    Optional per-typeName table UI schemas.

  • 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).

  • OptionalviewConfig?: SideSchemaViewConfig

    JSON-serializable view defaults (detail layout, nesting, article, …). Fed into AdbProvider.viewConfig by GraviolaAppProvider.