Phials plugin documentation
User guide
AI Disclosure: This page was generated by an LLM and may contain inaccuracies. Hand-crafted documentation will be implemented over time on the road to 1.0

MetadataProvider

Since Plugin API: 1.0.0

Metadata provider - extracts structured metadata from files

Signature

interface MetadataProvider {
    type: "metadata";
    id: string;
    name: string;
    priority?: number;
    extensions?: string[];
    mimeTypes?: string[];
    categories?: FileCategory[];
    canHandle?: (file: FileEntry) => boolean;
    extract: (file: FileEntry, rawMeta: RawMetadata, api: MetadataAPI) => Promise<ExtractedMetadata> | ExtractedMetadata;
    schema?: MetadataSchema;
    columnPolicy?: MetadataColumnPolicy;
    getFilterValueOptions?: (fieldKey: string, api: MetadataAPI) => FilterValueOption[] | Promise<FilterValueOption[]>;
}

Members

NameTypeRequiredDescription
type"metadata"yes-
idstringyes-
namestringyes-
prioritynumbernoPrecedence when multiple providers match the same file (default 0). Higher values sort first in registry lookups and extraction order; also breaks ties for directory metadata profiles and auto-visible Details columns.
extensionsstring[]noFile matching criteria
mimeTypesstring[]no-
categoriesFileCategory[]no-
canHandle(file:FileEntry) => booleanno-
extract(file:FileEntry, rawMeta:RawMetadata, api:MetadataAPI) => Promise<ExtractedMetadata> |ExtractedMetadatayesExtract metadata from file
schemaMetadataSchemanoSchema for extracted metadata (for UI rendering)
columnPolicyMetadataColumnPolicynoHow this provider appears in Details column picker and auto-visible heuristics
getFilterValueOptions(fieldKey: string, api:MetadataAPI) =>FilterValueOption[] | Promise<FilterValueOption[]>noOptional override for filter dropdown options on dynamic-enum schema fields. When absent or empty, Phials falls back to distinct-value scan over the listing.