A CLI tool to lint Azure Data Factory resources for naming convention compliance
Project description
🏭 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file factorylint-0.1.3.tar.gz.
File metadata
- Download URL: factorylint-0.1.3.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27519c104e4ec31339e65d09bed44f70191e340d9f91610840cd37fe1c933831
|
|
| MD5 |
72143131584eebbd3f29d5b08c005c90
|
|
| BLAKE2b-256 |
a100eb3c1a9182a38fe0ac5c47ab15e7ba00b7661792a9c10513c366e7f4e268
|
File details
Details for the file factorylint-0.1.3-py3-none-any.whl.
File metadata
- Download URL: factorylint-0.1.3-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9df78d6fbebd46ed03af14ff43d473b4eb9597b3ecb4cde4b38e49b029ab5910
|
|
| MD5 |
a26e23ab592739d3f6435f9f9d984bdc
|
|
| BLAKE2b-256 |
eadbd039dc3c6a57cd1d465e6ea249507b7c095c9dbe0a6197b38b273105222c
|