We release security updates for the following versions of the Vedika Python SDK:
| Version | Supported |
|---|---|
| 1.0.x | ✅ |
| < 1.0 | ❌ |
We take the security of the Vedika Python SDK seriously. If you believe you have found a security vulnerability, please report it to us as described below.
- Open a public GitHub issue for security vulnerabilities
- Post about the vulnerability in public forums or social media
- Attempt to exploit the vulnerability beyond verifying its existence
Report security vulnerabilities to: security@vedika.io
Include the following information:
- Type of vulnerability (e.g., authentication bypass, API key exposure, injection attack)
- Full description of the vulnerability
- Steps to reproduce the issue
- Potential impact of the vulnerability
- Suggested fix (if you have one)
- Your contact information for follow-up
- Acknowledgment: We will acknowledge receipt of your vulnerability report within 48 hours
- Updates: We will send you regular updates about our progress
- Timeline: We aim to release a fix within 7-14 days for critical vulnerabilities
- Credit: We will credit you in our security advisory (unless you prefer to remain anonymous)
Never expose your API keys:
# ❌ DON'T: Hardcode API keys client = VedikaClient(api_key="vk_live_your_actual_key") # ✅ DO: Use environment variables import os client = VedikaClient(api_key=os.getenv("VEDIKA_API_KEY"))Use .gitignore:
# Add to .gitignore .env .env.local *.key credentials.jsonRotate compromised keys immediately:
If you accidentally expose your API key:
- Immediately revoke it at https://vedika.io/dashboard.html
- Generate a new key
- Update your application with the new key
- Review API logs for unauthorized usage
Always validate user input:
from datetime import datetime def validate_birth_details(details: dict) -> bool: """Validate birth details before sending to API.""" required_fields = ['datetime', 'latitude', 'longitude'] # Check required fields if not all(field in details for field in required_fields): return False # Validate latitude (-90 to 90) if not -90 <= details['latitude'] <= 90: return False # Validate longitude (-180 to 180) if not -180 <= details['longitude'] <= 180: return False # Validate datetime format try: datetime.fromisoformat(details['datetime'].replace('Z', '+00:00')) except ValueError: return False return TrueThe SDK enforces HTTPS for all API requests. Never modify the base URL to use HTTP:
# ✅ HTTPS (default and required) client = VedikaClient( api_key=os.getenv("VEDIKA_API_KEY"), base_url="https://vedika-api-854222120654.us-central1.run.app" ) # ❌ HTTP (will fail) # DO NOT attempt to use HTTPRespect rate limits to prevent account suspension:
import time from vedika.exceptions import RateLimitError def safe_api_call(client, *args, **kwargs): """Make API call with exponential backoff on rate limit.""" max_retries = 3 retry_delay = 1 for attempt in range(max_retries): try: return client.ask_question(*args, **kwargs) except RateLimitError: if attempt < max_retries - 1: time.sleep(retry_delay) retry_delay *= 2 # Exponential backoff else: raiseNever expose sensitive information in error messages:
try: response = client.ask_question(...) except Exception as e: # ❌ DON'T: Log full error with potentially sensitive data # logger.error(f"API call failed: {e} with data: {birth_details}") # ✅ DO: Log sanitized error message logger.error("API call failed. Check logs for details.") # Store detailed error in secure logs onlyKeep dependencies up to date:
# Check for security vulnerabilities pip install safety safety check # Update dependencies pip install --upgrade vedika-sdk requests- Birth details are sensitive: Treat birth information (date, time, location) as PII
- No data retention: Vedika API does not store queries unless explicitly enabled
- GDPR compliant: The API is GDPR compliant for EU users
- Test keys (
vk_test_): Limited functionality, safe for development - Live keys (
vk_live_): Full access, use only in production - Never commit keys: Use environment variables or secret managers
- TLS 1.2+: All API requests use TLS 1.2 or higher
- Certificate validation: The SDK validates SSL certificates
- No proxy support: Direct connections only for security
| Date | Type | Findings | Status |
|---|---|---|---|
| 2025-10-15 | Code Review | None | Passed |
| 2025-10-01 | Dependency | None | Passed |
For security concerns or questions:
- Email: security@vedika.io
- Response time: Within 48 hours
- PGP Key: Available on request
Last updated: November 2025