---
title: "File Input"
description: "read events from an input file/glob path"
source: "https://github.com/log-10x/modules/tree/main/pipelines/run/modules/input/file/module.yaml"
icon: "material/math-log"

---
Configures a input file path or glob pattern from which to read events to transform into typed [TenXObjects](https://doc.log10x.com/api/js/#TenXObject "Provide structured, reflective access to log/trace events read from input(s).").

This input does NOT tail its target file/glob. To tail files on disk, use a [forwarder](https://doc.log10x.com/run/input/forwarder "Report, receive and optimize events collected by log forwarders") input.

## :material-wrench-outline: Config Files

To configure the File input module, [:material-cog: Edit](https://doc.log10x.com/config/app/#module-config "Learn how to edit app and module configurations") these files.  

Below is the default configuration from: [file/config.yaml](https://github.dev/log-10x/config/blob/main/pipelines/run/input/file/config.yaml "file/config.yaml"){target="\_blank"}.  
  
<div class="edit-options">
    <a class="md-button tenx-edit-online-button" data-tooltip="Edit online on github.dev" href="https://github.dev/log-10x/config/blob/main/pipelines/run/input/file/config.yaml" target="_blank" rel="noopener noreferrer">
        <span class="twemoji" style="margin-right: 0.3rem;">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
            </svg>
        </span> Edit Online
    </a>
    <button class="md-button tenx-config.yaml0-edit-button" data-tooltip="Edit configuration file" data-dialog-id="config-yaml0-dialog">
        <span style="margin-right: 0.3rem;">
            <span class="twemoji">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
                    <path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"></path>
                </svg>
            </span>
        </span>Edit Locally
    </button>
</div>

<dialog id="config-yaml0-dialog" class="md-dialog md-dialog--editor">
    <div class="editor-dialog-wrapper">
        <div class="editor-dialog-header">
            <span class="editor-dialog-title">Edit config.yaml Locally</span>
            <div class="editor-header-actions">
                <button class="editor-toolbar-btn yaml-editor-locations" data-tooltip="Save">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path></svg>
                </button>
                <button class="editor-toolbar-btn yaml-editor-reset" data-tooltip="Reset to default">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05 1-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"></path></svg>
                </button>
                <button class="editor-toolbar-btn yaml-editor-copy" data-tooltip="Copy to clipboard">
                    <svg class="icon-copy" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path></svg>
                    <svg class="icon-check" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg>
                </button>
                <span class="header-divider"></span>
                <button class="editor-toolbar-btn yaml-editor-fullscreen" data-tooltip="Fullscreen">
                    <svg class="icon-maximize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z"></path></svg>
                    <svg class="icon-minimize" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="display:none;"><path fill="currentColor" d="M5,16H8V19H10V14H5V16M14,14V19H16V16H19V14H14M16,5V8H19V10H14V5H16M10,5V10H5V8H8V5H10Z"></path></svg>
                </button>
                <span class="header-divider"></span>
                <button class="editor-toolbar-btn editor-dialog-close" onclick="closeDialog('config-yaml0-dialog')" data-tooltip="Close">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path></svg>
                </button>
            </div>
        </div>
        <div class="editor-dialog-content">
            <div class="yaml-editor-container"></div>
        </div>
        <div class="yaml-editor-statusbar">
            <span class="yaml-editor-status"></span>
        </div>
    </div>
    <!-- Locations Popup -->
    <div class="locations-popup" style="display: none;">
        <div class="locations-popup-content">
            <div class="locations-popup-header">
                <span class="locations-header-label">Download and save to:</span>
                <button class="locations-popup-close" aria-label="Close">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
                        <path fill="currentColor" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
                    </svg>
                </button>
            </div>
            <ul class="locations-list">
                <li>
                    <span class="location-label">Linux / Docker / macOS
                        <span class="help-icon" data-tooltip="Default system location. The engine automatically reads configs from here at startup. Best for production deployments.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="default-path location-path" data-tooltip=""
                            data-copy-osx="/etc/log10x/config/run/input/file/config.yaml"
                            data-copy-nix="/etc/log10x/config/run/input/file/config.yaml"
                            data-copy-win="C:\log10x\configs/run/input/file/config.yaml"></code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
                <li>
                    <span class="location-label">Custom directory
                        <span class="help-icon" data-tooltip="Set TENX_CONFIG environment variable to point to a custom config directory. Useful when you want configs in a non-standard location.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="location-path" data-tooltip="$TENX_CONFIG/run/input/file/config.yaml">$TENX_CONFIG/run/input/file/config.yaml</code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
                <li>
                    <span class="location-label">Within cloned repo
                        <span class="help-icon" data-tooltip="First run: git clone github.com/log-10x/config. Then save the file to this path within the cloned folder. Use for version control.">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12"><path fill="currentColor" d="M11 18h2v-2h-2v2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2 2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4Z"/></svg>
                        </span>
                    </span>
                    <div class="location-path-row">
                        <code class="location-path" data-tooltip="./pipelines/run/input/file/config.yaml">./pipelines/run/input/file/config.yaml</code>
                        <button class="copy-btn" data-tooltip="Copy path">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                                <path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1Z"></path>
                            </svg>
                        </button>
                    </div>
                </li>
            </ul>
            <div class="locations-popup-footer">
                <button class="locations-download-btn" title="Download config file">
                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14">
                        <path fill="currentColor" d="M5 20h14v-2H5v2m14-9h-4V3H9v8H5l7 7 7-7Z"></path>
                    </svg>
                    <span>Download</span>
                </button>
            </div>
        </div>
    </div>
</dialog>

<template class="tenx-config-schema" data-encoding="base64">ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGVueCIgOiB7CiAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICB9LAogICAgImlucHV0RmlsZSIgOiB7CiAgICAgICJ0eXBlIiA6ICJhcnJheSIsCiAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IGZhbHNlLAogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsKICAgICAgICAgICJuYW1lIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiTG9naWNhbCBuYW1lIG9mIHRoaXMgaW5wdXRcblxuU2V0cyBhIGxvZ2ljYWwgbmFtZSAoZS5nLiwgJ215SW5wdXQnKSBmb3IgdGhpcyBpbnB1dC4gVGhlIFtpbnB1dE5hbWVdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL2pzLyNUZW5YQmFzZU9iamVjdCtpbnB1dE5hbWUpIGZpZWxkICByZXR1cm5zIHRoaXMgdmFsdWUgYXQgcnVuIHRpbWUgdG8gYWxsb3cgZm9yIGlkZW50aWZ5aW5nIGFuZCBvcGVyYXRpbmcgb24gaW5zdGFuY2VzIG9yaWdpbmF0aW5nIGZyb20gdGhpcyBpbnB1dC4iCiAgICAgICAgICB9LAogICAgICAgICAgInBhdGgiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJBIGZpbGUgcGF0aCBvciBnbG9iIHBhdHRlcm4gdG8gcmVhZCBmcm9tXG5cblNwZWNpZmllcyBhIHBhdGggdGhhdCBpcyBlaXRoZXIgYW4gYWJzb2x1dGUgb3IgY2Fub25pY2FsIGZpbGUgcGF0aC4gRm9yIGV4YW1wbGU6IGBgYCB5YW1sIHBhdGg6ICQ9cGF0aChcIjx1c2VyLmRpcj4vZGF0YS9zYW1wbGUvWyF7Ln1dKi5sb2dcIikgYGBgIChEZWZhdWx0OiBwYXRoKFwiPHVzZXIuZGlyPi9kYXRhL3NhbXBsZS9bIXsufV0qLmxvZ1wiKSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAicGF0aChcIjx1c2VyLmRpcj4vZGF0YS9zYW1wbGUvWyF7Ln1dKi5sb2dcIikiCiAgICAgICAgICB9LAogICAgICAgICAgImVuYWJsZWQiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgImJvb2xlYW4iLAogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiRW5hYmxlL2Rpc2FibGUgdGhpcyBmaWxlIGlucHV0XG5cblNwZWNpZmllcyB3aGV0aGVyIHRoZSBvcGVuIHRoZSBpbnB1dCB0byByZWFkIGV2ZW50cyBmcm9tIHRoZSB0YXJnZXQgW2lucHV0RmlsZVBhdGhdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL2lucHV0L2ZpbGUvI2lucHV0ZmlsZXBhdGgpLiAoQWNjZXB0cyBib29sZWFuIG9yIHN0cmluZyB3aXRoICQ9IHByZWZpeCBmb3IgcnVudGltZSBldmFsdWF0aW9uKSAoRGVmYXVsdDogdHJ1ZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgImV4dHJhY3RvcnMiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgImFycmF5IiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkpTT04gLyByZWdleCBleHRyYWN0b3IgbmFtZXNcblxuRGVmaW5lcyBhIGxpc3Qgb2YgSlNPTi9yZWdleCBleHRyYWN0b3IgbmFtZXMgdG8gY2FwdHVyZSBldmVudHMgZnJvbSAnaW5wdXRGaWxlUGF0aCcgdG8gdHJhbnNmb3JtIGludG8gVGVuWE9iamVjdHMuIEVhY2ggaXRlbSBpbiB0aGUgbGlzdCBzaG91bGQgbWFwIHRvIGFuIGV4dHJhY3RvciBkZWZpbmVkIHZpYSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBvciBzdGFydHVwIGFyZ3VtZW50cyBncm91cC4gVG8gbGVhcm4gbW9yZSBzZWU6IFtleHRyYWN0b3JzXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9pbnB1dC9leHRyYWN0KS4iLAogICAgICAgICAgICAiaXRlbXMiIDogewogICAgICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAic291cmNlUGF0dGVybiIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkV2ZW50IHNvdXJjZSBjYXB0dXJlIHJlZ2V4IHBhdHRlcm5cblxuRGVmaW5lcyBhIHJlZ2V4IHBhdHRlcm4gdG8gY2FwdHVyZSAnc291cmNlJyB2YWx1ZXMgZm9yIGVhY2ggZXZlbnQgcmVhZCBmcm9tIHRoaXMgaW5wdXQuIFNvdXJjZSB2YWx1ZXMgcHJvdmlkZSBhIG1ldGhvZCBmb3Igc2VxdWVuY2luZyBUZW5YT2JqZWN0cyByZWFkIGZyb20gdGhpcyBpbnB1dCBpbiBzZXBhcmF0ZSBsb2dpY2FsIHF1ZXVlcy4gIEZvciBleGFtcGxlLCBjYXB0dXJpbmcgYSAnaG9zdCcgb3IgJ2ZpbGVOYW1lJyB2YWx1ZSBhcyBhICdzb3VyY2UnIGNyZWF0ZXMgYSBzZXBhcmF0ZSBsb2dpY2FsIHF1ZXVlIGZvciAgZWFjaCB1bmlxdWUgZmlsZS9ob3N0IG9yaWdpbiBieSB3aGljaCBUZW5YT2JqZWN0cyByZWFkIGZyb20gdGhpcyBpbnB1dCBhcmUgYWdncmVnYXRlZCBhbmQgd3JpdHRlbiB0byBvdXRwdXQuICBUaGUgW3NvdXJjZV0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9hcGkvanMvI1RlblhPYmplY3Qrc291cmNlKSBtZW1iZXIgcmV0dXJucyBlYWNoIFRlblhPYmplY3QncyBhc3NpZ25lZCB2YWx1ZSBhdCBydW4gdGltZS4gLiIKICAgICAgICAgIH0sCiAgICAgICAgICAic291cmNlRmllbGRzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJFdmVudCBzb3VyY2UgSlNPTiBmaWVsZHNcblxuRGVmaW5lcyBhIGxpc3Qgb2YgSlNPTiBmaWVsZHMgdG8gZXh0cmFjdCBmcm9tIG1hdGNoaW5nIGNhcHR1cmUgZ3JvdXBzIG9mIFtpbnB1dEZpbGVTb3VyY2VQYXR0ZXJuXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9pbnB1dC9maWxlLyNpbnB1dGZpbGVzb3VyY2VwYXR0ZXJuKSBvciB0aGUgZW50aXJlIGV2ZW50IGlmIG5vdCBzZXQgYXMgdGhlICdzb3VyY2UnIHZhbHVlIGZvciBlYWNoIGV2ZW50IHJlYWQgZnJvbSB0aGlzIGlucHV0LiAgU291cmNlIHZhbHVlcyBwcm92aWRlIGEgbWV0aG9kIGZvciBzZXF1ZW5jaW5nIFRlblhPYmplY3RzIHJlYWQgZnJvbSB0aGlzIGlucHV0IGluIHNlcGFyYXRlIGxvZ2ljYWwgcXVldWVzLiAgRm9yIGV4YW1wbGUsIGNhcHR1cmluZyBhICdob3N0JyBvciAnZmlsZU5hbWUnIHZhbHVlIGFzIGEgJ3NvdXJjZScgY3JlYXRlcyBhIHNlcGFyYXRlIGxvZ2ljYWwgcXVldWUgZm9yICBlYWNoIHVuaXF1ZSBmaWxlL2hvc3Qgb3JpZ2luIGJ5IHdoaWNoIFRlblhPYmplY3RzIHJlYWQgZnJvbSB0aGlzIGlucHV0IGFyZSBhZ2dyZWdhdGVkIGFuZCB3cml0dGVuIHRvIG91dHB1dC4gIFRoZSBbc291cmNlXShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWE9iamVjdCtzb3VyY2UpIG1lbWJlciByZXR1cm5zIGVhY2ggVGVuWE9iamVjdCdzIGFzc2lnbmVkIHZhbHVlIGF0IHJ1biB0aW1lLiIsCiAgICAgICAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgICAgICAgInR5cGUiIDogInN0cmluZyIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICJwcmludFByb2dyZXNzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJib29sZWFuIiwKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIlNldHMgd2hldGhlciB0aGlzIGlucHV0IHByaW50cyB0aHJvdWdocHV0IHN0YXRzIHRvIHRoZSBjb25zb2xlXG5cblNldHMgd2hldGhlciB0aGlzIGlucHV0IHByaW50cyB0aHJvdWdocHV0IHN0YXRzIHRvIHRoZSBjb25zb2xlIChBY2NlcHRzIGJvb2xlYW4gb3Igc3RyaW5nIHdpdGggJD0gcHJlZml4IGZvciBydW50aW1lIGV2YWx1YXRpb24pIgogICAgICAgICAgfSwKICAgICAgICAgICJjaGFyc2V0IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiQ2hhcnNldCB1c2VkIHRvIGRlY29kZSBieXRlcyByZWFkIGZyb20gdGhpcyBpbnB1dFxuXG5TZXRzIHRoZSBjaGFyc2V0IHVzZWQgdG8gZGVjb2RlIGJ5dGVzIHJlYWQgZnJvbSB0aGlzIGlucHV0IGludG8gY2hhcmFjdGVycy4gRGVmYXVsdHMgdG8gVVRGLTguIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IHRydWUKfQ==</template>

```yaml
# 🔟❎ 'run' File input configuration

# Configure file/glob event inputs. To learn more https://doc.log10x.com/run/input/file

# NOTE: input files are read once and are not tailed. To continuously tail files
# use 10x in conjunction with any of the supported file forwarders in:
# https://doc.log10x.com/run/input/forwarder (e.g., Fluentd/Bit, Logstash, Filebeat)

# Set the 10x pipeline to 'run'
tenx: run

# =============================== Dependencies ================================

include: run/modules/input/file

# =============================== File Options ================================

# Multiple file inputs can be defined below
inputFile:

  # ---------------------------- General Options ----------------------------

    # 'name' sets a unique logical name across all pipeline inputs
  - name: fileInput
    
  # ---------------------------- File Options ---------------------------------

    # 'path' specifies an absolute/canonical glob file path.
    path: $=path("data/sample/input/[!{.}]*.log")
  
    # ---------------------------- Parsing Options ----------------------------
    
    # 'extractors' defines a list of JSON/regex extractor names
    #  used to capture and redact event values from 'path' to transform 
    #  into TenXObjects. To learn more see: https://doc.log10x.com/run/input/extract         
    extractors: [  
    #  fluentd,
    #  fluentK8s
    ]
 
    # 'sourcePattern' defines a regex pattern that captures a 'source' value
    #  for each event read from a file to transform into an TenXObject.
    #  This value will be used to sequence all events sharing this 'source' value correctly 
    #  so they are not mixed with events originating from different locations.
    sourcePattern: null  

    # 'sourceFields'  defines a list of JSON fields to extract from matching capture groups of the inputFileSourcePattern
    # or the entire event if not set as the 'source' value for each event read from this input. 
    sourceFields: [
    ]

    # --------------------------- Ancillary Options ---------------------------

    # 'printProgress' controls whether a progress gage is printed to the console
    printProgress: true

    # 'charset' sets the charset used to decode bytes read from this input. Defaults to UTF-8.
    charset: UTF-8
```

## :material-menu: Options

Specify the options below to [configure](/config "configure") multiple File input:

|Name|Description|
|---|---|
|[inputFileName](#inputfilename "logical name of this input")|Logical name of this input|
|[inputFilePath](#inputfilepath "a file path or glob pattern to read from")|A file path or glob pattern to read from|
|[inputFileEnabled](#inputfileenabled "enable/disable this file input")|Enable/disable this file input|
|[inputFileExtractors](#inputfileextractors "JSON / regex extractor names")|JSON / regex extractor names|
|[inputFileSourcePattern](#inputfilesourcepattern "event source capture regex pattern")|Event source capture regex pattern|
|[inputFileSourceFields](#inputfilesourcefields "event source JSON fields")|Event source JSON fields|
|[inputFilePrintProgress](#inputfileprintprogress "sets whether this input prints throughput stats to the console")|Sets whether this input prints throughput stats to the console|
|[inputFileCharset](#inputfilecharset "charset used to decode bytes read from this input")|Charset used to decode bytes read from this input|

### :material-menu-right-outline:**`inputFileName`**

Logical name of this input.

|Type|Default|
|---|---|
|String|""|

Sets a logical name (e.g., 'myInput') for this input.
The [inputName](https://doc.log10x.com/api/js/#TenXBaseObject+inputName "Returns the context in which the current object, template or summary was created.") field
returns this value at run time to allow for identifying and operating on instances originating from this input.


### :material-menu-right-outline:**`inputFilePath`**

A file path or glob pattern to read from.

|Type|Default|Names|
|---|---|---|
|File|path("\<user.dir\>/data/sample/\[!{.}\]\*.log")|\[inputFilePath, -f\]|

specifies a path that is either an absolute or canonical file path. For example:

```yaml
path: $=path("<user.dir>/data/sample/[!{.}]*.log")
```


### :material-menu-right-outline:**`inputFileEnabled`**

Enable/disable this file input.

|Type|Default|
|---|---|
|Boolean|true|

Specifies whether the open the input to read events from the target [inputFilePath](https://doc.log10x.com/run/input/file/#inputfilepath "a file path or glob pattern to read from").


### :material-menu-right-outline:**`inputFileExtractors`**

JSON / regex extractor names.

|Type|Default|
|---|---|
|List|\[\]|

Defines a list of JSON/regex extractor names to capture events from
'inputFilePath' to transform into TenXObjects. Each item in the list should map to an extractor
defined via a configuration file or startup arguments group.
To learn more see: [extractors](https://doc.log10x.com/run/input/extract "Filter, redact, and capture events from an input stream to transform into TenXObjects").


### :material-menu-right-outline:**`inputFileSourcePattern`**

Event source capture regex pattern.

|Type|Default|
|---|---|
|String|""|

Defines a regex pattern to capture 'source' values for each event read from this input.

Source values provide a method for sequencing TenXObjects read from this input in separate logical queues.

For example, capturing a 'host' or 'fileName' value as a 'source' creates a separate logical queue for
each unique file/host origin by which TenXObjects read from this input are aggregated and written to output.

The [source](https://doc.log10x.com/api/js/#TenXObject+source "Returns the source value assigned to this instance by its input source pattern") member returns each TenXObject's assigned value at run time. .


### :material-menu-right-outline:**`inputFileSourceFields`**

Event source JSON fields.

|Type|Default|
|---|---|
|List|\[\]|

Defines a list of JSON fields to extract from matching capture groups of [inputFileSourcePattern](https://doc.log10x.com/run/input/file/#inputfilesourcepattern "event source capture regex pattern")
or the entire event if not set as the 'source' value for each event read from this input.

Source values provide a method for sequencing TenXObjects read from this input in separate logical queues.

For example, capturing a 'host' or 'fileName' value as a 'source' creates a separate logical queue for
each unique file/host origin by which TenXObjects read from this input are aggregated and written to output.

The [source](https://doc.log10x.com/api/js/#TenXObject+source "Returns the source value assigned to this instance by its input source pattern") member returns each TenXObject's assigned value at run time.


### :material-menu-right-outline:**`inputFilePrintProgress`**

Sets whether this input prints throughput stats to the console.

|Type|Default|
|---|---|
|Boolean|false|

Sets whether this input prints throughput stats to the console.


### :material-menu-right-outline:**`inputFileCharset`**

Charset used to decode bytes read from this input.

|Type|Default|
|---|---|
|String|""|

Sets the charset used to decode bytes read from this input into characters.
Defaults to UTF-8.


<br/>:material-github: This module is defined in [file/module.yaml](https://github.com/log-10x/modules/tree/main/pipelines/run/modules/input/file/module.yaml "file/module.yaml"){target="\_blank"}.

