Is there a way to also limit the plugin from getting prompt values if it is already running
Is there a way to limit the plugin UI from getting prompt values if the custom recipe is already running in a flow?
Let set the stage:
I have created a plugin custom recipe to export a tableau worksheet as an PDF for each partner.
the list met partners is provided by an input step and the PDF's are saved to a managed folder.
Because of the Tableau PAT limitations you can only use 1 session at a time and if a new session is created with the same PAT the running session is disconnected with an authentication error
To limit the concurrent executions of a custom recipe in a flow DSS has the resourceKeys method and that seems to work for the recipe but will not block the plugin configuration calling the prompt values.
Operating system used: linux
Best Answer
-
importthepandas Dataiku DSS Core Designer, Dataiku DSS & SQL, Dataiku DSS Core Concepts, Neuron, Dataiku DSS Adv Designer, Registered, Neuron 2023 Posts: 115 Neuron
One thing about the tableau server API is that if you can use basic auth, you can bypass the single session requirement. This is a workaround of course but it does work and is more reliable than using a PAT. Tableau has a terrible implementation with the single session PATs and orchestration tools like DSS and Airflow struggle with this concept. If you must use PATs, you will essentially need to create a pool and manage the PATs akin to: https://github.com/tableau/server-client-python/issues/717
You'd need to at least set up a PAT and a backup for your plugin. Then you'll need to rotate them periodically as well based on your tableau admin requirements. A lot of overhead.
Answers
-
They blocked basic auth so PAT seems to be the only option.
I will investigate the pool of tokens options.