Comments (1)
See following thread on dbt slack channel for more info.
- When changing the authentication method to oauth as in the PR, the url is printed in the console.
If you follow each url, the driver will execute the openid connect flow, of course you need to follow this url's in the order specified in the console. of course his is not a great user experience.
- Modified trino-python-client to launch a webbrowser instead of printing the link
def handle_redirect_auth_url(auth_url):
print("Opening your browser for the external authentication:")
webbrowser.open_new(auth_url)
This approach has two issues:
- it will launch a new browser window for each executed query.
- It seems to not work when multiple queries are launched simultaneously (not investigated in detail)
Some initial conclusions:
Comparing with how this is done in the snowflake pyhon connector, they actually provide a localhost callback url for the authentication flow, so they can capture the access token on the clientside, while in Trino's case the access token is retrieved on the server side and not exposed to the client (implicit flow vs authorization code.
A workaround could call the OIDC endpoint and retrieve a token and use that token (jwt authentication method in dbt-trino), in our case we would have to enable the implicit flow as our custom OIDC provider doesn't provide any means to request a token outside of the standard flows. Also this has to take into account token expiration. Most important i think this pushes complexity down upon the dbt user instead of providing a plug & play experience (which is really what dbt is about).
from dbt-trino.
Related Issues (20)
- Support CASCADE dropping relations
- Solving for large stage depths HOT 3
- Support `CREATE OR REPLACE` HOT 2
- get_relation not working as already_exists HOT 4
- deltalake rename managed table not allowed arised HOT 1
- Failed to connect to Trino cluster using LDAP auth and HTTP connection HOT 3
- Extra credentials in connection HOT 3
- Not able to create snapshot of a model using dbt-trino==1.7.1 HOT 4
- Refactor to use dbt-adapters interface layer HOT 2
- merge_exclude_columns doesn't work
- upgrade to support dbt-core v1.8.0 HOT 1
- Add REPLACE strategy to incremental materialization
- Executing 'dbt docs generate' when the 'where' clause has different combinations of schemas > produces a permission error HOT 3
- Running codegen to generate source yaml fails HOT 1
- Add partition by in configs for incremental materialization HOT 2
- Custom TrinoCredentials support
- Incremental Materialization Macro Uses Variables Before Defined HOT 3
- When running "dbt test --store-fallures" trino reports "destination table XXX already exists" HOT 3
- Support for persist_docs in Starburst Galaxy HOT 1
- __dbt_tmp suffix in table location HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dbt-trino.