- Add Prometheus metrics for marketplace API throughput and error rates with new dashboard panels - Implement confidential transaction models with encryption support and access control - Add key management system with registration, rotation, and audit logging - Create services and registry routers for service discovery and management - Integrate ZK proof generation for privacy-preserving receipts - Add metrics instru
271 lines
5.7 KiB
Markdown
271 lines
5.7 KiB
Markdown
# AITBC Enterprise Connectors SDK
|
|
|
|
Python SDK for integrating AITBC with enterprise systems including payment processors, ERP systems, and other business applications.
|
|
|
|
## Quick Start
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
pip install aitbc-enterprise
|
|
```
|
|
|
|
### Basic Usage
|
|
|
|
```python
|
|
import asyncio
|
|
from aitbc_enterprise import AITBCClient, ConnectorConfig
|
|
from aitbc_enterprise.payments import StripeConnector
|
|
|
|
async def main():
|
|
# Configure AITBC client
|
|
config = ConnectorConfig(
|
|
base_url="https://api.aitbc.io",
|
|
api_key="your-api-key",
|
|
enterprise_id="enterprise-123"
|
|
)
|
|
|
|
# Create client and connector
|
|
async with AITBCClient(config) as client:
|
|
stripe = StripeConnector(
|
|
client=client,
|
|
config=config,
|
|
stripe_api_key="sk_test_your-stripe-key"
|
|
)
|
|
|
|
await stripe.initialize()
|
|
|
|
# Create a charge
|
|
charge = await stripe.create_charge(
|
|
amount=2000, # $20.00
|
|
currency="usd",
|
|
source="pm_card_visa",
|
|
description="AITBC service"
|
|
)
|
|
|
|
print(f"Charge created: {charge.id}")
|
|
|
|
await stripe.cleanup()
|
|
|
|
asyncio.run(main())
|
|
```
|
|
|
|
## Features
|
|
|
|
- **Async/Await Support**: Full async implementation for high performance
|
|
- **Enterprise Ready**: Built-in rate limiting, metrics, and error handling
|
|
- **Extensible**: Plugin architecture for custom connectors
|
|
- **Secure**: HSM-backed key management and audit logging
|
|
- **Compliant**: GDPR, SOC 2, and PCI DSS compliant
|
|
|
|
## Supported Systems
|
|
|
|
### Payment Processors
|
|
- ✅ Stripe
|
|
- ⏳ PayPal (Coming soon)
|
|
- ⏳ Square (Coming soon)
|
|
|
|
### ERP Systems
|
|
- ⏳ SAP (IDOC/BAPI)
|
|
- ⏳ Oracle (REST/SOAP)
|
|
- ⏳ NetSuite (SuiteTalk)
|
|
|
|
## Architecture
|
|
|
|
The SDK uses a modular architecture with dependency injection:
|
|
|
|
```
|
|
AITBCClient
|
|
├── Core Components
|
|
│ ├── AuthHandler (Bearer, OAuth2, HMAC, etc.)
|
|
│ ├── RateLimiter (Token bucket, Sliding window)
|
|
│ ├── MetricsCollector (Performance tracking)
|
|
│ └── WebhookHandler (Event processing)
|
|
├── BaseConnector
|
|
│ ├── Validation
|
|
│ ├── Error Handling
|
|
│ ├── Batch Operations
|
|
│ └── Event Handlers
|
|
└── Specific Connectors
|
|
├── PaymentConnector
|
|
└── ERPConnector
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Basic Configuration
|
|
|
|
```python
|
|
config = ConnectorConfig(
|
|
base_url="https://api.aitbc.io",
|
|
api_key="your-api-key",
|
|
timeout=30.0,
|
|
max_retries=3
|
|
)
|
|
```
|
|
|
|
### Enterprise Features
|
|
|
|
```python
|
|
config = ConnectorConfig(
|
|
base_url="https://api.aitbc.io",
|
|
api_key="your-api-key",
|
|
enterprise_id="enterprise-123",
|
|
tenant_id="tenant-456",
|
|
region="us-east-1",
|
|
rate_limit=100, # requests per second
|
|
enable_metrics=True,
|
|
webhook_secret="whsec_your-secret"
|
|
)
|
|
```
|
|
|
|
### Authentication
|
|
|
|
The SDK supports multiple authentication methods:
|
|
|
|
```python
|
|
# Bearer token (default)
|
|
config = ConnectorConfig(
|
|
auth_type="bearer",
|
|
api_key="your-token"
|
|
)
|
|
|
|
# OAuth 2.0
|
|
config = ConnectorConfig(
|
|
auth_type="oauth2",
|
|
auth_config={
|
|
"client_id": "your-client-id",
|
|
"client_secret": "your-secret",
|
|
"token_url": "https://oauth.example.com/token"
|
|
}
|
|
)
|
|
|
|
# HMAC signature
|
|
config = ConnectorConfig(
|
|
auth_type="hmac",
|
|
api_key="your-key",
|
|
auth_config={
|
|
"secret": "your-secret",
|
|
"algorithm": "sha256"
|
|
}
|
|
)
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
The SDK provides comprehensive error handling:
|
|
|
|
```python
|
|
from aitbc_enterprise.exceptions import (
|
|
AITBCError,
|
|
AuthenticationError,
|
|
RateLimitError,
|
|
PaymentError,
|
|
ValidationError
|
|
)
|
|
|
|
try:
|
|
charge = await stripe.create_charge(...)
|
|
except RateLimitError as e:
|
|
print(f"Rate limited, retry after {e.retry_after}s")
|
|
except PaymentError as e:
|
|
print(f"Payment failed: {e}")
|
|
except AITBCError as e:
|
|
print(f"AITBC error: {e}")
|
|
```
|
|
|
|
## Webhooks
|
|
|
|
Handle webhooks with built-in verification:
|
|
|
|
```python
|
|
from aitbc_enterprise.webhooks import StripeWebhookHandler
|
|
|
|
# Create webhook handler
|
|
webhook_handler = StripeWebhookHandler(
|
|
secret="whsec_your-webhook-secret"
|
|
)
|
|
|
|
# Add custom handler
|
|
async def handle_charge(event):
|
|
print(f"Charge: {event.data}")
|
|
|
|
webhook_handler.add_handler("charge.succeeded", handle_charge)
|
|
|
|
# Process webhook
|
|
result = await webhook_handler.handle(payload, signature)
|
|
```
|
|
|
|
## Batch Operations
|
|
|
|
Process multiple operations efficiently:
|
|
|
|
```python
|
|
# Batch charges
|
|
operations = [
|
|
{
|
|
"operation": "create_charge",
|
|
"data": {"amount": 1000, "currency": "usd", "source": "pm_123"}
|
|
},
|
|
{
|
|
"operation": "create_charge",
|
|
"data": {"amount": 2000, "currency": "usd", "source": "pm_456"}
|
|
}
|
|
]
|
|
|
|
results = await stripe.batch_execute(operations)
|
|
successful = sum(1 for r in results if r.success)
|
|
```
|
|
|
|
## Metrics and Monitoring
|
|
|
|
Enable metrics collection:
|
|
|
|
```python
|
|
config = ConnectorConfig(
|
|
enable_metrics=True,
|
|
metrics_endpoint="https://your-metrics.example.com"
|
|
)
|
|
|
|
# Metrics are automatically collected
|
|
# Access metrics summary
|
|
print(stripe.metrics)
|
|
```
|
|
|
|
## Testing
|
|
|
|
Use the test mode for development:
|
|
|
|
```python
|
|
# Use test API keys
|
|
config = ConnectorConfig(
|
|
base_url="https://api-test.aitbc.io",
|
|
api_key="test-key"
|
|
)
|
|
|
|
stripe = StripeConnector(
|
|
client=client,
|
|
config=config,
|
|
stripe_api_key="sk_test_key" # Stripe test key
|
|
)
|
|
```
|
|
|
|
## Examples
|
|
|
|
See the `examples/` directory for complete examples:
|
|
|
|
- `stripe_example.py` - Payment processing
|
|
- `webhook_example.py` - Webhook handling
|
|
- `enterprise_example.py` - Enterprise features
|
|
|
|
## Support
|
|
|
|
- **Documentation**: https://docs.aitbc.io/enterprise-sdk
|
|
- **Issues**: https://github.com/aitbc/enterprise-sdk/issues
|
|
- **Support**: enterprise@aitbc.io
|
|
- **Security**: security@aitbc.io
|
|
|
|
## License
|
|
|
|
Copyright © 2024 AITBC. All rights reserved.
|