Skip to main content

Ulinzilogs ๐Ÿ›ก๏ธ

Lightweight, nonโ€‘blocking security logging middleware for Python web apps Built for developers who want visibility without performance pain.


๐ŸŒ What is Ulinzilogs?

Ulinzilogs is a securityโ€‘focused middleware that silently watches incoming HTTP requests in your Python web application, redacts sensitive data, and ships sanitized logs to the Ulinzi Security API for AIโ€‘powered threat analysis.

Think of it as:

๐Ÿ” A security camera for your API โ€” always on, never in the way.


โœจ Key Features

  • ๐Ÿš€ Nonโ€‘Blocking by Design โ€” Uses background threads so your request/response cycle stays fast.
  • ๐Ÿ”’ Automatic Data Redaction โ€” Sensitive fields are replaced with [REDACTED] before leaving your server.
  • ๐ŸŒ Multiโ€‘Framework Support โ€” Works out of the box with FastAPI, Flask, and Django.
  • ๐Ÿงน Clean & Safe Headers โ€” Excludes Authorization and Cookie headers automatically.

๐Ÿ“ฆ Installation

Install only what your stack needs:

# FastAPI / Starlette
pip install ulinzilogs[fastapi]

# Flask
pip install ulinzilogs[flask]

# Django
pip install ulinzilogs[django]

# All frameworks
pip install ulinzilogs[all]

๐Ÿ”‘ Getting Your Project Key

After installing, run:

ulinzi-init

This generates a unique Project Key for your app and prints setup instructions.

โš ๏ธ Important: This key is generated locally on your machine. To activate it, copy the key and register it at ulinzilogs.com. Once registered, your dashboard will start receiving logs from your app.


โš™๏ธ Setup & Usage

๐ŸŸข FastAPI

from fastapi import FastAPI
from ulinzilogs import UlinziFastAPIMiddleware

app = FastAPI()

app.add_middleware(
    UlinziFastAPIMiddleware,
    api_key="YOUR_ULINZI_KEY"
)

@app.get("/")
async def root():
    return {"message": "Protected by Ulinzi"}

๐Ÿ”ต Flask

from flask import Flask
from ulinzilogs import UlinziFlaskMiddleware

app = Flask(__name__)
UlinziFlaskMiddleware(app, api_key="YOUR_ULINZI_KEY")

@app.route("/")
def hello():
    return "Protected by Ulinzi"

๐ŸŸฃ Django

In settings.py:

MIDDLEWARE = [
    # ... other middleware
    'ulinzilogs.UlinziDjangoMiddleware',
]

ULINZI_API_KEY = "YOUR_ULINZI_KEY"
ULINZI_APP_NAME = "MyDjangoApp"   # optional label shown in dashboard

๐Ÿง  How Ulinzilogs Works

Client Request โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Middleware โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Redact Sensitive โ”‚ โ”‚ Fields & Headers โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ (Background Thread) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Send to Ulinzi โ”‚ โ”‚ Security API โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ AI Threat Analysis โ”‚ โ”‚ (SQLi, XSS, etc.) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

  1. Intercept โ€” Captures request metadata (IP, URL, method, body).
  2. Redact โ€” Removes secrets before transmission.
  3. Dispatch โ€” Sends logs asynchronously in a background thread.
  4. Analyze โ€” Central AI scans for malicious patterns.

๐Ÿ” Sensitive Data Protection

The following keys are automatically redacted:

Field Redacted?
password โœ… Yes
secret โœ… Yes
token โœ… Yes
key โœ… Yes
cvv โœ… Yes
api_key โœ… Yes

Example:

{
  "email": "user@mail.com",
  "password": "[REDACTED]"
}

Your users' secrets never leave your server in plaintext.


โšก Performance Philosophy

  • No request blocking
  • No database writes on your server
  • No logging delays

Ulinzilogs runs beside your app โ€” not inside its critical path.


๐Ÿงฉ Package Structure

ulinzilogs/ โ”œโ”€โ”€ init.py โ”œโ”€โ”€ middleware.py โ”œโ”€โ”€ utils.py โ”œโ”€โ”€ cli.py โ”œโ”€โ”€ pyproject.toml โ””โ”€โ”€ README.md


๐Ÿ“œ License

Copyright (c) 2026 PashyGeek. Licensed under the MIT License โ€” see the LICENSE file for details.

Download files

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

Source Distribution

ulinzilogs-0.1.14.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

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

ulinzilogs-0.1.14-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file ulinzilogs-0.1.14.tar.gz.

File metadata

  • Download URL: ulinzilogs-0.1.14.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ulinzilogs-0.1.14.tar.gz
Algorithm Hash digest
SHA256 61602c4f3e1b9c096e53c755e8189c0426a37ae5bfe93ed17751632bc3e1d11d
MD5 48feaef5fbc6e63439eeffa9ba1d4386
BLAKE2b-256 f99ca09697a2e1d99781d73548d267d4dd60f27486f49fbadb5bcf5252518ea5

See more details on using hashes here.

File details

Details for the file ulinzilogs-0.1.14-py3-none-any.whl.

File metadata

  • Download URL: ulinzilogs-0.1.14-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ulinzilogs-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 344dc0be2023621355cf04b05a87be0f7c783a867562e9c00f98541f833a1f74
MD5 e6d0542f9bdb4948637fb448dd9e47b0
BLAKE2b-256 76c83d438bbb1a69d698211ae153984531bdee3339968c2566e0d0d42ef1c104

See more details on using hashes here.

Supported by

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