<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Raghava Chellu</title>
    <description>The latest articles on DEV Community by Raghava Chellu (@raghavachellu).</description>
    <link>https://dev.to/raghavachellu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3177630%2Fc61fb736-7ee5-49f0-b794-017cb999d27e.jpg</url>
      <title>DEV Community: Raghava Chellu</title>
      <link>https://dev.to/raghavachellu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raghavachellu"/>
    <language>en</language>
    <item>
      <title>Omni Security &amp; Intelligence Python Library AI · MFT · GCS · CyberSecurity · Internet</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Tue, 03 Mar 2026 00:15:55 +0000</pubDate>
      <link>https://dev.to/raghavachellu/omni-security-intelligence-python-library-ai-mft-gcs-cybersecurity-internet-2k7i</link>
      <guid>https://dev.to/raghavachellu/omni-security-intelligence-python-library-ai-mft-gcs-cybersecurity-internet-2k7i</guid>
      <description>&lt;p&gt;OmniSec is a unified Python library that brings together five essential domains under one consistent API:&lt;/p&gt;

&lt;h2&gt;
  
  
  Module   Description
&lt;/h2&gt;

&lt;p&gt;This platform combines AI-driven intelligence, secure file transfer, cloud storage integration, and advanced security analysis into a unified enterprise solution. It leverages the Claude API for text analysis, classification, summarization, and automated threat reporting. Managed File Transfer (MFT) is supported over SFTP/FTPS with AES-256 encryption and detailed audit logging to ensure secure and compliant data exchange. Native integration with Google Cloud Storage enables uploads, downloads, signed URLs, and metadata management. The security engine provides hashing, AES/RSA encryption, password analysis, IoC extraction, and header scoring. Additionally, built-in network capabilities such as HTTP client operations, DNS analysis, port scanning, SSL inspection, and IP geolocation enable comprehensive monitoring and threat assessment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Base install
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install omnisec

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  With specific extras
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install omnisec[ai]        # Anthropic Claude support
pip install omnisec[mft]       # SFTP + AES encryption
pip install omnisec[gcs]       # Google Cloud Storage
pip install omnisec[security]  # Full cryptography suite
pip install omnisec[internet]  # HTTP + DNS support
pip install omnisec[all]       # Everything
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import omnisec

# ── AI Engine ──────────────────────────────────────────────────
engine = omnisec.AIEngine(api_key="your-anthropic-key")

summary = engine.summarize("Long document text...", max_sentences=3)
labels  = engine.classify("Suspicious email body", ["phishing", "spam", "legitimate"])
threat  = engine.analyze_security_log("Failed SSH from 10.0.0.5 - 50 attempts")

print(threat)
# {
#   "threat_level": "high",
#   "threat_type": "brute_force",
#   "indicators": ["10.0.0.5", "SSH port 22", "50 failed attempts"],
#   "recommendation": "Block IP 10.0.0.5 and enable fail2ban",
#   "summary": "Brute-force SSH attack detected from 10.0.0.5"
# }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  ── MFT Client ──
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;with omnisec.MFTClient(
    host="sftp.example.com",
    username="user",
    key_path="~/.ssh/id_rsa",
    encrypt_transfers=True,
) as mft:
    record = mft.upload("report.pdf", "/remote/reports/report.pdf")
    print(f"SHA-256: {record.sha256}")
    mft.export_audit_csv("audit.csv")


# ── GCS Client ──

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;gcs = omnisec.GCSClient(project="my-project", bucket="my-bucket")&lt;br&gt;
gcs.upload("local/data.csv", "datasets/data.csv")&lt;br&gt;
url = gcs.signed_url("datasets/data.csv", expiry_minutes=60)&lt;br&gt;
objects = gcs.list_objects(prefix="datasets/")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# ── Security Toolkit ──

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;sec = omnisec.SecurityToolkit()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# Hashing

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;h = sec.hash("password123", "sha256")&lt;br&gt;
file_hash = sec.hash_file("/var/log/syslog", "sha512")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# AES-256-GCM Encryption

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;key, nonce, ct = sec.aes_encrypt(b"sensitive data")&lt;br&gt;
plaintext = sec.aes_decrypt(key, nonce, ct)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# String encryption
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;enc = sec.aes_encrypt_string("top secret message")&lt;br&gt;
plain = sec.aes_decrypt_string(enc)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Password tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;pwd = sec.generate_password(length=20, use_symbols=True)&lt;br&gt;
strength = sec.check_password_strength("P@ssw0rd!")&lt;br&gt;
print(strength)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# {"score": 72, "strength": "good", "feedback": ["Add uppercase letters."]}

# IoC extraction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;iocs = sec.extract_iocs("Malware from 192.168.1.50 hit CVE-2023-1234 via evil.com")&lt;br&gt;
print(iocs["cves"])    # ['CVE-2023-1234']&lt;br&gt;
print(iocs["ipv4"])    # ['192.168.1.50']&lt;br&gt;
print(iocs["domains"]) # ['evil.com']&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# Security header analysis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;headers = {"Strict-Transport-Security": "max-age=31536000", "X-Frame-Options": "DENY"}&lt;br&gt;
analysis = sec.analyze_headers(headers)&lt;br&gt;
print(f"Score: {analysis['score']}/100  Grade: {analysis['grade']}")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# PBKDF2 password hashing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;h, salt = sec.pbkdf2_hash("mypassword")&lt;br&gt;
assert sec.pbkdf2_verify("mypassword", h, salt)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# ── Internet Toolkit ──
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;net = omnisec.InternetToolkit(timeout=10, retries=3)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# HTTP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;resp = net.get("&lt;a href="https://api.ipify.org?format=json%22" rel="noopener noreferrer"&gt;https://api.ipify.org?format=json"&lt;/a&gt;)&lt;br&gt;
print(resp["json"]["ip"])&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Port scanning
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;result = net.port_scan("192.168.1.1", ports=[22, 80, 443, 3306])&lt;br&gt;
for p in result["open_ports"]:&lt;br&gt;
    print(f"  {p['port']}/TCP  {p['service']}")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# SSL inspection
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cert = net.ssl_info("google.com")&lt;br&gt;
print(f"Expires in {cert['days_remaining']} days")&lt;br&gt;
print(f"Issuer: {cert['issuer'].get('organizationName')}")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# DNS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;records = net.dns_resolve("example.com", "A")&lt;br&gt;
hostname = net.reverse_dns("8.8.8.8")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# IP intelligence
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;info = net.ip_info("8.8.8.8")&lt;br&gt;
print(f"{info['org']} — {info['city']}, {info['country']}")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# URL monitoring
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;statuses = net.monitor_urls(["&lt;a href="https://google.com" rel="noopener noreferrer"&gt;https://google.com&lt;/a&gt;", "&lt;a href="https://github.com%22%5D" rel="noopener noreferrer"&gt;https://github.com"]&lt;/a&gt;)&lt;br&gt;
for s in statuses:&lt;br&gt;
    status = "YES" if s["ok"] else "NO"&lt;br&gt;
    print(f"{status} {s['url']}  {s['elapsed_ms']}ms")&lt;br&gt;
CLI Usage&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# Hash a string

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec hash sha256 "hello world"&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# Generate a secure password
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec password generate --length 24&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# Check password strength
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec password check "P@ssword123!"&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Port scan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec port-scan 192.168.1.1 --ports 22 80 443 3306 5432&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# SSL certificate info
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec ssl-info google.com&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# IP geolocation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec ip-info 8.8.8.8&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# DNS lookup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec dns google.com --type MX&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# URL availability check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec ping &lt;a href="https://example.com" rel="noopener noreferrer"&gt;https://example.com&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Extract IoCs from text
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;omnisec extract-iocs "Attack from 10.0.0.1 via CVE-2024-1234"&lt;br&gt;
Configuration&lt;br&gt;
from omnisec import OmniConfig&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Programmatic configuration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cfg = OmniConfig(&lt;br&gt;
    ai_model="claude-sonnet-4-6",&lt;br&gt;
    gcs_bucket="my-bucket",&lt;br&gt;
    mft_host="sftp.example.com",&lt;br&gt;
    net_timeout=15,&lt;br&gt;
)&lt;br&gt;
cfg.save("omnisec.json")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Reload from file
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cfg = OmniConfig.load("omnisec.json")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Environment variables (auto-detected)
# ANTHROPIC_API_KEY, GOOGLE_CLOUD_PROJECT, OMNISEC_GCS_BUCKET,
# OMNISEC_MFT_HOST, OMNISEC_NET_TIMEOUT, etc.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Project Structure&lt;br&gt;
omnisec/&lt;br&gt;
├── omnisec/&lt;br&gt;
│   ├── &lt;strong&gt;init&lt;/strong&gt;.py          # Top-level exports&lt;br&gt;
│   ├── cli.py               # CLI entry point&lt;br&gt;
│   ├── core/&lt;br&gt;
│   │   ├── config.py        # Centralised OmniConfig&lt;br&gt;
│   │   └── logger.py        # Structured colour logger&lt;br&gt;
│   ├── ai/&lt;br&gt;
│   │   └── &lt;strong&gt;init&lt;/strong&gt;.py      # AIEngine (Claude API)&lt;br&gt;
│   ├── mft/&lt;br&gt;
│   │   └── &lt;strong&gt;init&lt;/strong&gt;.py      # MFTClient (SFTP/FTPS + AES)&lt;br&gt;
│   ├── gcs/&lt;br&gt;
│   │   └── &lt;strong&gt;init&lt;/strong&gt;.py      # GCSClient (Google Cloud Storage)&lt;br&gt;
│   ├── security/&lt;br&gt;
│   │   └── &lt;strong&gt;init&lt;/strong&gt;.py      # SecurityToolkit (crypto + threat intel)&lt;br&gt;
│   └── internet/&lt;br&gt;
│       └── &lt;strong&gt;init&lt;/strong&gt;.py      # InternetToolkit (HTTP + DNS + scanning)&lt;br&gt;
├── tests/&lt;br&gt;
│   ├── test_security.py&lt;br&gt;
│   ├── test_internet.py&lt;br&gt;
│   └── test_mft.py&lt;br&gt;
├── examples/&lt;br&gt;
│   ├── ai_demo.py&lt;br&gt;
│   ├── mft_demo.py&lt;br&gt;
│   ├── gcs_demo.py&lt;br&gt;
│   ├── security_demo.py&lt;br&gt;
│   └── internet_demo.py&lt;br&gt;
├── setup.py&lt;br&gt;
├── pyproject.toml&lt;br&gt;
└── README.md&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Running Tests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;pip install omnisec[all] pytest&lt;br&gt;
pytest tests/ -v&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# License

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MIT License&lt;/p&gt;

&lt;p&gt;Copyright (c) 2026 Raghava Chellu&lt;/p&gt;

&lt;p&gt;Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:&lt;/p&gt;

&lt;p&gt;The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.&lt;/p&gt;

&lt;p&gt;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.&lt;/p&gt;

&lt;p&gt;Contributing&lt;br&gt;
Pull requests are welcome. For major changes, open an issue first. Please ensure all tests pass and new features include docstrings and examples.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>ai</category>
      <category>cloud</category>
      <category>cybersecurity</category>
      <category>python</category>
    </item>
    <item>
      <title>agentic‑bq — Guardrails for Agents Querying BigQuery</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Mon, 23 Feb 2026 02:48:39 +0000</pubDate>
      <link>https://dev.to/raghavachellu/agentic-bq-guardrails-for-agents-querying-bigquery-367i</link>
      <guid>https://dev.to/raghavachellu/agentic-bq-guardrails-for-agents-querying-bigquery-367i</guid>
      <description>&lt;h4&gt;
  
  
  Why I Built This
&lt;/h4&gt;

&lt;p&gt;Large‑language‑model agents love data. Give them access to your enterprise warehouse and they’ll start generating SQL faster than any analyst.&lt;/p&gt;

&lt;p&gt;That’s exciting — until an agent decides to run a DELETE FROM across an entire dataset or a multi‑terabyte query that costs hundreds of dollars.&lt;/p&gt;

&lt;p&gt;To keep LLMs productive but safe, you need a BigQuery client with built‑in constraints, cost checks, and auditability.&lt;/p&gt;

&lt;p&gt;Meet agentic‑bq.&lt;/p&gt;

&lt;h4&gt;
  
  
  What It Is
&lt;/h4&gt;

&lt;p&gt;agentic‑bq is an agent‑safe BigQuery client that injects common‑sense guardrails for AI‑driven data access.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install agentic-bq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Features
&lt;/h4&gt;

&lt;p&gt;The agentic‑bq library delivers a complete safety layer for AI agents that interact with BigQuery. It enforces parameterized queries to eliminate risky string concatenation and SQL injection, ensuring that every query uses bound parameters for predictability and security. A powerful denylist engine automatically blocks destructive SQL verbs like DROP, DELETE, ALTER, or TRUNCATE, shielding enterprise datasets from unintended modifications. To prevent resource exhaustion, agentic‑bq injects or overrides a LIMIT N clause on any SELECT statement, keeping query sizes manageable. Before execution, it performs a dry‑run cost check to estimate bytes processed and prevent agents from triggering expensive scans, giving you clear visibility into potential spend. For downstream orchestration, results are returned in clean, agent‑readable JSON, making it easy to chain outputs into other LLM tools or workflows. Finally, the client offers audit‑ready structured logging, enabling full traceability and compliance reporting whenever an agent issues a query. Together, these features turn BigQuery into a controlled, cost‑aware, and secure environment for agentic AI operations.&lt;/p&gt;

&lt;h4&gt;
  
  
  Getting Started
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install agentic-bq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from agentic_bq import AgenticBQ

bq = AgenticBQ(project="my-gcp-project")

query = """
SELECT name, total_sales
FROM retail_dataset.sales
WHERE region = @region
ORDER BY total_sales DESC
"""

params = {"region": "US"}

result = bq.safe_query(query, params=params, limit=100)
print(result.to_json())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Use cases
&lt;/h4&gt;

&lt;p&gt;The agentic‑bq library unlocks several practical use cases for organizations building AI agents that interact with enterprise data warehouses like BigQuery.&lt;/p&gt;

&lt;p&gt;A LLM data assistant can safely execute parameterized SELECT queries without risking SQL injection or schema damage, allowing natural‑language agents to explore structured data securely. For FinOps‑aware data agents, agentic‑bq’s built‑in dry‑run checks estimate bytes processed before execution, so expensive queries can be blocked or re‑routed to summary tables, protecting cloud budgets in real time. Compliance data bots benefit from the library’s audit‑ready logging and denylist enforcement—every query structure, parameter, and cost estimate can be recorded automatically for governance or internal review. Finally, teams exposing enterprise analytics APIs can front BigQuery with an agentic‑bq layer to ensure every API‑generated query follows consistent safety, cost, and logging policies—giving external or internal agents controlled, policy‑compliant access to corporate data.&lt;/p&gt;

&lt;h4&gt;
  
  
  In a single call:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;dynamic parameters are safely bound,&lt;/li&gt;
&lt;li&gt;a LIMIT 100 is injected if missing,&lt;/li&gt;
&lt;li&gt;any forbidden statements trigger an exception,&lt;/li&gt;
&lt;li&gt;a dry‑run is performed to measure cost (bytes processed),&lt;/li&gt;
&lt;li&gt;then the job executes only if safe.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Under the Hood
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Wraps Google Cloud BigQuery Python Client&lt;/li&gt;
&lt;li&gt;Uses BigQuery’s QueryJobConfig(dry_run=True) for cost estimation&lt;/li&gt;
&lt;li&gt;Enforces SQL‑level regex guards before submission&lt;/li&gt;
&lt;li&gt;Applies automatic row limits and parameter binding&lt;/li&gt;
&lt;li&gt;Exposes results via pandas, JSON, or Pydantic‑style objects&lt;/li&gt;
&lt;li&gt;Supports async execution for agent pipelines&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Built for LLM Agents
&lt;/h4&gt;

&lt;p&gt;When integrated into an agent framework (LangChain, CrewAI, AutoGen):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tool("bq_query", bq.safe_query, description="Run cost‑controlled BigQuery SQL")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agents can then generate queries freely within your safety envelope.&lt;br&gt;
You keep cost, security, and data integrity under control.&lt;/p&gt;

&lt;h4&gt;
  
  
  Example: Dry‑Run Validation
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;info = bq.dry_run(
    "SELECT COUNT(*) FROM massive_table"
)
print(f"Estimated bytes processed: {info.estimated_bytes_processed/1e9:.2f} GB")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output before execution might read:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Estimated bytes processed: 3.25 GB&lt;/li&gt;
&lt;li&gt;That number lets you cap budgets or throttle agent jobs dynamically.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Configuration
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bq = AgenticBQ(
    project="my-project",
    max_cost_gb=5,          # deny if &amp;gt; 5 GB processed
    enforce_limit=200,      # default limit
    denylist=["DELETE", "DROP", "UPDATE"],
    log_dir="/var/log/agentic_bq"
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Security Model
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;No ad‑hoc string execution&lt;/li&gt;
&lt;li&gt;Fully parameterized queries&lt;/li&gt;
&lt;li&gt;Pre‑execution dry runs to detect cost risk&lt;/li&gt;
&lt;li&gt;Optional IAM role binding per agent service account&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Design Principles
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Least Privilege for Data Agents&lt;/li&gt;
&lt;li&gt;Predictable Cost Profiles&lt;/li&gt;
&lt;li&gt;Composability  – works as a drop‑in LangChain tool&lt;/li&gt;
&lt;li&gt;Transparency  – logs intent before execution&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Publishing (Developers)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade build twine
python -m build
twine upload --repository testpypi dist/*
twine upload dist/*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Future Roadmap
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;v0.1 – Parameter binding + LIMIT enforcement&lt;/li&gt;
&lt;li&gt;v0.2 – Async API support&lt;/li&gt;
&lt;li&gt;v0.3 – Adaptive budgeting via BigQuery reservations API&lt;/li&gt;
&lt;li&gt;v0.4 – LLM query explain‑plan visualizer&lt;/li&gt;
&lt;li&gt;v1.0 – Production stability and OpenTelemetry metrics&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
   Closing Thought
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;LLMs are evolving into full‑blown data agents.&lt;/li&gt;
&lt;li&gt;With agentic‑bq, you can let them explore BigQuery freely — without risking your budget, your data, or your sleep.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install agentic-bq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>agents</category>
      <category>googlecloud</category>
      <category>llm</category>
      <category>python</category>
    </item>
    <item>
      <title>Bringing Async MCP to Google Cloud Run — Introducing cloudrun-mcp</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Mon, 23 Feb 2026 02:19:20 +0000</pubDate>
      <link>https://dev.to/raghavachellu/bringing-async-mcp-to-google-cloud-run-introducing-cloudrun-mcp-1g3p</link>
      <guid>https://dev.to/raghavachellu/bringing-async-mcp-to-google-cloud-run-introducing-cloudrun-mcp-1g3p</guid>
      <description>&lt;p&gt;Bringing Async MCP to Google Cloud Run — Introducing cloudrun-mcp&lt;/p&gt;

&lt;p&gt;When you design distributed AI or agentic workloads on Google Cloud’s Cloud Run, you often juggle three recurring problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to authenticate workloads securely&lt;/li&gt;
&lt;li&gt;How to maintain long-lived, event-driven sessions&lt;/li&gt;
&lt;li&gt;How to stream model context data efficiently without blocking threads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;cloudrun-mcp solves all three in one lightweight Python SDK.&lt;/p&gt;

&lt;h4&gt;
  
  
  What is MCP (Model Context Protocol)?
&lt;/h4&gt;

&lt;p&gt;MCP — Model Context Protocol is an emerging open standard for exchanging context between AI models, tools, and environments.&lt;/p&gt;

&lt;p&gt;Think of it as “WebSockets for AI knowledge.”&lt;/p&gt;

&lt;p&gt;Instead of hardcoding API calls, your model connects to an MCP server and streams structured events such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;context.create&lt;/li&gt;
&lt;li&gt;document.attach&lt;/li&gt;
&lt;li&gt;agent.reply&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For developers deploying AI agents on Cloud Run, GKE, or hybrid workloads, an async client is essential for scalability.&lt;/p&gt;

&lt;h4&gt;
  
  
  Introducing cloudrun-mcp
&lt;/h4&gt;

&lt;p&gt;Async MCP (Model Context Protocol) client for Cloud Run.&lt;/p&gt;

&lt;p&gt;Built by Raghava Chellu (February 2026), cloudrun-mcp brings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First-class async streaming&lt;/li&gt;
&lt;li&gt;Automatic Cloud Run authentication&lt;/li&gt;
&lt;li&gt;Agentic-AI-friendly APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;to your production workloads.&lt;/p&gt;

&lt;h4&gt;
  
  
  How It Works
&lt;/h4&gt;

&lt;p&gt;Under the hood:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The client uses aiohttp to maintain an HTTP/1.1 keep-alive streaming session.&lt;/li&gt;
&lt;li&gt;Inside Cloud Run, it queries the metadata service to obtain a signed JWT:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=&amp;lt;your-audience&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Each event from the MCP server arrives as a Server-Sent Event (SSE).&lt;/li&gt;
&lt;li&gt;The SDK yields events as a Python async iterator, ready for real-time AI reasoning loops.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Installation
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install cloudrun-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Requirements
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Python ≥ 3.10&lt;/li&gt;
&lt;li&gt;Deployed on GCP (Cloud Run / GKE / GCE) with metadata-server access&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Usage Example
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import asyncio
from cloudrun_mcp import MCPClient

async def main():
    client = MCPClient(base_url="https://your-mcp-server.run.app")

    async for event in client.events():
        print(event)

asyncio.run(main())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Typical Output Stream
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{"event":"context.create","status":"ok"}
{"event":"model.response","content":"42"}
{"event":"model.done"}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it — you’ve connected an async agent running on Cloud Run to an MCP backend and are receiving real-time context updates.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why Async MCP Matters
&lt;/h4&gt;

&lt;p&gt;AI workloads are evolving from simple request-response APIs to long-running reasoning graphs.&lt;/p&gt;

&lt;p&gt;Synchronous I/O becomes a bottleneck.&lt;/p&gt;

&lt;p&gt;cloudrun-mcp leverages Python’s asyncio to keep event loops responsive across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Streaming token generation&lt;/li&gt;
&lt;li&gt;Function-calling orchestration&lt;/li&gt;
&lt;li&gt;Multi-model chains&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s especially powerful for Agentic AI, where orchestrators consume continuous model context (tool outputs, planning updates, memory events).&lt;/p&gt;

&lt;h4&gt;
  
  
  Authentication Deep Dive
&lt;/h4&gt;

&lt;p&gt;The SDK automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discovers the metadata endpoint&lt;/li&gt;
&lt;li&gt;Retrieves an ID token targeting your MCP server&lt;/li&gt;
&lt;li&gt;Injects it into request headers
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Authorization: Bearer &amp;lt;token&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Refreshes tokens every ~55 minutes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No OAuth flows.&lt;br&gt;
No key.json files.&lt;br&gt;
Perfect for production micro-agents.&lt;/p&gt;

&lt;h4&gt;
  
  
  Streaming with Back-Pressure Control
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async for event in client.events(buffer=32):
    await handle_event(event)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Typical Deployment Pattern
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[MCP Clients] &amp;lt;--SSE--&amp;gt; [cloudrun-mcp SDK] &amp;lt;--Auth--&amp;gt; [Cloud Run Service]
         \
          ↳ [Agent Processors / Vector DB / PubSub Pipelines]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cloudrun-mcp acts as the async bridge between Cloud identity and AI reasoning streams.&lt;/p&gt;

&lt;h4&gt;
  
  
  Real-World Use Cases
&lt;/h4&gt;

&lt;p&gt;Event-Driven AI Agents&lt;/p&gt;

&lt;p&gt;Agents listening to MCP streams and triggering workflows automatically.&lt;/p&gt;

&lt;p&gt;🔹 LLM Orchestration Pipelines&lt;/p&gt;

&lt;p&gt;Streaming intermediate reasoning steps to dashboards.&lt;/p&gt;

&lt;p&gt;🔹 IoT Telemetry Ingestion&lt;/p&gt;

&lt;p&gt;Continuous SSE device streams pushed to Pub/Sub.&lt;/p&gt;

&lt;p&gt;🔹 Hybrid Edge Inference&lt;/p&gt;

&lt;p&gt;Bridge local MCP hubs with Cloud Run decision services.&lt;/p&gt;

&lt;h4&gt;
  
  
  Design Philosophy
&lt;/h4&gt;

&lt;p&gt;The SDK follows three principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Async First — built entirely on asyncio&lt;/li&gt;
&lt;li&gt;Zero Secrets — uses Workload Identity exclusively&lt;/li&gt;
&lt;li&gt;Agentic Friendly — integrates with frameworks like LangChain or CrewAI&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>SentinelMFT: AI-Powered Secure File Transfer &amp; Network Firewall for Google Cloud</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Sun, 14 Sep 2025 18:19:43 +0000</pubDate>
      <link>https://dev.to/raghavachellu/sentinelmft-ai-powered-secure-file-transfer-network-firewall-for-google-cloud-2ne3</link>
      <guid>https://dev.to/raghavachellu/sentinelmft-ai-powered-secure-file-transfer-network-firewall-for-google-cloud-2ne3</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;sentinelmft is a Python library and CLI tool that provides secure, intelligent, and policy-driven file transfers across cloud and on-prem networks. It integrates Google Cloud services (GCS, Pub/Sub, Secret Manager) with AI-driven anomaly detection, cryptography (AES-256 + RSA), and a software-defined firewall layer for transfer sessions.&lt;/p&gt;

&lt;p&gt;It’s like combining MFT + Firewall + AI Monitoring into one lightweight Python package.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Security &amp;amp; Cryptography&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AES-256-GCM encryption for file transfers.&lt;/li&gt;
&lt;li&gt;RSA/ECC for key exchange.&lt;/li&gt;
&lt;li&gt;Envelope encryption with Google Cloud KMS.&lt;/li&gt;
&lt;li&gt;Secure token &amp;amp; secret retrieval from Secret Manager.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Managed File Transfer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload/download between GCS, databases, and local servers.&lt;/li&gt;
&lt;li&gt;Policy-based transfer rules (size limits, allowed MIME types).&lt;/li&gt;
&lt;li&gt;Scheduled/triggered transfers with Cloud Scheduler + Pub/Sub.&lt;/li&gt;
&lt;li&gt;Retry, resumable transfers, and logging to BigQuery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI &amp;amp; Cybersecurity&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anomaly detection on transfer logs (Isolation Forest/Random Forest).&lt;/li&gt;
&lt;li&gt;Predictive modeling of transfer times and failures.&lt;/li&gt;
&lt;li&gt;AI-driven firewall rules — detect unusual IPs, ports, or traffic spikes.&lt;/li&gt;
&lt;li&gt;Auto-block suspicious transfers and alert via Pub/Sub or Slack webhook.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Firewall + Network Layer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lightweight Python-based firewall for transfer sessions (IP whitelisting, geofencing).&lt;/li&gt;
&lt;li&gt;Logs connection attempts into BigQuery or Postgres.&lt;/li&gt;
&lt;li&gt;AI engine detects brute force or abnormal packet patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Database Security Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Secure transfer of database dumps (MySQL, Postgres) to GCS with encryption.&lt;/li&gt;
&lt;li&gt;Verify dump integrity using digital signatures (SHA-256/ECDSA).&lt;/li&gt;
&lt;li&gt;Auto-cleanup + lifecycle policies for compliance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example Usage&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Install
pip install sentinelmft

from sentinelmft import TransferManager, FirewallAI

# Transfer a file to GCS with encryption
tm = TransferManager()
tm.upload_secure("backup.sql", "my-bucket", "secure/backup.sql")

# Predict transfer time
print("Estimated time:", tm.predict_transfer_time("backup.sql"))

# Run AI firewall check
fw = FirewallAI()
if fw.is_suspicious("192.168.1.10"):
    print("Blocked suspicious IP!")

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  CLI
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Encrypt &amp;amp; transfer
sentinelmft transfer --src backup.sql --dst gs://my-bucket/secure/ --encrypt

# Train AI anomaly model
sentinelmft ai-train --logfile transfers.csv

# Run firewall in learning mode
sentinelmft firewall --mode ai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.9+&lt;/li&gt;
&lt;li&gt;Google Cloud SDKs (google-cloud-storage, google-cloud-secret-manager)&lt;/li&gt;
&lt;li&gt;Cryptography (cryptography package)&lt;/li&gt;
&lt;li&gt;AI/ML (scikit-learn, pandas)&lt;/li&gt;
&lt;li&gt;Database (psycopg2, sqlalchemy)&lt;/li&gt;
&lt;li&gt;Firewall (scapy or pydivert for traffic inspection)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprises needing AI-driven MFT + firewall in one tool.&lt;/li&gt;
&lt;li&gt;Healthcare/Finance — secure regulated data transfers with compliance logs.&lt;/li&gt;
&lt;li&gt;DevOps — push encrypted DB backups to GCS + anomaly detection.&lt;/li&gt;
&lt;li&gt;IoT/Edge — secure telemetry file transfer with auto-blocking of rogue nodes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why It’s Unique&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unlike typical MFT tools, sentinelmft combines:&lt;/li&gt;
&lt;li&gt;File transfer + cryptography + AI predictions + firewall protection&lt;/li&gt;
&lt;li&gt;Works across cloud + on-prem + databases&lt;/li&gt;
&lt;li&gt;Provides a single package for security, automation, and intelligence&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Copyright (c) 2025 Raghava Chellu

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>googlecloud</category>
      <category>python</category>
      <category>ai</category>
      <category>security</category>
    </item>
    <item>
      <title>AI Meets Managed File Transfer: gcp-mft-ai for Google Cloud Storage, Filestore &amp; STS</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Sun, 14 Sep 2025 18:08:39 +0000</pubDate>
      <link>https://dev.to/raghavachellu/ai-meets-managed-file-transfer-gcp-mft-ai-for-google-cloud-storage-filestore-sts-1di7</link>
      <guid>https://dev.to/raghavachellu/ai-meets-managed-file-transfer-gcp-mft-ai-for-google-cloud-storage-filestore-sts-1di7</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;AI-powered Managed File Transfer for Google Cloud (GCS, Filestore, Storage Transfer Service)&lt;/p&gt;

&lt;p&gt;gcp-mft-ai is an open-source, production-grade Python library that transforms traditional file transfers on Google Cloud Platform (GCP) into intelligent, ML-optimized, secure operations.&lt;/p&gt;

&lt;p&gt;It automates, predicts, protects, and optimizes file movement across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Cloud Storage (GCS)&lt;/li&gt;
&lt;li&gt;Cloud Filestore (NFS-based File System)&lt;/li&gt;
&lt;li&gt;Storage Transfer Service (STS API)&lt;/li&gt;
&lt;li&gt;Designed for large-scale enterprises, DevOps engineers, and AI/ML pipelines, gcp-mft-ai brings the future of AI-enhanced Managed File Transfer (MFT) into your cloud workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upload/download large files intelligently&lt;/li&gt;
&lt;li&gt;AES-256 encryption support&lt;/li&gt;
&lt;li&gt;Predict transfer time with ML&lt;/li&gt;
&lt;li&gt;Optimize best transfer windows&lt;/li&gt;
&lt;li&gt;Detect anomalies in transfer logs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Core Capabilities
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Multi-Service MFT&lt;/strong&gt;: GCS bucket transfers, Filestore filesystem moves, GCP Storage Transfer Service orchestration&lt;br&gt;
&lt;strong&gt;Encryption at Source&lt;/strong&gt;: AES-256-GCM authenticated encryption (optional per transfer)&lt;br&gt;
&lt;strong&gt;ML-Based Transfer Time Prediction&lt;/strong&gt;: Predict upload/download times using Linear Regression or Random Forest models&lt;br&gt;
&lt;strong&gt;Anomaly Detection&lt;/strong&gt;: Identify unusual slowdowns, spikes, or transfer errors automatically using Isolation Forest&lt;br&gt;
&lt;strong&gt;Transfer Window Optimization&lt;/strong&gt;: Find the best network window (hour of day) to minimize congestion and maximize throughput&lt;br&gt;
&lt;strong&gt;Resilient Transfers&lt;/strong&gt;: Automatic retries, resumable uploads for large objects, GCP API throttling handling&lt;br&gt;
&lt;strong&gt;Config-Driven Automation&lt;/strong&gt;: Manage all settings via simple YAML or JSON configuration files&lt;/p&gt;

&lt;h2&gt;
  
  
  Internal Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GCS Transfers&lt;/strong&gt;: Built atop the google-cloud-storage SDK for resumable, secure, and reliable object transfers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filestore Transfers&lt;/strong&gt;: Abstracted over NFS filesystem mounts, allowing simple shutil-based secure moves between instances or buckets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage Transfer Service API&lt;/strong&gt;: Dynamically creates and monitors cloud-to-cloud transfer jobs via authenticated REST API calls (fully IAM compliant).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prediction Engine&lt;/strong&gt;: &lt;br&gt;
i) Trained on historical transfer data (file_size_mb, transfer_time_sec)supports &lt;br&gt;
ii) Linear Regression (lightweight, fast)&lt;br&gt;
iii) Random Forest (higher-accuracy, non-linear patterns)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anomaly Detection&lt;/strong&gt;: Isolation Forest model isolates unusual file size vs time behavior — flagging spikes, failures, and risks early.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encryption Layer&lt;/strong&gt;: AES-256 encryption with GCM mode ensures data integrity and confidentiality before movement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optimization Layer&lt;/strong&gt;: Hour-by-hour analysis of historical transfer speeds to recommend the best operational windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security-First Design
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Encryption&lt;/strong&gt;: Native AES-256-GCM encryption/decryption for any file before or after cloud storage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Token Management&lt;/strong&gt;: Secure OAuth2 token usage for Storage Transfer Service API access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No plaintext secrets&lt;/strong&gt;: Designed for service account usage via environment or config.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage Overview
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Upload to GCS&lt;/strong&gt;: upload_to_gcs(source_path, bucket, destination_path)&lt;br&gt;
&lt;strong&gt;Download from GCS&lt;/strong&gt;: download_from_gcs(blob_name, bucket, destination_path)&lt;br&gt;
&lt;strong&gt;Upload to Filestore&lt;/strong&gt;: upload_to_filestore(source_path, mount_point, relative_path)&lt;br&gt;
&lt;strong&gt;Launch Storage Transfer Job&lt;/strong&gt;: launch_storage_transfer_job(source_bucket, destination_bucket, project_id)&lt;br&gt;
&lt;strong&gt;Predict Transfer Time&lt;/strong&gt;: predict_transfer_time(file_size_mb)&lt;br&gt;
Detect Anomalies: detect_transfer_anomalies(csv_log_path)&lt;br&gt;
&lt;strong&gt;Find Best Transfer Window&lt;/strong&gt;: find_best_transfer_window(csv_log_path)&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Media &amp;amp; Entertainment&lt;/strong&gt;: Migrate large UHD videos to GCS for editing pipelines&lt;br&gt;
&lt;strong&gt;AI/ML Model Training&lt;/strong&gt;: Transfer terabyte datasets securely and predictably to TPU training zones&lt;br&gt;
&lt;strong&gt;Backup &amp;amp; Disaster Recovery&lt;/strong&gt;: Automate and encrypt cross-region backup uploads with anomaly alerting&lt;br&gt;
&lt;strong&gt;Healthcare &amp;amp; Finance&lt;/strong&gt;: Securely move critical records across cloud environments with end-to-end encryption&lt;br&gt;
&lt;strong&gt;Retail Analytics&lt;/strong&gt;: Optimize massive log file ingestion pipelines to GCP data lakes&lt;/p&gt;

&lt;h2&gt;
  
  
  Technology Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.7+&lt;/li&gt;
&lt;li&gt;Google Cloud SDKs (google-cloud-storage, requests)&lt;/li&gt;
&lt;li&gt;Cryptography (AES-256-GCM secure cipher)&lt;/li&gt;
&lt;li&gt;scikit-learn (ML Models: Linear Regression, Random Forest, Isolation Forest)&lt;/li&gt;
&lt;li&gt;pandas (Data preparation for ML)&lt;/li&gt;
&lt;li&gt;pyyaml (Config loading)&lt;/li&gt;
&lt;li&gt;joblib (Model persistence)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  MIT License
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Author: Raghava Chellu

MIT License is freely usable for academic, personal, and commercial projects.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install gcp-mft-ai
Deployment Readiness
PyPI-ready (setup.py, pyproject.toml)

Full unit testing (unittest framework)

Full documentation (README.md, examples/)

Cloud deployment friendly (Docker/CI/CD pipelines)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Traditional file transfers are simple. Modern file transfers must be intelligent, secure, and predictive. gcp-mft-ai brings cutting-edge AI and cloud-native automation to Managed File Transfer on Google Cloud securing your data, optimizing your operations, and helping you move smarter, stronger, and faster.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>vaultlock-py: Unified Secret Management &amp; Encryption for GCP and HashiCorp Vault</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Sun, 14 Sep 2025 17:58:24 +0000</pubDate>
      <link>https://dev.to/raghavachellu/vaultlock-py-unified-secret-management-encryption-for-gcp-and-hashicorp-vault-jgo</link>
      <guid>https://dev.to/raghavachellu/vaultlock-py-unified-secret-management-encryption-for-gcp-and-hashicorp-vault-jgo</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;vaultlock-py is a secure Python library designed to unify and simplify secret management, cryptographic key handling, and secure operations across Google Cloud Secret Manager, Google Cloud KMS, and HashiCorp Vault.&lt;/p&gt;

&lt;p&gt;Built with DevSecOps, cloud-native security, and modern cryptographic best practices in mind, this library allows Python developers and cloud engineers to lock down secrets, encrypt sensitive data, and securely integrate external key management systems into their apps or CI/CD pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;vaultlock-py offers a powerful and unified key management interface that allows developers to manage, rotate, and retrieve secrets securely across platforms such as Google Cloud Secret Manager, HashiCorp Vault, and Google Cloud KMS. It supports end-to-end encryption using robust standards like AES-256, and enables envelope encryption with cloud-managed keys for enhanced security. The library includes a suite of command-line tools that make it easy to encrypt and decrypt files, manage secrets, and validate secure access from any environment. Designed with compliance and traceability in mind, vaultlock-py provides audit-friendly logging and access visibility, making it ideal for regulated environments. Its modular and extensible architecture ensures that users can selectively adopt components based on their infrastructure needs, whether they're working solely with Vault, KMS, or Secret Manager. Built with cloud-native principles, the library integrates seamlessly into modern CI/CD pipelines, Kubernetes clusters, and cloud-based applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Encrypting sensitive config files before storage.&lt;/li&gt;
&lt;li&gt;Centralized secret retrieval in production microservices.&lt;/li&gt;
&lt;li&gt;Secure data exchange across cloud environments.&lt;/li&gt;
&lt;li&gt;Building compliance-aware automation for regulated industries.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technologies Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Google Cloud Secret Manager&lt;/li&gt;
&lt;li&gt;HashiCorp Vault&lt;/li&gt;
&lt;li&gt;Google Cloud KMS&lt;/li&gt;
&lt;li&gt;HashiCorp Vault via hvac library&lt;/li&gt;
&lt;li&gt;Python 3.8+&lt;/li&gt;
&lt;li&gt;Follows PEP 621 and pyproject.toml standards&lt;/li&gt;
&lt;li&gt;Designed for use in CI/CD and container environments&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install vaultlock-py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  CLI Usage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python -m vaultlock.cli --mode gcp --action create --project_id=my-project --path=my-secret --value=secret123
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;This README provides an overview, installation, usage examples (CLI and code), and a brief mention of how it works and license. In an actual project, one might expand the README with troubleshooting tips or more details on authentication.&lt;/p&gt;

&lt;h2&gt;
  
  
  MIT License
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Copyright (c) 2025 Raghava Chellu

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  PyPI Link:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[![PyPI Downloads](https://static.pepy.tech/personalized-badge/vaultlock-py?period=total&amp;amp;units=INTERNATIONAL_SYSTEM&amp;amp;left_color=BLACK&amp;amp;right_color=GREEN&amp;amp;left_text=downloads)](https://pepy.tech/projects/vaultlock-py)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>netcryptx: Secure Socket Communication &amp; Encrypted Tunneling for Python</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Sun, 14 Sep 2025 17:52:02 +0000</pubDate>
      <link>https://dev.to/raghavachellu/netcrypt-secure-socket-communication-encrypted-tunneling-for-python-1oe9</link>
      <guid>https://dev.to/raghavachellu/netcrypt-secure-socket-communication-encrypted-tunneling-for-python-1oe9</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;In today’s distributed systems and cloud-native apps, data-in-transit security is no longer optional — it’s mandatory. Whether you’re sending files, running IoT services, or just building a secure messaging protocol, you need encryption that’s easy to set up and hard to break.&lt;/p&gt;

&lt;p&gt;That’s why I built netcrypt, a Python library for encrypted sockets and tunneling. It combines the simplicity of Python sockets with the strength of AES and RSA encryption, making it easier than ever to secure your networked applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AES &amp;amp; Fernet Encryption — fast symmetric encryption for secure data-in-transit.&lt;/li&gt;
&lt;li&gt;RSA Key Generation — asymmetric encryption support for key exchange &amp;amp; signing.&lt;/li&gt;
&lt;li&gt;Encrypted TCP Sockets — secure client-server communication with minimal boilerplate.&lt;/li&gt;
&lt;li&gt;Secure Tunneling — simple CLI to spin up encrypted tunnels (client/server).&lt;/li&gt;
&lt;li&gt;Threaded Mode — run tunnels in the background for persistent services.&lt;/li&gt;
&lt;li&gt;CLI Tools — manage keys, tunnels, and sessions directly from the terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Installation&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install netcryptx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage Examples
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Generate AES Key
netcryptx keygen --generate --keyfile aes.key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Start a Secure Tunnel
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Server:

netcryptx tunnel --mode server --keyfile aes.key --host 0.0.0.0 --port 9000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Client:

netcryptx tunnel --mode client --keyfile aes.key --host 127.0.0.1 --port 9000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Generate RSA Key Pair
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;netcryptx rsagen --out-private rsa_private.pem --out-public rsa_public.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Project Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;netcryptx/
├── encryptors.py     # AES, RSA, Fernet encryption logic
├── key_manager.py    # Key handling &amp;amp; persistence
├── sockets.py        # Secure socket wrappers
├── tunnel.py         # Encrypted tunnel orchestration
├── cli.py            # Command-line interface
└── __init__.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Run Tests
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pytest tests/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why Use netcryptx?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Secure-by-default — avoids insecure defaults, ships with AES-256 and RSA baked in.&lt;/li&gt;
&lt;li&gt;Developer-friendly — run tunnels or manage keys with one-liners.&lt;/li&gt;
&lt;li&gt;Lightweight — no heavy external dependencies, just clean Python.&lt;/li&gt;
&lt;li&gt;Versatile — works for IoT devices, cloud services, or local dev setups.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MIT © 2025 Raghava Chellu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install netcryptx

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>networking</category>
      <category>python</category>
      <category>security</category>
    </item>
    <item>
      <title>Bringing Blockchain-Grade Security to IoT and Edge Systems with nanoedge-pki</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Sun, 14 Sep 2025 17:42:55 +0000</pubDate>
      <link>https://dev.to/raghavachellu/bringing-blockchain-grade-security-to-iot-and-edge-systems-with-nanoedge-pki-4ba</link>
      <guid>https://dev.to/raghavachellu/bringing-blockchain-grade-security-to-iot-and-edge-systems-with-nanoedge-pki-4ba</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;NanoEdge PKI is a high-performance, compact, and purpose-built cryptographic library that brings secure public key infrastructure (PKI) capabilities to environments where traditional security libraries may be too large or inefficient. This library is specifically optimized for resource-constrained devices, such as Internet of Things (IoT) sensors, edge gateways, wearables, industrial embedded systems, and nano-scale computing units that are increasingly deployed in the modern digital ecosystem.&lt;/p&gt;

&lt;p&gt;As the need for decentralized, secure communication continues to grow—especially in smart manufacturing, healthcare, agriculture, and automotive telemetry—systems must exchange sensitive data without relying on centralized trust or powerful CPUs. nanoedge-pki helps bridge this gap by enabling each device to authenticate, sign, and verify messages using Elliptic Curve Cryptography (ECC), which offers strong cryptographic guarantees at a fraction of the computational cost of traditional algorithms like RSA.&lt;/p&gt;

&lt;p&gt;This library uses the secp256k1 curve, the same proven curve used in Bitcoin and Ethereum blockchain technologies. It provides excellent security (128-bit strength) with very small key sizes, making it ideal for low-bandwidth networks and low-power processors. This is especially beneficial in mesh networks, telemetry buses, and rural edge deployments where every byte and CPU cycle counts.&lt;/p&gt;

&lt;p&gt;By integrating nanoedge-pki, developers can:&lt;/p&gt;

&lt;p&gt;Secure data-in-motion with digital signatures&lt;/p&gt;

&lt;p&gt;Establish trust between previously unknown devices&lt;/p&gt;

&lt;p&gt;Prevent tampering of transmitted commands or telemetry&lt;/p&gt;

&lt;p&gt;Comply with data integrity requirements for regulated edge applications&lt;/p&gt;

&lt;p&gt;The library is built entirely using Node.js's native crypto module, which ensures reliability, forward compatibility, and minimal external dependencies. This makes it portable and suitable for environments like Raspberry Pi, Jetson Nano, ESP32 gateways running Node.js, or serverless verification services in the cloud.&lt;/p&gt;

&lt;p&gt;In essence, nanoedge-pki is not just a cryptographic utility—it is a foundational building block for zero-trust device ecosystems, where security must be enforced even between internal components. Whether you're building smart drones, remote monitoring stations, or micro-robotic systems, this library empowers you to secure your data streams at the edge—where it matters most.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub: https://github.com/RaghavaCh440/nanoedge-pki
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Generate elliptic curve key pairs (secp256k1):
&lt;/h2&gt;

&lt;p&gt;This feature allows devices or applications to generate their own public-private key pairs using the secp256k1 elliptic curve, a cryptographic standard known for its efficiency and security. These keys form the backbone of device identity and secure communication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sign messages using ECDSA with SHA-256:
&lt;/h2&gt;

&lt;p&gt;nanoedge-pki enables digital signing of messages using the Elliptic Curve Digital Signature Algorithm (ECDSA) combined with SHA-256 hashing. This ensures data integrity and non-repudiation, so recipients can verify that a message hasn't been tampered with and was sent by a trusted device.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify signatures against signed payloads:
&lt;/h2&gt;

&lt;p&gt;With the ability to verify ECDSA signatures, devices or services can check whether incoming data truly originates from a known and trusted source, making it a crucial feature for mutual authentication and secure protocol handshakes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built using Node.js native crypto module (no external dependencies):
&lt;/h2&gt;

&lt;p&gt;The library relies entirely on Node.js's built-in crypto module, which ensures high performance, long-term stability, and compatibility across environments without the need for compiling or installing native add-ons.&lt;/p&gt;

&lt;h2&gt;
  
  
  Suitable for secure nano/micro device authentication:
&lt;/h2&gt;

&lt;p&gt;Designed with microcontrollers and nano-devices in mind, nanoedge-pki supports secure authentication between ultra-small hardware agents and edge nodes. This is essential in scenarios like secure firmware updates or telemetry reporting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lightweight and fast—perfect for edge computing, IoT, and embedded ML devices:
&lt;/h2&gt;

&lt;p&gt;The small footprint and fast elliptic curve operations make this library ideal for low-latency environments such as real-time sensors, ML inferencing at the edge, or robotics, where every millisecond and byte counts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Low-memory and low-CPU compatible:
&lt;/h2&gt;

&lt;p&gt;ECC is significantly more efficient than RSA in constrained environments. This makes the library practical on devices with limited RAM and CPU power.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plug-and-play integration:
&lt;/h2&gt;

&lt;p&gt;The simple API allows developers to drop this library into any existing edge or server-side project to immediately add PKI support with minimal boilerplate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Secure by design:
&lt;/h2&gt;

&lt;p&gt;Keys are exported in PEM format, and cryptographic primitives follow modern standards, reducing the chances of accidental misconfiguration or cryptographic flaws.&lt;/p&gt;

&lt;h2&gt;
  
  
  Portable across platforms:
&lt;/h2&gt;

&lt;p&gt;Runs on any system that supports Node.js, including Linux, macOS, Raspberry Pi, and even lightweight container environments like Alpine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install nanoedge-pki
Usage
const { generateKeyPair, signMessage, verifyMessage } = require('nanoedge-pki');

// Step 1: Generate ECC key pair
const { publicKey, privateKey } = generateKeyPair();

// Step 2: Sign a message
const message = 'temperature=21.3&amp;amp;device_id=sensor001';
const signature = signMessage(message, privateKey);

// Step 3: Verify the message
const isValid = verifyMessage(message, signature, publicKey);
console.log('Signature valid:', isValid); // true or false

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Directory Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nanoedge-pki/
├── index.js                # Public interface
├── lib/
│   └── crypto.js           # Core cryptographic logic
├── package.json
├── LICENSE
└── README.md

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Cryptographic Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Uses secp256k1 (same as Bitcoin/Ethereum)&lt;/li&gt;
&lt;li&gt;Fast and secure with compact key sizes&lt;/li&gt;
&lt;li&gt;Ideal for nano-devices, mesh networks, and bandwidth-constrained systems&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Secure authentication between sensor nodes and gateways&lt;/li&gt;
&lt;li&gt;Lightweight digital signatures for data integrity in edge computing&lt;/li&gt;
&lt;li&gt;Verifying firmware updates or data packets from constrained hardware&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MIT License

Copyright (c) 2025 Raghava Chellu

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Made with by Raghava Chellu
GitHub: @raghavachellu

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>blockchain</category>
      <category>iot</category>
      <category>security</category>
    </item>
    <item>
      <title>secure-pubsub-bridge: End-to-End RSA Encryption for Google Cloud Pub/Sub</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Sun, 14 Sep 2025 17:32:13 +0000</pubDate>
      <link>https://dev.to/raghavachellu/secure-pubsub-bridge-end-to-end-rsa-encryption-for-google-cloud-pubsub-gfg</link>
      <guid>https://dev.to/raghavachellu/secure-pubsub-bridge-end-to-end-rsa-encryption-for-google-cloud-pubsub-gfg</guid>
      <description>&lt;h2&gt;
  
  
  Overview:
&lt;/h2&gt;

&lt;p&gt;Cloud-native systems are becoming increasingly interconnected. Whether you’re building microservices, cross-cloud pipelines, or hybrid applications, secure message delivery is a critical requirement.&lt;/p&gt;

&lt;p&gt;Google Cloud Pub/Sub is a fantastic messaging backbone, but by default, messages rely on IAM and TLS in transit — which is great, but not always enough for sensitive workloads that demand end-to-end encryption.&lt;/p&gt;

&lt;p&gt;That’s where secure-pubsub-bridge comes in. &lt;/p&gt;

&lt;p&gt;It’s a lightweight Node.js library that adds an extra layer of security by encrypting Pub/Sub messages with RSA public-key cryptography before publishing. On the subscriber side, you decrypt messages with your private key, ensuring that only trusted consumers can see the payload.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;RSA-based Encryption — Protects sensitive data beyond standard TLS.&lt;/p&gt;

&lt;p&gt;Encrypted Publish — Seamlessly publish encrypted messages to Pub/Sub topics.&lt;/p&gt;

&lt;p&gt;Secure Subscribe &amp;amp; Decrypt — Automatically decrypt messages when subscribing.&lt;/p&gt;

&lt;p&gt;Key Management — Generate RSA key pairs for your apps.&lt;/p&gt;

&lt;p&gt;Cloud-Native — Ideal for GCP services, Cloud Run, or multi-cloud bridges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install secure-pubsub-bridge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Generate RSA Key Pair
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { generateKeyPair } = require('secure-pubsub-bridge');

const keys = generateKeyPair();
console.log("Public Key:", keys.publicKey);
console.log("Private Key:", keys.privateKey);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives you PEM-formatted RSA keys. You’ll typically store them in Secret Manager or as environment variables.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Publish an Encrypted Message
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { publishEncryptedMessage } = require('secure-pubsub-bridge');

await publishEncryptedMessage('my-topic', { secret: 'data' });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of plain JSON, your payload is encrypted before it leaves your service.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Subscribe and Decrypt
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { subscribeAndDecrypt } = require('secure-pubsub-bridge');

subscribeAndDecrypt('my-subscription', (data) =&amp;gt; {
  console.log('Decrypted Data:', data);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Consumers automatically decrypt messages using their private key, giving you true end-to-end confidentiality.&lt;/p&gt;

&lt;p&gt;Environment Variables&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PUBLIC_KEY="-----BEGIN PUBLIC KEY-----..."
PRIVATE_KEY="-----BEGIN PRIVATE KEY-----..."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set these before running your service so the library knows how to encrypt/decrypt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use This?
&lt;/h2&gt;

&lt;p&gt;Defense in Depth: Even if Pub/Sub logs, IAM roles, or transport security are compromised, your payloads stay safe.&lt;/p&gt;

&lt;p&gt;Regulatory Compliance: Helps meet requirements for HIPAA, PCI-DSS, or GDPR by ensuring sensitive data isn’t transmitted in the clear.&lt;/p&gt;

&lt;p&gt;Multi-Cloud Messaging: Securely bridge Google Cloud services with AWS, Azure, or on-prem systems.&lt;/p&gt;

&lt;p&gt;Simplicity: Just drop in a few lines of code — no need to reinvent crypto pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example Use Cases
&lt;/h2&gt;

&lt;p&gt;Healthcare: Transmitting patient data between cloud services securely.&lt;/p&gt;

&lt;p&gt;Finance: Sending transaction events without exposing raw payloads.&lt;/p&gt;

&lt;p&gt;IoT: Encrypting device telemetry before it hits your processing pipeline.&lt;/p&gt;

&lt;p&gt;Hybrid Cloud: Secure messaging between on-prem systems and GCP Pub/Sub.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MIT © 2025 Raghava Chellu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  gitHub
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/RaghavaCh440/secure-pubsub-bridge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Try integrating it with Cloud Run or Workflows for secure, automated pipelines.&lt;/p&gt;

&lt;p&gt;Contribute! PRs are welcome for adding support for AES session keys or KMS integration.&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>node</category>
      <category>opensource</category>
      <category>security</category>
    </item>
    <item>
      <title>Stop Certificate Expiry Outages with certwatch-js: A Node.js SSL Health Monitor</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Sat, 14 Jun 2025 21:19:12 +0000</pubDate>
      <link>https://dev.to/raghavachellu/stop-certificate-expiry-outages-with-certwatch-js-a-nodejs-ssl-health-monitor-50f6</link>
      <guid>https://dev.to/raghavachellu/stop-certificate-expiry-outages-with-certwatch-js-a-nodejs-ssl-health-monitor-50f6</guid>
      <description>&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;certwatch-js is a lightweight Node.js library designed to monitor the validity and configuration of SSL/TLS certificates used by web services, APIs, and infrastructure endpoints. It programmatically retrieves certificate metadata such as issuer, subject, validity period, and expiration date by establishing a secure connection to the target host. This information is then evaluated to determine whether the certificate is close to expiration or misconfigured.&lt;/p&gt;

&lt;p&gt;By integrating certwatch-js into DevOps pipelines, you can proactively detect issues like upcoming certificate expiry, self-signed or untrusted certs, and misaligned subject details. This helps prevent production outages, security incidents, or compliance violations due to overlooked certificate renewals. The tool is ideal for security teams, cloud engineers, and platform reliability groups who want a programmatic safeguard against certificate-related risks.&lt;/p&gt;

&lt;p&gt;It can be run as a simple CLI check, scheduled cron job, or embedded into CI/CD workflows using tools like Jenkins, GitHub Actions, or GitLab CI. With minimal setup and no third-party dependencies, certwatch-js offers an efficient and portable way to enforce SSL hygiene across distributed systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install certwatch-js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { getCertificateInfo, checkCertExpiry } = require('certwatch-js');

// Get certificate metadata
getCertificateInfo("example.com").then(console.log);

// Alert if expiring within 15 days
checkCertExpiry("example.com", 15);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Output Example
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[example.com] Certificate is valid. Expires in 75 days (on 2025-08-23)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  API
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;getCertificateInfo(hostname, port = 443) Returns a Promise with:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;subject, issuer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;valid_from, valid_to&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;days_remaining&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;checkCertExpiry(hostname, daysThreshold = 30) Logs a warning if the cert expires within daysThreshold.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Monitor SSL expiry in CI/CD workflows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trigger alerts for public-facing certs nearing expiration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Audit security posture of DevOps infrastructure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integrate into logging/observability systems&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Library Download
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://www.npmjs.com/package/certwatch-js
https://github.com/RaghavaCh440/certwatch-js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Security &amp;amp; Compliance
&lt;/h2&gt;

&lt;p&gt;This library can help enforce certificate hygiene policies, reduce SSL-related outages, and support compliance goals such as PCI-DSS or SOC 2, where proactive certificate management is essential.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MIT License

Copyright (c) 2025 Raghava Chellu
Emailid : raghava.chellu@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Introducing netsec-analyzer: A DevOps-Friendly CLI to Scan Ports, Audit TLS, and Secure Linux</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Sat, 14 Jun 2025 21:07:05 +0000</pubDate>
      <link>https://dev.to/raghavachellu/introducing-netsec-analyzer-a-devops-friendly-cli-to-scan-ports-audit-tls-and-secure-linux-29mh</link>
      <guid>https://dev.to/raghavachellu/introducing-netsec-analyzer-a-devops-friendly-cli-to-scan-ports-audit-tls-and-secure-linux-29mh</guid>
      <description>&lt;h1&gt;
  
  
  netsec-analyzer
&lt;/h1&gt;

&lt;p&gt;A CLI tool to scan open ports, evaluate TLS configurations, and recommend Linux hardening practices.&lt;/p&gt;

&lt;p&gt;netsec-analyzer is a powerful command-line utility designed to assist DevOps engineers, cybersecurity professionals, and system administrators in identifying network vulnerabilities and improving server hardening practices. This tool offers rapid scanning of commonly used ports, audits TLS/SSL configurations for misconfigurations or weak ciphers, and provides actionable security recommendations for strengthening Linux-based server deployments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;Open Port Scanner Scans a set of well-known and commonly targeted ports (e.g., 22, 80, 443, 3306, 5432) on the specified host to detect potentially exposed services. This helps you identify unnecessary or misconfigured services that might be vulnerable to attacks.&lt;/p&gt;

&lt;p&gt;TLS/SSL Configuration Inspector Connects securely to the server via TLS and inspects the encryption suite in use. It reports protocol versions (e.g., TLS 1.2, TLS 1.3) and cipher algorithms (e.g., AES-256-GCM), enabling you to verify if strong encryption is enforced and deprecated standards are avoided.&lt;/p&gt;

&lt;p&gt;Linux Hardening Recommendations Offers a curated list of best practices for improving the baseline security posture of your Linux server. These include enforcing strong cipher policies, disabling unused services, applying patches, and securing SSH and firewall configurations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;Install netsec-analyzer globally using NPM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g netsec-analyzer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes the netsec-analyzer CLI available system-wide.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;Once installed, simply run the tool against a target host:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;netsec-analyzer scan &amp;lt;host&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  This command will:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Scan a predefined list of TCP ports on example.com to detect open services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Initiate a secure TLS handshake with port 443 to extract cipher suite and protocol version information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output a list of system hardening tips relevant to Linux environments.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scanning common ports on example.com...
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Port 22 is open&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Port 443 is open&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Checking TLS config on example.com...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cipher: TLS_AES_256_GCM_SHA384, Version: TLSv1.3&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hardening Suggestions:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Disable deprecated protocols (e.g., TLS 1.0/1.1)&lt;/li&gt;
&lt;li&gt;Enforce strong cipher suites only&lt;/li&gt;
&lt;li&gt;Enable SSH key-based login; disable root login&lt;/li&gt;
&lt;li&gt;Close unused ports using iptables or firewalld&lt;/li&gt;
&lt;li&gt;Apply OS patches and audit user access regularly&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Audit your Linux servers before production deployment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Periodically verify TLS security postures and cipher hygiene.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Educate junior DevOps/SRE team members on system hardening.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integrate into CI/CD pipelines as a security gate.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NPM Download&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://www.npmjs.com/package/netsec-analyzer
https://github.com/RaghavaCh440/netsec-analyzer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Security Considerations
&lt;/h2&gt;

&lt;p&gt;netsec-analyzer performs non-intrusive, read-only scans and does not attempt to exploit any vulnerabilities. It is intended solely for authorized internal use and ethical security auditing.&lt;/p&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MIT License

Copyright (c) 2025 Raghava Chellu
Email: raghava.mftsolutions@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights  
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell     
copies of the Software, and to permit persons to whom the Software is         
furnished to do so, subject to the following conditions:                      

The above copyright notice and this permission notice shall be included in    
all copies or substantial portions of the Software.                           

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR    
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,      
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE   
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES S, OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Prevent File Transfer Breaches: Audit MFT Firewall Setup with mftfwscan</title>
      <dc:creator>Raghava Chellu</dc:creator>
      <pubDate>Fri, 06 Jun 2025 22:32:57 +0000</pubDate>
      <link>https://dev.to/raghavachellu/prevent-file-transfer-breaches-audit-mft-firewall-setup-with-mftfwscan-494k</link>
      <guid>https://dev.to/raghavachellu/prevent-file-transfer-breaches-audit-mft-firewall-setup-with-mftfwscan-494k</guid>
      <description>&lt;h2&gt;
  
  
  Project description
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;mftfwscan&lt;/code&gt; is a specialized command-line toolkit designed to simulate, validate, and audit firewall and Network Address Translation (NAT) rules specifically tailored for Managed File Transfer (MFT) environments. In secure enterprise data flows, MFT protocols like SFTP, FTPS, AS2, and HTTPS typically require well-defined inbound and outbound port configurations, as well as NAT traversal setups to accommodate internal services behind firewalls or proxies. Misconfigured rules in these systems such as open high ports, overly permissive source IPs, or missing TLS protections can expose sensitive data or create compliance violations.&lt;/p&gt;

&lt;p&gt;This tool enables system administrators, DevOps engineers, and security teams to programmatically define and simulate what a secure rule set should look like for a given MFT protocol, then audit real or proposed configurations for common misconfigurations. It outputs rule formats compatible with widely used firewall systems like iptables, Google Cloud Platform (GCP) firewall rules, and AWS Security Group policies. Furthermore, mftfwscan highlights potentially insecure practices such as "allow all" source ranges or unencrypted protocol ports, helping teams proactively harden their infrastructure.&lt;/p&gt;

&lt;p&gt;By integrating MFT protocol awareness with static rule validation, mftfwscan fills a niche gap in firewall simulation tools bringing protocol specific insight into the traditionally generic firewall configuration space. This allows for both real-time validation during DevOps CI/CD workflows and offline auditing of legacy infrastructure policies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Simulate inbound port rules for SFTP, FTPS, AS2, and Passive FTP&lt;/li&gt;
&lt;li&gt;Identify potential misconfigurations like open high ports or unrestricted sources&lt;/li&gt;
&lt;li&gt;Export rules as iptables, GCP firewall, or AWS security group formats&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ pip install .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ mftfwscan --service SFTP --export iptables
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Python 3.7+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Example Output
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ mftfwscan --service SFTP --export iptables
-A INPUT -p tcp --dport 22 -s 0.0.0.0/0 -j ACCEPT
[!] Rule open to all IPs for port 22
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Author and OpenSource Links
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Raghava Chellu
raghava.chellu@gmail.com
https://pypi.org/project/mftfwscan/
https://github.com/RaghavaCh440/mftfwscan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  == LICENSE (MIT) ==
&lt;/h2&gt;

&lt;p&gt;MIT License&lt;/p&gt;

&lt;p&gt;Copyright (c) 2025 Raghava Chellu&lt;/p&gt;

&lt;p&gt;Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:&lt;/p&gt;

&lt;p&gt;The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.&lt;/p&gt;

&lt;p&gt;THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
