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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ulinzilogs-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 58094a381ebee0b7c0e1da8e829631ac07cfd6290295acbd7c8bb13bfcb46e95
MD5 a848f87497bf5a397359dd1b6ba2a1fa
BLAKE2b-256 1f1d4fb4ba9d80eb24ef9553acd1ea2a16e2e6dd5aec8af75a4900733bba4e50

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ulinzilogs-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d1cae0b969222752644b821ca80d4d859721a30b8dbc0d362dc31e9ca5d6fc6a
MD5 f8676c4b2a760035969f905df4b078f3
BLAKE2b-256 6ca9505a8a7cbe7f94cb5b38886f3dbfc5f5ac4ac9ca45bce5644cfcb785c2bb

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