azure-functions-scaffold

v0.6.1 suspicious
5.0
Medium Risk

Scaffolding CLI for Azure Functions Python v2 projects

πŸ€– AI Analysis

Final verdict: SUSPICIOUS

The package shows moderate risks due to potential shell command execution and incomplete metadata, which could indicate less experienced or potentially suspicious activity.

  • Shell risk due to make commands
  • Incomplete author information
Per-check LLM notes
  • Network: The network calls appear to be part of an HTTP health check or API interaction, which is somewhat common but should be reviewed against known good behavior.
  • Shell: Executing shell commands can introduce risks like privilege escalation or unintended side effects, especially with 'make' commands that could run arbitrary code.
  • Obfuscation: The use of compile with exec may indicate an attempt to obfuscate code, but it's not definitively malicious without additional context.
  • Credentials: No patterns indicative of credential harvesting were detected.
  • Metadata: The author information is incomplete and the maintainer has only one package, which may indicate a less experienced or potentially suspicious account.

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

✦ High Test Suite 9.0

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

  • Test runner config found: pyproject.toml
  • 11 test file(s) detected (e.g. test_echo_agent.py)
β—ˆ Medium Documentation 7.0

Some documentation present

  • Documentation URL: "Documentation" -> https://yeongseon.github.io/azure-functions-scaffold-python/
  • Detailed PyPI description (14994 chars)
β—‹ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
β—ˆ Medium Type Annotations 7.0

Partial type annotation coverage

  • Classifier: Typing :: Typed
  • 254 type-annotated function signatures detected in source
✦ High Multiple Contributors 8.0

Active multi-contributor project

  • 3 unique contributor(s) across 100 commits in yeongseon/azure-functions-scaffold-python
  • Small but multi-author team (3–4 contributors)

πŸ”¬ Heuristic Checks

⚠ Outbound Network Calls score 3.0

Found 2 network call pattern(s)

  • try: r = requests.get(f"{BASE_URL}/api/hello", timeout=10) if r.status
  • eturns_200() -> None: r = requests.get(f"{BASE_URL}/api/hello", params={"name": "e2e"}, timeout=30)
⚠ Code Obfuscation score 10.0

Found 6 obfuscation pattern(s)

  • les (valid Python syntax) compile(blueprint_text, "products.py", "exec") # Verify key content assert "products_blueprint"
  • ad_text(encoding="utf-8") compile(service_text, "products_service.py", "exec") assert "ProductsStore" in service_text assert "pr
  • ad_text(encoding="utf-8") compile(schema_text, "products.py", "exec") assert "CreateProductRequest" in schema_text asse
  • ad_text(encoding="utf-8") compile(test_text, "test_products.py", "exec") assert "TestListProduct" in test_text assert "Tes
  • ad_text(encoding="utf-8") compile(blueprint_text, "status.py", "exec") assert "status_blueprint" in blueprint_text asser
  • ad_text(encoding="utf-8") compile(test_text, "test_status.py", "exec") assert "test_status_returns_placeholder_response" in
⚠ Shell / Subprocess Execution score 10.0

Found 6 shell execution pattern(s)

  • on PATH.") try: subprocess.run( [git_executable, "init"], # nosec B603
  • ject_path: Path) -> None: subprocess.run( ["make", "install"], cwd=project_path,
  • text=True, ) subprocess.run( ["make", "check-all"], cwd=project_path,
  • ready installed. result = subprocess.run( [sys.executable, "-m", "pytest", "-x", "-q", str(pr
  • =options, ) result = subprocess.run( [sys.executable, "-m", "pytest", "-x", "-q", str(pr
  • function_app.py" result = subprocess.run( [sys.executable, "-c", f"import ast; ast.parse(open
βœ“ 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 yeongseon/azure-functions-scaffold-python 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 azure-functions-scaffold
Create a fully functional mini-app using the 'azure-functions-scaffold' Python package, which streamlines the creation of Azure Functions Python v2 projects. Your task is to develop a simple weather forecast application that fetches current weather data from an API and exposes it via an HTTP trigger function. Here’s a detailed breakdown of the project requirements:

1. **Setup**: Begin by installing the 'azure-functions-scaffold' package. Use this tool to scaffold a new Azure Functions project tailored for Python v2.
2. **API Integration**: Integrate your application with a weather data API such as OpenWeatherMap. Ensure you have an API key from OpenWeatherMap for fetching real-time weather data.
3. **Function Creation**: Within the scaffolded project, create an HTTP-triggered Azure Function. This function will accept a city name as input and return the current weather conditions for that location.
4. **Error Handling**: Implement robust error handling within your function to manage cases where the city name is invalid or the API request fails.
5. **Environment Variables**: Utilize environment variables to store sensitive information like the API key securely.
6. **Deployment**: Finally, deploy your Azure Function to Azure. Make sure to follow best practices for deployment, including setting up continuous integration and deployment (CI/CD).
7. **Testing**: Test your application thoroughly to ensure it works as expected under various scenarios, including edge cases.

Suggested Features:
- User-friendly error messages when a city name is not recognized or when there is a problem with the API request.
- Logging of all requests and responses for debugging purposes.
- Support for multiple languages in the response.

This project aims to showcase the capabilities of the 'azure-functions-scaffold' package while also demonstrating how to integrate external APIs into Azure Functions applications.

πŸ’¬ Discussion Feed

Leave a comment

No discussion yet. Be the first to share your thoughts!