ProtectedconfigConfig from the SearchProvider metadata record, set during Initialize()
ReadonlySourceWhich search source this provider represents
Get the metadata provider used by this search provider, falling back to the global default.
Set the metadata provider used by this search provider for entity lookups.
Load storage accounts and permissions to determine availability. Must be called once during SearchEngine.Config().
The user context for database queries
Initialize the provider with configuration from the SearchProvider entity. Called once during SearchEngine.Config(). Override to perform provider-specific setup (e.g., connecting to external APIs using credentials).
Configuration from the SearchProvider metadata record
The user context for initialization
Whether this provider has at least one searchable storage account.
Execute a file search across all eligible storage accounts.
The search query text
Maximum number of results to retrieve
Optional filters (currently unused for storage search)
The user performing the search
OptionalscopeConstraints: ScopeConstraintsScored result items from storage search
StaticGetEnumerate every search provider currently registered with ClassFactory under
BaseSearchProvider. Designed for the SearchScope form's provider dropdown
(P5.5) — populates the dropdown from this single call rather than hardcoding
a list, so any ClassFactory-registered provider (including third-party ones)
shows up automatically.
Each entry includes the driver-class registration key (writes into
SearchProvider.DriverClass) and the SourceType the provider implements.
Sorted by DriverClass for stable UI ordering.
Provides file-level search across MJ File Storage accounts using each provider's native SearchFiles() API. Only accounts with IncludeInGlobalSearch=true and providers with SupportsSearch=true are searched.
Permission checking is performed against FileStorageAccountPermission records. If no permission records exist for an account, it is accessible to everyone (backwards compatible). Otherwise, the user must have CanRead=true via a direct User permission, a Role permission, or an Everyone permission.