Member Junction
    Preparing search index...
    interface DataFeatureSpec {
        Activation?: DataFeatureActivation;
        Caching: {
            Cacheable: boolean;
            KeyFields?: string[];
            Scope?: "pipeline" | "prompt";
            TTLSeconds?: number;
        };
        CaptureReasoning?: boolean;
        Context: {
            EntityDocumentID?: string;
            Fields?: string[];
            InputMapping?: Record<string, string>;
            QueryID?: string;
            QueryParams?: Record<string, string>;
            RecordAsUserMessage?: boolean;
        };
        Description: string;
        Escalation?: { BelowConfidence: number; PipelineID: string };
        Name: string;
        Outputs: DataFeatureOutput[];
        PipelineType?: string;
        ProcessorExtensionKey?: string;
        PromptID: string;
        Unattended?: DataFeatureUnattended;
        Watermark?: {
            Enabled: boolean;
            Strategy: "Checksum" | "UpdatedAt" | "None";
        };
    }
    Index

    Properties

    When set, the pipeline is gated on a stored golden-set result.

    Caching: {
        Cacheable: boolean;
        KeyFields?: string[];
        Scope?: "pipeline" | "prompt";
        TTLSeconds?: number;
    }

    Reuse policy (D7). KeyFields name the row fields whose values form the dedup key; omit for whole-rendered-context keying. Scope defaults to this pipeline so a shared dictionary is opt-in and readable.

    CaptureReasoning?: boolean

    Capture the model's rationale into the history row's Reasoning column (D20).

    Context: {
        EntityDocumentID?: string;
        Fields?: string[];
        InputMapping?: Record<string, string>;
        QueryID?: string;
        QueryParams?: Record<string, string>;
        RecordAsUserMessage?: boolean;
    }

    How prompt context is built for each row. Exactly one Source is required.

    Type Declaration

    • OptionalEntityDocumentID?: string

      Render an Entity Document (supports ${Relationship(...)} and __Parent chaining).

    • OptionalFields?: string[]

      Simplest form: project these fields. Default when nothing else is set.

    • OptionalInputMapping?: Record<string, string>

      Optional value remap layered on whatever the above produced.

    • OptionalQueryID?: string

      Run an APPROVED MJ: Query, parameterized from the row. The reach a relationship walk cannot give.

    • OptionalQueryParams?: Record<string, string>

      Parameter name -> row-field ref, for QueryID.

    • OptionalRecordAsUserMessage?: boolean

      Opt-in, LLM pipelines with Fields only: send the Fields values as one JSON user message, the template as the system message, so a value holding an instruction stays data.

    Description: string
    Escalation?: { BelowConfidence: number; PipelineID: string }

    Decision pipelines only: re-run records the decision model is unsure of through an LLM pipeline.

    Type Declaration

    • BelowConfidence: number

      A record escalates when ANY of its outputs' confidence is below this (0 < floor < 1).

    • PipelineID: string

      The MJ: Record Processes ID of the LLM Feature Pipeline to escalate to.

    Name: string

    One or more outputs produced per row.

    PipelineType?: string

    The name of an MJ: Feature Pipeline Types row. Absent means LLM.

    ProcessorExtensionKey?: string

    Optional subclass hook registration (P1-6).

    PromptID: string

    The prompt. User-visible and user-editable (D11).

    Unattended version-change handling (default: both on).

    Watermark?: { Enabled: boolean; Strategy: "Checksum" | "UpdatedAt" | "None" }

    Skip rows whose watermark says nothing they depend on has changed (P1-7).