airflow-pydantic

v1.5.10 suspicious
4.0
Medium Risk

Pydantic models for Apache Airflow

πŸ€– AI Analysis

Final verdict: SUSPICIOUS

The package exhibits a moderate level of suspicion due to the shell risk and metadata risk, despite having low scores in other categories.

  • Shell risk is elevated at 3/10
  • Maintainer's account is new or inactive with insufficient details
Per-check LLM notes
  • Network: No network calls detected, indicating low risk.
  • Shell: Shell execution patterns are likely for functionality but should be reviewed for legitimacy and potential risks.
  • Obfuscation: No obfuscation patterns detected, indicating low risk.
  • Credentials: No credential harvesting patterns detected, indicating low risk.
  • Metadata: The maintainer has a new or inactive account and lacks a proper author name, indicating potential low trustworthiness.

πŸ“¦ Package Quality Overall: Medium (5.8/10)

✦ High Test Suite 9.0

Test suite present β€” 12 test file(s) found

  • Test runner config found: conftest.py
  • Test runner config found: pyproject.toml
  • 12 test file(s) detected (e.g. conftest.py)
β—ˆ Medium Documentation 5.0

Some documentation present

  • Detailed PyPI description (10970 chars)
β—‹ Low Contributing Guide 2.0

No contributing guide or governance files found

  • No CONTRIBUTING, CODE_OF_CONDUCT, or governance files found
β—ˆ Medium Type Annotations 5.0

Partial type annotation coverage

  • 74 type-annotated function signatures detected in source
✦ High Multiple Contributors 8.0

Active multi-contributor project

  • 3 unique contributor(s) across 100 commits in airflow-laminar/airflow-pydantic
  • Small but multi-author team (3–4 contributors)

πŸ”¬ Heuristic Checks

βœ“ Outbound Network Calls

No suspicious network call patterns found

βœ“ Code Obfuscation

No obfuscation patterns detected

⚠ Shell / Subprocess Execution score 8.0

Found 4 shell execution pattern(s)

  • try: result = subprocess.run( ["airflow", "pools", "get", pool_name, "--o
  • erred") result = subprocess.run( cmd, capture_output=True,
  • try: result = subprocess.run( ["airflowctl", "pools", "get", pool_name, "
  • try: result = subprocess.run( ["airflowctl", "pools", "import", temp_
βœ“ Credential Harvesting

No credential harvesting patterns detected

βœ“ Typosquatting

No typosquatting candidates detected

βœ“ Registered Email Domain

Email domain looks legitimate: gmail.com>

βœ“ Suspicious Page Links

All external links appear legitimate

βœ“ Git Repository History

Repository airflow-laminar/airflow-pydantic appears legitimate

⚠ Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
βœ“ Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

πŸ’‘ AI App Starter Prompt

Use this prompt to build a project with airflow-pydantic
Create a mini-application that manages data pipeline configurations using Apache Airflow and the 'airflow-pydantic' package. Your application will serve as a configuration manager for various Airflow DAGs (Directed Acyclic Graphs), allowing users to define complex workflows using Pydantic models for better type safety and validation. Here’s how you can structure your project:

1. **Project Setup**: Start by setting up a virtual environment and installing necessary packages including 'apache-airflow', 'pydantic', and 'airflow-pydantic'.
2. **Define Pydantic Models**: Create Pydantic models to represent different components of your DAGs such as tasks, dependencies, schedules, etc. These models should include fields for task IDs, task types, input/output parameters, and more.
3. **Configuration Management**: Develop a simple UI or CLI tool where users can input their DAG configurations using the defined Pydantic models. This tool should validate the inputs against the Pydantic models and raise errors if the provided configurations are invalid.
4. **Generate DAG Code**: Implement functionality within your application that takes validated configurations from the UI/CLI and generates corresponding Airflow DAG code automatically. Ensure that the generated code is syntactically correct and adheres to best practices.
5. **Testing & Validation**: Include automated tests to ensure that the generated DAGs run without issues. Use Airflow's test utilities to simulate the execution of DAGs and check for expected outcomes.
6. **Documentation**: Provide comprehensive documentation on how to use your application, including setup instructions, model definitions, and examples of valid configurations.
7. **Deployment**: Outline steps for deploying your application alongside existing Airflow installations, ensuring it integrates seamlessly with the Airflow ecosystem.

Throughout the development process, leverage 'airflow-pydantic' to streamline the creation and management of DAG configurations, making your application robust, maintainable, and user-friendly.