FEAT: Add session audit context setter/getter API (set_audit_context / get_audit_context) for compliance tracing
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Ambito
- backend-api-design, databases
Direzione di ricerca
Inizia individuando la classe di connessione e i relativi pattern esistenti per l’esecuzione, la validazione, il caching e le eccezioni. Esamina come vengono testate le chiamate parametrizzate alle stored procedure e le connessioni chiuse, quindi implementa il comportamento setter/getter richiesto attorno a sp_set_session_context; il lavoro è completato quando sono presenti aggiornamenti del contesto validati, il supporto per read-only, il recupero da un dizionario locale e gli errori appropriati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is your feature request related to a problem? Please describe.
There is no built-in way to attach session-level auditing or tracing metadata to a Connection in mssql-python. Applications that need to propagate end-user identity, module names, or action context to SQL Server for auditing, or Extended Events tracing must manually execute raw sp_set_session_context calls, handle input validation themselves, and track which keys have been set. This is error-prone, verbose, and inconsistent across codebases.
Describe the solution you'd like
A setter/getter pair on the connection class
set_audit_context()
Accepts well-known keys (application, module, action, user_id) as named parameters and arbitrary extra keys via **kwargs.
Validates key/value lengths against SQL Server limits (128-char keys, 8000-char values) before executing.
Uses parameterized queries to call sp_set_session_context, preventing SQL injection.
Supports a read_only flag to lock keys for the remainder of the session.
Raises appropriate ProgrammingError / InterfaceError exceptions on invalid input or closed connections.
get_audit_context()
Returns the current session audit context as a dictionary.
The getter reads from the local cache without making a server round-trip
Describe alternatives you've considered
Raw cursor execution — Users call cursor.execute("EXEC sp_set_session_context @key=?, @value=?", ...) directly. This works but requires boilerplate, duplicates validation logic, and lacks discoverability.
Connection string properties — Encoding audit metadata into the connection string (e.g., Application Name). This only covers a single field, is immutable after connect, and doesn't flow to SESSION_CONTEXT().
Additional context
Applications that need to comply with regulations (GDPR, PCI-DSS etc) must propagate end-user identity, module context, and action tracking to SQL Server for audit trail generation and compliance reporting. Without a dedicated setter API, developers are forced to manually execute raw sp_set_session_context stored procedure calls, implement their own input validation, and maintain their own getter/cache logic
- Lingua principale
- Python
- Stelle
- 479
- Fork
- 62
- Merge medio
- 3g 1h
- PR unite (30g)
- 26
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/mssql-python
-
area: bulk-copy triage needed
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
microsoft/mssql-python#843 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
triage needed
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
microsoft/mssql-python#850 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
triage needed
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
microsoft/mssql-python#849 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
triage needed
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
microsoft/mssql-python#848 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
triage needed
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
microsoft/mssql-python#846 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di microsoft/mssql-python
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
Status: Triaged Type: Enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
canonical/craft-store#448 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue research size:s skill:numerics sub-issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
SKaiNET-developers/SKaiNET#1372 ·
I maintainer di solito rispondono entro 1 giorno
-
debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
microsoft/vscode-flake8#601 ·
I maintainer di solito rispondono entro 1 giorno