gooddata 0.6.49 → 0.6.50
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -4
- data/CLI.md +0 -4
- data/DEPENDENCIES.md +0 -8
- data/Dockerfile.jruby +19 -0
- data/Dockerfile.ruby +19 -0
- data/LICENSE +2 -2
- data/LICENSE.rb +1 -1
- data/Rakefile +1 -1
- data/gooddata.gemspec +29 -28
- data/lib/gooddata.rb +2 -1
- data/lib/gooddata/app/app.rb +1 -1
- data/lib/gooddata/bricks/base_downloader.rb +1 -1
- data/lib/gooddata/bricks/brick.rb +3 -4
- data/lib/gooddata/bricks/bricks.rb +3 -1
- data/lib/gooddata/bricks/middleware/aws_middleware.rb +6 -8
- data/lib/gooddata/bricks/middleware/base_middleware.rb +2 -1
- data/lib/gooddata/bricks/middleware/bench_middleware.rb +2 -1
- data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +3 -3
- data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +3 -2
- data/lib/gooddata/bricks/middleware/dwh_middleware.rb +28 -0
- data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +2 -2
- data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +2 -2
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +84 -21
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/params_inspect_middleware.rb +21 -0
- data/lib/gooddata/bricks/middleware/restforce_middleware.rb +26 -26
- data/lib/gooddata/bricks/middleware/stdout_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/twitter_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +1 -1
- data/lib/gooddata/bricks/pipeline.rb +6 -13
- data/lib/gooddata/bricks/utils.rb +3 -3
- data/lib/gooddata/cli/cli.rb +1 -1
- data/lib/gooddata/cli/commands/auth_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/domain_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/project_cmd.rb +1 -18
- data/lib/gooddata/cli/hooks.rb +1 -2
- data/lib/gooddata/cli/shared.rb +1 -1
- data/lib/gooddata/cli/terminal.rb +1 -1
- data/lib/gooddata/client.rb +1 -1
- data/lib/gooddata/commands/api.rb +1 -1
- data/lib/gooddata/commands/auth.rb +1 -1
- data/lib/gooddata/commands/base.rb +1 -1
- data/lib/gooddata/commands/commands.rb +1 -1
- data/lib/gooddata/commands/datasets.rb +1 -1
- data/lib/gooddata/commands/datawarehouse.rb +1 -1
- data/lib/gooddata/commands/domain.rb +1 -1
- data/lib/gooddata/commands/process.rb +1 -1
- data/lib/gooddata/commands/project.rb +2 -31
- data/lib/gooddata/commands/projects.rb +1 -1
- data/lib/gooddata/commands/role.rb +1 -1
- data/lib/gooddata/commands/runners.rb +1 -1
- data/lib/gooddata/commands/scaffold.rb +1 -1
- data/lib/gooddata/commands/user.rb +1 -1
- data/lib/gooddata/connection.rb +1 -1
- data/lib/gooddata/core/core.rb +1 -1
- data/lib/gooddata/core/logging.rb +1 -1
- data/lib/gooddata/core/nil_logger.rb +1 -1
- data/lib/gooddata/core/project.rb +1 -1
- data/lib/gooddata/core/rest.rb +1 -1
- data/lib/gooddata/core/user.rb +1 -1
- data/lib/gooddata/data/data.rb +1 -1
- data/lib/gooddata/data/guesser.rb +1 -1
- data/lib/gooddata/exceptions/attr_element_not_found.rb +1 -1
- data/lib/gooddata/exceptions/command_failed.rb +1 -1
- data/lib/gooddata/exceptions/exceptions.rb +1 -1
- data/lib/gooddata/exceptions/execution_limit_exceeded.rb +1 -1
- data/lib/gooddata/exceptions/export_clone.rb +4 -0
- data/lib/gooddata/exceptions/filter_maqlization.rb +1 -1
- data/lib/gooddata/exceptions/import_clone.rb +4 -0
- data/lib/gooddata/exceptions/malformed_user.rb +1 -1
- data/lib/gooddata/exceptions/maql_execution.rb +1 -1
- data/lib/gooddata/exceptions/no_project_error.rb +1 -1
- data/lib/gooddata/exceptions/object_migration.rb +1 -1
- data/lib/gooddata/exceptions/project_not_found.rb +1 -1
- data/lib/gooddata/exceptions/segment_not_empty.rb +1 -1
- data/lib/gooddata/exceptions/uncomputable_report.rb +1 -1
- data/lib/gooddata/exceptions/user_in_different_domain.rb +1 -1
- data/lib/gooddata/exceptions/validation_error.rb +1 -1
- data/lib/gooddata/extensions/big_decimal.rb +1 -1
- data/lib/gooddata/extensions/class.rb +11 -0
- data/lib/gooddata/extensions/enumerable.rb +1 -1
- data/lib/gooddata/extensions/extensions.rb +1 -1
- data/lib/gooddata/extensions/false.rb +9 -1
- data/lib/gooddata/extensions/hash.rb +12 -1
- data/lib/gooddata/extensions/integer.rb +5 -0
- data/lib/gooddata/extensions/nil.rb +5 -1
- data/lib/gooddata/extensions/numeric.rb +1 -1
- data/lib/gooddata/extensions/object.rb +5 -1
- data/lib/gooddata/extensions/symbol.rb +1 -1
- data/lib/gooddata/extensions/true.rb +9 -1
- data/lib/gooddata/extract.rb +1 -1
- data/lib/gooddata/goodzilla/goodzilla.rb +1 -1
- data/lib/gooddata/helpers/auth_helpers.rb +1 -1
- data/lib/gooddata/helpers/csv_helper.rb +1 -1
- data/lib/gooddata/helpers/data_helper.rb +19 -10
- data/lib/gooddata/helpers/erb_helper.rb +23 -0
- data/lib/gooddata/helpers/global_helpers.rb +5 -73
- data/lib/gooddata/helpers/global_helpers_params.rb +73 -7
- data/lib/gooddata/helpers/helpers.rb +1 -1
- data/lib/gooddata/lcm/actions/actions.rb +12 -0
- data/lib/gooddata/lcm/actions/associate_clients.rb +46 -0
- data/lib/gooddata/lcm/actions/base_action.rb +23 -0
- data/lib/gooddata/lcm/actions/collect_clients.rb +89 -0
- data/lib/gooddata/lcm/actions/collect_segment_clients.rb +103 -0
- data/lib/gooddata/lcm/actions/collect_segments.rb +59 -0
- data/lib/gooddata/lcm/actions/create_segment_masters.rb +167 -0
- data/lib/gooddata/lcm/actions/ensure_release_table.rb +56 -0
- data/lib/gooddata/lcm/actions/ensure_segments.rb +35 -0
- data/lib/gooddata/lcm/actions/ensure_technical_users_domain.rb +66 -0
- data/lib/gooddata/lcm/actions/ensure_technical_users_project.rb +68 -0
- data/lib/gooddata/lcm/actions/ensure_titles.rb +54 -0
- data/lib/gooddata/lcm/actions/hello_world.rb +44 -0
- data/lib/gooddata/lcm/actions/print_actions.rb +61 -0
- data/lib/gooddata/lcm/actions/print_modes.rb +72 -0
- data/lib/gooddata/lcm/actions/print_types.rb +55 -0
- data/lib/gooddata/lcm/actions/provision_clients.rb +80 -0
- data/lib/gooddata/lcm/actions/purge_clients.rb +78 -0
- data/lib/gooddata/lcm/actions/segments_filter.rb +50 -0
- data/lib/gooddata/lcm/actions/synchronize_attribute_drillpaths.rb +60 -0
- data/lib/gooddata/lcm/actions/synchronize_clients.rb +87 -0
- data/lib/gooddata/lcm/actions/synchronize_color_palette.rb +59 -0
- data/lib/gooddata/lcm/actions/synchronize_label_types.rb +61 -0
- data/lib/gooddata/lcm/actions/synchronize_ldm.rb +64 -0
- data/lib/gooddata/lcm/actions/synchronize_meta.rb +55 -0
- data/lib/gooddata/lcm/actions/synchronize_new_segments.rb +55 -0
- data/lib/gooddata/lcm/actions/synchronize_processes.rb +66 -0
- data/lib/gooddata/lcm/actions/synchronize_schedules.rb +81 -0
- data/lib/gooddata/lcm/actions/update_release_table.rb +80 -0
- data/lib/gooddata/lcm/data/create_lcm_release.sql.erb +5 -0
- data/lib/gooddata/lcm/data/insert_into_lcm_release.sql.erb +11 -0
- data/lib/gooddata/lcm/data/select_from_lcm_release.sql.erb +8 -0
- data/lib/gooddata/lcm/data/update_lcm_release.sql.erb +7 -0
- data/lib/gooddata/lcm/dsl/dsl.rb +50 -0
- data/lib/gooddata/lcm/dsl/params_dsl.rb +61 -0
- data/lib/gooddata/lcm/dsl/type_dsl.rb +61 -0
- data/lib/gooddata/lcm/helpers/check_helper.rb +37 -0
- data/lib/gooddata/lcm/helpers/helpers.rb +12 -0
- data/lib/gooddata/lcm/lcm.rb +161 -20
- data/lib/gooddata/lcm/lcm2.rb +260 -0
- data/lib/gooddata/lcm/types/base_type.rb +29 -0
- data/lib/gooddata/lcm/types/class/ads_client.rb +35 -0
- data/lib/gooddata/lcm/types/class/class.rb +21 -0
- data/lib/gooddata/lcm/types/class/gd_client.rb +35 -0
- data/lib/gooddata/lcm/types/class/types.rb +12 -0
- data/lib/gooddata/lcm/types/complex/complex.rb +33 -0
- data/lib/gooddata/lcm/types/complex/release_query.rb +35 -0
- data/lib/gooddata/lcm/types/complex/segment.rb +37 -0
- data/lib/gooddata/lcm/types/complex/synchronization_info.rb +32 -0
- data/lib/gooddata/lcm/types/complex/tokens.rb +31 -0
- data/lib/gooddata/lcm/types/complex/types.rb +12 -0
- data/lib/gooddata/lcm/types/complex/update_preference.rb +32 -0
- data/lib/gooddata/lcm/types/param.rb +16 -0
- data/lib/gooddata/lcm/types/scalar/bool.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/hash.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/integer.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/object.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/string.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/types.rb +12 -0
- data/lib/gooddata/lcm/types/special/array.rb +35 -0
- data/lib/gooddata/lcm/types/special/enum.rb +17 -0
- data/lib/gooddata/lcm/types/special/types.rb +12 -0
- data/lib/gooddata/lcm/types/types.rb +12 -0
- data/lib/gooddata/mixins/author.rb +1 -1
- data/lib/gooddata/mixins/content_getter.rb +1 -1
- data/lib/gooddata/mixins/content_property_reader.rb +1 -1
- data/lib/gooddata/mixins/content_property_writer.rb +1 -1
- data/lib/gooddata/mixins/contributor.rb +1 -1
- data/lib/gooddata/mixins/data_getter.rb +1 -1
- data/lib/gooddata/mixins/data_property_reader.rb +1 -1
- data/lib/gooddata/mixins/data_property_writer.rb +1 -1
- data/lib/gooddata/mixins/inspector.rb +1 -1
- data/lib/gooddata/mixins/is_attribute.rb +1 -1
- data/lib/gooddata/mixins/is_dimension.rb +1 -1
- data/lib/gooddata/mixins/is_fact.rb +1 -1
- data/lib/gooddata/mixins/is_label.rb +1 -1
- data/lib/gooddata/mixins/links.rb +1 -1
- data/lib/gooddata/mixins/md_finders.rb +1 -1
- data/lib/gooddata/mixins/md_grantees.rb +1 -1
- data/lib/gooddata/mixins/md_id_to_uri.rb +9 -3
- data/lib/gooddata/mixins/md_json.rb +1 -1
- data/lib/gooddata/mixins/md_lock.rb +1 -1
- data/lib/gooddata/mixins/md_object_id.rb +1 -1
- data/lib/gooddata/mixins/md_object_indexer.rb +1 -1
- data/lib/gooddata/mixins/md_object_query.rb +1 -1
- data/lib/gooddata/mixins/md_relations.rb +1 -1
- data/lib/gooddata/mixins/meta_getter.rb +1 -1
- data/lib/gooddata/mixins/meta_property_reader.rb +1 -1
- data/lib/gooddata/mixins/meta_property_writer.rb +1 -1
- data/lib/gooddata/mixins/mixins.rb +1 -1
- data/lib/gooddata/mixins/not_attribute.rb +1 -1
- data/lib/gooddata/mixins/not_exportable.rb +1 -1
- data/lib/gooddata/mixins/not_fact.rb +1 -1
- data/lib/gooddata/mixins/not_group.rb +1 -1
- data/lib/gooddata/mixins/not_label.rb +1 -1
- data/lib/gooddata/mixins/not_metric.rb +1 -1
- data/lib/gooddata/mixins/obj_id.rb +1 -1
- data/lib/gooddata/mixins/rest_getters.rb +1 -1
- data/lib/gooddata/mixins/rest_resource.rb +1 -1
- data/lib/gooddata/mixins/root_key_getter.rb +1 -1
- data/lib/gooddata/mixins/root_key_setter.rb +1 -1
- data/lib/gooddata/mixins/timestamps.rb +1 -1
- data/lib/gooddata/models/ads_output_stage.rb +85 -0
- data/lib/gooddata/models/automated_data_distribution.rb +36 -0
- data/lib/gooddata/models/blueprint/anchor_field.rb +4 -3
- data/lib/gooddata/models/blueprint/attribute_field.rb +18 -2
- data/lib/gooddata/models/blueprint/blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/blueprint_field.rb +1 -1
- data/lib/gooddata/models/blueprint/dashboard_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -1
- data/lib/gooddata/models/blueprint/date_dimension.rb +1 -1
- data/lib/gooddata/models/blueprint/fact_field.rb +1 -1
- data/lib/gooddata/models/blueprint/label_field.rb +5 -1
- data/lib/gooddata/models/blueprint/project_blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/project_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/reference_field.rb +1 -1
- data/lib/gooddata/models/blueprint/schema_blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/schema_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/to_manifest.rb +7 -3
- data/lib/gooddata/models/blueprint/to_wire.rb +12 -1
- data/lib/gooddata/models/channel_configuration.rb +112 -0
- data/lib/gooddata/models/client.rb +42 -6
- data/lib/gooddata/models/client_synchronization_result.rb +1 -1
- data/lib/gooddata/models/client_synchronization_result_details.rb +1 -1
- data/lib/gooddata/models/datawarehouse.rb +25 -3
- data/lib/gooddata/models/domain.rb +29 -4
- data/lib/gooddata/models/execution.rb +1 -1
- data/lib/gooddata/models/execution_detail.rb +1 -1
- data/lib/gooddata/models/from_wire.rb +8 -1
- data/lib/gooddata/models/invitation.rb +1 -1
- data/lib/gooddata/models/links.rb +1 -1
- data/lib/gooddata/models/membership.rb +1 -1
- data/lib/gooddata/models/metadata.rb +3 -2
- data/lib/gooddata/models/metadata/attribute.rb +7 -1
- data/lib/gooddata/models/metadata/dashboard.rb +3 -3
- data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +1 -1
- data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/filter_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/headline_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/report_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/text_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard_tab.rb +2 -2
- data/lib/gooddata/models/metadata/dataset.rb +1 -1
- data/lib/gooddata/models/metadata/dimension.rb +1 -1
- data/lib/gooddata/models/metadata/fact.rb +1 -1
- data/lib/gooddata/models/metadata/folder.rb +1 -1
- data/lib/gooddata/models/metadata/label.rb +1 -1
- data/lib/gooddata/models/metadata/metadata.rb +1 -1
- data/lib/gooddata/models/metadata/metric.rb +1 -1
- data/lib/gooddata/models/metadata/report.rb +1 -1
- data/lib/gooddata/models/metadata/report_definition.rb +1 -1
- data/lib/gooddata/models/metadata/scheduled_mail.rb +2 -2
- data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +1 -1
- data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +1 -1
- data/lib/gooddata/models/metadata/variable.rb +1 -1
- data/lib/gooddata/models/model.rb +1 -1
- data/lib/gooddata/models/models.rb +1 -1
- data/lib/gooddata/models/module_constants.rb +1 -1
- data/lib/gooddata/models/notification_rule.rb +113 -0
- data/lib/gooddata/models/process.rb +10 -3
- data/lib/gooddata/models/profile.rb +9 -1
- data/lib/gooddata/models/project.rb +248 -50
- data/lib/gooddata/models/project_creator.rb +2 -2
- data/lib/gooddata/models/project_metadata.rb +1 -1
- data/lib/gooddata/models/project_role.rb +1 -1
- data/lib/gooddata/models/report_data_result.rb +1 -1
- data/lib/gooddata/models/schedule.rb +49 -13
- data/lib/gooddata/models/segment.rb +3 -3
- data/lib/gooddata/models/style_setting.rb +71 -0
- data/lib/gooddata/models/subscription.rb +181 -0
- data/lib/gooddata/models/tab_builder.rb +1 -1
- data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +1 -1
- data/lib/gooddata/models/user_filters/user_filter.rb +1 -1
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +11 -5
- data/lib/gooddata/models/user_filters/user_filters.rb +1 -1
- data/lib/gooddata/models/user_filters/variable_user_filter.rb +1 -1
- data/lib/gooddata/models/user_group.rb +19 -12
- data/lib/gooddata/rest/client.rb +9 -1
- data/lib/gooddata/rest/connection.rb +18 -9
- data/lib/gooddata/rest/object.rb +1 -1
- data/lib/gooddata/rest/object_factory.rb +1 -1
- data/lib/gooddata/rest/resource.rb +1 -1
- data/lib/gooddata/rest/rest.rb +1 -1
- data/lib/gooddata/version.rb +2 -2
- data/spec/.rubocop.yml +16 -0
- data/spec/bricks/bricks_spec.rb +13 -15
- data/spec/data/blueprints/attribute_sort_order_blueprint.json +72 -0
- data/spec/data/gooddata_version_process/gooddata_version.rb +1 -1
- data/spec/data/hello_world_process/hello_world.rb +2 -2
- data/spec/data/ruby_params_process/ruby_params.rb +1 -1
- data/spec/data/ruby_process/process.rb +2 -2
- data/spec/data/wire_models/attribute_sort_by_model.json +73 -0
- data/spec/environment/default.rb +14 -13
- data/spec/environment/develop.rb +26 -11
- data/spec/environment/environment.rb +2 -1
- data/spec/environment/hotfix.rb +15 -7
- data/spec/environment/production.rb +6 -14
- data/spec/environment/staging.rb +9 -10
- data/spec/helpers/blueprint_helper.rb +11 -10
- data/spec/helpers/cli_helper.rb +26 -24
- data/spec/helpers/connection_helper.rb +28 -26
- data/spec/helpers/crypto_helper.rb +8 -6
- data/spec/helpers/csv_helper.rb +7 -5
- data/spec/helpers/process_helper.rb +13 -11
- data/spec/helpers/project_helper.rb +36 -34
- data/spec/helpers/schedule_helper.rb +13 -11
- data/spec/helpers/spec_helper.rb +8 -6
- data/spec/integration/ads_output_stage_spec.rb +55 -0
- data/spec/integration/blueprint_updates_spec.rb +22 -16
- data/spec/integration/blueprint_with_grain_spec.rb +5 -3
- data/spec/integration/channel_configuration_spec.rb +67 -0
- data/spec/integration/clients_spec.rb +31 -22
- data/spec/integration/command_datawarehouse_spec.rb +4 -4
- data/spec/integration/command_projects_spec.rb +6 -6
- data/spec/integration/create_from_template_spec.rb +4 -3
- data/spec/integration/create_project_spec.rb +7 -4
- data/spec/integration/date_dim_switch_spec.rb +25 -28
- data/spec/integration/deprecated_load_spec.rb +11 -9
- data/spec/integration/full_process_schedule_spec.rb +82 -13
- data/spec/integration/full_project_spec.rb +67 -45
- data/spec/integration/lcm_spec.rb +41 -0
- data/spec/integration/over_to_user_filters_spec.rb +14 -10
- data/spec/integration/partial_md_export_import_spec.rb +3 -4
- data/spec/integration/project_spec.rb +101 -42
- data/spec/integration/rest_spec.rb +5 -4
- data/spec/integration/schedule_spec.rb +28 -39
- data/spec/integration/segments_spec.rb +42 -31
- data/spec/integration/subscription_spec.rb +63 -0
- data/spec/integration/user_filters_spec.rb +49 -39
- data/spec/integration/user_group_spec.rb +25 -5
- data/spec/integration/variables_spec.rb +34 -32
- data/spec/logging_in_logging_out_spec.rb +6 -8
- data/spec/spec_helper.rb +3 -3
- data/spec/unit/bricks/bricks_spec.rb +3 -4
- data/spec/unit/bricks/middleware/aws_middelware_spec.rb +8 -15
- data/spec/unit/bricks/middleware/bench_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/logger_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +3 -3
- data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +3 -3
- data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +3 -3
- data/spec/unit/cli/cli_spec.rb +3 -3
- data/spec/unit/cli/commands/cmd_auth_spec.rb +2 -2
- data/spec/unit/commands/command_projects_spec.rb +3 -3
- data/spec/unit/core/connection_spec.rb +3 -4
- data/spec/unit/core/logging_spec.rb +2 -5
- data/spec/unit/core/nil_logger_spec.rb +2 -2
- data/spec/unit/core/project_spec.rb +4 -4
- data/spec/unit/extensions/hash_spec.rb +3 -4
- data/spec/unit/godzilla/goodzilla_spec.rb +22 -26
- data/spec/unit/helpers/csv_helper_spec.rb +3 -3
- data/spec/unit/helpers/data_helper_spec.rb +6 -18
- data/spec/unit/helpers/global_helpers_spec.rb +112 -28
- data/spec/unit/helpers_spec.rb +139 -2
- data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +20 -0
- data/spec/unit/models/blueprint/attributes_spec.rb +1 -2
- data/spec/unit/models/blueprint/dataset_spec.rb +2 -3
- data/spec/unit/models/blueprint/labels_spec.rb +1 -2
- data/spec/unit/models/blueprint/project_blueprint_spec.rb +34 -35
- data/spec/unit/models/blueprint/reference_spec.rb +1 -2
- data/spec/unit/models/blueprint/schema_builder_spec.rb +5 -7
- data/spec/unit/models/blueprint/to_wire_spec.rb +76 -55
- data/spec/unit/models/domain_spec.rb +4 -5
- data/spec/unit/models/execution_spec.rb +16 -15
- data/spec/unit/models/from_wire_spec.rb +24 -19
- data/spec/unit/models/invitation_spec.rb +1 -1
- data/spec/unit/models/membership_spec.rb +36 -41
- data/spec/unit/models/metadata_spec.rb +20 -18
- data/spec/unit/models/metric_spec.rb +67 -55
- data/spec/unit/models/model_spec.rb +32 -37
- data/spec/unit/models/params_spec.rb +1 -1
- data/spec/unit/models/profile_spec.rb +40 -45
- data/spec/unit/models/project_creator_spec.rb +27 -29
- data/spec/unit/models/project_role_spec.rb +1 -1
- data/spec/unit/models/project_spec.rb +65 -2
- data/spec/unit/models/report_result_data_spec.rb +7 -12
- data/spec/unit/models/schedule_spec.rb +71 -35
- data/spec/unit/models/to_manifest_spec.rb +69 -4
- data/spec/unit/models/unit_project_spec.rb +12 -12
- data/spec/unit/models/user_filters_spec.rb +40 -40
- data/spec/unit/models/variable_spec.rb +108 -93
- data/spec/unit/rest/polling_spec.rb +7 -7
- data/spec/unit/rest/resource_spec.rb +2 -2
- metadata +145 -228
- data/spec/environment/release.rb +0 -21
- data/spec/environment/staging_3.rb +0 -36
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -144,6 +144,11 @@ module GoodData
|
|
|
144
144
|
find_columns_by_type(dataset, :label)
|
|
145
145
|
end
|
|
146
146
|
|
|
147
|
+
def self.reference_label_for_attribtue(dataset, attribute)
|
|
148
|
+
labels = labels_for_attribute(dataset, attribute)
|
|
149
|
+
labels.find { |label| label[:reference_label] == true } || labels.first
|
|
150
|
+
end
|
|
151
|
+
|
|
147
152
|
# Returns labels for a particular attribute
|
|
148
153
|
#
|
|
149
154
|
# @param dataset [Hash] Dataset blueprint
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -16,6 +16,10 @@ module GoodData
|
|
|
16
16
|
dataset_blueprint.attribute_for_label(self)
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
+
def reference_label?
|
|
20
|
+
data[:reference_label] == true || self == attribute.reference_label
|
|
21
|
+
end
|
|
22
|
+
|
|
19
23
|
# Returns gd_data_type
|
|
20
24
|
#
|
|
21
25
|
# @return [String] returns gd_data_type of the label
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -125,7 +125,11 @@ module GoodData
|
|
|
125
125
|
labels = DatasetBlueprint.labels_for_attribute(dataset, a)
|
|
126
126
|
|
|
127
127
|
label = {}.tap do |l|
|
|
128
|
-
|
|
128
|
+
if labels.any? { |lab| lab.key?(:reference_label) } && label[:reference_label] == true
|
|
129
|
+
l['referenceKey'] = 1
|
|
130
|
+
elsif labels.all? { |lab| !lab.key?(:reference_label) } && labels.first == label
|
|
131
|
+
l['referenceKey'] = 1
|
|
132
|
+
end
|
|
129
133
|
l['populates'] = [label[:id]]
|
|
130
134
|
l['mode'] = mode
|
|
131
135
|
l['columnName'] = label[:column_name] || label[:id]
|
|
@@ -168,7 +172,7 @@ module GoodData
|
|
|
168
172
|
def self.reference_to_manifest(project, _dataset, reference, mode)
|
|
169
173
|
referenced_dataset = ProjectBlueprint.find_dataset(project, reference[:dataset])
|
|
170
174
|
anchor = DatasetBlueprint.anchor(referenced_dataset)
|
|
171
|
-
label = DatasetBlueprint.
|
|
175
|
+
label = DatasetBlueprint.reference_label_for_attribtue(referenced_dataset, anchor)
|
|
172
176
|
[{
|
|
173
177
|
'populates' => [label[:id]],
|
|
174
178
|
'mode' => mode,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -54,6 +54,17 @@ module GoodData
|
|
|
54
54
|
a[:attribute][:folder] = attribute[:folder] || dataset[:folder] || GoodData::Model.title(dataset)
|
|
55
55
|
a[:attribute][:labels] = labels unless labels.empty?
|
|
56
56
|
a[:attribute][:description] = GoodData::Model.description(attribute) if GoodData::Model.description(attribute)
|
|
57
|
+
|
|
58
|
+
if attribute[:order_by]
|
|
59
|
+
label, direction = attribute[:order_by].split(' - ')
|
|
60
|
+
a[:attribute][:sortOrder] = {
|
|
61
|
+
attributeSortOrder: {
|
|
62
|
+
label: label,
|
|
63
|
+
direction: direction
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
end
|
|
67
|
+
|
|
57
68
|
if attribute[:grain]
|
|
58
69
|
a[:attribute][:grain] = attribute[:grain].map do |g|
|
|
59
70
|
case g.keys.first
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
+
# This source code is licensed under the BSD-style license found in the
|
|
5
|
+
# LICENSE file in the root directory of this source tree.
|
|
6
|
+
|
|
7
|
+
require_relative '../rest/resource'
|
|
8
|
+
|
|
9
|
+
module GoodData
|
|
10
|
+
class ChannelConfiguration < Rest::Resource
|
|
11
|
+
CHANNEL_CONFIGURATION_PATH = '/gdc/account/profile/%s/channelConfigurations'
|
|
12
|
+
|
|
13
|
+
EMPTY_OBJECT = {
|
|
14
|
+
'channelConfiguration' => {
|
|
15
|
+
'configuration' => {
|
|
16
|
+
'emailConfiguration' => {
|
|
17
|
+
'to' => ''
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
'meta' => {
|
|
21
|
+
'title' => ''
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
attr_accessor :title, :to
|
|
27
|
+
|
|
28
|
+
class << self
|
|
29
|
+
def [](id = :all, opts = { client: GoodData.connection })
|
|
30
|
+
c = GoodData.get_client(opts)
|
|
31
|
+
|
|
32
|
+
uri = CHANNEL_CONFIGURATION_PATH % c.user.account_setting_id
|
|
33
|
+
if id == :all
|
|
34
|
+
data = c.get uri
|
|
35
|
+
data['channelConfigurations']['items'].map { |channel_data| c.create(ChannelConfiguration, channel_data) }
|
|
36
|
+
else
|
|
37
|
+
c.create(ChannelConfiguration, c.get("#{uri}/#{id}"))
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def all(opts = { client: GoodData.connection })
|
|
42
|
+
ChannelConfiguration[:all, opts]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def create(opts = { client: GoodData.connection })
|
|
46
|
+
c = GoodData.get_client(opts)
|
|
47
|
+
|
|
48
|
+
options = { to: c.user.email, title: c.user.email }.merge(opts)
|
|
49
|
+
existing_channel = all.find { |channel| channel.to == options[:to] }
|
|
50
|
+
return existing_channel if existing_channel
|
|
51
|
+
|
|
52
|
+
channel = create_object(options)
|
|
53
|
+
channel.save
|
|
54
|
+
channel
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def create_object(data = {})
|
|
58
|
+
c = GoodData.get_client(data)
|
|
59
|
+
|
|
60
|
+
new_data = GoodData::Helpers.deep_dup(EMPTY_OBJECT).tap do |d|
|
|
61
|
+
d['channelConfiguration']['configuration']['emailConfiguration']['to'] = data[:to]
|
|
62
|
+
d['channelConfiguration']['meta']['title'] = data[:title]
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
c.create(ChannelConfiguration, new_data)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Initializes object instance from raw wire JSON
|
|
70
|
+
#
|
|
71
|
+
# @param json Json used for initialization
|
|
72
|
+
def initialize(json)
|
|
73
|
+
super
|
|
74
|
+
@json = json
|
|
75
|
+
@to = data['configuration']['emailConfiguration']['to']
|
|
76
|
+
@title = data['meta']['title']
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def save
|
|
80
|
+
response = if uri
|
|
81
|
+
data_to_send = GoodData::Helpers.deep_dup(raw_data).tap do |d|
|
|
82
|
+
d['channelConfiguration']['configuration']['emailConfiguration']['to'] = to
|
|
83
|
+
d['channelConfiguration']['meta']['title'] = title
|
|
84
|
+
end
|
|
85
|
+
client.put(uri, data_to_send)
|
|
86
|
+
else
|
|
87
|
+
client.post(CHANNEL_CONFIGURATION_PATH % client.user.account_setting_id, raw_data)
|
|
88
|
+
end
|
|
89
|
+
@json = client.get response['channelConfiguration']['meta']['uri']
|
|
90
|
+
self
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def delete
|
|
94
|
+
client.delete uri
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def uri
|
|
98
|
+
data['meta']['uri'] if data && data['meta'] && data['meta']['uri']
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def obj_id
|
|
102
|
+
uri.split('/').last
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
alias_method :channel_id, :obj_id
|
|
106
|
+
|
|
107
|
+
def ==(other)
|
|
108
|
+
return false unless [:to, :title].all? { |m| other.respond_to?(m) }
|
|
109
|
+
@to == other.to && @title == other.title
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -61,20 +61,43 @@ module GoodData
|
|
|
61
61
|
end
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
-
# Creates new client from parameters passed
|
|
64
|
+
# Creates new client from parameters passed.
|
|
65
65
|
#
|
|
66
|
-
#
|
|
67
|
-
#
|
|
68
|
-
|
|
66
|
+
# Should not be called directly. Use GoodData::Segment#create_client.
|
|
67
|
+
#
|
|
68
|
+
# @param data [Hash] Data required to create the client
|
|
69
|
+
# @option data id [String]
|
|
70
|
+
# @option data project [GoodData::Project]
|
|
71
|
+
# @param options [Hash] Options
|
|
72
|
+
# @option options segment [GoodData::Segment]
|
|
73
|
+
# @option options client [GoodData::Rest::Client]
|
|
74
|
+
# @return [GoodData::Client] New GoodData::Client instance
|
|
75
|
+
def create(data, options)
|
|
69
76
|
segment = options[:segment]
|
|
70
77
|
domain = segment.domain
|
|
71
|
-
tenant = client.create(GoodData::Client, GoodData::Helpers.
|
|
78
|
+
tenant = client.create(GoodData::Client, GoodData::Helpers.stringify_keys(CLIENT_TEMPLATE.merge(domain: domain)), domain: domain)
|
|
72
79
|
tenant.tap do |s|
|
|
73
80
|
s.project = data[:project]
|
|
74
81
|
s.client_id = data[:id]
|
|
75
82
|
s.segment = segment.uri
|
|
76
83
|
end
|
|
77
84
|
end
|
|
85
|
+
|
|
86
|
+
def update_setting(name, value, opts = {})
|
|
87
|
+
return nil unless value
|
|
88
|
+
domain = opts[:domain]
|
|
89
|
+
client_id = opts[:client_id]
|
|
90
|
+
uri = "#{domain.segments_uri}/clients/#{client_id}/settings/#{name}"
|
|
91
|
+
body = {
|
|
92
|
+
setting: {
|
|
93
|
+
name: "#{name}",
|
|
94
|
+
value: "#{value}"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
domain.client.put(uri, body)
|
|
98
|
+
nil
|
|
99
|
+
end
|
|
100
|
+
alias_method :add_setting, :update_setting
|
|
78
101
|
end
|
|
79
102
|
|
|
80
103
|
def initialize(data)
|
|
@@ -178,5 +201,18 @@ module GoodData
|
|
|
178
201
|
project.delete if project && !project.deleted?
|
|
179
202
|
client.delete(uri) if uri
|
|
180
203
|
end
|
|
204
|
+
|
|
205
|
+
def settings
|
|
206
|
+
uri = "#{domain.segments_uri}/clients/#{client_id}/settings"
|
|
207
|
+
res = client.get(uri)
|
|
208
|
+
settings = GoodData::Helpers.get_path(res, %w(settingsList items))
|
|
209
|
+
settings.map do |setting|
|
|
210
|
+
setting = setting['setting']
|
|
211
|
+
{
|
|
212
|
+
name: setting['name'],
|
|
213
|
+
value: setting['value']
|
|
214
|
+
}
|
|
215
|
+
end
|
|
216
|
+
end
|
|
181
217
|
end
|
|
182
218
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -11,6 +11,23 @@ module GoodData
|
|
|
11
11
|
class << self
|
|
12
12
|
CREATE_URL = '/gdc/datawarehouse/instances'
|
|
13
13
|
|
|
14
|
+
def [](id = :all, options = { client: GoodData.client })
|
|
15
|
+
c = GoodData.get_client(options)
|
|
16
|
+
|
|
17
|
+
if id == :all
|
|
18
|
+
data = c.get(CREATE_URL)
|
|
19
|
+
data['instances']['items'].map do |ads_data|
|
|
20
|
+
c.create(DataWarehouse, ads_data)
|
|
21
|
+
end
|
|
22
|
+
else
|
|
23
|
+
c.create(DataWarehouse, c.get("#{CREATE_URL}/#{id}"))
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def all(options = { client: GoodData.client })
|
|
28
|
+
DataWarehouse[:all, options]
|
|
29
|
+
end
|
|
30
|
+
|
|
14
31
|
# Create a data warehouse from given attributes
|
|
15
32
|
# Expected keys:
|
|
16
33
|
# - :title (mandatory)
|
|
@@ -19,8 +36,7 @@ module GoodData
|
|
|
19
36
|
def create(opts)
|
|
20
37
|
GoodData.logger.info "Creating warehouse #{opts[:title]}"
|
|
21
38
|
|
|
22
|
-
c =
|
|
23
|
-
fail ArgumentError, 'No :client specified' if c.nil?
|
|
39
|
+
c = GoodData.get_client(opts)
|
|
24
40
|
|
|
25
41
|
opts = { :auth_token => Helpers::AuthHelper.read_token }.merge(opts)
|
|
26
42
|
auth_token = opts[:auth_token] || opts[:token]
|
|
@@ -36,6 +52,8 @@ module GoodData
|
|
|
36
52
|
'authorizationToken' => auth_token
|
|
37
53
|
}
|
|
38
54
|
}
|
|
55
|
+
json['instance']['environment'] = opts[:environment] if opts[:environment]
|
|
56
|
+
|
|
39
57
|
# do the first post
|
|
40
58
|
res = c.post(CREATE_URL, json)
|
|
41
59
|
|
|
@@ -88,5 +106,9 @@ module GoodData
|
|
|
88
106
|
# project has.
|
|
89
107
|
alias_method :state, :status
|
|
90
108
|
alias_method :description, :summary
|
|
109
|
+
|
|
110
|
+
def schemas
|
|
111
|
+
json['instance']['links']['schemas']
|
|
112
|
+
end
|
|
91
113
|
end
|
|
92
114
|
end
|