Granica Python SDK
Project description
Granica SDK
This SDK provides an authentication solution for programatically interacting with Granica. It wraps the boto3 interface so project wide integration is as easy as refactoring import boto3 to import granica as boto3.
The package affects the signing and routing protocol of the boto3 S3 client, therefore any non S3 clients created through this SDK will be un-affected by the wrapper.
Prerequisites
The minimum supported version of Python is version 3.
Installation
python3 -m pip install granica-sdk
Usage
In order to use this package, you need to set the following environment variables where your application will be running
export GRANICA_CUSTOM_DOMAIN=<YOUR_CUSTOM_DOMAIN>
export GRANICA_REGION=<YOUR_GRANICA_CLUSTER_REGION>
# Optional if not running on an ec2 instance to force read from a read-replica in this az
export GRANICA_AZ_ID=<AZ_ID>
For backwards compatibility, the following environment variables are supported
BOLT_CUSTOM_DOMAIN --> GRANICA_CUSTOM_DOMAIN
BOLT_REGION --> GRANICA_REGION
BOLT_AZ_ID --> GRANICA_AZ_ID
If the region and AZ environment variables aren't specified when running on an EC2 instance, the SDK will use the ec2 metadata api to fetch the instance's region and availability zone id.
Example S3 GetObject
import granica as boto3
s3_client = boto3.client('s3')
s3_client.put_object(Body="data", Bucket="BUCKET_NAME", Key="key")
response = s3_client.get_object(Bucket="BUCKET_NAME", Key="key")
obj = response['Body'].read()
Debugging
Import the default logger and set its level to DEBUG
logging.getLogger().setLevel(logging.DEBUG)
Tests
Basic integration tests are provided for the modified Session/Client interfaces. They must be run in an environment with a properly configured Granica deployment accessible.
python3 tests/tests.py
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file granica-sdk-2.2.0.tar.gz.
File metadata
- Download URL: granica-sdk-2.2.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5faf0bab5f788795b0696a63f271dbc33cd72a6e447e71915a7fb937d9793a9
|
|
| MD5 |
61abbe3af06cdaa848408b4c149b0e9b
|
|
| BLAKE2b-256 |
6286e8aa98d268781412b79991f41ab56dd8048fae6c2e02d00ff5a35daaad8c
|
File details
Details for the file granica_sdk-2.2.0-py3-none-any.whl.
File metadata
- Download URL: granica_sdk-2.2.0-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9df185ac39708ff9c8fa5582add72df38329aa04b988e9af124fb5b2164da03
|
|
| MD5 |
00543c70ab6916360c7cb1b36a35c1c7
|
|
| BLAKE2b-256 |
62062234ae0bc9bf42c6d932c8832c09368950bd8ace99c21a47cbde30a40794
|