Skip to main content

API client for system:inmation.

Project description

inmation header

inmation API Client

This API client can only be used with the new inmation Web API server.

Install

Install with pip install inmation-api-client.

Dependencies

  • websockets, will be installed automatically when installing with pip.

Documentation

Visit the api client documentation page on the inmation's docs website for various usage examples and more.

How to use it

Advanced authentication options

  • authority can be inmation, ad (Active Directory - domain account), machine (local account)

  • username can be provided in 'User Principal Name' or 'Down-Level Logon Name'

source: https://docs.microsoft.com/en-us/windows/desktop/secauthn/user-name-formats

auth authentication and authorization fields:

options = {
    'auth': {
        'username': '',
        'password': '',
        'authority': 'inmation | ad | machine',
        'grant_type': 'password',
        'include_claims': ['email', 'family_name', 'given_name', 'middle_name', 'phone_number']
    },
    'authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'
}

include_claims can only be used in combination with authority set to ad. The token will not be returned to the client but passed via the req argument into ExecFunction implementation.

Note: check Web API version which authorization options its supports.

Example Active Directory authentication:

options = {
    'auth': {
        'username': 'user@domain.com',
        'password': 'secret',
        'authority': 'ad',
        'grant_type': 'password'
    }
}

Example Bearer token authentication:

options = {
    'authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'
}

Example Basic authentication:

options = {
    'authorization': 'Basic dXNlcm5hbWU6cGFzc3dvcmQ='
}

Connect and Read example

from inmation_api_client import Client, Options, Item


def create_client():
    options = Options({
        'auth': {
            'username': 'user@domain.com',
            'password': 'secret',
            'authority': 'ad',
            'grant_type': 'password'
        }
    })
    client = Client()
    client.Connect('127.0.0.1', 8002, options)

    def connection_changed(conn_info):
        print('Connection state: {}, authenticated: {}'.format(conn_info.state_string, conn_info.authenticated))
    client.OnConnectionChanged(connection_changed)

    def on_error(err):
        if err:
            print("Error: {}".format(err.message))
    client.OnError(on_error)

    return client


def main():
    items_path = "/System/Core/"

    # Make sure you have some items with historical data
    items = [Item(items_path + i) for i in ['Item01', 'Item02', 'Item03']]
    client = create_client()

    # Read values syncroniously
    response = client.Read(items)
    print(response['data'])


if __name__ == '__main__':
    main()

inmation

inmation is a vendor-independent industrial system-integration specialist. Dedicated to modern technologies such as OPC UA (Unified Architecture) and document-oriented schema-less repositories, inmation opens up new horizons for enterprise real-time data management.

More information on inmation.com

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inmation-api-client-0.8.2.tar.gz (22.6 kB view details)

Uploaded Source

File details

Details for the file inmation-api-client-0.8.2.tar.gz.

File metadata

  • Download URL: inmation-api-client-0.8.2.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.5

File hashes

Hashes for inmation-api-client-0.8.2.tar.gz
Algorithm Hash digest
SHA256 54e4d49b04f2391d56b08644d8bba11f8f323c6fb67656ee7df6311406f1dd68
MD5 3970d25b53b6910e4d101659d02a32d8
BLAKE2b-256 2ff317c7f657e11b06e4e7a8bce2d824d99d0ea5b08c6bc4ded2ef1995f7bd2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page