airflow-provider-rmq

v2.0.9 suspicious
4.0
Medium Risk

RabbitMQ provider for Apache Airflow — reactive DAG triggering from queues, hooks, operators, sensors, and deferrable triggers.

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package shows low operational risks but raises concerns due to inactive repository and incomplete maintainer information, which may indicate potential maintenance issues or lack of community support.

  • Inactive repository with no recent updates
  • Incomplete maintainer profile
Per-check LLM notes
  • Network: No network calls suggest normal operation without external dependencies or communications.
  • Shell: No shell execution detected indicates no direct system command execution from the package.
  • Obfuscation: No obfuscation patterns detected, indicating low risk.
  • Credentials: No credential harvesting patterns detected, indicating low risk.
  • Metadata: The repository has no activity and the maintainer's profile is incomplete, suggesting potential risks.

📦 Package Quality Overall: Medium (6.4/10)

✦ High Test Suite 9.0

Test suite present — 16 test file(s) found

  • Test runner config found: pyproject.toml
  • Test runner config found: conftest.py
  • 16 test file(s) detected (e.g. conftest.py)
✦ High Documentation 9.0

Well-documented package

  • Documentation URL: "Documentation" -> https://github.com/mkozhin/airflow-provider-rmq#readme
  • 8 documentation file(s) (e.g. rmq_consume_with_filters.py)
  • Detailed PyPI description (25504 chars)
○ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
◈ Medium Type Annotations 5.0

Partial type annotation coverage

  • 94 type-annotated function signatures detected in source
◈ Medium Multiple Contributors 5.0

Limited contributor diversity

  • 1 unique contributor(s) across 68 commits in mkozhin/airflow-provider-rmq
  • Single author but highly active (68 commits)

🔬 Heuristic Checks

Outbound Network Calls

No suspicious network call patterns found

Code Obfuscation

No obfuscation patterns detected

Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: kozhin.cc>

Suspicious Page Links

All external links appear legitimate

Git Repository History score 2.5

Git history flags: Repository has zero stars and zero forks

  • Repository has zero stars and zero forks
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-provider-rmq
Create a mini-application that monitors a RabbitMQ queue for new messages and triggers a specific task based on the content of those messages using Apache Airflow and the 'airflow-provider-rmq' package. This application will serve as a proof-of-concept for integrating message-driven workflows into Airflow DAGs.

Steps to follow:
1. Set up a RabbitMQ server and create a test queue.
2. Install Apache Airflow and the 'airflow-provider-rmq' package.
3. Define a DAG in Airflow that includes a sensor to listen to the RabbitMQ queue.
4. When a message is detected, use an operator to process the message content and trigger a downstream task.
5. Implement logging within the DAG to track message processing status.
6. Optionally, include a feature to automatically scale the number of workers processing messages based on queue length.
7. Ensure the application is resilient to failures and can recover from them without manual intervention.

Suggested Features:
- Use Airflow's XCom feature to pass data between tasks.
- Implement a custom sensor that reacts to specific message types within the queue.
- Integrate error handling and retries for failed message processing.
- Create a visualization of the workflow using Airflow's UI.
- Add support for different message formats (JSON, XML).

How 'airflow-provider-rmq' is Utilized:
- The 'airflow_provider_rmq.sensor.RabbitMQSensorAsync' is used to monitor the RabbitMQ queue for new messages.
- The 'airflow_provider_rmq.hooks.RabbitMQHook' can be used to connect to the RabbitMQ server and manage connections.
- Operators can be customized to handle the processing logic for different message types received from the queue.