CLI and SDK FAQ

Version:
Current
Last modified: May 18, 2021

Explore frequently asked questions about the new Platform SDK.

Why does the CLI use Python?

Since we were already developing a Python SDK, it made sense to use Python for the CLI, too. Python lets us leverage the doit automation tool to build the CLI. We chose to use Typer in combination with doit because it lets us map CLI commands to doit tasks.

Can I use the CLI and SDK behind a firewall?

Do I need to whitelist anything to use the CLI?

To download and install the CLI, be notified of a newer version of the CLI, or check for updates to the CLI, you need to whitelist https://pypi.org/. Otherwise, feel free to use the CLI completely offline.

What packages do I need to download?

All of the required Python packages that you need to get started with development are downloaded and installed when you install the CLI and SDK (as part of their dependencies).

The requirements for each package are:

  • SDK: "Click==7.1.2", "grpcio==1.28.1", "numpy>=1.17.1", "pandas==1.1.0", "protobuf>=3.5.0.post1", "psutil==5.6.3", "pydantic==1.5.1", "python-dateutil==2.8.1", "pytz==2020.1", "shiv==0.3.1", "six==1.14.0", "typer==0.3.1", "xmltodict==0.12.0"
  • CLI: "typer==0.3.1", "doit==0.33.1", "pydantic==1.5.1", "packaging==20.4", "requests==2.24.0", "xmltodict==0.12.0"
Why another Python SDK?

The original Python Engine SDK is complex, runs in-process, and can be slow. The AYX Python SDK design solves these issues. It runs out-of-process using gRPC to communicate. It also simplifies the development process of new tools to 4 function calls, abstracting away a lot of the previous SDK function calls.

By running the plugin out-of-process, we are able to efficiently manage multiple plugins and are not bound by the restrictions of the C++ boost library.

I see a lot of SDKs: Python Engine SDK, AYX Plugin SDK, and AYX Python SDK. What’s the difference?

The AYX Plugin SDK and AYX Python SDK are new SDK products. They improve upon the original Python Engine SDK by providing a consistent development experience moving forward. While the AYX Plugin SDK is designed to use the original engine, the AYX Python SDK leverages the brand new AMP Engine.

Do I need Alteryx Designer to build and test a plugin?

Alteryx Designer is not required to build a custom plugin. However, Designer is required to test a plugin and make sure that it works correctly.

What’s the purpose of the AYX Plugin CLI?

The AYX Plugin CLI provides a single mechanism to guide you through the entire SDK development process, from scaffolding to packaging. It lets you create tools quickly, familiarize yourself with the SDKs, and it reduces the potential for error.

The CLI facilitates the process of custom tool creation for any SDK. Note that at this time it only supports Python.
 

What’s the difference between sdk-workspace-init and create-ayx-plugin commands?
  • sdk-workspace-init: This command initializes a workspace directory — think of this as a project playground where all your custom plugins exist. The workspace directory will be setup with a pre-defined folder structure which enables the rest of the CLI commands to properly function.
  • create-ayx-plugin: This command adds a plugin to the workspace. You must choose a template tool type and specify a tool name.
I see a “Can't find plugin SdkEnginePlugin.dll” error message, what do I do?

If you encounter the “Can’t find plugin SdkEnginePlugin.dll” error, enable the AMP Engine runtime in Alteryx Designer. To do so...

  1. In Alteryx Designer, access the Workflow - Configuration window.
  2. Select the Runtime tab.
  3. Check the checkbox to Use AMP Engine.
     
    Image showing the Workflow Configuration Runtime tab with the Use AMP Engine checkbox highlighted.
Was This Page Helpful?

Running into problems or issues with your Alteryx product? Visit the Alteryx Community or contact support. Can't submit this form? Email us.