Authelio Python SDK
Project description
Authelio Python SDK
Description
Authelio Python SDK allows an easy and fast integration with AUTHELIO - authentication and authorization API.
Remarks
Biomapas aims to modernize life-science industry by sharing its IT knowledge with other companies and the community. This is an open source library intended to be used by anyone. Improvements and pull requests are welcome.
Related technology
- Python 3
Assumptions
The project assumes the following:
- You have basic-good knowledge in python programming.
Install
The project is built and uploaded to PyPi. Install it by using pip.
pip install authelio_sdk
Or directly install it through source.
pip install .
Usage & Examples
SDK client
Create Authelio SDK client using the given AUTHELIO PUBLIC API URL, API KEY, and API SECRET:
from authelio_sdk.client import Client
from authelio_sdk.config import Config
AUTHELIO_PUBLIC_API_URL = 'http://localhost'
AUTHELIO_API_KEY = 'DFCC345BE3C0DC42DF8A123F7579'
AUTHELIO_API_SECRET = '4AomCEeUG2j7epT87GahHfh2e8YnaDRthx5k0zfgnnY='
sdk_client = Client(
api_key=AUTHELIO_API_KEY,
api_secret=AUTHELIO_API_SECRET,
config=Config(
public_api_url=AUTHELIO_PUBLIC_API_URL
)
)
Hosted login page
To get hosted login page URL, use SDK client method - user.login
.
Request syntax:
response = sdk_client.user.login(
redirect_uri='https://example.com',
response_type='code'
)
Parameters
- redirect_uri (string) [OPTIONAL] - URI of the resource for which login page is required. If omitted default resource URI will be used.
- response_type (string) [OPTIONAL] - The response type. Must be either
code
ortoken
. Indicates whether the client wants an authorization code for the user (authorization code grant flow), or directly issues tokens for the user (implicit flow). Default:code
Returns
Hosted login page URL.
Return Type: String
Create a user
To create user, use SDK client method - user.create
.
Request syntax:
response = sdk_client.user.create(
email='string',
username='string',
first_name='string',
last_name='string',
user_id='string',
group_ids=['string', 'string', '...'],
permissions=['string', 'string', '...']
)
Parameters
- email (string) [REQUIRED] - Email address of the user.
- preferred_username (string) [REQUIRED] - Preferred username of the user.
- first_name (string) [REQUIRED] - Given name of the user.
- last_name (string) [REQUIRED] - Family name of the user.
- username (string) [OPTIONAL] - Unique idnetifier of the user.
- group_ids (list) [OPTIONAL] - A list of group unique identifiers.
- permissions (list) [OPTIONAL] - A list of user permissions.
Returns
Return Type: User
User Attributes:
- username (string) - Unique identifier of newly created user.
- preferred_username (string) - Preferred username of newly created user.
- email (string) - Email address of newly created user.
- first_name (string) - Given name of newly created user.
- last_name (string) - Family name of newly created user.
- tmp_password (string) - Temporary password of newly created user.
- group_ids (list) - A list of unique identifiers of assigned permission groups.
- permissions (list) - A list of directly assigned user permissions.
Get User
Retrieval of previously created user.
Request syntax:
response = sdk_client.user.get(user_id='string')
Parameters
- username (string) [REQUE] - Unique idnetifier of the user.
Returns
Return Type: User
User Attributes:
- username (string) - Unique identifier of newly created user.
- preferred_username (string) - Preferred username of newly created user.
- email (string) - Email address of newly created user.
- first_name (string) - Given name of newly created user.
- last_name (string) - Family name of newly created user.
- group_ids (list) - A list of unique identifiers of assigned permission groups.
- permissions (list) - A list of directly assigned user permissions.
- is_active (bool) - Specifies whether the user is enabled.
Please check the documentation available here, which contains information on how to use the library, and a complete API reference guide.
Testing
The project has tests that can be run. Simply run:
pytest authelio_sdk_tests
Contribution
Found a bug? Want to add or suggest a new feature?
Contributions of any kind are gladly welcome. You may contact us
directly, create a pull-request or an issue in github platform.
Lets modernize the world together.
Release history
3.1.1
- User
create
method update:- Addition of optional parameters to
user/create
endpoint payload revised.
- Addition of optional parameters to
3.1.0
- User
create
method updates:- A new optional parameter
auth_type
introduced. Parameter allows to specify user authentication type. - Mandatory parameter
username
change into an optional one. The Authelio API does not allowed to specifyusername
for the user offederated_sso
auth type.
- A new optional parameter
3.0.1
- Limit urllib3 dependency up to the breaking version.
3.0.0
user_ids
as arguments for the clientUser
methodget
introduced.group_ids
as arguments for the clientGroup
methodsget
andusers
introduced.
2.0.0
- New method
users
for the clientGroup
added. The method retrieves either user IDs for the given group or common user ids for the given groups. - Client
User
updates:- Method
filter
updated. Method accepts optional pagination parameters,count
and next page tokenpage_id
. Returns chunk of filtered user entities and next page token if such exist. - Method
get
updated. Retrieval of multiple user entities implemented.
- Method
- Client
Group
updates:- Method
filter
updated. Method accepts optional pagination parameters,count
and next page tokenpage_id
. Returns chunk of filtered group entities and next page token if such exist. - Method
get
updated. Retrieval of multiple group entities implemented.
- Method
1.1.0
- User login method returning hosted login page URL added.
0.0.5
- User filter method updated to include directly assigned user permissions.
- Redundant integration tests removed.
0.0.4
- SDK client base updated by introducing basic auth.
0.0.3
- Fix mismatched environment variable names in the pipeline.
0.0.2
- Add integration tests.
0.0.1
- Initial build.
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
Built Distribution
File details
Details for the file authelio_sdk-3.1.1.tar.gz
.
File metadata
- Download URL: authelio_sdk-3.1.1.tar.gz
- Upload date:
- Size: 20.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c454eaba7d0851b07ce96be5f5e2b490fb184e707a30d2f36907dfd13efddc02 |
|
MD5 | 4d644346e6289dabf1f236eb5ac5c736 |
|
BLAKE2b-256 | d0865122370a05348fc3a9d85eaafe827473b70b4cda6311cb3ff1b574b419ca |
File details
Details for the file authelio_sdk-3.1.1-py3-none-any.whl
.
File metadata
- Download URL: authelio_sdk-3.1.1-py3-none-any.whl
- Upload date:
- Size: 30.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3e1efd089c85730a104f22ee314caddf0a580f87597617bdede03af0bac5a32 |
|
MD5 | 776e7986e1eceae60d807576364ad1a8 |
|
BLAKE2b-256 | 5958aa26ee2797a150aaa4c89a1005dd78ad8dce23557c5844595503057c2536 |