[coverage] Conformance findings: AUTH-019
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 72/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- python
- Domaine
- authentication, backend, databases
Piste de recherche
Commencez par backend/kernel/auth_bridge.py::_normalize_scopes et le test xfail test_oauth_m2m_token_request_uses_configured_scopes dans le diff de la PR de couverture sous tests/. Vérifiez comment les entrées de scopes configurés sont traitées pour les espaces blancs et les doublons, puis exécutez ce test. Le travail est terminé lorsque les scopes configurés produisent le seul jeton sql, tandis que les scopes vides ou non définis reviennent à all-apis et que les assertions de session réussissent.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-python. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-sql-python) is fixed, then flips green as a tripwire.
Findings
- AUTH-019 [sea]: kernel/SEA OAuth M2M does not normalize
oauth_scopes: list entries are forwarded verbatim, so a padded/duplicated entry sends a repeated scope token and a whitespace-only entry sends a blank scope the token endpoint rejects (HTTP 400 invalid_scope) instead of falling back toall-apis(backend/kernel/auth_bridge.py::_normalize_scopes)- failing test:
test_oauth_m2m_token_request_uses_configured_scopes(see the coverage PR diff undertests/)
- failing test:
- AUTH-019: kernel/SEA OAuth M2M does not normalize
oauth_scopes: list entries are forwarded verbatim, so a padded/duplicated entry ([" sql sql "]) sends a repeated scope token and a whitespace-only entry ([" "]) sends a blank scope that the workspace token endpoint rejects with HTTP 400 invalid_scope instead of falling back to theall-apisdefault (backend/kernel/auth_bridge.py::_normalize_scopes)
Reproduce & Expected
AUTH-019 — Verifies that the driver's OAuth scopes option decides what the client-credentials (M2M) token request asks for, instead of always requesting all-apis, so a service principal whose secret is scoped…
Reproduce:
SELECT CURRENT_USER() AS user
SELECT CURRENT_USER() AS user
SELECT CURRENT_USER() AS user
SELECT CURRENT_USER() AS user
Expected (per the shared spec):
- result has exactly 1 row(s)
- result has exactly 1 row(s)
- result has exactly 1 row(s)
- result has exactly 1 row(s)
- full assertion contract:
result:
- label: configured_scopes
oauth_token_request_scope_tokens:
grant_type: client_credentials
equals:
- sql
- label: configured_scopes
row_count: 1
- label: sloppy_scopes
oauth_token_request_scope_tokens:
grant_type: client_credentials
equals:
- sql
- label: sloppy_scopes
row_count: 1
- label: blank_scopes
oauth_token_request_scope_tokens:
grant_type: client_credentials
equals:
- all-apis
- label: blank_scopes
row_count: 1
- label: unset_scopes
oauth_token_request_scope_tokens:
grant_type: client_credentials
equals:
- all-apis
- label: unset_scopes
row_count: 1
protocol:
thrift:
- call_min:
method: OpenSession
min: 1
sea:
- call_min:
operation: CreateSession
min: 1
Context
- The behavior was first fixed in a DIFFERENT driver — reference PR: https://github.com/databricks/databricks-sql-nodejs/pull/583 — which seeded the shared language-neutral spec. This issue tracks the same conformance gap in databricks/databricks-sql-python; the reference PR is for cross-referencing the intended behavior, NOT a change to this repo.
- Coverage PR carrying the reproducing xfail test(s): https://github.com/databricks/databricks-driver-test/pull/2020
- Langage dominant
- Python
- Étoiles
- 236
- Forks
- 162
- Merge moyen
- 13 h 13 min
- PR mergées (30 j)
- 23
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de databricks/databricks-sql-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
databricks/databricks-sql-python#1012 ·
Les mainteneurs répondent en général sous 1 jour
-
Token federation: `_exchange_token` raises KeyError('access_token') on error responses, discarding the real failure reasonPeut-être pris @TangoEnSkai l’a pris il y a 81 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
databricks/databricks-sql-python#904 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
databricks/databricks-sql-python#865 ·
Les mainteneurs répondent en général sous 1 jour
-
engineer-bot
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
databricks/databricks-sql-python#860 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Cursor.close() leaks server-side handle for async commands that were never fetchedPeut-être pris @nanookclaw l’a pris il y a 176 jours. Ouvertebug engineer-bot
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
databricks/databricks-sql-python#791 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de databricks/databricks-sql-python
Issues similaires
-
premises-missing
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
WingedGuardian/GENesis-AGI#4432 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
huggingface/skills#301 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
intuitem/ciso-assistant-community#5275 ·
Les mainteneurs répondent en général sous 1 jour
-
comp/desktop P3 type/feature
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
NousResearch/hermes-agent#154285 ·
Les mainteneurs répondent en général sous 1 jour