LogoRobo.js
Framework

SchemaMetadataManager

Class: SchemaMetadataManager

Manager for schema metadata persistence.

Handles:

  • Per-model schema metadata storage and retrieval
  • Namespace-level schema snapshots
  • Conversion between runtime and storage formats

Constructors

new SchemaMetadataManager()

new SchemaMetadataManager(adapter): SchemaMetadataManager

Parameters

ParameterType
adapterFlashcoreAdapter<string, unknown>

Returns

SchemaMetadataManager

Methods

deleteModelMetadata()

deleteModelMetadata(modelName, namespace?): Promise<void>

Delete schema metadata for a model.

Parameters

ParameterTypeDescription
modelNamestringModel name
namespace?stringOptional namespace

Returns

Promise<void>


deleteSnapshot()

deleteSnapshot(namespace?): Promise<void>

Delete the schema snapshot for a namespace.

Parameters

ParameterTypeDescription
namespace?stringNamespace name (undefined for default)

Returns

Promise<void>


getModelMetadata()

getModelMetadata(modelName, namespace?): Promise<SchemaMetadata>

Get schema metadata for a model.

Parameters

ParameterTypeDescription
modelNamestringModel name
namespace?stringOptional namespace

Returns

Promise<SchemaMetadata>

Schema metadata or null if not found


getSnapshot()

getSnapshot(namespace?): Promise<SchemaSnapshot>

Get the schema snapshot for a namespace.

Parameters

ParameterTypeDescription
namespace?stringNamespace name (undefined for default)

Returns

Promise<SchemaSnapshot>

Schema snapshot or null if not found


hasModelMetadata()

hasModelMetadata(modelName, namespace?): Promise<boolean>

Check if schema metadata exists for a model.

Parameters

ParameterTypeDescription
modelNamestringModel name
namespace?stringOptional namespace

Returns

Promise<boolean>


setModelMetadata()

setModelMetadata(
   modelName, 
   metadata, 
namespace?): Promise<void>

Store schema metadata for a model.

Parameters

ParameterTypeDescription
modelNamestringModel name
metadataSchemaMetadataSchema metadata to store
namespace?stringOptional namespace

Returns

Promise<void>


setSnapshot()

setSnapshot(snapshot, namespace?): Promise<void>

Store a schema snapshot for a namespace.

Parameters

ParameterTypeDescription
snapshotSchemaSnapshotSchema snapshot to store
namespace?stringNamespace name (undefined for default)

Returns

Promise<void>


computeCombinedChecksum()

static computeCombinedChecksum(models): string

Compute a combined checksum for multiple models.

Used for namespace-level snapshot checksums.

Parameters

ParameterTypeDescription
modelsRecord<string, SchemaMetadata>Map of model name to schema metadata

Returns

string

Combined checksum string


createInitialMetadata()

static createInitialMetadata(schema): SchemaMetadata

Create initial metadata for a new model.

Parameters

ParameterTypeDescription
schemaNormalizedSchemaNormalized schema

Returns

SchemaMetadata

Initial schema metadata


createSnapshot()

static createSnapshot(
   models, 
   namespace, 
   version): SchemaSnapshot

Create a schema snapshot from multiple models.

Parameters

ParameterTypeDescription
modelsRecord<string, SchemaMetadata>Map of model name to schema metadata
namespacestringNamespace name
versionnumberSnapshot version

Returns

SchemaSnapshot

Schema snapshot


createUpdatedMetadata()

static createUpdatedMetadata(
   schema, 
   previous, 
   migrationName?): SchemaMetadata

Create updated metadata after a schema change.

Parameters

ParameterTypeDescription
schemaNormalizedSchemaNew normalized schema
previousSchemaMetadataPrevious schema metadata
migrationName?stringOptional migration name if applied by migration

Returns

SchemaMetadata

Updated schema metadata


schemaToMetadata()

static schemaToMetadata(
   schema, 
   version, 
   migrationHistory): SchemaMetadata

Convert a NormalizedSchema to SchemaMetadata for storage.

Parameters

ParameterTypeDefault valueDescription
schemaNormalizedSchemaundefinedNormalized schema from a model
versionnumber1Version number (default 1 for new)
migrationHistorystring[][]List of applied migrations

Returns

SchemaMetadata

Schema metadata ready for storage

On this page