Epic: Interactive human-login OAuth for `confluent_sql`
Los mantenedores suelen responder en 1 día
Evaluación
Este issue todavía no se ha evaluado.
Descripción
This epic gives the driver a full interactive browser login: a three-hop Auth0 PKCE chain that mints Confluent's own control-plane and data-plane tokens, refreshed by a background daemon and shared process-wide. Unlike the sibling BYOIDC epic — where the caller supplies an external token good only for the Flink data plane — a Confluent-minted control-plane token reaches the whole surface: Flink plus Tableflow, Connect, and CMK. One human login collapses up to three API-key pairs into one credential.
The neighboring Java client (confluent-flink-plugin-private#399, squash 64b3b17, FTAB-97) shipped machine-to-machine OAuth — a static token or a refreshing client-credentials provider — but never an interactive browser login, the /api/sessions → /api/access_tokens control-plane chain, or a process-wide multi-Connection holder. Those are this epic's distinguishing work: the reach the plugin's Flink-data-plane-only scope never had to touch. (The plugin's BYOIDC modes are covered by the sibling #148 instead.)
This epic reuses the polymorphic _flink_auth slot and the connect() auth-mode selection point that #100 / PR #146 built (the first step of the BYOIDC epic). It does not depend on that epic's child 2; the two epics diverge past the shared seam and can proceed in parallel.
Alas, dbapi is synchronous/blocking python, so we have to resort to using threads / a short lived webserver thread to receive the success/failure oauth callback. A new markdown document in there repo (for reviewer / claude reference) describes how concurrency will be handled in the face of multiple Connections in multiple threads (a many-threaded dbt session kicking off) each racing to start up the oauth process.
Remember while implementing:
- We're using branch
oauth-epic-integrationas integration branch off of main for all of the child issues to base off of. When epic functionality is complete, we'll then merge into main, but we'll PR each reasonable piece at a time. - Read and review all child issues to gain context on where the current issue sits in the grand scheme of things to be sure to not do more than is needed in any individual child.
- Lenguaje dominante
- Python
- Estrellas
- 6
- Forks
- 1
- Merge medio
- 15 h 42 min
- PR fusionados (30 d)
- 28
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de confluentinc/confluent-sql
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
confluentinc/confluent-sql#226 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
confluentinc/confluent-sql#224 ·
Los mantenedores suelen responder en 1 día
-
Fix the paramstyle declarationAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
confluentinc/confluent-sql#223 ·
Los mantenedores suelen responder en 1 día
-
Update connector configAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
confluentinc/confluent-sql#125 ·
Los mantenedores suelen responder en 1 día
-
List connectorsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
confluentinc/confluent-sql#124 ·
Los mantenedores suelen responder en 1 día
Todos los issues de confluentinc/confluent-sql
Issues similares
-
bug P1
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Toloka/tolokaforge#1947 ·
Los mantenedores suelen responder en 1 día
-
SageMaker provider: streaming fails with NoStreamDataError on DJL Serving (LMI) endpointsPosiblemente ocupada @balajiaru la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
UKGovernmentBEIS/inspect_ai#6127 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
pydot/pydot#601 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
letsencrypt/cp-cps#361 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100