Ruby SDK
The Spartera Ruby SDK provides native Ruby methods to interact with the
Spartera REST API for asset management, analytics, and billing operations.
Installation
Add to your Gemfile:
gem 'spartera-api-sdk'Then run:
bundle installOr install directly:
gem install spartera-api-sdkRequirements
- Ruby 2.7 or higher
- Bundler for dependency management
Features
The Ruby SDK includes:
- Native Ruby methods for all API endpoints
- Automated asset management capabilities
- Analytics and billing operations
- Connection management for data platforms
- Marketplace publishing tools
- Environment variable configuration
- Error handling with Ruby exceptions
Configuration
Configure the client with your API credentials:
require 'spartera_api_sdk'
# Using environment variables
client = Spartera::Client.new
# Direct configuration
client = Spartera::Client.new(
api_key: 'your-api-key',
endpoint: 'https://api.spartera.com'
)Quick Start
require 'spartera_api_sdk'
client = Spartera::Client.new(api_key: ENV['SPARTERA_API_KEY'])
# Create data connection
connection = client.connections.create(
name: 'Production Warehouse',
type: 'redshift',
credentials: {
host: 'your-cluster.redshift.amazonaws.com',
database: 'analytics',
username: 'your-username',
password: 'your-password'
}
)
# Create asset
asset = client.assets.create(
name: 'User Engagement Metrics',
type: 'sql',
query: 'SELECT user_id, sessions FROM user_analytics',
connection_id: connection.id
)
# Set pricing and publish
client.assets.set_pricing(asset.id,
strategy: 'per_usage',
price: 1.25
)
client.marketplace.publish(asset.id)Data Connections
Manage various data platform connections:
# BigQuery connection
bigquery_conn = client.connections.create(
name: 'BigQuery Analytics',
type: 'bigquery',
credentials: {
project_id: 'your-gcp-project',
credentials_json: File.read('service-account.json')
}
)
# Snowflake connection
snowflake_conn = client.connections.create(
name: 'Snowflake DW',
type: 'snowflake',
credentials: {
account: 'your-account.snowflakecomputing.com',
username: 'analytics_user',
password: 'secure_password',
warehouse: 'COMPUTE_WH'
}
)Asset Management
# List all assets
assets = client.assets.list(page: 1, per_page: 50)
# Get specific asset
asset = client.assets.find('asset-id')
# Update asset
client.assets.update('asset-id',
name: 'Updated Asset Name',
description: 'New description'
)
# Delete asset
client.assets.delete('asset-id')Analytics and Monitoring
# Get usage analytics
usage_data = client.analytics.usage('asset-id',
start_date: Date.parse('2024-01-01'),
end_date: Date.parse('2024-01-31')
)
# Performance metrics
performance = client.analytics.performance('asset-id')
# Revenue tracking
revenue = client.billing.revenue_report(
start_date: '2024-01-01',
end_date: '2024-01-31'
)Error Handling
begin
asset = client.assets.find('invalid-id')
rescue Spartera::NotFoundError => e
puts "Asset not found: #{e.message}"
rescue Spartera::APIError => e
puts "API Error: #{e.status_code} - #{e.message}"
rescue => e
puts "Unexpected error: #{e.message}"
endRails Integration
For Rails applications, configure in an initializer:
# config/initializers/spartera.rb
Spartera.configure do |config|
config.api_key = Rails.application.credentials.spartera_api_key
config.endpoint = 'https://api.spartera.com'
config.timeout = 30
endBatch Operations
# Bulk asset creation
assets_data = [
{ name: 'Asset 1', type: 'sql', query: 'SELECT * FROM table1' },
{ name: 'Asset 2', type: 'sql', query: 'SELECT * FROM table2' }
]
results = client.assets.bulk_create(assets_data)