Skip to main content

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

Project description

image info

🏭 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.2.tar.gz (9.4 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.2-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for factorylint-0.1.2.tar.gz
Algorithm Hash digest
SHA256 fad9839c80f7568357d229249b070f1066f1abcb2ef9dc10594f86b08a85d853
MD5 5ea57669de3c4d7a3c89cecbd34910f9
BLAKE2b-256 c6d7204e1cc29551a2f539b4ef66d0a9947cd81bc09f2c2791cee1ae2c1b6cd7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for factorylint-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ccc51f287b316de3aceb2770838c84d69c8b70962deb31cf19be19c9dc08085b
MD5 d58ebdf30e4a857fb8d5ed87d8c456f1
BLAKE2b-256 af4c8281d5878ce61d57f6cef6b246aa0abe6a88ba4db769cea41156da6d1bbb

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