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.5.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.5-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ulinzilogs-0.1.5.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.5.tar.gz
Algorithm Hash digest
SHA256 1ca6ae9ed4e0539d6333a88a32c4b645313b5e6c0d1ef9ac386683f33086eb9a
MD5 3c8702a7a3076f62dfbcc7e7b316c9f1
BLAKE2b-256 d4f0492cc5530021f304443a78cfc7a7c76ea9e9ba2dcf2f3a99e45f19640da8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ulinzilogs-0.1.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a9246b7380771f6f19df361beb59fad60a334c534e28e7aa09d197f9d839cd20
MD5 af07dfcaadb02498a8331d89ce2c891c
BLAKE2b-256 d541a8801323e3bc565c9564b6653e4b6132ec1ec5db9ee1436a92f4378ae006

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