Metadata-Version: 2.4
Name: alb-lint
Version: 0.1.0
Summary: Lint AWS Application Load Balancers for common misconfigurations
Author: AshSgDe29071999
License: MIT
Project-URL: Homepage, https://github.com/AshSgDe29071999/alb-lint
Project-URL: Repository, https://github.com/AshSgDe29071999/alb-lint
Keywords: aws,alb,elbv2,cli,lint
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: boto3>=1.28
Requires-Dist: typer>=0.9
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Dynamic: license-file

# alb-lint

Lint AWS Application Load Balancers for common misconfigurations.

## Install

```bash
pip install alb-lint
```

From source:

```bash
pip install -e .
```

## 60-second demo

```bash
# Lint one ALB
alb-lint --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-alb/abc \
  --profile myprofile --region us-east-1

# Lint all ALBs in the region
alb-lint --all --profile myprofile --region us-east-1

# JSON output
alb-lint --all --json --region us-east-1
```

Example output:

```
alb-lint: checked 1 load balancer(s)
  [WARN] no_https_listener: my-alb: no HTTPS (443) listener.
  [PASS] host_headers_unique: my-alb: no duplicate Host header rules on listener 80.
  [WARN] zero_targets: my-alb: target group 'tg-app' has 0 registered targets.
Result: OK (no FAIL findings)
```

Exit code `0` if there are no FAIL findings; `1` if any FAIL (e.g. duplicate Host header rules).

## What it checks

| Finding | Severity |
|---------|----------|
| No HTTPS (443) listener | WARN |
| Duplicate Host header conditions across rules (same listener) | FAIL |
| Target group with 0 registered targets | WARN |
| Unhealthy targets | WARN |

## Publishing to PyPI

```bash
pip install build twine
python -m build
twine upload dist/*
```

Or push a `v*` tag; GitHub Actions can publish via trusted publishing (see `.github/workflows/publish.yml`).

## License

MIT
