Skip to main content

A Python API client for ORCATECH

Project description

ORCATECH Python API Client

A Python-based API client for interacting with the ORCATECH server API.

Overview

This library provides a programmatic interface to make HTTP requests to the ORCATECH API using specific endpoints and request methods. It includes support for authentication, data retrieval, and AWS integration capabilities.

Installation

pip install orcatech_client

Or install from source:

git clone <repository-url>
cd python
pip install -e .

Features

  • API Client: Full-featured HTTP client for ORCATECH API endpoints
  • Authentication: Bearer token authentication support
  • Type Safety: Comprehensive schema types for observations, records, and data structures
  • AWS Integration: Certificate management for AWS services
  • Configuration: Environment-based configuration using .env files

Quick Start

from orcatech_python_api_client.client import APIClient
from orcatech_python_api_client.config import Config, Scope

# Initialize configuration
Config.validate()
host = Config.HOST_URL
token = Config.AUTH_TOKEN

# Create client
client = APIClient(host)
client.headers["Authorization"] = f"Bearer {token}"

# Make API requests
scope = Scope["STUDY"]
scope_id = 2
data_schema = "com.orcatech.measure.access.period"
observation_uuid = "your-observation-uuid"

result = client.get_observation(
    host,
    scope,
    scope_id,
    data_schema,
    observation_uuid
)

Configuration

Create a .env file in your project root:

HOST_URL=https://your-api-host.com
AUTH_TOKEN=your-bearer-token

AWS Certificate Management

The client includes support for managing AWS credentials and certificates for IoT devices.

Setting Up AWS Credentials

from orcatech_python_api_client.aws.aws_cert_manager import AWSCredentialManager

# Configuration
HOST = "https://test.c4.orcatech.org:8080/api/public"
SCOPE = "study"
SCOPE_ID = "1"
ITEM_ID = 1
SCHEMA = "com.orcatech.inventory.item"
AUTH_TOKEN = "your-auth-token"

# Read certificate and key files
with open("aws_cert.pem", "r") as cert_file:
    cert_pem = cert_file.read()

with open("aws_key.pem", "r") as key_file:
    key_pem = key_file.read()

# Combine certificate and key
combined_pem = cert_pem.strip() + "\n" + key_pem.strip()

# Initialize manager
manager = AWSCredentialManager(
    host=HOST,
    scope=SCOPE,
    scope_id=SCOPE_ID,
    auth_token=AUTH_TOKEN,
    schema=SCHEMA,
    demo_mode=False,
    insecure_ssl=True  # Set to False in production
)

# Create new AWS credentials
manager.create_aws_credentials(item_id=ITEM_ID, combined_pem=combined_pem)

# Or update existing credentials
manager.update_aws_credentials(item_id=ITEM_ID, combined_pem=combined_pem)

Certificate File Format

AWS certificates should be in PEM format:

  • aws_cert.pem - The device certificate
  • aws_key.pem - The private key

Important: Never commit .pem files to version control. They are automatically ignored by .gitignore.

Available Methods

  • get_observation() - Retrieve specific observations
  • get() - Generic GET requests
  • post() - Generic POST requests
  • authenticate() - Handle authentication

Requirements

  • Python >= 3.6
  • requests
  • python-dotenv

Author

Kezman Saboi

License

MIT License

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

orcatech_client-0.1.19.tar.gz (153.8 kB view details)

Uploaded Source

Built Distribution

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

orcatech_client-0.1.19-py3-none-any.whl (159.4 kB view details)

Uploaded Python 3

File details

Details for the file orcatech_client-0.1.19.tar.gz.

File metadata

  • Download URL: orcatech_client-0.1.19.tar.gz
  • Upload date:
  • Size: 153.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for orcatech_client-0.1.19.tar.gz
Algorithm Hash digest
SHA256 c7a26765a10416f06f8cb5e75cf6308897dbc9cce500400c74aefcad38ba4913
MD5 c4415b05a534b0af95d7ec71cccd6dc7
BLAKE2b-256 cd961f37248aefd3b51ab591069add58fa95f606fbb902cd0ec4ce0d1063bf03

See more details on using hashes here.

File details

Details for the file orcatech_client-0.1.19-py3-none-any.whl.

File metadata

File hashes

Hashes for orcatech_client-0.1.19-py3-none-any.whl
Algorithm Hash digest
SHA256 3c1f538bda2c96b1ebc6f59a423401c154d1b20b0ba0723c459bdd05536d41de
MD5 a1bb2e993526cb7d1f879be327ad03ba
BLAKE2b-256 9a6be108c23b97c066aef907a61c1a217990a63fe9ce45b2ceb7b6cd27751283

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