Skip to main content

A CLI tool to lint Azure Data Factory resources for naming convention compliance

Project description

FactoryLint Logo

🏭 FactoryLint

FactoryLint is a CLI tool to lint your Azure Data Factory (ADF) resources and ensure they follow consistent naming conventions. It checks pipelines, datasets, linked services, and triggers, and generates clear, visual reports.


✨ Features

  • ✅ Lint ADF resources: Pipeline, Dataset, Linked Service, Trigger
  • ⚙️ Fully customizable rules via rules_config.json
  • 📊 Visual error reports in the terminal
  • 💾 Saves JSON reports for further inspection
  • 🛠 Easy CLI usage

📦 Installation

Install FactoryLint via pip:

pip install factorylint

Or install locally for development:

git clone <repo-url>
cd FactoryLint
pip install -e .

🚀 Usage

Initialize FactoryLint

Create the .adf-linter directory:

factorylint init

You’ll see a friendly welcome message and confirmation that the directory was created.

Lint ADF resources

Lint all ADF resources in a folder, using the default or custom configuration:

factorylint lint --resources /path/to/adf/resources

Specify a custom rules configuration:

factorylint lint --resources /path/to/adf/resources --config /path/to/rules_config.json

📝 Configuration

The rules_config.json file defines naming conventions for your ADF resources. You can edit this file to match your project standards. FactoryLint validates this file before linting.

Example structure:

{
  "Pipeline": {
    "patterns": {
      "master": "^Master_.*$",
      "sub": "^Sub_.*$"
    }
  },
  "Dataset": {
    "prefix": "DS_",
    "formats": { "Parquet": "PARQ", "CSV": "CSV" },
    "allowed_chars": "^[A-Z0-9_]+$",
    "allowed_abbreviations": [
      { "Type": "Azure", "Service": "Blob Storage", "Abbreviation": "ABLB" }
    ]
  }
  // ... other rules
}

📊 Output

  • Console: Colored, visual feedback for each resource
  • JSON report: Saved by default in .adf-linter/linter_results.json

Example:

❌ dataset/DS_INVALID_NAME.json
   - Dataset detail part 'invalidName' must be uppercase letters, numbers or underscores only
✅ pipeline/Master_ExamplePipeline.json passed

📝 License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

factorylint-0.1.4.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

factorylint-0.1.4-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file factorylint-0.1.4.tar.gz.

File metadata

  • Download URL: factorylint-0.1.4.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for factorylint-0.1.4.tar.gz
Algorithm Hash digest
SHA256 baa45a9985864f0267fb3938707251177e1777fab4762121f0104b3259bf5bd5
MD5 fdd9471033f4dc72ff758b12ca083654
BLAKE2b-256 ac7d46bb69e11b59d581a23d90a373cab0314ef4532711eea3b317cb686b2116

See more details on using hashes here.

File details

Details for the file factorylint-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: factorylint-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for factorylint-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e1bd325646cd1b674925aa45bf3b470e64f51f690cc053a03644117b9c6b1c1f
MD5 4e91c29dab6e96716b6b1725cd088f5e
BLAKE2b-256 f17832647b9deab965281fab7e857d5c46fc38d3d9e61136bb37aac0459342d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page