Skip to main content

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


Download files

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

Source Distribution

granica-sdk-2.2.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

granica_sdk-2.2.0-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

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

Hashes for granica-sdk-2.2.0.tar.gz
Algorithm Hash digest
SHA256 e5faf0bab5f788795b0696a63f271dbc33cd72a6e447e71915a7fb937d9793a9
MD5 61abbe3af06cdaa848408b4c149b0e9b
BLAKE2b-256 6286e8aa98d268781412b79991f41ab56dd8048fae6c2e02d00ff5a35daaad8c

See more details on using hashes here.

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

Hashes for granica_sdk-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b9df185ac39708ff9c8fa5582add72df38329aa04b988e9af124fb5b2164da03
MD5 00543c70ab6916360c7cb1b36a35c1c7
BLAKE2b-256 62062234ae0bc9bf42c6d932c8832c09368950bd8ace99c21a47cbde30a40794

See more details on using hashes here.

Supported by

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