├── .gitignore ├── Gemfile ├── LICENSE ├── README.md ├── _config.yml ├── _includes ├── analytics.html ├── docs_menu.html ├── footer.html ├── guide_menu.html ├── head.html ├── header.html ├── icon-github.svg └── search_form.html ├── _layouts ├── api-ref.html ├── community.html ├── default.html ├── docs.html ├── guide.html ├── home.md ├── news.html └── search.html ├── assets ├── Ext_API.png ├── community.jpg ├── css │ ├── api_ref.css │ ├── github-highlight.css │ └── main.css ├── docs.png ├── js │ ├── api_ref.min.js │ ├── community_extensions.js │ ├── extra.js │ ├── jquery-1.11.1.min.js │ ├── lunr.min.js │ ├── redirect-to-search.js │ ├── salvattore.min.js │ └── search.js ├── logo.png └── notes.png ├── docs ├── ae_additional.md ├── ae_api_ref.md ├── ae_auth.md ├── ae_connect_desktop.md ├── ae_connect_server.md ├── ae_debugging.md ├── ae_example_currency.md ├── ae_example_haskell.md ├── ae_example_ople.md ├── ae_example_tabpy.md ├── ae_how.md ├── ae_intro.md ├── ae_known_issues.md ├── ae_method_evaluate.md ├── ae_method_info.md ├── ae_method_query.md ├── ae_overview.md ├── ae_release-notes.md ├── ae_summary.md ├── assets │ ├── css │ │ ├── main.css │ │ └── main.css.map │ ├── images │ │ ├── analytics-extensions-tableau_ople.png │ │ ├── ext_serv_2.png │ │ ├── icons.png │ │ ├── icons@2x.png │ │ ├── tornado.png │ │ ├── tornadoscript.png │ │ ├── widgets.png │ │ └── widgets@2x.png │ └── js │ │ ├── main.js │ │ └── search.js ├── imgs │ └── .gitkeep └── search.md ├── favicon.ico └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependency directories 2 | Examples/ 3 | node_modules/ 4 | _site/ 5 | node_modules/ 6 | npm-debug.log 7 | Gemfile.lock 8 | # Ignore webpack generated files 9 | dist/ 10 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | gem 'github-pages', group: :jekyll_plugins 3 | 4 | 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Salesforce, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tableau Analytics Extensions API 2 | 3 | [![Tableau Supported](https://img.shields.io/badge/Support%20Level-Tableau%20Supported-53bd92.svg)](https://www.tableau.com/support-levels-it-and-developer-tools) 4 | 5 | ## Why the Tableau Analytics Extensions API? 6 | 7 | The Analytics Extensions API lets you extend Tableau to dynamically include popular data science programming languages and external tools and platforms. 8 | 9 | ## Contributions 10 | 11 | Code contributions and improvements by the community are welcomed! 12 | See the LICENSE file for current open-source licensing and use information. 13 | 14 | Before we can accept pull requests from contributors, we require a signed [Contributor License Agreement (CLA)](http://tableau.github.io/contributing.html). 15 | 16 | ## Documentation 17 | 18 | [Visit the project website and read the documentation here.](https://tableau.github.io/analytics-extensions-api/) 19 | 20 | ## Issues 21 | 22 | Use [Issues](https://github.com/tableau/analytics-extensions-api/issues) to log any problems or bugs you encounter in the docs. 23 | 24 | Known Issue - In Tableau 20.1 there is an issue with HTTP headers which sets the Content-Type as: application/x-www-form-urlencoded instead of application/json. This doesn't affect the actual data being sent, but may interfere with analytics extensions that explicitely expect a JSON content type. At present for any existing services that expect JSON, the workaround is the cast the incoming data as JSON. This issue should be corrected shortly. 25 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Site settings 2 | title: Analytics Extensions API 3 | email: git@tableau.com 4 | description: Extend Tableau to dynamically include popular data science programming languages and external tools and platforms. 5 | baseurl: "/analytics-extensions-api" 6 | # permalink: pretty 7 | 8 | defaults: 9 | - 10 | scope: 11 | path: "" # Apply to all files 12 | type: pages 13 | values: 14 | layout: "default" 15 | permalink: /:path/:basename:output_ext 16 | 17 | 18 | # Build settings 19 | markdown: kramdown 20 | highlighter: rouge 21 | github: [metadata] 22 | 23 | kramdown: 24 | toc_levels: 1..3 25 | 26 | # Exclude 27 | exclude: ['node_modules', 'Examples'] 28 | 29 | 30 | -------------------------------------------------------------------------------- /_includes/analytics.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /_includes/docs_menu.html: -------------------------------------------------------------------------------- 1 |
2 | {% include search_form.html %} 3 | 67 |
68 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 2 |