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.1.tar.gz (6.6 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.1-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ulinzilogs-0.1.1.tar.gz
  • Upload date:
  • Size: 6.6 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.1.tar.gz
Algorithm Hash digest
SHA256 b9c80001719628da8344e59089a3b0abfc3ef73037545cdde9645b94d98e8c6c
MD5 c90e927c9b9292901ecd44e4dfd43fba
BLAKE2b-256 6f92fbe98bc797a42f24fc4dd0c65e89841fa7dd7fc0e19092b637b8c1929cc5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ulinzilogs-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dace3da17317c7a2c9f8dad2805495d3c4bd78f6cf37b97301538f36ea66236e
MD5 6309a7602a5de63e3db37a8c9f682b37
BLAKE2b-256 83753d9f29a872a914645f1c9fe5e431662ad2cfceeb2b3f4d0f48206c6e6d5c

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