3 Followers
11 Following
11 Posts

Senior Python developer from Czech Republic
living in Bali
PEP8 forever

linkedin: https://www.linkedin.com/in/jan-dvorak-485992154/
github: https://github.com/dvoraj75

#python #developer #tech

Your Django ORM protects tenant data. Your raw SQL doesn't. 😬

That's why I built django-rls-tenants β€” multitenancy powered by PostgreSQL Row-Level Security, enforced at the database level.

πŸ”’ Every query is filtered β€” ORM, raw SQL, even dbshell
🚫 Missing tenant context? Zero rows returned, never a data leak
πŸ“¦ Single schema, no connection routing headaches
⚑ Drop-in: one base model, one middleware, done

Unlike schema-based or ORM-rewriting approaches, RLS policies live in PostgreSQL itself. The database becomes your last line of defense β€” not your app code.

Supports Python 3.11+, Django 4.2–6.0, PostgreSQL 15+.

Just shipped v1.0.0 πŸš€

pip install django-rls-tenants

πŸ“– Docs & source: https://github.com/dvoraj75/django-rls-tenants

Feedback, stars & contributions welcome! ⭐

#Django #Python #PostgreSQL #MultiTenancy #RowLevelSecurity #OpenSource #WebDev #SaaS #InfoSec #Database

GitHub - dvoraj75/django-rls-tenants: Database-enforced multitenancy for Django using PostgreSQL Row-Level Security. Every query -- ORM, raw SQL, dbshell -- is filtered by the database itself. Zero data leaks by design

Database-enforced multitenancy for Django using PostgreSQL Row-Level Security. Every query -- ORM, raw SQL, dbshell -- is filtered by the database itself. Zero data leaks by design - dvoraj75/djang...

GitHub

πŸš€ ForgeWatch 1.4.1 is out!

The big news: minimum Python version is now 3.11 (down from 3.13), and the CI matrix covers 3.11, 3.12, 3.13 and 3.14 β€” all must pass. More of you can now use it out of the box.

πŸ”— https://github.com/dvoraj75/forgewatch

#Python #OpenSource #CLI #DeveloperTools #ForgeWatch

GitHub - dvoraj75/forgewatch: Async daemon with system tray indicator and CLI tools for monitoring GitHub pull requests with desktop notifications and systemd integration (Linux)

Async daemon with system tray indicator and CLI tools for monitoring GitHub pull requests with desktop notifications and systemd integration (Linux) - dvoraj75/forgewatch

GitHub

πŸš€ Day 1 on django-rls-tenants β€” bringing true PostgreSQL Row-Level Security to Django multitenancy!

Instead of separate schemas or filtered querysets, this library leverages native RLS policies at the DB level to isolate tenant data automatically.

βœ… Pros:
β€’ True DB-level isolation β€” tenants can't bleed into each other
β€’ Transparent to Django ORM β€” no custom managers needed
β€’ Leaner than schema-per-tenant approaches
β€’ Scales well for high tenant counts
β€’ Security enforced even outside the app layer

❌ Cons:
β€’ PostgreSQL-only (no MySQL/SQLite support)
β€’ RLS policies add complexity to migrations
β€’ Debugging cross-tenant issues can be tricky
β€’ Superuser connections bypass RLS β€” needs care
β€’ Less community tooling than shared-schema approaches

Still very early, but the foundations are solid. Would love feedback from anyone who's tackled multitenancy in Django before! 🐘🐍

#Django #PostgreSQL #Python #Multitenancy #RLS #RowLevelSecurity #OpenSource #WebDev #SaaS #DjangoORM #DevLife

github-monitor is now forgewatch!

I rebranded my PR monitoring daemon. The old name locked it to a single platform, but the vision has always been broader than that. "forgewatch" better reflects what the app is really about: watching over your code forge, wherever it lives.

Why the rename? Two reasons:

1. It's more general. The architecture doesn't depend on GitHub specifically, and I want to grow it to support GitLab, Gitea, and other forges over time.
2. It's more descriptive. "forgewatch" tells you exactly what it does -- it watches your forge for pull requests and keeps you notified via D-Bus and desktop notifications on Linux.

The daemon is async Python, runs as a systemd user service, and comes with an optional system tray indicator. Give it a look if you're a Linux dev who juggles PRs across repos.

https://github.com/dvoraj75/forgewatch
https://pypi.org/project/forgewatch/

#forgewatch #opensource #python #linux #devtools #foss #github #gitlab #gitea #asyncio #dbus #systemd

GitHub - dvoraj75/forgewatch: Async daemon with system tray indicator and CLI tools for monitoring GitHub pull requests with desktop notifications and systemd integration (Linux)

Async daemon with system tray indicator and CLI tools for monitoring GitHub pull requests with desktop notifications and systemd integration (Linux) - dvoraj75/forgewatch

GitHub

Our company is moving toward being AI-first, with a strong no-code mindset and more code expected to be generated by AI. After a 2-day workshop, I have to admit the progress was impressive: we finished sprint tasks in just 2 days, and the delivery speed felt multiplied.

So I’m genuinely split.

On one hand, the benefits are obvious: faster prototyping, less repetitive work, quicker iteration, and much more output in less time. On the other hand, I keep asking myself: where does this lead us? What happens to software engineering as a craft if writing code becomes less central? Do our jobs evolve, or do parts of them disappear?

Maybe the future is not fewer engineers, but engineers working differently: more architecture, more critical thinking, more review, and more responsibility for what AI produces.

Curious how others are thinking about this shift.

#AI #NoCode #SoftwareEngineering #FutureOfWork #DeveloperExperience #TechLeadership

Tired of missing GitHub PR reviews? I built github-monitor -- a lightweight Linux daemon that watches for PRs assigned to you and sends desktop notifications the moment they land.

Features:
- Desktop notifications with author avatars via notify-send
- System tray indicator with live PR count and clickable PR list
- Runs quietly as a systemd user service -- set it and forget it
- Config reload on SIGHUP, graceful shutdown on SIGTERM

Under the hood:
- Pure async Python (asyncio) -- no threads, no blocking I/O
- aiohttp for GitHub API, dbus-next for session bus IPC
- Daemon exposes live state over D-Bus, indicator connects as a separate process
- Frozen dataclasses, strict mypy, full test coverage

Built with Python 3.13+, packaged with hatchling, managed with uv.

It's open source and I'd love feedback -- whether it's bug reports, feature ideas, or contributions!

https://github.com/dvoraj75/github-monitor

#Python #Linux #OpenSource #GitHub #AsyncPython #DBus #Systemd

GitHub - dvoraj75/github-monitor: Async daemon with system tray indicator and CLI tools for monitoring GitHub pull requests with desktop notifications and systemd integration (Linux)

Async daemon with system tray indicator and CLI tools for monitoring GitHub pull requests with desktop notifications and systemd integration (Linux) - dvoraj75/github-monitor

GitHub
This weekend my amazing brother won first toy for his upcoming son πŸ₯Ή
Proper linux education should start as soon as possible. Thank you @linuxdays and @opensuse , young linux boy is coming soon !!
#linux #linuxdays #opensuse #child #education

I found this interesting #react course on #udemy from Maximilian SchwarzmΓΌller, i have to say it's quite interesting πŸ™‚

But still...i think i'll be 4ever backend guy. It wont change πŸ˜† #python #learning #code #introductionproject

#introduction Hi all, i'm #python developer from #czechia .
I like talking about #programming #python #development #cleancode and other things #whatever

Currently working on new CRM for accountanties! #evidenta