Phials developer documentation
User guide
AI Notice: Most documentation right now was auto-generated by an LLM. Handwritten documentation will be implemented over time on the road to 1.0

MetadataProvider

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