Hi! I'm testing out reading metadata from Tableau ...
# integrate-tableau-datahub
p
Hi! I'm testing out reading metadata from Tableau (as our first non-database source), and am slightly stumped as to why my personal access token is not accepted by Tableau (I get "Unable to login with credentials provided: \n\n\t401001: Signin Error\n\t\tError signing in to Tableau Server"). Is there any way of viewing the api calls to our Tableau source, and not just the communication with our datahub instance? Or any more debug info regarding the source in general? I am trying the following call: datahub --debug ingest run --dry-run -c tableau.dhub.yaml Thanks in advance! Best regards, Are Bryne
1
This issue turned out to be caused by a missing role for the site in question. :- )
g
Thanks for closing the loop on this - I’ve updated our error messages to make them a bit more clear in the future https://github.com/datahub-project/datahub/pull/6600
p
Wonderful! Thanks! Any possibility of viewing the REST communication with the source too? That could be a great aid in debugging. :-)
l
Curious about the communitacation/debugging too also for other tool ingestions 👀
h
One other thing worth noting on the docs is that tableau personal access tokens expire if not used for 15 days. Took a few hours to track this down 😢
g
Whoa that’s good to know
what error message did we produce?
i’ve added a warning here https://github.com/datahub-project/datahub/pull/7187. I added it to the actual error message in the code because I suspect people may not see the docs for stuff like this
h
The error message from tableau is just that connection failed. Not sure on exact wording Thanks for adding @gray-shoe-75895
g
@proud-memory-42381 “This issue turned out to be caused by a missing role for the site in question. :- )” --> I am getting this error too. Can you explain what this missing role about? Thanks!
p
Hi! The missing role in question was the role given in Tableau (such as Explorer) for each site. You will need the Explorer role (or higher) for every site you want to ingest metadata from. :- )
g
Great, thanks!
@proud-memory-42381 I am still getting this error”‘failures’: {‘tableau-login’: [‘Unable to login (invalid/expired credentials or missing permissions): \n\n\t401001: Signin Error\n\t\tError signing in to Tableau Server’]},” despite my role is a “Site Administrator Creator”
p
Ok. If you're using access tokens in Tableau, you must check that they are not expired (see a previous comment in this thread), and otherwise check username and password spelling, I guess.
g
I initially used username and password and got the same error. Then I just generated an access token few minutes ago, error persisted
p
Are you sure you're ingesting from the same site that you have the Tableau Site Administrator role for? If that's the case, I may be stumped, and you might have to get others to chime in...
g
yes, I am pretty sure because I only just creating this Tableau Server trial account and I have no other sites
The problem is with the site name. No issues now
p
Glad you figured it out! I have pointed out an issue with site names including spaces (#6657) - these don't work without removing the spaces during communication with Tablau. Maybe that is something you could handle, @gray-shoe-75895? :- )
(And there should also be a possibility of pointing out that a site name does not exist - but perhaps not before logging in to Tableau... I have not been able to log in to the Default site myself, e.g. using "Default" or "" as the site name when using python, but as site changes are allowed after logging in - using server.auth.switch_site(site) from tableauserverclient at least - perhaps something along those lines would make site misspellings easier to debug?)
g
well, actually because I followed the instruction in https://datahubproject.io/docs/generated/ingestion/sources/tableau which suggested that “Tableau Site. Always required for Tableau Online. Use emptystring to connect with Default site on Tableau Server.” --> empty string didn’t work and caused that error. One has to populate the site name
p
Yup, I'm having problems logging into the Default site directly too. Not sure if it's possible...
l
Hi I found this thread as I am having the same issue with the default site as the server admin. Just as side note I do have python scripts running using rest api and a token that is able to successfully log into the default site. Is there somewhere to report this officially? Sorry for the questions.
p
I guess you have to talk to Tableau, it’s not a python or Datahub issue, I think…
l
Well after a little digging into some other Slack threads I think I got is figured out. It seems the form tool on datahub is creating incorrect YAML. I went in and modified the YAML to include the correct values and now it is working for a default site. The issue for me was not the default site as the YAML is incorrect for a token. examples: Incorrect YAML: made using the form and setting token values. Instead is it populating incorrectly with no token info source: type: tableau config: connect_uri: 'https://my_site.com/' stateful_ingestion: enabled: true ingest_tags: true ingest_owner: true Corrected YAML that does work for the default site. source: type: tableau config: connect_uri: 'https://my_site.com' stateful_ingestion: enabled: false ingest_tags: true ingest_owner: true site: "" token_name: datahub token_value: '${my_token}'
g
Cc @big-carpet-38439 for tracking- looks like might be a bug in our ingestion UI forms