mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-12-09 05:55:55 +00:00
Issue-2672: Added support for personal access token name and secret and upgraded tableau version (#2682)
This commit is contained in:
parent
bf76f9a58d
commit
4f5f63b226
@ -2,6 +2,8 @@
|
|||||||
"source": {
|
"source": {
|
||||||
"type": "tableau",
|
"type": "tableau",
|
||||||
"config": {
|
"config": {
|
||||||
|
"personal_access_token_secret": "personal_access_token_secret",
|
||||||
|
"personal_access_token_name": "personal_access_token_name",
|
||||||
"username": "username",
|
"username": "username",
|
||||||
"password": "password",
|
"password": "password",
|
||||||
"service_name": "local_tableau",
|
"service_name": "local_tableau",
|
||||||
|
|||||||
@ -105,7 +105,7 @@ plugins: Dict[str, Set[str]] = {
|
|||||||
"snowflake-usage": {"snowflake-sqlalchemy<=1.3.2"},
|
"snowflake-usage": {"snowflake-sqlalchemy<=1.3.2"},
|
||||||
"sample-entity": {"faker~=8.1.1"},
|
"sample-entity": {"faker~=8.1.1"},
|
||||||
"superset": {},
|
"superset": {},
|
||||||
"tableau": {"tableau-api-lib==0.1.22"},
|
"tableau": {"tableau-api-lib==0.1.29"},
|
||||||
"vertica": {"sqlalchemy-vertica[vertica-python]>=0.0.5"},
|
"vertica": {"sqlalchemy-vertica[vertica-python]>=0.0.5"},
|
||||||
"report-server": report_requirements,
|
"report-server": report_requirements,
|
||||||
"airflow": {"apache-airflow >= 1.10.2"},
|
"airflow": {"apache-airflow >= 1.10.2"},
|
||||||
@ -113,7 +113,7 @@ plugins: Dict[str, Set[str]] = {
|
|||||||
"okta": {"okta~=2.3.0"},
|
"okta": {"okta~=2.3.0"},
|
||||||
"mlflow": {"mlflow-skinny~=1.22.0"},
|
"mlflow": {"mlflow-skinny~=1.22.0"},
|
||||||
"sklearn": {"scikit-learn==1.0.2"},
|
"sklearn": {"scikit-learn==1.0.2"},
|
||||||
"db2":{"ibm-db-sa==0.3.7"},
|
"db2": {"ibm-db-sa==0.3.7"},
|
||||||
}
|
}
|
||||||
dev = {
|
dev = {
|
||||||
"boto3==1.20.14",
|
"boto3==1.20.14",
|
||||||
|
|||||||
@ -42,8 +42,8 @@ logger = logging.getLogger(__name__)
|
|||||||
class TableauSourceConfig(ConfigModel):
|
class TableauSourceConfig(ConfigModel):
|
||||||
"""Tableau pydantic source model"""
|
"""Tableau pydantic source model"""
|
||||||
|
|
||||||
username: str
|
username: Optional[str] = None
|
||||||
password: SecretStr
|
password: Optional[SecretStr] = None
|
||||||
server: str
|
server: str
|
||||||
api_version: str
|
api_version: str
|
||||||
env: Optional[str] = "tableau_prod"
|
env: Optional[str] = "tableau_prod"
|
||||||
@ -51,6 +51,8 @@ class TableauSourceConfig(ConfigModel):
|
|||||||
site_url: str
|
site_url: str
|
||||||
service_name: str
|
service_name: str
|
||||||
service_type: str = "Tableau"
|
service_type: str = "Tableau"
|
||||||
|
personal_access_token_name: Optional[str] = None
|
||||||
|
personal_access_token_secret: Optional[str] = None
|
||||||
dashboard_pattern: IncludeFilterPattern = IncludeFilterPattern.allow_all()
|
dashboard_pattern: IncludeFilterPattern = IncludeFilterPattern.allow_all()
|
||||||
chart_pattern: IncludeFilterPattern = IncludeFilterPattern.allow_all()
|
chart_pattern: IncludeFilterPattern = IncludeFilterPattern.allow_all()
|
||||||
|
|
||||||
@ -87,12 +89,12 @@ class TableauSource(Source[Entity]):
|
|||||||
self.metadata_config = metadata_config
|
self.metadata_config = metadata_config
|
||||||
self.client = self.tableau_client()
|
self.client = self.tableau_client()
|
||||||
self.service = get_dashboard_service_or_create(
|
self.service = get_dashboard_service_or_create(
|
||||||
config.service_name,
|
service_name=config.service_name,
|
||||||
DashboardServiceType.Tableau.name,
|
dashboard_service_type=DashboardServiceType.Tableau.name,
|
||||||
config.username,
|
username=config.username,
|
||||||
config.password.get_secret_value(),
|
password=config.password.get_secret_value() if config.password else None,
|
||||||
config.server,
|
dashboard_url=config.server,
|
||||||
metadata_config,
|
metadata_config=metadata_config,
|
||||||
)
|
)
|
||||||
self.status = SourceStatus()
|
self.status = SourceStatus()
|
||||||
self.dashboards = get_workbooks_dataframe(self.client).to_dict()
|
self.dashboards = get_workbooks_dataframe(self.client).to_dict()
|
||||||
@ -107,12 +109,23 @@ class TableauSource(Source[Entity]):
|
|||||||
f"{self.config.env}": {
|
f"{self.config.env}": {
|
||||||
"server": self.config.server,
|
"server": self.config.server,
|
||||||
"api_version": self.config.api_version,
|
"api_version": self.config.api_version,
|
||||||
"username": self.config.username,
|
|
||||||
"password": self.config.password.get_secret_value(),
|
|
||||||
"site_name": self.config.site_name,
|
"site_name": self.config.site_name,
|
||||||
"site_url": self.config.site_url,
|
"site_url": self.config.site_url,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if self.config.username and self.config.password:
|
||||||
|
tableau_server_config[self.config.env]["username"] = self.config.username
|
||||||
|
tableau_server_config[self.config.env]["password"] = self.config.password
|
||||||
|
elif (
|
||||||
|
self.config.personal_access_token_name
|
||||||
|
and self.config.personal_access_token_secret
|
||||||
|
):
|
||||||
|
tableau_server_config[self.config.env][
|
||||||
|
"personal_access_token_name"
|
||||||
|
] = self.config.personal_access_token_name
|
||||||
|
tableau_server_config[self.config.env][
|
||||||
|
"personal_access_token_secret"
|
||||||
|
] = self.config.personal_access_token_secret
|
||||||
try:
|
try:
|
||||||
conn = TableauServerConnection(
|
conn = TableauServerConnection(
|
||||||
config_json=tableau_server_config, env="tableau_prod"
|
config_json=tableau_server_config, env="tableau_prod"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user