Some basic API stuff directly from CLI
GET request on our API
tomaskorcak@kx-mac:~/$ gooddata api get /gdc
{"about"=>
{"summary"=>"Use links to navigate the services.",
"category"=>"GoodData API root",
"links"=>
[{"link"=>"/gdc/", "summary"=>"", "category"=>"home", "title"=>"home"},
{"link"=>"/gdc/account/token",
"summary"=>"Temporary token generator.",
"category"=>"token",
"title"=>"token"},
{"link"=>"/gdc/account/login",
"summary"=>"Authentication service.",
"category"=>"login",
"title"=>"login"},
{"link"=>"/gdc/md",
"summary"=>"Metadata resources.",
"category"=>"md",
"title"=>"metadata"},
{"link"=>"/gdc/xtab2",
"summary"=>"Report execution resource.",
"category"=>"xtab",
"title"=>"xtab"},
{"link"=>"/gdc/availableelements",
"summary"=>
"Resource used to determine valid attribute values in the context of a report.",
"category"=>"availablelements",
"title"=>"AvailableElements"},
{"link"=>"/gdc/exporter",
"summary"=>"Report exporting resource.",
"category"=>"report-exporter",
"title"=>"exporter"},
{"link"=>"/gdc/account",
"summary"=>"Resource for logged in account manipulation.",
"category"=>"account",
"title"=>"account"},
{"link"=>"/gdc/projects",
"summary"=>"Resource for user and project management.",
"category"=>"projects",
"title"=>"projects"},
{"link"=>"/gdc/tool",
"summary"=>"Miscellaneous resources.",
"category"=>"tool",
"title"=>"tool"},
{"link"=>"/gdc/templates",
"summary"=>"Template resource - for internal use only.",
"category"=>"templates",
"title"=>"templates"},
{"link"=>"/gdc/releaseInfo",
"summary"=>"Release information.",
"category"=>"releaseInfo",
"title"=>"releaseInfo"},
{"link"=>"https://secure-di.gooddata.com/uploads",
"summary"=>"User data staging area.",
"category"=>"uploads",
"title"=>"user-uploads"}]}}
Info about the API version etc
tomaskorcak@kx-mac:~/$ gooddata api info
GoodData API
Version: N/A
Released: N/A
For more info see N/A
nil
Work with your locally stored credentials
Store your credentials to ~/.gooddata so client does not have to ask you every single time
tomaskorcak@kx-mac:~/$ gooddata auth store
Enter your GoodData credentials.
Email
[email protected]
Password
xxxxxxxxxxxxxxxx
Authorization Token
ABCDEF123
Overwrite existing stored credentials (y/n)
y
Interactive session with gooddata sdk loaded
Manage domain
Add user to domain
tomaskorcak@kx-mac:~/$ gooddata domain add_user gooddata-tomas-korcak joe doe [email protected] password
List users in domain
tomaskorcak@kx-mac:~/$ gooddata domain list_users gooddata-tomas-korcak
Tomas,Korcak,[email protected]
tomas,korcak,[email protected]
joe,doe,[email protected]
Shows a list of commands or help for one command
Work with deployed processes
Deploys provided directory to the server
Gives you some basic info about the process
Lists all user's processes deployed on the plaform
tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb process list
{"processes"=>
{"items"=>
[{"process"=>
{"type"=>"GRAPH",
"name"=>"Training March",
"graphs"=>["Training March/graph/graph.grf"],
"executables"=>["Training March/graph/graph.grf"],
"links"=>
{"self"=>
"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/processes/f12975d2-5958-4248-9c3d-4c8f2e1f067d",
"executions"=>
"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/processes/f12975d2-5958-4248-9c3d-4c8f2e1f067d/executions",
"source"=>
"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/processes/f12975d2-5958-4248-9c3d-4c8f2e1f067d/source"}}}],
"links"=>
{"self"=>
"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/processes"}}}
Manage your project
If you are in a gooddata project blueprint it will apply the changes. If you do not provide a project id it will build it from scratch and create a project for you.
Clones a project. Useful for testing
tomaskorcak@kx-mac:~/$ gooddata -p uq7vmjkmfj86jihofsavdxgtfmxwofrh project clone
Create a gooddata project
tomaskorcak@kx-mac:~/$ gooddata project create
Project name
Test Project
Project summary ||
Test Project Summary Text
Project template
token
SUPERSECRETTOKENHERE
Project 'Test Project' with id /gdc/projects/uq7vmjkmfj86jihofsavdxgtfmxwofrh created successfully!
Delete a project. Be careful this is impossible to revert
tomaskorcak@kx-mac:~/$ gooddata -p uq7vmjkmfj86jihofsavdxgtfmxwofrh project delete
Invites user to project
tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project invite [email protected] admin
Inviting [email protected], role: /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/2
List users
tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project list_users
Korcak,Tomas,[email protected],/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9
Roles
tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project roles
/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/2,Admin
/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/7,Connectors System User
/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/5,Editor
/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/3,Embedded Dashboard Only
/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/1,Unverified Admin
/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/4,Viewer
Shows basic info about a project
tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project show
{"content"=>
{"cluster"=>"",
"authorizationToken"=>"IOUYYUY8786",
"guidedNavigation"=>"1",
"isPublic"=>"0",
"driver"=>"Pg",
"state"=>"ENABLED"},
"links"=>
{"ldm_thumbnail"=>
"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/ldm?thumbnail=1",
"self"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb",
"clearCaches"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/clearCaches",
"invitations"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/invitations",
"users"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/users?link=1",
"uploads"=>
"https://secure-di.gooddata.com/project-uploads/tk6192gsnav58crp6o1ahsmtuniq8khb/",
"ldm"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/ldm",
"metadata"=>"/gdc/md/tk6192gsnav58crp6o1ahsmtuniq8khb",
"publicartifacts"=>
"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/publicartifacts",
"roles"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles",
"dataload"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload",
"connectors"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/connectors",
"execute"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/execute",
"schedules"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/schedules",
"templates"=>"/gdc/md/tk6192gsnav58crp6o1ahsmtuniq8khb/templates",
"eventstores"=>
"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/eventstore/stores"},
"meta"=>
{"created"=>"2014-03-03 14:24:51",
"summary"=>"",
"updated"=>"2014-03-03 14:24:51",
"author"=>"/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9",
"title"=>"Training March",
"contributor"=>"/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9"}}
If you are in a gooddata project blueprint it will apply the changes. If you do not provide a project id it will build it from scratch and create a project for you.
You can run project validation which will check RI integrity and other problems.
tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project validation
{"projectValidateResult"=>
{"error_found"=>0,
"fatal_error_found"=>0,
"results"=>
[{"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm"},
{"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm::transitivity"},
{"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm::elem_validation"},
{"body"=>{"error"=>0, "log"=>[]}, "from"=>"metric_filter"},
{"body"=>{"error"=>0, "log"=>[]}, "from"=>"ldm"},
{"body"=>{"error"=>0, "log"=>[]}, "from"=>"invalid_objects"},
{"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm::pdm_vs_dwh"},
{"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm::pk_fk_consistency"}],
"meta"=>{"start_time"=>1398202260, "finished_time"=>1398202262}}}
Manage your projects
Lists user's projects
tomaskorcak@kx-mac:~/$ gooddata projects list
/gdc/projects/la84vcyhrq8jwbu4wpipw66q2sqeb923,GoodSales Demo
/gdc/projects/pouwty5dezpuib8nil16fv4i1jz80oju,GoodSample Demo
/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb,Training March
Basic Role Management
List roles
tomaskorcak@kx-mac:~/$ gooddata -p pouwty5dezpuib8nil16fv4i1jz80oju role list
dashboardOnlyRole,/gdc/projects/pouwty5dezpuib8nil16fv4i1jz80oju/roles/3
readOnlyUserRole,/gdc/projects/pouwty5dezpuib8nil16fv4i1jz80oju/roles/4
Run ruby bricks either locally or remotely deployed on our server
Scaffold things
Scaffold a gooddata ruby brick. This is a piece of code that you can run on our platform
tomaskorcak@kx-mac:~/$ gooddata scaffold brick mybrick
tomaskorcak@kx-mac:~/$ ls -la mybrick/
total 16
drwxr-xr-x 4 tomaskorcak staff 136 Apr 22 14:10 .
drwxr-xr-x 31 tomaskorcak staff 1054 Apr 22 14:10 ..
-rw-r--r-- 1 tomaskorcak staff 103 Apr 22 14:10 brick.rb
-rw-r--r-- 1 tomaskorcak staff 179 Apr 22 14:10 main.rb
tomaskorcak@kx-mac:~/$ cat mybrick/brick.rb
class MyBrick < GoodData::Bricks::Brick
def call(params)
# do something here
end
end
tomaskorcak@kx-mac:~/$ cat mybrick/main.rb
require_relative '../../gooddata/bricks/bricks'
require_relative './mybrick'
Scaffold a gooddata project blueprint
tomaskorcak@kx-mac:~/$ gooddata scaffold project myproj
tomaskorcak@kx-mac:~/$ ls -la myproj/
total 8
drwxr-xr-x 5 tomaskorcak staff 170 Apr 22 14:13 .
drwxr-xr-x 31 tomaskorcak staff 1054 Apr 22 14:13 ..
-rw-r--r-- 1 tomaskorcak staff 53 Apr 22 14:13 Goodfile
drwxr-xr-x 5 tomaskorcak staff 170 Apr 22 14:13 data
drwxr-xr-x 3 tomaskorcak staff 102 Apr 22 14:13 model
User management
Show your profile
tomaskorcak@kx-mac:~/$ gooddata user show
{"accountSetting"=>
{"country"=>nil,
"firstName"=>"Tomas",
"ssoProvider"=>nil,
"timezone"=>nil,
"position"=>nil,
"authenticationModes"=>[],
"companyName"=>"GoodData",
"login"=>"[email protected]",
"email"=>"[email protected]",
"created"=>"2014-03-03 11:28:51",
"updated"=>"2014-04-22 22:58:51",
"lastName"=>"Korcak",
"phoneNumber"=>"00420775995881",
"links"=>
{"self"=>"/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9",
"projects"=>
"/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9/projects"}}}