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.17.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.17-py3-none-any.whl (159.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: orcatech_client-0.1.17.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.17.tar.gz
Algorithm Hash digest
SHA256 3d44ea14cf74a4b10b4bd717e5abde85e6faa9e0d5fc59598c5cf2af1d135187
MD5 b0c74dde93a11be129452d8256d92b99
BLAKE2b-256 ead5a9f197600c5988d8ecb18892712937212f8f6c65382c872a1807f90118eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for orcatech_client-0.1.17-py3-none-any.whl
Algorithm Hash digest
SHA256 17f88c072a273209d89288acf46ec3880b5711e82dfe981a0f3bfddb1b223469
MD5 11fce83510cd63e243a4f11485ef67cd
BLAKE2b-256 a7dfa8f1f85eda2ca1610b11ebc4cead31abaa5e7c572ce79cf07e9cbb03f08c

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