Flat collection of all authorization-role assignments.
Consumed by AuthorizationInfo.Roles for lazy per-auth filtering.
Provides access the configuration object that was initially provided to configure the provider
Returns the filesystem provider for the current environment, or null if filesystem operations are not available (e.g. in browser environments). Server-side providers should return a NodeFileSystemProvider instance.
A stable string that uniquely identifies the underlying connection this provider points to (host/port/database/endpoint — never credentials). Two providers pointing at the same connection should return the same value. Used by BaseEngine to key its per-connection engine instance cache so transient per-request providers don't pollute the cache; same-connection lookups share one cached engine.
Stores a dataset in the local cache. If itemFilters are provided, the combination of datasetName and the filters are used to build a key and determine a match in the cache
OptionalproviderToUse: IMetadataProviderIf the specified datasetName is cached, this method will clear the cache. If itemFilters are provided, the combination of datasetName and the filters are used to determine a match in the cache
OptionalitemFilters: DatasetItemFilterType[]OptionalproviderToUse: IMetadataProviderO(1) entity lookup by ID (UUID-normalized). Falls back to linear search if the internal Map hasn't been built yet.
O(1) entity lookup by name (case-insensitive, trimmed). Falls back to linear search if the internal Map hasn't been built yet.
Gets a database by name, if required, and caches it in a format available to the client (e.g. IndexedDB, LocalStorage, File, etc). The cache method is Provider specific If itemFilters are provided, the combination of datasetName and the filters are used to determine a match in the cache
OptionalitemFilters: DatasetItemFilterType[]OptionalcontextUser: UserInfoThis routine gets the local cached version of a given datasetName/itemFilters combination, it does NOT check the server status first.
OptionalitemFilters: DatasetItemFilterType[]Asynchronous lookup of a cached entity record name. Returns the cached name if available, or undefined if not cached. Use this for synchronous contexts (like template rendering) where you can't await GetEntityRecordName().
The name of the entity
The primary key value(s) for the record
OptionalloadIfNeeded: booleanIf set to true, will load from database if not already cached
The cached display name, or undefined if not in cache
Retrieves a dataset by name. When forceRefresh is true, bypasses any in-memory or local cache
and fetches directly from the database. When false (default), server-side providers may serve
from LocalCacheManager if TrustLocalCacheCompletely is true.
OptionalitemFilters: DatasetItemFilterType[]OptionalcontextUser: UserInfoOptionalproviderToUse: IMetadataProviderOptionalforceRefresh: booleanWhen true, bypasses all caching and fetches fresh data from the database
Creates a key for the given datasetName and itemFilters combination
OptionalitemFilters: DatasetItemFilterType[]Retrieves the date status information for a dataset and all its items from the server. This method will match the datasetName and itemFilters to the server's dataset and item filters to determine a match
OptionalitemFilters: DatasetItemFilterType[]OptionalcontextUser: UserInfoOptionalproviderToUse: IMetadataProviderReturns a list of entity dependencies, basically metadata that tells you the links to this entity from all other entities.
Creates a new instance of a BaseEntity subclass for the specified entity and calls NewRecord() to initialize it. The UUID will be automatically generated for non-auto-increment uniqueidentifier primary keys.
The name of the entity to create (e.g., "Users", "Customers")
OptionalcontextUser: UserInfoOptional context user for permissions (mainly used server-side)
Promise resolving to the newly created entity instance with NewRecord() already called
Creates a new instance of a BaseEntity subclass and loads an existing record using the provided key.
The name of the entity to create (e.g., "Users", "Customers")
CompositeKey containing the primary key value(s) to load
OptionalcontextUser: UserInfoOptional context user for permissions (mainly used server-side)
Promise resolving to the entity instance with the specified record loaded
Returns the Name of the specific recordId for a given entityName. This is done by looking for the IsNameField within the EntityFields collection for a given entity. If no IsNameField is found, but a field called "Name" exists, that value is returned. Otherwise null returned
OptionalcontextUser: UserInfooptional user context for permissions
OptionalforceRefresh: booleanif true, bypasses cache and fetches fresh from database
the name of the record
Returns one or more record names using the same logic as GetEntityRecordName, but for multiple records at once - more efficient to use this method if you need to get multiple record names at once
OptionalcontextUser: UserInfooptional user context for permissions
OptionalforceRefresh: booleanif true, bypasses cache and fetches fresh from database
an array of EntityRecordNameResult objects
Returns the timestamp of the local cached version of a given datasetName or null if there is no local cache for the specified dataset
the name of the dataset to check
OptionalitemFilters: DatasetItemFilterType[]optional filters to apply to the dataset
Returns a list of dependencies - records that are linked to the specified Entity/RecordID combination. A dependency is as defined by the relationships in the database. The MemberJunction metadata that is used for this simply reflects the foreign key relationships that exist in the database. The CodeGen tool is what detects all of the relationships and generates the metadata that is used by MemberJunction. The metadata in question is within the EntityField table and specifically the RelatedEntity and RelatedEntityField columns. In turn, this method uses that metadata and queries the database to determine the dependencies. To get the list of entity dependencies you can use the utility method GetEntityDependencies(), which doesn't check for dependencies on a specific record, but rather gets the metadata in one shot that can be used for dependency checking.
the name of the entity to check
the compositeKey for the record to check
Returns a list of record IDs that are possible duplicates of the specified record.
Object containing many properties used in fetching records and determining which ones to return
OptionalcontextUser: UserInfoOptionalcontextUser: UserInfoDetermines if a given datasetName/itemFilters combination is cached locally or not
OptionalitemFilters: DatasetItemFilterType[]This routine checks to see if the local cache version of a given datasetName/itemFilters combination is up to date with the server or not
OptionalitemFilters: DatasetItemFilterType[]Optionaltype: stringThis method will merge two or more records based on the request provided. The RecordMergeRequest type you pass in specifies the record that will survive the merge, the records to merge into the surviving record, and an optional field map that can update values in the surviving record, if desired. The process followed is:
The return value from this method contains detailed information about the execution of the process. In addition, all attempted merges are logged in the RecordMergeLog and RecordMergeDeletionLog tables.
OptionalcontextUser: UserInfoOptionaloptions: EntityMergeOptionsOptionalproviderToUse: IMetadataProviderOptionalproviderToUse: IMetadataProviderOptionalproviderToUse: IMetadataProviderStores a record name in the cache for later synchronous retrieval via GetCachedRecordName(). Called automatically by BaseEntity after Load(), LoadFromData(), and Save() operations.
The name of the entity
The primary key value(s) for the record
The display name to cache
Core interface for metadata providers in MemberJunction. Provides access to all system metadata including entities, applications, security, and queries. This is the primary interface for accessing MemberJunction's metadata layer. Implementations typically cache metadata locally for performance.