Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

GooderData

GoodData API ruby client

Code Climate Test Coverage Build Status

Installation

Add this line to your application's Gemfile:

gem 'gooder_data'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install gooder_data

Usage

Execute a process

project = GooderData::Project.new(project_id: "#{ project_id }")
process_id = project.execute_process("#{ process_id }", "#{ my_project_name/graph/graph_name.grf }")

Embedding GoodData Dashboard iFrame with SSO

# Controller
dashboard_url = GooderData::Project::Dashboard.new('my-dashboard-id', project_id: 'my-project-id').url
iframe_url = GooderData::SSO.new("my.app.user@email.com", organization_name: 'my-organization').url(dashboard_url)

# index.html.erb
<iframe src="<%= iframe_url -%>"/>

Creating and assigning Mandatory User Filter (MUF)

project = GooderData::Project.new(project_id: 'my-project-id')

attribute = project.query_attributes.find(identifier: 'my_dataset.my_attribute')
values = attribute.values.where { |value| value.title.to_i > 5 }
query = GooderData::Project::Query.new(attribute).in(*values)

filter_id = project.create_mandatory_user_filter('My filter name', query)

project.bind_mandatory_user_filter(filter_id, 'my-user-profile-id')

GoodData API Client and using non implemented api calls

client = GooderData::ApiClient.new
client.connect!("my.gd.project.admin.user@email.com", "my_password")
client.api_to("execute process and return the execution details link") do |options|
  post("/projects/#{ project_id }/dataload/processes/#{ process_id }/executions", {
    execution: {
      executable: executable_graph_path
    }
  })
end.that_responds do |response|
  response['executionTask']['links']['details'] rescue ''
end

Link for GoodData Api of the implementation above

Configurations and default values

GooderData.configure do |c|
  # default = 36 hours
  # 10 min < expiration < 36 hours;
  # https://developer.gooddata.com/article/gooddata-pgp-single-sign-on
  c.signature_expiration_in_seconds = 3600 # 1 hour

  # default nil, :required
  c.project_id = "my-prioject-id"

  # default nil
  c.user_email = "gd.project.admin.user@domain.com"

  # default nil, :required
  c.user_password = "mY-h4RD p@55w0rD_"

  # default nil
  # gets first GPG signature if nil
  c.sso_signer_email = "pgp.secret.signature.email@domain.com"

  # default nil
  # no passphrase signature if nil
  c.sso_signer_password = 'secretpassword'
end

Maintainers

@dougpetronilio - douglas.petronilio@resultadosdigitais.com.br

Contributing

  1. Fork it ( http://github.com/ResultadosDigitais/gooder_data/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Stage your changes (git add -A)
  4. Commit your changes (git commit)
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request
You can’t perform that action at this time.