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.6.tar.gz (7.1 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.6-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ulinzilogs-0.1.6.tar.gz
  • Upload date:
  • Size: 7.1 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.6.tar.gz
Algorithm Hash digest
SHA256 48f5c1a501d89946573f6ca8122271af016d5aa3591388f5fab0a9a087333679
MD5 cf7b8b040cd29f4eb95591cc8af4cf62
BLAKE2b-256 38d5153d588dd000748c470f5fda5cb78b2a2458aa647b77e396114ee614f2e9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ulinzilogs-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 6.9 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 35ed283161b12aeac2ea8afdc71b5256e183ae5fa2dca7d05f49135034fcd31e
MD5 56d53225efc8b42a9ecb17f200154059
BLAKE2b-256 2835b77cb4394c96537e2c787057cf0f66eff77ad4ff139c67de728226ae8e82

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