Formal sql commenter
Project description
Formal sqlcommenter
Formal sqlcommenter is a plugin that enables your ORMs to augment SQL statement before execution, with a comment containing the end-user id of a request. Sqlcommenter is typically useful for back-office application that needs to implement role access management.
Local Install
pip3 install --user formal-sqlcommenter
Usage
Psycopg2
Use the provided cursor factory to generate database cursors. All queries executed with such cursors will have the SQL comment prepended to them.
import psycopg2
from formal.sqlcommenter.psycopg2.extension import CommenterCursorFactory
cursor_factory = CommenterCursorFactory()
conn = psycopg2.connect(..., cursor_factory=cursor_factory)
cursor = conn.cursor()
cursor.execute('SELECT * from ...', '1234') # comment will be added before execution
which will produce a backend log such as when viewed on Postgresql
2019-05-28 02:33:25.287 PDT [57302] LOG: statement: /*formal_role_id:1234*/ SELECT * FROM
polls_question
Django
Add the provided Django middleware to your Django project's settings. All database queries executed by authenticated users within the standard request→response cycle will have a SQL comment prepended to them. The comment will inform Formal systems that the querying user has the External ID with a value of request.user.email
, or if that does not exist, request.user.id
.
MIDDLEWARE = [
+ 'formal.sqlcommenter.django.databaseInstrumentation.FormalSqlCommenter',
...
]
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file formal-sqlcommenter-1.0.8.tar.gz
.
File metadata
- Download URL: formal-sqlcommenter-1.0.8.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad4108154194cbc13cbe79fa92fe2b53ac60633251e7d53c0751188e607b1632 |
|
MD5 | 45377fcf2d96e82e60ff4ed52df42793 |
|
BLAKE2b-256 | eaa1488f8b17ffa43b51a26c2715426b654e9e1d8e75ebf047225392fdac3a84 |