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
|
|
|
@@ -262,10 +262,16 @@ module GoodData
|
|
|
262
262
|
small_labels = get_small_labels(labels_cache)
|
|
263
263
|
lookups_cache = create_lookups_cache(small_labels)
|
|
264
264
|
attrs_cache = create_attrs_cache(filters, options)
|
|
265
|
+
users = Hash[
|
|
266
|
+
options[:project].users.map do |user|
|
|
267
|
+
[user.login, user.profile_url]
|
|
268
|
+
end
|
|
269
|
+
]
|
|
265
270
|
create_filter_proc = proc do |login, f|
|
|
266
271
|
expression, errors = create_expression(f, labels_cache, lookups_cache, attrs_cache, options)
|
|
267
272
|
profiles_uri = if options[:type] == :muf
|
|
268
|
-
|
|
273
|
+
uri = users[login]
|
|
274
|
+
uri.nil? ? ('/gdc/account/profile/' + login) : uri
|
|
269
275
|
elsif options[:type] == :variable
|
|
270
276
|
(users_cache[login] && users_cache[login].uri)
|
|
271
277
|
else
|
|
@@ -315,10 +321,10 @@ module GoodData
|
|
|
315
321
|
project_vals_lookup = vals.group_by(&:related_uri)
|
|
316
322
|
user_vals_lookup = user_filters.group_by(&:related_uri)
|
|
317
323
|
|
|
318
|
-
a = vals.map
|
|
319
|
-
b = user_filters.map
|
|
324
|
+
a = vals.map(&:related_uri)
|
|
325
|
+
b = user_filters.map(&:related_uri)
|
|
320
326
|
|
|
321
|
-
users_to_try = a
|
|
327
|
+
users_to_try = (a + b).uniq
|
|
322
328
|
results = users_to_try.map do |user|
|
|
323
329
|
resolve_user_filter(user_vals_lookup[user], project_vals_lookup[user])
|
|
324
330
|
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
|
|
|
@@ -36,7 +36,7 @@ module GoodData
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
class << self
|
|
39
|
-
# Returns list of all
|
|
39
|
+
# Returns list of all clients or a particular client
|
|
40
40
|
#
|
|
41
41
|
# @param id [String|Symbol] Uri of the segment required or :all for all segments.
|
|
42
42
|
# @return [Array<GoodData::Segment>] List of segments for a particular domain
|
|
@@ -54,16 +54,22 @@ module GoodData
|
|
|
54
54
|
|
|
55
55
|
# Create new user group
|
|
56
56
|
#
|
|
57
|
+
# Should not be called directly. Use GoodData::Project.add_user_group.
|
|
57
58
|
# @param data [Hash] Initial data
|
|
59
|
+
# @option data name [String]
|
|
60
|
+
# @option data description [String]
|
|
61
|
+
# @option data project [GoodData::Project]
|
|
58
62
|
# @return [UserGroup] Newly created user group
|
|
59
63
|
def create(data)
|
|
60
64
|
new_data = GoodData::Helpers.deep_dup(EMPTY_OBJECT).tap do |d|
|
|
61
65
|
d['userGroup']['content']['name'] = data[:name]
|
|
62
66
|
d['userGroup']['content']['description'] = data[:description]
|
|
63
|
-
d['userGroup']['content']['project'] = data[:project].
|
|
67
|
+
d['userGroup']['content']['project'] = data[:project].uri
|
|
64
68
|
end
|
|
65
69
|
|
|
66
|
-
client.create(GoodData::UserGroup, GoodData::Helpers.
|
|
70
|
+
group = client.create(GoodData::UserGroup, GoodData::Helpers.stringify_keys(new_data))
|
|
71
|
+
group.project = data[:project]
|
|
72
|
+
group
|
|
67
73
|
end
|
|
68
74
|
|
|
69
75
|
# Constructs payload for user management/manipulation
|
|
@@ -184,14 +190,15 @@ module GoodData
|
|
|
184
190
|
#
|
|
185
191
|
# @return [UserGroup] Created or updated user group
|
|
186
192
|
def save
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
if uri
|
|
194
|
+
# get rid of unsupported keys
|
|
195
|
+
data = json['userGroup']
|
|
196
|
+
client.put(uri, 'userGroup' => data.except('meta', 'links'))
|
|
197
|
+
@json = client.get(uri)
|
|
198
|
+
else
|
|
199
|
+
response = client.post('/gdc/userGroups', @json)
|
|
200
|
+
@json = client.get(response['uri'])
|
|
201
|
+
end
|
|
195
202
|
self
|
|
196
203
|
end
|
|
197
204
|
|
data/lib/gooddata/rest/client.rb
CHANGED
|
@@ -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
|
|
|
@@ -200,6 +200,14 @@ module GoodData
|
|
|
200
200
|
@connection.disconnect
|
|
201
201
|
end
|
|
202
202
|
|
|
203
|
+
def warehouses(id = :all)
|
|
204
|
+
GoodData::DataWarehouse[id, client: self]
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def create_datawarehouse(opts = {})
|
|
208
|
+
GoodData::DataWarehouse.create({ client: self }.merge(opts))
|
|
209
|
+
end
|
|
210
|
+
|
|
203
211
|
#######################
|
|
204
212
|
# Factory stuff
|
|
205
213
|
######################
|
|
@@ -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
|
|
|
@@ -82,6 +82,7 @@ module GoodData
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
RETRYABLE_ERRORS = [
|
|
85
|
+
Net::HTTPBadResponse,
|
|
85
86
|
RestClient::InternalServerError,
|
|
86
87
|
RestClient::RequestTimeout,
|
|
87
88
|
RestClient::MethodNotAllowed,
|
|
@@ -272,8 +273,8 @@ module GoodData
|
|
|
272
273
|
|
|
273
274
|
staging_uri = options[:staging_url].to_s
|
|
274
275
|
|
|
275
|
-
base_url = dir.empty? ? staging_uri : URI.join(staging_uri, "#{dir}/").to_s
|
|
276
|
-
url = URI.join(base_url, CGI.escape(what)).to_s
|
|
276
|
+
base_url = dir.empty? ? staging_uri : URI.join("#{server}", staging_uri, "#{dir}/").to_s
|
|
277
|
+
url = URI.join("#{server}", base_url, CGI.escape(what)).to_s
|
|
277
278
|
|
|
278
279
|
b = proc do |f|
|
|
279
280
|
raw = {
|
|
@@ -332,7 +333,7 @@ module GoodData
|
|
|
332
333
|
#
|
|
333
334
|
# @param e [RuntimeException] Exception to log
|
|
334
335
|
# @param uri [String] Uri on which the request failed
|
|
335
|
-
# @param
|
|
336
|
+
# @param params [Hash] Additional params
|
|
336
337
|
def log_error(e, uri, params, options = {})
|
|
337
338
|
return if e.response && e.response.code == 401 && !uri.include?('token') && !uri.include?('login')
|
|
338
339
|
|
|
@@ -362,7 +363,6 @@ module GoodData
|
|
|
362
363
|
@server[uri].post(payload, params)
|
|
363
364
|
end
|
|
364
365
|
rescue RestClient::Exception => e
|
|
365
|
-
# log the error if it happens
|
|
366
366
|
log_error(e, uri, params, options)
|
|
367
367
|
raise e
|
|
368
368
|
end
|
|
@@ -460,12 +460,12 @@ module GoodData
|
|
|
460
460
|
def upload(file, options = {})
|
|
461
461
|
dir = options[:directory] || ''
|
|
462
462
|
staging_uri = options[:staging_url].to_s
|
|
463
|
-
url = dir.empty? ? staging_uri : URI.join(staging_uri, "#{dir}/").to_s
|
|
463
|
+
url = dir.empty? ? staging_uri : URI.join("#{server}", staging_uri, "#{dir}/").to_s
|
|
464
464
|
# Make a directory, if needed
|
|
465
465
|
create_webdav_dir_if_needed url unless dir.empty?
|
|
466
466
|
|
|
467
467
|
webdav_filename = options[:filename] || File.basename(file)
|
|
468
|
-
do_stream_file URI.join(url, CGI.escape(webdav_filename)), file
|
|
468
|
+
do_stream_file URI.join("#{server}", url, CGI.escape(webdav_filename)), file
|
|
469
469
|
end
|
|
470
470
|
|
|
471
471
|
def generate_request_id
|
|
@@ -504,8 +504,17 @@ module GoodData
|
|
|
504
504
|
request.execute
|
|
505
505
|
end
|
|
506
506
|
|
|
507
|
-
def format_error(e, params)
|
|
508
|
-
|
|
507
|
+
def format_error(e, params = {})
|
|
508
|
+
return unless e.respond_to?(:response)
|
|
509
|
+
error = MultiJson.load(e.response)
|
|
510
|
+
message = GoodData::Helpers.interpolate_error_message(error)
|
|
511
|
+
<<-ERR
|
|
512
|
+
|
|
513
|
+
#{e}: #{message}
|
|
514
|
+
Request ID: #{params[:x_gdc_request]}
|
|
515
|
+
Full response:
|
|
516
|
+
#{JSON.pretty_generate(error)}
|
|
517
|
+
ERR
|
|
509
518
|
end
|
|
510
519
|
|
|
511
520
|
# generate session id to be passed as the first part to
|
data/lib/gooddata/rest/object.rb
CHANGED
|
@@ -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
|
|
data/lib/gooddata/rest/rest.rb
CHANGED
|
@@ -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
|
|
data/lib/gooddata/version.rb
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
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
|
|
|
7
7
|
# GoodData Module
|
|
8
8
|
module GoodData
|
|
9
|
-
VERSION = '0.6.
|
|
9
|
+
VERSION = '0.6.50'
|
|
10
10
|
|
|
11
11
|
class << self
|
|
12
12
|
# Version
|
data/spec/.rubocop.yml
ADDED
data/spec/bricks/bricks_spec.rb
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
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
|
|
|
7
7
|
require 'gooddata/bricks/brick'
|
|
8
8
|
require 'gooddata/bricks/bricks'
|
|
9
9
|
require 'gooddata/bricks/middleware/base_middleware'
|
|
10
|
-
require 'pry'
|
|
11
10
|
|
|
12
11
|
describe GoodData::Bricks do
|
|
13
12
|
it "Has GoodData::Bricks::Brick class" do
|
|
14
|
-
GoodData::Bricks::Brick.should_not
|
|
13
|
+
GoodData::Bricks::Brick.should_not be(nil)
|
|
15
14
|
end
|
|
16
15
|
|
|
17
16
|
it "should be possible to use block as an app in pipeline" do
|
|
18
17
|
p = GoodData::Bricks::Pipeline.prepare([
|
|
19
|
-
lambda
|
|
18
|
+
lambda do |_params|
|
|
19
|
+
puts "x"
|
|
20
|
+
end
|
|
20
21
|
])
|
|
21
22
|
p.call({})
|
|
22
23
|
end
|
|
@@ -24,7 +25,7 @@ describe GoodData::Bricks do
|
|
|
24
25
|
describe "#load_defaults" do
|
|
25
26
|
context "when you define a middleware with default_loaded_call and give it some defaults file with prefix" do
|
|
26
27
|
class TestMiddleWare < GoodData::Bricks::Middleware
|
|
27
|
-
def initialize(options={})
|
|
28
|
+
def initialize(options = {})
|
|
28
29
|
@config = 'spec/bricks/default-config.json'
|
|
29
30
|
super(options)
|
|
30
31
|
end
|
|
@@ -55,7 +56,7 @@ describe GoodData::Bricks do
|
|
|
55
56
|
TestBrick
|
|
56
57
|
])
|
|
57
58
|
|
|
58
|
-
res = p.call(
|
|
59
|
+
res = p.call(
|
|
59
60
|
'config' => {
|
|
60
61
|
'my' => {
|
|
61
62
|
'namespace' => {
|
|
@@ -67,9 +68,9 @@ describe GoodData::Bricks do
|
|
|
67
68
|
'some_key' => 'some value'
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
+
)
|
|
71
72
|
|
|
72
|
-
res.should eq(
|
|
73
|
+
res.should eq(
|
|
73
74
|
'config' => {
|
|
74
75
|
'my' => {
|
|
75
76
|
'namespace' => {
|
|
@@ -83,30 +84,27 @@ describe GoodData::Bricks do
|
|
|
83
84
|
}
|
|
84
85
|
},
|
|
85
86
|
"something_cool" => "redefined value and also default value 2"
|
|
86
|
-
|
|
87
|
+
)
|
|
87
88
|
end
|
|
88
89
|
end
|
|
89
90
|
end
|
|
90
91
|
|
|
91
|
-
|
|
92
92
|
# TODO: Better test pre and post so we are sure it is executed in right order
|
|
93
93
|
it "should be possible to use instance both as middleware and app" do
|
|
94
|
-
|
|
95
94
|
class DummyMiddleware < GoodData::Bricks::Middleware
|
|
96
|
-
|
|
97
95
|
def call(params)
|
|
98
96
|
puts "pre"
|
|
99
97
|
app.call(params)
|
|
100
98
|
puts "post"
|
|
101
99
|
end
|
|
102
|
-
|
|
103
100
|
end
|
|
104
101
|
|
|
105
102
|
p = GoodData::Bricks::Pipeline.prepare([
|
|
106
103
|
DummyMiddleware.new,
|
|
107
|
-
lambda
|
|
104
|
+
lambda do |_params|
|
|
105
|
+
puts "x"
|
|
106
|
+
end
|
|
108
107
|
])
|
|
109
108
|
p.call({})
|
|
110
109
|
end
|
|
111
|
-
|
|
112
110
|
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"datasets": [
|
|
3
|
+
{
|
|
4
|
+
"type": "dataset",
|
|
5
|
+
"title": "TEST",
|
|
6
|
+
"id": "dataset.id",
|
|
7
|
+
"columns": [
|
|
8
|
+
{
|
|
9
|
+
"type": "anchor",
|
|
10
|
+
"id": "attr.id.id",
|
|
11
|
+
"title": "ID",
|
|
12
|
+
"description": null,
|
|
13
|
+
"folder": "TEST"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "label",
|
|
17
|
+
"id": "label.id.id",
|
|
18
|
+
"reference": "attr.id.id",
|
|
19
|
+
"title": "ID",
|
|
20
|
+
"gd_data_type": "VARCHAR(128)",
|
|
21
|
+
"gd_type": "GDC.text",
|
|
22
|
+
"default_label": true
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "attribute",
|
|
26
|
+
"id": "attr.id.name",
|
|
27
|
+
"title": "NAME",
|
|
28
|
+
"description": null,
|
|
29
|
+
"folder": "TEST",
|
|
30
|
+
"order_by": "label.id.name.name_label_2 - DESC"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "label",
|
|
34
|
+
"id": "label.id.name.name_label_3",
|
|
35
|
+
"reference": "attr.id.name",
|
|
36
|
+
"title": "NAME_LABEL_3",
|
|
37
|
+
"gd_data_type": "VARCHAR(128)",
|
|
38
|
+
"gd_type": "GDC.text",
|
|
39
|
+
"default_label": true
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "label",
|
|
43
|
+
"id": "label.id.name.name_label_1",
|
|
44
|
+
"reference": "attr.id.name",
|
|
45
|
+
"title": "NAME_LABEL_1",
|
|
46
|
+
"gd_data_type": "VARCHAR(128)",
|
|
47
|
+
"gd_type": "GDC.text"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"type": "label",
|
|
51
|
+
"id": "label.id.name.name_label_2",
|
|
52
|
+
"reference": "attr.id.name",
|
|
53
|
+
"title": "NAME_LABEL_2",
|
|
54
|
+
"gd_data_type": "VARCHAR(128)",
|
|
55
|
+
"gd_type": "GDC.link"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "label",
|
|
59
|
+
"id": "label.id.name",
|
|
60
|
+
"reference": "attr.id.name",
|
|
61
|
+
"title": "NAME",
|
|
62
|
+
"gd_data_type": "VARCHAR(128)",
|
|
63
|
+
"gd_type": "GDC.text"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"date_dimensions": [
|
|
69
|
+
|
|
70
|
+
],
|
|
71
|
+
"title": "Attribute sort order"
|
|
72
|
+
}
|