Skip to content

Library for authenticating and consuming the Intelligent Plant App Store API

License

Notifications You must be signed in to change notification settings

intelligentplant/py-app-store-api

Repository files navigation

Python App Store API Client

A python implmentation of the Intelligent Plant industrial appstore API client

Installation

Installing using pip

pip install intelligent-plant

Installing from Source

Using pip:

pip install git+https://github.com/intelligentplant/py-app-store-api

Alternatively clone the Git repo:

git clone https://github.com/intelligentplant/py-app-store-api.git

Example Scripts

The 'example' folder contains a series of examples which demonstrate the available authentication methods and queries that you can make using this library.

To install dependencies used by the example scripts run

pip install -r example-requirements.txt

Querying the Industrial App Store

In order to query the industrial app store you must register as a developer and create an app registration. Full instructions can be found here: https://wiki.intelligentplant.com/doku.php?id=dev:app_store_developers

Once you have created and app registration you will need to copy and rename config-example.json to config.json and populate the id and secret fields with you app ID and app secret.

Authorization Code Grant Flow (Web and Native Apps)

To run the authorization code grant flow example with the PKCE extension run:

python example/authorization_code_grant_flow_pkce.py

This is the recommended flow for web and native applications.

To run the authorization code grant flow (without PKCE extension) example run:

python example/authorization_code_grant_flow.py

Device Code Flow (Embedded Devices, Jupyter Lab and Scripts)

The device code flow is disabled by default, you must enable it on the app registration

To run the device code flow example run:

This is the recommended flow for CLI apps and tools.

python example/device_code_flow.py

If you want to query data from Jupyter lab for use with data visualistion, data analysis and machine learning libraries we recommend using the device code flow and a stored session (see below).

You can see an example of this here: example/stored_session/jupyter.ipynb

Implicit Grant Flow (Deprecated)

To run the implicit grant flow example run:

The implicit grant flow is deprecated and is disabled by default

python example/implicit_grant_flow.py

Saving your session to reduce number of logins

The intelligent_plant.session_manager module provides functionality to save your session to your operating systems keyvault using the library keyring. To use this module you must have keyring installed:

pip install keyring

With keyring installed you can now use it as shown in the stored session examples.

Running the stored session example will use the device code flow to authenticate the first time (or if your session expires) but will otherwise use the stored credentials:

python example/stored_session/stored_session.py

You can see the stored session values using:

python example/stored_session/get_stored_session.py

And you can clear the stored session using:

python example/stored_session/clear_session.py

Querying a local App Store Connect or Data Core node (On Site Installations)

To run the NTLM (windows authentication) example you will need to have a data core node available on the local network. If you have an App Store Connect (https://appstore.intelligentplant.com/Home/DataSources) installed locally you can run the example without modification. If you are trying to authenticate with a data core node you will need to change the base_url variable defined in the script to match the URL of the Data Core admin UI.

Run the example using:

python example/ntlm_example.py

About

Library for authenticating and consuming the Intelligent Plant App Store API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •