gooddata-edge 0.6.27.edge

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +36 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +89 -0
  6. data/.yardopts +22 -0
  7. data/CHANGELOG.md +196 -0
  8. data/CLI.md +439 -0
  9. data/DEPENDENCIES.md +817 -0
  10. data/Gemfile +4 -0
  11. data/Guardfile +5 -0
  12. data/LICENSE +22 -0
  13. data/LICENSE.rb +5 -0
  14. data/README.md +75 -0
  15. data/Rakefile +179 -0
  16. data/TODO.md +32 -0
  17. data/authors.sh +4 -0
  18. data/bin/gooddata +7 -0
  19. data/dependency_decisions.yml +104 -0
  20. data/gooddata +9 -0
  21. data/gooddata.gemspec +63 -0
  22. data/lib/gooddata.rb +31 -0
  23. data/lib/gooddata/app/app.rb +16 -0
  24. data/lib/gooddata/bricks/base_downloader.rb +86 -0
  25. data/lib/gooddata/bricks/brick.rb +38 -0
  26. data/lib/gooddata/bricks/bricks.rb +15 -0
  27. data/lib/gooddata/bricks/middleware/aws_middleware.rb +29 -0
  28. data/lib/gooddata/bricks/middleware/base_middleware.rb +56 -0
  29. data/lib/gooddata/bricks/middleware/bench_middleware.rb +24 -0
  30. data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +37 -0
  31. data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +20 -0
  32. data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +48 -0
  33. data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +36 -0
  34. data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +39 -0
  35. data/lib/gooddata/bricks/middleware/logger_middleware.rb +29 -0
  36. data/lib/gooddata/bricks/middleware/middleware.rb +12 -0
  37. data/lib/gooddata/bricks/middleware/restforce_middleware.rb +61 -0
  38. data/lib/gooddata/bricks/middleware/stdout_middleware.rb +23 -0
  39. data/lib/gooddata/bricks/middleware/twitter_middleware.rb +29 -0
  40. data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +37 -0
  41. data/lib/gooddata/bricks/pipeline.rb +32 -0
  42. data/lib/gooddata/bricks/utils.rb +18 -0
  43. data/lib/gooddata/cli/cli.rb +27 -0
  44. data/lib/gooddata/cli/commands/auth_cmd.rb +29 -0
  45. data/lib/gooddata/cli/commands/domain_cmd.rb +28 -0
  46. data/lib/gooddata/cli/commands/project_cmd.rb +45 -0
  47. data/lib/gooddata/cli/hooks.rb +57 -0
  48. data/lib/gooddata/cli/shared.rb +61 -0
  49. data/lib/gooddata/cli/terminal.rb +20 -0
  50. data/lib/gooddata/client.rb +67 -0
  51. data/lib/gooddata/commands/api.rb +64 -0
  52. data/lib/gooddata/commands/auth.rb +107 -0
  53. data/lib/gooddata/commands/base.rb +12 -0
  54. data/lib/gooddata/commands/commands.rb +12 -0
  55. data/lib/gooddata/commands/datasets.rb +148 -0
  56. data/lib/gooddata/commands/datawarehouse.rb +20 -0
  57. data/lib/gooddata/commands/domain.rb +40 -0
  58. data/lib/gooddata/commands/process.rb +67 -0
  59. data/lib/gooddata/commands/project.rb +175 -0
  60. data/lib/gooddata/commands/projects.rb +20 -0
  61. data/lib/gooddata/commands/role.rb +36 -0
  62. data/lib/gooddata/commands/runners.rb +47 -0
  63. data/lib/gooddata/commands/scaffold.rb +69 -0
  64. data/lib/gooddata/commands/user.rb +39 -0
  65. data/lib/gooddata/connection.rb +127 -0
  66. data/lib/gooddata/core/core.rb +12 -0
  67. data/lib/gooddata/core/logging.rb +105 -0
  68. data/lib/gooddata/core/nil_logger.rb +23 -0
  69. data/lib/gooddata/core/project.rb +74 -0
  70. data/lib/gooddata/core/rest.rb +149 -0
  71. data/lib/gooddata/core/user.rb +20 -0
  72. data/lib/gooddata/data/data.rb +12 -0
  73. data/lib/gooddata/data/guesser.rb +122 -0
  74. data/lib/gooddata/exceptions/attr_element_not_found.rb +16 -0
  75. data/lib/gooddata/exceptions/command_failed.rb +11 -0
  76. data/lib/gooddata/exceptions/exceptions.rb +12 -0
  77. data/lib/gooddata/exceptions/execution_limit_exceeded.rb +13 -0
  78. data/lib/gooddata/exceptions/filter_maqlization.rb +16 -0
  79. data/lib/gooddata/exceptions/malformed_user.rb +15 -0
  80. data/lib/gooddata/exceptions/no_project_error.rb +15 -0
  81. data/lib/gooddata/exceptions/object_migration.rb +32 -0
  82. data/lib/gooddata/exceptions/project_not_found.rb +13 -0
  83. data/lib/gooddata/exceptions/segment_not_empty.rb +18 -0
  84. data/lib/gooddata/exceptions/uncomputable_report.rb +13 -0
  85. data/lib/gooddata/exceptions/user_in_different_domain.rb +15 -0
  86. data/lib/gooddata/exceptions/validation_error.rb +16 -0
  87. data/lib/gooddata/extensions/big_decimal.rb +17 -0
  88. data/lib/gooddata/extensions/enumerable.rb +39 -0
  89. data/lib/gooddata/extensions/extensions.rb +10 -0
  90. data/lib/gooddata/extensions/false.rb +15 -0
  91. data/lib/gooddata/extensions/hash.rb +38 -0
  92. data/lib/gooddata/extensions/nil.rb +15 -0
  93. data/lib/gooddata/extensions/numeric.rb +15 -0
  94. data/lib/gooddata/extensions/object.rb +27 -0
  95. data/lib/gooddata/extensions/symbol.rb +15 -0
  96. data/lib/gooddata/extensions/true.rb +15 -0
  97. data/lib/gooddata/extract.rb +21 -0
  98. data/lib/gooddata/goodzilla/goodzilla.rb +159 -0
  99. data/lib/gooddata/helpers/auth_helpers.rb +75 -0
  100. data/lib/gooddata/helpers/csv_helper.rb +61 -0
  101. data/lib/gooddata/helpers/data_helper.rb +116 -0
  102. data/lib/gooddata/helpers/global_helpers.rb +331 -0
  103. data/lib/gooddata/helpers/global_helpers_params.rb +172 -0
  104. data/lib/gooddata/helpers/helpers.rb +10 -0
  105. data/lib/gooddata/mixins/author.rb +26 -0
  106. data/lib/gooddata/mixins/content_getter.rb +15 -0
  107. data/lib/gooddata/mixins/content_property_reader.rb +17 -0
  108. data/lib/gooddata/mixins/content_property_writer.rb +17 -0
  109. data/lib/gooddata/mixins/contributor.rb +20 -0
  110. data/lib/gooddata/mixins/data_getter.rb +15 -0
  111. data/lib/gooddata/mixins/data_property_reader.rb +19 -0
  112. data/lib/gooddata/mixins/data_property_writer.rb +19 -0
  113. data/lib/gooddata/mixins/inspector.rb +53 -0
  114. data/lib/gooddata/mixins/is_attribute.rb +17 -0
  115. data/lib/gooddata/mixins/is_dimension.rb +17 -0
  116. data/lib/gooddata/mixins/is_fact.rb +17 -0
  117. data/lib/gooddata/mixins/is_label.rb +19 -0
  118. data/lib/gooddata/mixins/links.rb +15 -0
  119. data/lib/gooddata/mixins/md_finders.rb +77 -0
  120. data/lib/gooddata/mixins/md_grantees.rb +42 -0
  121. data/lib/gooddata/mixins/md_id_to_uri.rb +34 -0
  122. data/lib/gooddata/mixins/md_json.rb +15 -0
  123. data/lib/gooddata/mixins/md_lock.rb +87 -0
  124. data/lib/gooddata/mixins/md_object_id.rb +15 -0
  125. data/lib/gooddata/mixins/md_object_indexer.rb +64 -0
  126. data/lib/gooddata/mixins/md_object_query.rb +128 -0
  127. data/lib/gooddata/mixins/md_relations.rb +43 -0
  128. data/lib/gooddata/mixins/meta_getter.rb +17 -0
  129. data/lib/gooddata/mixins/meta_property_reader.rb +19 -0
  130. data/lib/gooddata/mixins/meta_property_writer.rb +19 -0
  131. data/lib/gooddata/mixins/mixins.rb +19 -0
  132. data/lib/gooddata/mixins/not_attribute.rb +17 -0
  133. data/lib/gooddata/mixins/not_exportable.rb +15 -0
  134. data/lib/gooddata/mixins/not_fact.rb +17 -0
  135. data/lib/gooddata/mixins/not_group.rb +17 -0
  136. data/lib/gooddata/mixins/not_label.rb +19 -0
  137. data/lib/gooddata/mixins/not_metric.rb +19 -0
  138. data/lib/gooddata/mixins/obj_id.rb +15 -0
  139. data/lib/gooddata/mixins/rest_getters.rb +17 -0
  140. data/lib/gooddata/mixins/rest_resource.rb +47 -0
  141. data/lib/gooddata/mixins/root_key_getter.rb +15 -0
  142. data/lib/gooddata/mixins/root_key_setter.rb +15 -0
  143. data/lib/gooddata/mixins/timestamps.rb +19 -0
  144. data/lib/gooddata/mixins/to_json.rb +11 -0
  145. data/lib/gooddata/mixins/uri_getter.rb +9 -0
  146. data/lib/gooddata/models/blueprint/anchor_field.rb +64 -0
  147. data/lib/gooddata/models/blueprint/attribute_field.rb +29 -0
  148. data/lib/gooddata/models/blueprint/blueprint.rb +11 -0
  149. data/lib/gooddata/models/blueprint/blueprint_field.rb +70 -0
  150. data/lib/gooddata/models/blueprint/dashboard_builder.rb +30 -0
  151. data/lib/gooddata/models/blueprint/dataset_blueprint.rb +449 -0
  152. data/lib/gooddata/models/blueprint/date_dimension.rb +14 -0
  153. data/lib/gooddata/models/blueprint/fact_field.rb +20 -0
  154. data/lib/gooddata/models/blueprint/label_field.rb +43 -0
  155. data/lib/gooddata/models/blueprint/project_blueprint.rb +746 -0
  156. data/lib/gooddata/models/blueprint/project_builder.rb +83 -0
  157. data/lib/gooddata/models/blueprint/reference_field.rb +43 -0
  158. data/lib/gooddata/models/blueprint/schema_blueprint.rb +160 -0
  159. data/lib/gooddata/models/blueprint/schema_builder.rb +89 -0
  160. data/lib/gooddata/models/blueprint/to_manifest.rb +181 -0
  161. data/lib/gooddata/models/blueprint/to_wire.rb +154 -0
  162. data/lib/gooddata/models/client.rb +182 -0
  163. data/lib/gooddata/models/client_synchronization_result.rb +31 -0
  164. data/lib/gooddata/models/client_synchronization_result_details.rb +41 -0
  165. data/lib/gooddata/models/datawarehouse.rb +92 -0
  166. data/lib/gooddata/models/domain.rb +479 -0
  167. data/lib/gooddata/models/execution.rb +115 -0
  168. data/lib/gooddata/models/execution_detail.rb +81 -0
  169. data/lib/gooddata/models/from_wire.rb +160 -0
  170. data/lib/gooddata/models/invitation.rb +75 -0
  171. data/lib/gooddata/models/links.rb +50 -0
  172. data/lib/gooddata/models/membership.rb +441 -0
  173. data/lib/gooddata/models/metadata.rb +272 -0
  174. data/lib/gooddata/models/metadata/attribute.rb +134 -0
  175. data/lib/gooddata/models/metadata/dashboard.rb +108 -0
  176. data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +76 -0
  177. data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +37 -0
  178. data/lib/gooddata/models/metadata/dashboard/filter_item.rb +64 -0
  179. data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +56 -0
  180. data/lib/gooddata/models/metadata/dashboard/headline_item.rb +56 -0
  181. data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +46 -0
  182. data/lib/gooddata/models/metadata/dashboard/report_item.rb +92 -0
  183. data/lib/gooddata/models/metadata/dashboard/text_item.rb +55 -0
  184. data/lib/gooddata/models/metadata/dashboard_tab.rb +141 -0
  185. data/lib/gooddata/models/metadata/dataset.rb +64 -0
  186. data/lib/gooddata/models/metadata/dimension.rb +54 -0
  187. data/lib/gooddata/models/metadata/fact.rb +44 -0
  188. data/lib/gooddata/models/metadata/label.rb +128 -0
  189. data/lib/gooddata/models/metadata/metadata.rb +12 -0
  190. data/lib/gooddata/models/metadata/metric.rb +198 -0
  191. data/lib/gooddata/models/metadata/report.rb +247 -0
  192. data/lib/gooddata/models/metadata/report_definition.rb +264 -0
  193. data/lib/gooddata/models/metadata/scheduled_mail.rb +274 -0
  194. data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +62 -0
  195. data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +64 -0
  196. data/lib/gooddata/models/metadata/variable.rb +91 -0
  197. data/lib/gooddata/models/model.rb +282 -0
  198. data/lib/gooddata/models/models.rb +12 -0
  199. data/lib/gooddata/models/module_constants.rb +31 -0
  200. data/lib/gooddata/models/process.rb +316 -0
  201. data/lib/gooddata/models/profile.rb +426 -0
  202. data/lib/gooddata/models/project.rb +1514 -0
  203. data/lib/gooddata/models/project_creator.rb +126 -0
  204. data/lib/gooddata/models/project_metadata.rb +67 -0
  205. data/lib/gooddata/models/project_role.rb +79 -0
  206. data/lib/gooddata/models/report_data_result.rb +266 -0
  207. data/lib/gooddata/models/schedule.rb +518 -0
  208. data/lib/gooddata/models/segment.rb +201 -0
  209. data/lib/gooddata/models/tab_builder.rb +27 -0
  210. data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +76 -0
  211. data/lib/gooddata/models/user_filters/user_filter.rb +100 -0
  212. data/lib/gooddata/models/user_filters/user_filter_builder.rb +512 -0
  213. data/lib/gooddata/models/user_filters/user_filters.rb +13 -0
  214. data/lib/gooddata/models/user_filters/variable_user_filter.rb +31 -0
  215. data/lib/gooddata/models/user_group.rb +241 -0
  216. data/lib/gooddata/rest/README.md +37 -0
  217. data/lib/gooddata/rest/client.rb +389 -0
  218. data/lib/gooddata/rest/connection.rb +765 -0
  219. data/lib/gooddata/rest/object.rb +69 -0
  220. data/lib/gooddata/rest/object_factory.rb +76 -0
  221. data/lib/gooddata/rest/resource.rb +27 -0
  222. data/lib/gooddata/rest/rest.rb +24 -0
  223. data/lib/gooddata/version.rb +23 -0
  224. data/lib/templates/bricks/brick.rb.erb +7 -0
  225. data/lib/templates/bricks/main.rb.erb +5 -0
  226. data/lib/templates/project/Goodfile.erb +4 -0
  227. data/lib/templates/project/data/commits.csv +4 -0
  228. data/lib/templates/project/data/devs.csv +4 -0
  229. data/lib/templates/project/data/repos.csv +3 -0
  230. data/lib/templates/project/model/model.rb.erb +20 -0
  231. data/spec/bricks/bricks_spec.rb +112 -0
  232. data/spec/bricks/default-config.json +8 -0
  233. data/spec/data/.gooddata +4 -0
  234. data/spec/data/blueprints/additional_dataset_module.json +32 -0
  235. data/spec/data/blueprints/big_blueprint_not_pruned.json +2079 -0
  236. data/spec/data/blueprints/invalid_blueprint.json +103 -0
  237. data/spec/data/blueprints/m_n_model.json +104 -0
  238. data/spec/data/blueprints/model_module.json +25 -0
  239. data/spec/data/blueprints/test_blueprint.json +38 -0
  240. data/spec/data/blueprints/test_project_model_spec.json +106 -0
  241. data/spec/data/cc/data/source/commits.csv +4 -0
  242. data/spec/data/cc/data/source/devs.csv +4 -0
  243. data/spec/data/cc/data/source/repos.csv +3 -0
  244. data/spec/data/cc/devel.prm +0 -0
  245. data/spec/data/cc/graph/graph.grf +11 -0
  246. data/spec/data/cc/workspace.prm +19 -0
  247. data/spec/data/column_based_permissions.csv +7 -0
  248. data/spec/data/column_based_permissions2.csv +6 -0
  249. data/spec/data/gd_gse_data_blueprint.json +1371 -0
  250. data/spec/data/gd_gse_data_manifest.json +1424 -0
  251. data/spec/data/gd_gse_data_model.json +1772 -0
  252. data/spec/data/gooddata_version_process/gooddata_version.rb +9 -0
  253. data/spec/data/gooddata_version_process/gooddata_version.zip +0 -0
  254. data/spec/data/hello_world_process/hello_world.rb +9 -0
  255. data/spec/data/hello_world_process/hello_world.zip +0 -0
  256. data/spec/data/line_based_permissions.csv +3 -0
  257. data/spec/data/manifests/test_blueprint.json +32 -0
  258. data/spec/data/manifests/test_project.json +107 -0
  259. data/spec/data/reports/left_attr_report.json +108 -0
  260. data/spec/data/reports/metric_only_one_line.json +83 -0
  261. data/spec/data/reports/report_1.json +197 -0
  262. data/spec/data/reports/top_attr_report.json +108 -0
  263. data/spec/data/ruby_params_process/ruby_params.rb +9 -0
  264. data/spec/data/ruby_process/deep_files/deep_stuff.txt +1 -0
  265. data/spec/data/ruby_process/process.rb +8 -0
  266. data/spec/data/ruby_process/stuff.txt +1 -0
  267. data/spec/data/superfluous_titles_view.json +81 -0
  268. data/spec/data/test-ci-data.csv +2 -0
  269. data/spec/data/users.csv +12 -0
  270. data/spec/data/wire_models/model_view.json +1775 -0
  271. data/spec/data/wire_models/nu_model.json +3046 -0
  272. data/spec/data/wire_models/test_blueprint.json +63 -0
  273. data/spec/data/wire_test_project.json +150 -0
  274. data/spec/environment/default.rb +41 -0
  275. data/spec/environment/develop.rb +31 -0
  276. data/spec/environment/environment.rb +18 -0
  277. data/spec/environment/hotfix.rb +21 -0
  278. data/spec/environment/production.rb +35 -0
  279. data/spec/environment/release.rb +21 -0
  280. data/spec/environment/staging.rb +30 -0
  281. data/spec/environment/staging_3.rb +36 -0
  282. data/spec/helpers/blueprint_helper.rb +26 -0
  283. data/spec/helpers/cli_helper.rb +36 -0
  284. data/spec/helpers/connection_helper.rb +41 -0
  285. data/spec/helpers/crypto_helper.rb +17 -0
  286. data/spec/helpers/csv_helper.rb +18 -0
  287. data/spec/helpers/process_helper.rb +33 -0
  288. data/spec/helpers/project_helper.rb +59 -0
  289. data/spec/helpers/schedule_helper.rb +31 -0
  290. data/spec/helpers/spec_helper.rb +15 -0
  291. data/spec/integration/blueprint_updates_spec.rb +101 -0
  292. data/spec/integration/blueprint_with_grain_spec.rb +72 -0
  293. data/spec/integration/clients_spec.rb +134 -0
  294. data/spec/integration/command_datawarehouse_spec.rb +39 -0
  295. data/spec/integration/command_projects_spec.rb +32 -0
  296. data/spec/integration/create_from_template_spec.rb +22 -0
  297. data/spec/integration/create_project_spec.rb +24 -0
  298. data/spec/integration/date_dim_switch_spec.rb +142 -0
  299. data/spec/integration/deprecated_load_spec.rb +58 -0
  300. data/spec/integration/full_process_schedule_spec.rb +298 -0
  301. data/spec/integration/full_project_spec.rb +569 -0
  302. data/spec/integration/over_to_user_filters_spec.rb +94 -0
  303. data/spec/integration/partial_md_export_import_spec.rb +42 -0
  304. data/spec/integration/project_spec.rb +264 -0
  305. data/spec/integration/rest_spec.rb +213 -0
  306. data/spec/integration/schedule_spec.rb +626 -0
  307. data/spec/integration/segments_spec.rb +141 -0
  308. data/spec/integration/user_filters_spec.rb +290 -0
  309. data/spec/integration/user_group_spec.rb +127 -0
  310. data/spec/integration/variables_spec.rb +188 -0
  311. data/spec/logging_in_logging_out_spec.rb +93 -0
  312. data/spec/spec_helper.rb +95 -0
  313. data/spec/unit/bricks/bricks_spec.rb +35 -0
  314. data/spec/unit/bricks/middleware/aws_middelware_spec.rb +51 -0
  315. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +15 -0
  316. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +15 -0
  317. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +15 -0
  318. data/spec/unit/bricks/middleware/logger_middleware_spec.rb +15 -0
  319. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +15 -0
  320. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +15 -0
  321. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +15 -0
  322. data/spec/unit/cli/cli_spec.rb +17 -0
  323. data/spec/unit/cli/commands/cmd_auth_spec.rb +17 -0
  324. data/spec/unit/commands/command_projects_spec.rb +22 -0
  325. data/spec/unit/core/connection_spec.rb +57 -0
  326. data/spec/unit/core/logging_spec.rb +133 -0
  327. data/spec/unit/core/nil_logger_spec.rb +13 -0
  328. data/spec/unit/core/project_spec.rb +54 -0
  329. data/spec/unit/extensions/hash_spec.rb +23 -0
  330. data/spec/unit/godzilla/goodzilla_spec.rb +78 -0
  331. data/spec/unit/helpers/csv_helper_spec.rb +22 -0
  332. data/spec/unit/helpers/data_helper_spec.rb +61 -0
  333. data/spec/unit/helpers/global_helpers_spec.rb +111 -0
  334. data/spec/unit/helpers_spec.rb +86 -0
  335. data/spec/unit/models/blueprint/attributes_spec.rb +29 -0
  336. data/spec/unit/models/blueprint/dataset_spec.rb +121 -0
  337. data/spec/unit/models/blueprint/labels_spec.rb +44 -0
  338. data/spec/unit/models/blueprint/project_blueprint_spec.rb +648 -0
  339. data/spec/unit/models/blueprint/reference_spec.rb +29 -0
  340. data/spec/unit/models/blueprint/schema_builder_spec.rb +38 -0
  341. data/spec/unit/models/blueprint/to_wire_spec.rb +174 -0
  342. data/spec/unit/models/domain_spec.rb +144 -0
  343. data/spec/unit/models/execution_spec.rb +108 -0
  344. data/spec/unit/models/from_wire_spec.rb +296 -0
  345. data/spec/unit/models/invitation_spec.rb +17 -0
  346. data/spec/unit/models/membership_spec.rb +132 -0
  347. data/spec/unit/models/metadata_spec.rb +104 -0
  348. data/spec/unit/models/metric_spec.rb +117 -0
  349. data/spec/unit/models/model_spec.rb +82 -0
  350. data/spec/unit/models/params_spec.rb +118 -0
  351. data/spec/unit/models/profile_spec.rb +215 -0
  352. data/spec/unit/models/project_creator_spec.rb +127 -0
  353. data/spec/unit/models/project_role_spec.rb +94 -0
  354. data/spec/unit/models/project_spec.rb +162 -0
  355. data/spec/unit/models/report_result_data_spec.rb +199 -0
  356. data/spec/unit/models/schedule_spec.rb +418 -0
  357. data/spec/unit/models/to_manifest_spec.rb +63 -0
  358. data/spec/unit/models/unit_project_spec.rb +125 -0
  359. data/spec/unit/models/user_filters_spec.rb +95 -0
  360. data/spec/unit/models/variable_spec.rb +265 -0
  361. data/spec/unit/rest/polling_spec.rb +89 -0
  362. data/spec/unit/rest/resource_spec.rb +10 -0
  363. data/yard-server.sh +3 -0
  364. metadata +1125 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: '025206863b7ff6065db873aa860832a5fd730a43'
4
+ data.tar.gz: 6bc610d92f04964e39ae13d812dae8dabf56b6f8
5
+ SHA512:
6
+ metadata.gz: '09ebc9e900a7188b40438456964adf2ee0853fdf5ba765a674effc6e95a48ebbed90bf5225cd46dc385cf0b676dcfda04a934365f38872a4fc4b9250d688c984'
7
+ data.tar.gz: edb623b99e3477502f7ac6bff355022f2272d9f77a3ed7ee2e0391fbc712737eb77aba97ec1ab1fef360293408feef677925b9e79eb76563bb6d576c07e0893f
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
@@ -0,0 +1,36 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## IDEA
17
+ .idea/
18
+
19
+ ## PROJECT::GENERAL
20
+ .bundle
21
+ coverage
22
+ /rdoc
23
+ /doc
24
+ pkg
25
+
26
+ ## PROJECT::SPECIFIC
27
+ Gemfile.lock
28
+
29
+ # YARD
30
+ .yardoc/
31
+
32
+ # Local scripts
33
+ .scripts/
34
+
35
+ # Temp files
36
+ tmp/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format documentation
3
+ --require spec_helper
@@ -0,0 +1,89 @@
1
+ AbcSize:
2
+ Enabled: false
3
+
4
+ ClassLength:
5
+ Enabled: false
6
+
7
+ ModuleLength:
8
+ Enabled: false
9
+
10
+ CyclomaticComplexity:
11
+ Enabled: false
12
+
13
+ Documentation:
14
+ Enabled: false
15
+
16
+ EachWithObject:
17
+ Enabled: false
18
+
19
+ Eval:
20
+ Enabled: false
21
+
22
+ FormatString:
23
+ Enabled: false
24
+
25
+ HashSyntax:
26
+ Enabled: false
27
+
28
+ LineLength:
29
+ Max: 323
30
+
31
+ MethodLength:
32
+ Enabled: false
33
+
34
+ PerceivedComplexity:
35
+ Enabled: false
36
+
37
+ Alias:
38
+ Enabled: false
39
+
40
+ Casecmp:
41
+ Enabled: false
42
+
43
+ ConditionalAssignment:
44
+ Enabled: false
45
+
46
+ GuardClause:
47
+ Enabled: false
48
+
49
+ IdenticalConditionalBranches:
50
+ Enabled: false
51
+
52
+ IfInsideElse:
53
+ Enabled: false
54
+
55
+ IneffectiveAccessModifier:
56
+ Enabled: false
57
+
58
+ MultilineMethodCallIndentation:
59
+ Enabled: false
60
+
61
+ MutableConstant:
62
+ Enabled: false
63
+
64
+ RedundantBlockCall:
65
+ Enabled: false
66
+
67
+ RedundantMerge:
68
+ Enabled: false
69
+
70
+ RedundantParentheses:
71
+ Enabled: false
72
+
73
+ StringLiterals:
74
+ Enabled: false
75
+
76
+ SignalException:
77
+ Enabled: false
78
+
79
+ TimesMap:
80
+ Enabled: false
81
+
82
+ UnneededDisable:
83
+ Enabled: false
84
+
85
+ UnneededInterpolation:
86
+ Enabled: false
87
+
88
+ UselessAccessModifier:
89
+ Enabled: false
@@ -0,0 +1,22 @@
1
+ --template-path doc/templates
2
+ --plugin rspec
3
+ --template default
4
+ --protected
5
+ --no-private
6
+ --verbose
7
+ --markup markdown
8
+ --markup-provider redcarpet
9
+ --asset doc/css:css
10
+ --asset doc/images:images
11
+ --asset doc/js:js
12
+ --readme doc/pages/HOMEPAGE.md
13
+ --hide-void-return
14
+ --exclude LICENSE
15
+ --no-cache
16
+ --output-dir doc/html
17
+ lib/**/*.rb
18
+ ext/**/*{.m,.c}
19
+ spec/**/*_spec.rb
20
+ -
21
+ README.md
22
+ doc/pages/**/*.md
@@ -0,0 +1,196 @@
1
+ # GoodData Ruby SDK Changelog
2
+
3
+ ## 0.6.26
4
+ - There is first implementation of transfering ETLs
5
+ - Fixed bug with getting clients from domain
6
+ - Temporary workaround for problem on API when it fails with 500 when you are trying to read changes of provision clients when nothing was provisioned
7
+ - Added option to not delete projects when updating clients in segments
8
+
9
+ ## 0.6.24
10
+ - Fixed problem with validElements causing 500
11
+
12
+ ## 0.6.23
13
+ - Fixed typo sometimes causing crash of ReportDefinition#replace
14
+
15
+ ## 0.6.22
16
+ - Added rake task (license:add) for automatic license headers generating
17
+ - Handle situation when upload_status.json does not exist
18
+ - Connect using SSO - GoodData#connect_sso
19
+ - Added Measure semantics, alias methods metrics to measure (ie. interpolate_metric -> interpolate_measure)
20
+ - rake tasks license:check, license:report & license:info for automated license reporting added
21
+ - Fixed a typo in labels
22
+ - Executions are paging + are implemented as lazy enumerators
23
+ - Fixed after getter in schedule
24
+ - Blueprint works with deprecated labels
25
+ - Metadata object has new methods for working with unlisted attribute
26
+ - Metadata method deprecated= now accepts and return true/false
27
+ - Included date_facts in building a manifest
28
+ - Using API for user provisioning by login
29
+ - Multiple data sets upload Project#upload_multiple
30
+ - GoodData::MdObject.json is assignable now (using attr_accessor)
31
+ - Added method for updating report definition in easy way - GoodData::Report#update_definiton(opts, &block)
32
+ - Added more logging around connecting to server. Cleaning up staging information. Adding tests to make
33
+ - Middlewares are transforming params to Ruby hash (useful for executors when they pass Java Hash instance)
34
+ - Cleaning up way Data permissions work with errors so we can update Bricks
35
+ - Fixed Project#browser_url
36
+ - Increased max count of retries for 429 - Too Many Requests
37
+ - Fixed potentional crash of ReportDefinition#replace
38
+ - Updated dependencies (gems)
39
+
40
+ ## 0.6.21
41
+ - Consolidated error reporting for Domain#create_users & Project#import_users
42
+ - Removed superfluous error messages on 401
43
+ - Fixed bug with rich params when it could happen that hidden params got deleted on schedule save
44
+
45
+ ## 0.6.20
46
+ - added iterators for retrieval of project, domain, and group objects
47
+ - use query resource inlining for retrieving user filters
48
+ - fixed default parameters from ~/.gooddata file (auth token, server)
49
+ - added project WebDav deprecation warning
50
+ - removed dependency on Active Support gem
51
+
52
+ ## 0.6.19
53
+ - major (not backward compatible) blueprint refactoring
54
+ - added environment parameter to the project creation
55
+ - added HTTP retry strategy with exponential wait times and maximum retries set to 10
56
+ - set max concurrent platform connections set to 20 per session
57
+ - set socket timeout to 1 minute
58
+
59
+ ## 0.6.18
60
+ - added support for the HYPERLINK label type in blueprint
61
+ - fixed method Schedule#create doesn't set schedule name
62
+ - added method "error?" to the class "ExecutionDetail"
63
+ - added blueprint support for folders
64
+ - added ability to change SSO provider for existing platform user
65
+ - added schedules and executions convenience methods
66
+
67
+ ## 0.6.17
68
+ - added validation of the blueprint datatypes (e.g. INTEGER -> INT, allow mixed case etc.)
69
+ - improved the data loading logging and error handling
70
+ - added date dimension switching
71
+ - switched to the new asynchronous ETL pull resource
72
+ - added specification of date reference's format in blueprint
73
+ - added HTTP logging oneliner
74
+
75
+ ## 0.6.16
76
+ - fixed SSL certificate validation (verify_ssl option in the GoodData.connect)
77
+ - logging changes: separated the HTTP and application logging to different levels, added platform request ID
78
+ - fixed the WebDav URI bootstrap to work with the EU datacenter
79
+ - added driver parameter for Vertica based project creation
80
+
81
+ ## 0.6.15
82
+
83
+ - Adding users now accepts more variants of providing users
84
+ - Import users is not importing users to domain automatically. There is app in appstore that should help you with various ways of importing users
85
+ - Speed improvements for adding users
86
+ - Fixed listing facts/attributes on the dataset
87
+ - Corrected fixed limit on listing users from domain. Paging is handled by different parameter
88
+ - Replacing value in metric/attribute should be more resilient
89
+
90
+ ## 0.6.14
91
+
92
+ - Project update from blueprint does not fail when MAQL chunks are empty.
93
+ - You can call migrate_datasets with dry_run to obtain MAQL chunks.
94
+ - Fix of title generation in blueprint from wire.
95
+
96
+ ## 0.6.13
97
+
98
+ - Fixed TT problems
99
+ - Fixed process redeployment helpers
100
+ - Rubocop compliance with the latest version
101
+ - MD datasets are now available
102
+ - SSL set to verify none for now. We will make it more secure in next version.
103
+ - Changed limit on users pulled from domain. Will change it in the future so there is no fixed limit.
104
+
105
+ ## 0.6.12
106
+
107
+ - Ability to create a Data Warehouse (ADS)
108
+ - Retry all requests 3 times when SystemCallError, RestClient::InternalServerError or RestClient::RequestTimeout
109
+ - Automatic 429/TooManyRequests Handler
110
+ - When creating user login and email can be different now
111
+ - Automatic client disconnect at_exit of ruby script
112
+ - When creating user login and email can be different now
113
+ - Fixed Domain#add_user (GH issue #354)
114
+ - Support for GoodData.connect ENV['GD_GEM_USER'], ENV['GD_GEM_PASSWORD']
115
+ - Added Schedule#execute(:wait => true|false) option
116
+ - Merge GoodData::Rest::Connection and GoodData::Rest::Connection::RestClientConnection
117
+ - Unified expection handler for REST API and WebDav Access (using GoodData::Rest::Connection.retryable)
118
+ - GoodData#stats_on, GoodData#stats_off, GoodData::Rest::Client#stats_on, GoodData#stats_off
119
+ - GoodData::Mixin::MdObjectQuery#using now accepts :full => true|false option
120
+ - GoodData::MdObject#[] automatically returns proper type (ie. GoodData::Report)
121
+ - Improved user management
122
+ - Added simple GoodData::Dimension
123
+
124
+ ## 0.6.11
125
+
126
+ - Ability to download deployed process
127
+ - Added locking objects capabilities
128
+ - Added removing color mapping form a report definition
129
+ - Report defintions are deleted along with a report
130
+ - Report definitions are deleted along with a report
131
+ - Improved process deployment and schedules
132
+ - Parameters in processes and schedules are now able to take complex parameters
133
+ - #create_metric is significantly faster
134
+ - Pretty_expression for metric should not fail on missing data
135
+ - Extended notation can be switched off when using create_metric
136
+ - Implemented retry on connection related issues
137
+ - All executions should use latest resource version
138
+ - Uploading files to webdav should use streaming and be more memory efficient
139
+ - Ability to pass absolute path to file upload
140
+ - Allowing special chars in uploaded file
141
+ - GooddataMiddleware doesn't require username+password, when it has SST
142
+
143
+ ## 0.6.10
144
+
145
+ - Fixed client default missing in ProjectMetadata
146
+ - Listing schedules on processes is working
147
+ - Scrubing params in logs is back
148
+ - Added ProjectMetadata helpers on project
149
+ - Listing processes on client works as expected
150
+ - Schedule can be enabled/disabled
151
+ - Added pselect helper function
152
+
153
+ ## 0.6.9
154
+
155
+ - Fixing issues with creating models.
156
+ - Adding couple more helpers for report/metric computation
157
+ - Rewriting several full_* specs to use the new syntax
158
+
159
+ ## 0.6.8
160
+
161
+ - REST Factory - See [PR #224](https://github.com/gooddata/gooddata-ruby/pull/224)
162
+ - Replace on report definitions allows to swap attributes, metrics and other things in report definitions
163
+ - Fixed bug in clone so you can clone projects without data
164
+ - Many map call on REST happen in parallel
165
+ - Query requests (all attributes, all metrics etc) are happening in parallel and full: true is now the default
166
+ - Computing an a report which returns no results does not fail but returns nil
167
+ - Refactored handling of all various asynchronous resources into 2 methods
168
+ - added ability to log in with only SST token
169
+ - added with_connection
170
+ - ability to deploy just one file, zipped files or directory
171
+
172
+ ## 0.6.7
173
+
174
+ - Fixed the scaffolding templates to take advantage of new syntax (missing references in dataset refs)
175
+ - Fixing inclusion of extensions when using CLI
176
+ - Fixed pollers and added/fixed tests for schedules and processes
177
+ - Added with_connection which automatically disconnects when you are done
178
+
179
+ ## 0.6.6
180
+
181
+ - Various fixes
182
+
183
+ ## 0.6.5
184
+
185
+ - Mixins
186
+
187
+ ## 0.6.4
188
+
189
+ - Ability to get blueprint directly through API. This way you can work with projects that was not created using SDK
190
+ - Added basis for GD_LINT that checks your project for typical problems
191
+
192
+ ## 0.6.3
193
+
194
+ - Able to do save_as on metadata objects (Report, Metric, Dashboard)
195
+ - Model is now not created through build and update if it is not passing validations
196
+ - Added a setter for identifier on Metadata Object
data/CLI.md ADDED
@@ -0,0 +1,439 @@
1
+ # gooddata-ruby CLI
2
+
3
+ ## api
4
+
5
+ Some basic API stuff directly from CLI
6
+
7
+ ### api get
8
+
9
+ GET request on our API
10
+
11
+ ```
12
+ tomaskorcak@kx-mac:~/$ gooddata api get /gdc
13
+ {"about"=>
14
+ {"summary"=>"Use links to navigate the services.",
15
+ "category"=>"GoodData API root",
16
+ "links"=>
17
+ [{"link"=>"/gdc/", "summary"=>"", "category"=>"home", "title"=>"home"},
18
+ {"link"=>"/gdc/account/token",
19
+ "summary"=>"Temporary token generator.",
20
+ "category"=>"token",
21
+ "title"=>"token"},
22
+ {"link"=>"/gdc/account/login",
23
+ "summary"=>"Authentication service.",
24
+ "category"=>"login",
25
+ "title"=>"login"},
26
+ {"link"=>"/gdc/md",
27
+ "summary"=>"Metadata resources.",
28
+ "category"=>"md",
29
+ "title"=>"metadata"},
30
+ {"link"=>"/gdc/xtab2",
31
+ "summary"=>"Report execution resource.",
32
+ "category"=>"xtab",
33
+ "title"=>"xtab"},
34
+ {"link"=>"/gdc/availableelements",
35
+ "summary"=>
36
+ "Resource used to determine valid attribute values in the context of a report.",
37
+ "category"=>"availablelements",
38
+ "title"=>"AvailableElements"},
39
+ {"link"=>"/gdc/exporter",
40
+ "summary"=>"Report exporting resource.",
41
+ "category"=>"report-exporter",
42
+ "title"=>"exporter"},
43
+ {"link"=>"/gdc/account",
44
+ "summary"=>"Resource for logged in account manipulation.",
45
+ "category"=>"account",
46
+ "title"=>"account"},
47
+ {"link"=>"/gdc/projects",
48
+ "summary"=>"Resource for user and project management.",
49
+ "category"=>"projects",
50
+ "title"=>"projects"},
51
+ {"link"=>"/gdc/tool",
52
+ "summary"=>"Miscellaneous resources.",
53
+ "category"=>"tool",
54
+ "title"=>"tool"},
55
+ {"link"=>"/gdc/templates",
56
+ "summary"=>"Template resource - for internal use only.",
57
+ "category"=>"templates",
58
+ "title"=>"templates"},
59
+ {"link"=>"/gdc/releaseInfo",
60
+ "summary"=>"Release information.",
61
+ "category"=>"releaseInfo",
62
+ "title"=>"releaseInfo"},
63
+ {"link"=>"https://secure-di.gooddata.com/uploads",
64
+ "summary"=>"User data staging area.",
65
+ "category"=>"uploads",
66
+ "title"=>"user-uploads"}]}}
67
+
68
+ ```
69
+
70
+ ### api info
71
+
72
+ Info about the API version etc
73
+
74
+ ```
75
+ tomaskorcak@kx-mac:~/$ gooddata api info
76
+ GoodData API
77
+ Version: N/A
78
+ Released: N/A
79
+ For more info see N/A
80
+ nil
81
+
82
+ ```
83
+
84
+ ## auth
85
+
86
+ Work with your locally stored credentials
87
+
88
+ ### auth store
89
+
90
+ Store your credentials to ~/.gooddata so client does not have to ask you every single time
91
+
92
+ ```
93
+ tomaskorcak@kx-mac:~/$ gooddata auth store
94
+ Enter your GoodData credentials.
95
+ Email
96
+ tomas.korcak@gooddata.com
97
+ Password
98
+ xxxxxxxxxxxxxxxx
99
+ Authorization Token
100
+ ABCDEF123
101
+ Overwrite existing stored credentials (y/n)
102
+ y
103
+
104
+ ```
105
+
106
+ ## console
107
+
108
+ Interactive session with gooddata sdk loaded
109
+
110
+ ## domain
111
+
112
+ Manage domain
113
+
114
+ ### domain add_user
115
+
116
+ Add user to domain
117
+
118
+ ```
119
+ tomaskorcak@kx-mac:~/$ gooddata domain add_user gooddata-tomas-korcak joe doe joe.doe@example.com password
120
+ ```
121
+
122
+ ### domain list_users
123
+
124
+ List users in domain
125
+
126
+ ```
127
+ tomaskorcak@kx-mac:~/$ gooddata domain list_users gooddata-tomas-korcak
128
+ Tomas,Korcak,tomas.korcak@gooddata.com
129
+ tomas,korcak,korczis@gmail.com
130
+ joe,doe,joe.doe@example.com
131
+ ```
132
+
133
+ ## help
134
+
135
+ Shows a list of commands or help for one command
136
+
137
+ ## process
138
+
139
+ Work with deployed processes
140
+
141
+ ### process deploy
142
+
143
+ Deploys provided directory to the server
144
+
145
+ ### process get
146
+
147
+ Gives you some basic info about the process
148
+
149
+ ### process list
150
+
151
+ Lists all user's processes deployed on the plaform
152
+
153
+ ```
154
+ tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb process list
155
+ {"processes"=>
156
+ {"items"=>
157
+ [{"process"=>
158
+ {"type"=>"GRAPH",
159
+ "name"=>"Training March",
160
+ "graphs"=>["Training March/graph/graph.grf"],
161
+ "executables"=>["Training March/graph/graph.grf"],
162
+ "links"=>
163
+ {"self"=>
164
+ "/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/processes/f12975d2-5958-4248-9c3d-4c8f2e1f067d",
165
+ "executions"=>
166
+ "/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/processes/f12975d2-5958-4248-9c3d-4c8f2e1f067d/executions",
167
+ "source"=>
168
+ "/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/processes/f12975d2-5958-4248-9c3d-4c8f2e1f067d/source"}}}],
169
+ "links"=>
170
+ {"self"=>
171
+ "/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/processes"}}}
172
+
173
+ ```
174
+
175
+ ## project
176
+
177
+ Manage your project
178
+
179
+ ### project build
180
+
181
+ 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.
182
+
183
+ ### project clone
184
+
185
+ Clones a project. Useful for testing
186
+
187
+ ```
188
+ tomaskorcak@kx-mac:~/$ gooddata -p uq7vmjkmfj86jihofsavdxgtfmxwofrh project clone
189
+ ```
190
+
191
+ ### project create
192
+
193
+ Create a gooddata project
194
+
195
+ ```
196
+ tomaskorcak@kx-mac:~/$ gooddata project create
197
+ Project name
198
+ Test Project
199
+ Project summary ||
200
+ Test Project Summary Text
201
+ Project template
202
+
203
+ token
204
+ SUPERSECRETTOKENHERE
205
+ Project 'Test Project' with id /gdc/projects/uq7vmjkmfj86jihofsavdxgtfmxwofrh created successfully!
206
+
207
+ ```
208
+
209
+ ### project delete
210
+
211
+ Delete a project. Be careful this is impossible to revert
212
+
213
+ ```
214
+ tomaskorcak@kx-mac:~/$ gooddata -p uq7vmjkmfj86jihofsavdxgtfmxwofrh project delete
215
+ ```
216
+
217
+ ### project invite
218
+
219
+ Invites user to project
220
+
221
+ ```
222
+ tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project invite tomas.korcak@gooddata.com admin
223
+ Inviting tomas.korcak@gooddata.com, role: /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/2
224
+ ```
225
+
226
+ ### project jack_in
227
+
228
+ If you are in a gooddata project blueprint or if you provide a project id it will start an interactive session inside that project
229
+
230
+ ### project list_users
231
+
232
+ List users
233
+
234
+ ```
235
+ tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project list_users
236
+ Korcak,Tomas,tomas.korcak@gooddata.com,/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9
237
+ ```
238
+
239
+ ### project roles
240
+
241
+ Roles
242
+
243
+ ```
244
+ tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project roles
245
+ /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/2,Admin
246
+ /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/7,Connectors System User
247
+ /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/5,Editor
248
+ /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/3,Embedded Dashboard Only
249
+ /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/1,Unverified Admin
250
+ /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles/4,Viewer
251
+
252
+ ```
253
+
254
+ ### project show
255
+
256
+ Shows basic info about a project
257
+
258
+ ```
259
+ tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project show
260
+ {"content"=>
261
+ {"cluster"=>"",
262
+ "authorizationToken"=>"IOUYYUY8786",
263
+ "guidedNavigation"=>"1",
264
+ "isPublic"=>"0",
265
+ "driver"=>"Pg",
266
+ "state"=>"ENABLED"},
267
+ "links"=>
268
+ {"ldm_thumbnail"=>
269
+ "/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/ldm?thumbnail=1",
270
+ "self"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb",
271
+ "clearCaches"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/clearCaches",
272
+ "invitations"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/invitations",
273
+ "users"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/users?link=1",
274
+ "uploads"=>
275
+ "https://secure-di.gooddata.com/project-uploads/tk6192gsnav58crp6o1ahsmtuniq8khb/",
276
+ "ldm"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/ldm",
277
+ "metadata"=>"/gdc/md/tk6192gsnav58crp6o1ahsmtuniq8khb",
278
+ "publicartifacts"=>
279
+ "/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/publicartifacts",
280
+ "roles"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/roles",
281
+ "dataload"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload",
282
+ "connectors"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/connectors",
283
+ "execute"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/execute",
284
+ "schedules"=>"/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/schedules",
285
+ "templates"=>"/gdc/md/tk6192gsnav58crp6o1ahsmtuniq8khb/templates",
286
+ "eventstores"=>
287
+ "/gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb/dataload/eventstore/stores"},
288
+ "meta"=>
289
+ {"created"=>"2014-03-03 14:24:51",
290
+ "summary"=>"",
291
+ "updated"=>"2014-03-03 14:24:51",
292
+ "author"=>"/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9",
293
+ "title"=>"Training March",
294
+ "contributor"=>"/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9"}}
295
+
296
+ ```
297
+
298
+ ### project update
299
+
300
+ 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.
301
+
302
+ ### project validation
303
+
304
+ You can run project validation which will check RI integrity and other problems.
305
+
306
+ ```
307
+ tomaskorcak@kx-mac:~/$ gooddata -p tk6192gsnav58crp6o1ahsmtuniq8khb project validation
308
+ {"projectValidateResult"=>
309
+ {"error_found"=>0,
310
+ "fatal_error_found"=>0,
311
+ "results"=>
312
+ [{"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm"},
313
+ {"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm::transitivity"},
314
+ {"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm::elem_validation"},
315
+ {"body"=>{"error"=>0, "log"=>[]}, "from"=>"metric_filter"},
316
+ {"body"=>{"error"=>0, "log"=>[]}, "from"=>"ldm"},
317
+ {"body"=>{"error"=>0, "log"=>[]}, "from"=>"invalid_objects"},
318
+ {"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm::pdm_vs_dwh"},
319
+ {"body"=>{"error"=>0, "log"=>[]}, "from"=>"pdm::pk_fk_consistency"}],
320
+ "meta"=>{"start_time"=>1398202260, "finished_time"=>1398202262}}}
321
+
322
+ ```
323
+
324
+ ## projects
325
+
326
+ Manage your projects
327
+
328
+ ### projects list
329
+
330
+ Lists user's projects
331
+
332
+ ```
333
+ tomaskorcak@kx-mac:~/$ gooddata projects list
334
+ /gdc/projects/la84vcyhrq8jwbu4wpipw66q2sqeb923,GoodSales Demo
335
+ /gdc/projects/pouwty5dezpuib8nil16fv4i1jz80oju,GoodSample Demo
336
+ /gdc/projects/tk6192gsnav58crp6o1ahsmtuniq8khb,Training March
337
+
338
+ ```
339
+
340
+ ## role
341
+
342
+ Basic Role Management
343
+
344
+ ### role list
345
+
346
+ List roles
347
+
348
+ ```
349
+ tomaskorcak@kx-mac:~/$ gooddata -p pouwty5dezpuib8nil16fv4i1jz80oju role list
350
+ dashboardOnlyRole,/gdc/projects/pouwty5dezpuib8nil16fv4i1jz80oju/roles/3
351
+ readOnlyUserRole,/gdc/projects/pouwty5dezpuib8nil16fv4i1jz80oju/roles/4
352
+ ```
353
+
354
+ ## run_ruby
355
+
356
+ Run ruby bricks either locally or remotely deployed on our server
357
+
358
+ ## scaffold
359
+
360
+ Scaffold things
361
+
362
+ ### scaffold brick
363
+
364
+ Scaffold a gooddata ruby brick. This is a piece of code that you can run on our platform
365
+
366
+ ```
367
+ tomaskorcak@kx-mac:~/$ gooddata scaffold brick mybrick
368
+
369
+ tomaskorcak@kx-mac:~/$ ls -la mybrick/
370
+ total 16
371
+ drwxr-xr-x 4 tomaskorcak staff 136 Apr 22 14:10 .
372
+ drwxr-xr-x 31 tomaskorcak staff 1054 Apr 22 14:10 ..
373
+ -rw-r--r-- 1 tomaskorcak staff 103 Apr 22 14:10 brick.rb
374
+ -rw-r--r-- 1 tomaskorcak staff 179 Apr 22 14:10 main.rb
375
+
376
+ tomaskorcak@kx-mac:~/$ cat mybrick/brick.rb
377
+ class MyBrick < GoodData::Bricks::Brick
378
+
379
+ def call(params)
380
+ # do something here
381
+ end
382
+
383
+ end
384
+
385
+ tomaskorcak@kx-mac:~/$ cat mybrick/main.rb
386
+ require_relative '../../gooddata/bricks/bricks'
387
+
388
+ require_relative './mybrick'
389
+
390
+
391
+ ```
392
+
393
+ ### scaffold project
394
+
395
+ Scaffold a gooddata project blueprint
396
+
397
+ ```
398
+ tomaskorcak@kx-mac:~/$ gooddata scaffold project myproj
399
+
400
+ tomaskorcak@kx-mac:~/$ ls -la myproj/
401
+ total 8
402
+ drwxr-xr-x 5 tomaskorcak staff 170 Apr 22 14:13 .
403
+ drwxr-xr-x 31 tomaskorcak staff 1054 Apr 22 14:13 ..
404
+ -rw-r--r-- 1 tomaskorcak staff 53 Apr 22 14:13 Goodfile
405
+ drwxr-xr-x 5 tomaskorcak staff 170 Apr 22 14:13 data
406
+ drwxr-xr-x 3 tomaskorcak staff 102 Apr 22 14:13 model
407
+
408
+ ```
409
+
410
+ ## user
411
+
412
+ User management
413
+
414
+ ### user show
415
+
416
+ Show your profile
417
+
418
+ ```
419
+ tomaskorcak@kx-mac:~/$ gooddata user show
420
+ {"accountSetting"=>
421
+ {"country"=>nil,
422
+ "firstName"=>"Tomas",
423
+ "ssoProvider"=>nil,
424
+ "timezone"=>nil,
425
+ "position"=>nil,
426
+ "authenticationModes"=>[],
427
+ "companyName"=>"GoodData",
428
+ "login"=>"tomas.korcak@gooddata.com",
429
+ "email"=>"tomas.korcak@gooddata.com",
430
+ "created"=>"2014-03-03 11:28:51",
431
+ "updated"=>"2014-04-22 22:58:51",
432
+ "lastName"=>"Korcak",
433
+ "phoneNumber"=>"00420775995881",
434
+ "links"=>
435
+ {"self"=>"/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9",
436
+ "projects"=>
437
+ "/gdc/account/profile/c6f1b9dc57a3aac97ed70e467b27bbd9/projects"}}}
438
+
439
+ ```