Metadata-Version: 2.1
Name: kognic-auth
Version: 3.5.0
Summary: Kognic Authentication
Author-email: Kognic <michel.edkrantz@kognic.com>
License: MIT
Project-URL: homepage, https://github.com/annotell/kognic-auth-python
Keywords: Kognic,API
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: authlib<1.4,>=0.14.1
Provides-Extra: httpx
Requires-Dist: httpx<1,>=0.20; extra == "httpx"
Provides-Extra: requests
Requires-Dist: requests<3,>=2.20; extra == "requests"
Provides-Extra: full
Requires-Dist: httpx<1,>=0.20; extra == "full"
Requires-Dist: requests<3,>=2.20; extra == "full"

# Kognic Authentication

Python 3 library providing foundations for Kognic Authentication
on top of the `requests` or `httpx` libraries.

Install with `pip install kognic-auth[requests]` or `pip install kognic-auth[httpx]` 

Builds on the standard OAuth 2.0 Client Credentials flow. There are a few ways to provide auth credentials to our api
 clients. Kognic Python clients such as in `kognic-io` accept an `auth` parameter that
  can be set explicitly or you can omit it and use environment variables. 

There are a few ways to set your credentials in `auth`. 
1. Set the environment variable `KOGNIC_CREDENTIALS` to point to your Api Credentials file. 
The credentials will contain the Client Id and Client Secret.
2. Set to the credentials file path like `auth="~/.config/kognic/credentials.json"` 
3. Set environment variables `KOGNIC_CLIENT_ID` and`KOGNIC_CLIENT_SECRET`
4. Set to credentials tuple `auth=(client_id, client_secret)` 

API clients such as the `InputApiClient` accept this `auth` parameter.

Under the hood, they commonly use the AuthSession class which is implements a `requests` session with automatic token
 refresh. An `httpx` implementation is also available. 
```python
from kognic.auth.requests.auth_session import RequestsAuthSession

sess = RequestsAuthSession()

# make call to some Kognic service with your token. Use default requests 
sess.get("https://api.app.kognic.com")
```

## Changelog
See Github releases from v3.1.0, historic changelog is available in CHANGELOG.md
