API Reference

Ruby SDK

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 install

Or install directly:

gem install spartera-api-sdk

Requirements

  • 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}"
end

Rails 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
end

Batch 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)