0.0
No release in over 3 years
Low commit activity in last 3 years
Flexible and easy GoodData integration utilities for ruby
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 2.0
 Project Readme

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