Skip to main content

UBEL ( Unified Bill / Enforced Law ) – Multi‑Ecosystem Security & Policy Enforcement CLI

Ubel is a fast, cross‑ecosystem security engine that resolves dependencies, generates PURLs, scans them through OSV.dev, and enforces security policies during installation. It works with:

  • PyPI (via ubel-pip)
  • npm (via ubel-npm)
  • Linux distributions (Ubuntu, Debian, RHEL, AlmaLinux)

Ubel runs in CLI, automation scripts, and CI/CD pipelines, producing clean JSON and PDF reports.


✨ Features

  • Full dependency resolution across ecosystems
  • OSV.dev vulnerability scanning (batch API)
  • Policy engine (block/allow by severity & infection)
  • Checking linux-package or node/python dependency or entire project (check mode)
  • Install‑time enforcement (install mode)
  • Project‑level/Host-level scanning (health mode)
  • Catches Non-CVEs
  • It is a supply-chain protection tool
  • Automatic report generation (JSON + PDF)
  • Extremely fast (seconds per scan)

📦 Installation

pip install ubel

Ubel exposes three binaries:

  • ubel (Linux package scanning and OS-level operations: Ubuntu , Debian, Red Hat, Almalinux )
  • ubel-pip (Python ecosystem)
  • ubel-npm (Node.js ecosystem)

🚀 Usage Overview

Main CLI

usage: ubel [-h] {check,install,health,init,allow,block} [extra_args ...]

PyPI CLI

usage: ubel-pip [-h] {check,install,health,init,allow,block} [extra_args ...]

npm CLI

usage: ubel-npm [-h] {check,install,health,init,allow,block} [extra_args ...]

🧠 Commands Explained

check

Resolve dependencies/linux-packages → generate report → exit.

Python example:

ubel-pip check

If no extra arguments are passed, Ubel will:

  • Detect requirements.txt
  • Resolve all packages
  • Scan them
  • Output PDF + JSON

npm example:

ubel-npm check flask==3.1.0

If no args are passed, it will detect package.json automatically.


install

Same as check, but enforces policies and either blocks or allows installation.

Python example:

ubel-pip install flask==3.1.0

Or auto-detect project requirements:

ubel-pip install

npm example:

ubel-npm install express@5.0.0

Or simply:

ubel-npm install

(uses package.json automatically)


health

Scan the entire machine or running project, including:

  • Installed PyPI packages
  • Installed npm global packages
  • OS-level packages (Ubuntu/Debian/RHEL/AlmaLinux)

Example: ( for linux )

ubel health

or ( for node.js app )

ubel-npm health

or ( for python app )

ubel-pip health

This mode produces large, detailed inventories and vulnerability matrices.


init

Initialize a policy file for the project or system.

Example:

ubel init

Creates default policy:

infections: block
severity:
  critical: block
  high: block
  medium: allow
  low: allow
  unknown: allow

allow / block

Override Ubel's decision from CI/CD or scripted pipelines.

The arguments can be: "low", "medium", "high", "critical".

Example:

ubel block high critical

📁 Automatic Project Detection

For npm and PyPI, when running:

  • install
  • check

without arguments:

Ubel automatically loads:

  • package.json (for npm)
  • requirements.txt (for pip)

This makes it ideal for CI/CD workflows.


📤 Output

Ubel generates:

1. JSON report

Machine‑readable, includes:

  • dependency list
  • purls
  • vulnerabilities
  • severity
  • infection state
  • policy decision
  • Generate complete SBOM-like machine inventory

2. PDF report

Human‑readable, includes:

  • summary statistics
  • per‑dependency vulnerability details
  • fix recommendations
  • tables
  • OSV reference links
  • Generate complete SBOM-like machine inventory

🧩 Ecosystem Tools

  • ubel → system packages, Linux distros
  • ubel-pip → PyPI projects, virtual environments\
  • ubel-npm → Node.js, npm, package.json projects

Ubel – Secure every dependency, before it reaches production.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_ubel-0.1.0.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_ubel-0.1.0-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file python_ubel-0.1.0.tar.gz.

File metadata

  • Download URL: python_ubel-0.1.0.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for python_ubel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 92bbe646dac4b398ec910d9bf0d61b05f9cf09d20669232317754c3abfa8e1ff
MD5 a6ae3b2d601c4287412ddebcd19d08e2
BLAKE2b-256 0e2fafc0c6e0dcad3afa83c8fd3decd4300c37fae5f0a809bbbada8d306c35f2

See more details on using hashes here.

File details

Details for the file python_ubel-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: python_ubel-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for python_ubel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9d06dc938d9785c0fc6f6cdfe6452f00563dede3ba7b3a151d24beab5f43506
MD5 a5d08020ac386272c7b1df83c939af81
BLAKE2b-256 7a934bf5e564ccc16e0845c5dba5de20fafa4a2662a1f6962ad96e81e45ce0b7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page