couchbase 4.4.2 → 4.4.4
Sign up to get free protection for your applications and to get access to all the features.
- package/BUILDING.md +182 -0
- package/CMakeLists.txt +13 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +4 -2
- package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/BUILDING.md +206 -0
- package/deps/couchbase-cxx-client/CMakeLists.txt +18 -13
- package/deps/couchbase-cxx-client/README.md +2 -2
- package/deps/couchbase-cxx-client/cmake/APKBUILD.in +54 -0
- package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +0 -5
- package/deps/couchbase-cxx-client/cmake/Packaging.cmake +177 -10
- package/deps/couchbase-cxx-client/cmake/RPath.cmake +10 -0
- package/deps/couchbase-cxx-client/cmake/Testing.cmake +1 -1
- package/deps/couchbase-cxx-client/cmake/VersionInfo.cmake +28 -2
- package/deps/couchbase-cxx-client/cmake/build_version.hxx.in +1 -0
- package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.spec.in +45 -6
- package/deps/couchbase-cxx-client/cmake/couchbase_cxx_client.pc.in +2 -2
- package/deps/couchbase-cxx-client/cmake/debian/changelog.in +5 -0
- package/deps/couchbase-cxx-client/cmake/debian/compat +1 -0
- package/deps/couchbase-cxx-client/cmake/debian/control +40 -0
- package/deps/couchbase-cxx-client/cmake/debian/rules +41 -0
- package/deps/couchbase-cxx-client/cmake/debian/source/format +1 -0
- package/deps/couchbase-cxx-client/core/agent_group.cxx +8 -0
- package/deps/couchbase-cxx-client/core/agent_group.hxx +4 -0
- package/deps/couchbase-cxx-client/core/bucket.cxx +16 -20
- package/deps/couchbase-cxx-client/core/bucket.hxx +12 -12
- package/deps/couchbase-cxx-client/core/cluster.cxx +44 -52
- package/deps/couchbase-cxx-client/core/cluster_agent.cxx +8 -0
- package/deps/couchbase-cxx-client/core/cluster_agent.hxx +4 -0
- package/deps/couchbase-cxx-client/core/collections_component.cxx +2 -2
- package/deps/couchbase-cxx-client/core/columnar/agent.cxx +2 -2
- package/deps/couchbase-cxx-client/core/columnar/agent.hxx +1 -1
- package/deps/couchbase-cxx-client/core/columnar/management_component.cxx +3 -3
- package/deps/couchbase-cxx-client/core/columnar/query_component.cxx +103 -45
- package/deps/couchbase-cxx-client/core/columnar/query_component.hxx +1 -0
- package/deps/couchbase-cxx-client/core/free_form_http_request.hxx +8 -0
- package/deps/couchbase-cxx-client/core/http_component.cxx +55 -24
- package/deps/couchbase-cxx-client/core/http_component.hxx +4 -0
- package/deps/couchbase-cxx-client/core/impl/analytics.cxx +1 -0
- package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +15 -15
- package/deps/couchbase-cxx-client/core/impl/bootstrap_error.hxx +10 -2
- package/deps/couchbase-cxx-client/core/impl/bucket.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +6 -6
- package/deps/couchbase-cxx-client/core/impl/cluster.cxx +36 -40
- package/deps/couchbase-cxx-client/core/impl/collection.cxx +29 -5
- package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +5 -5
- package/deps/couchbase-cxx-client/core/impl/error.cxx +24 -3
- package/deps/couchbase-cxx-client/core/impl/get_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +13 -5
- package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -3
- package/deps/couchbase-cxx-client/core/impl/observe_seqno.hxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/query.cxx +1 -0
- package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +6 -6
- package/deps/couchbase-cxx-client/core/impl/scan_result.cxx +1 -1
- package/deps/couchbase-cxx-client/core/impl/search.cxx +2 -0
- package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +12 -12
- package/deps/couchbase-cxx-client/core/io/http_command.hxx +31 -20
- package/deps/couchbase-cxx-client/core/io/http_session.cxx +5 -0
- package/deps/couchbase-cxx-client/core/io/http_session.hxx +17 -4
- package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +97 -49
- package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +15 -14
- package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +48 -33
- package/deps/couchbase-cxx-client/core/io/streams.cxx +256 -0
- package/deps/couchbase-cxx-client/core/io/streams.hxx +31 -155
- package/deps/couchbase-cxx-client/core/logger/configuration.hxx +5 -0
- package/deps/couchbase-cxx-client/core/logger/custom_rotating_file_sink.cxx +2 -3
- package/deps/couchbase-cxx-client/core/logger/logger.cxx +39 -7
- package/deps/couchbase-cxx-client/core/logger/logger.hxx +7 -0
- package/deps/couchbase-cxx-client/core/meta/features.hxx +11 -0
- package/deps/couchbase-cxx-client/core/meta/version.cxx +47 -6
- package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.cxx +188 -0
- package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.hxx +73 -0
- package/deps/couchbase-cxx-client/core/operations/document_analytics.cxx +23 -17
- package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/document_append.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_any_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_search.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/document_view.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/http_noop.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +23 -15
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.hxx +4 -3
- package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/bucket_update.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/bucket_update.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/change_password.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +5 -2
- package/deps/couchbase-cxx-client/core/operations/management/collection_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +4 -2
- package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/collections_manifest_get.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.hxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/freeform.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/group_upsert.cxx +3 -3
- package/deps/couchbase-cxx-client/core/operations/management/group_upsert.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +3 -0
- package/deps/couchbase-cxx-client/core/operations/management/role_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_create.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +4 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +5 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +5 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +4 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +3 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +5 -2
- package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_get_all.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/user_upsert.cxx +3 -3
- package/deps/couchbase-cxx-client/core/operations/management/user_upsert.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get.hxx +1 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +3 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.hxx +2 -0
- package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -1
- package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.hxx +1 -0
- package/deps/couchbase-cxx-client/core/origin.cxx +37 -17
- package/deps/couchbase-cxx-client/core/platform/base64.cc +1 -1
- package/deps/couchbase-cxx-client/core/platform/random.cc +2 -0
- package/deps/couchbase-cxx-client/core/platform/uuid.h +6 -6
- package/deps/couchbase-cxx-client/core/row_streamer.cxx +1 -1
- package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.cc +1 -1
- package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.h +4 -4
- package/deps/couchbase-cxx-client/core/topology/configuration.hxx +2 -0
- package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +8 -0
- package/deps/couchbase-cxx-client/core/tracing/constants.hxx +3 -0
- package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.cxx +87 -0
- package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.hxx +57 -0
- package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.hxx +9 -21
- package/deps/couchbase-cxx-client/core/transactions/attempt_context.hxx +6 -33
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +57 -56
- package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +17 -18
- package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +2 -2
- package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +2 -2
- package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.hxx +0 -20
- package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +2 -2
- package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +128 -52
- package/deps/couchbase-cxx-client/couchbase/analytics_options.hxx +4 -3
- package/deps/couchbase-cxx-client/couchbase/codec/tao_json_serializer.hxx +1 -1
- package/deps/couchbase-cxx-client/couchbase/common_options.hxx +16 -1
- package/deps/couchbase-cxx-client/couchbase/metrics/otel_meter.hxx +16 -20
- package/deps/couchbase-cxx-client/couchbase/mutate_in_specs.hxx +2 -2
- package/deps/couchbase-cxx-client/couchbase/query_options.hxx +4 -3
- package/deps/couchbase-cxx-client/couchbase/search_options.hxx +1 -1
- package/dist/analyticsindexmanager.d.ts +98 -14
- package/dist/analyticsindexmanager.js +452 -411
- package/dist/binding.d.ts +53 -4
- package/dist/bindingutilities.d.ts +26 -1
- package/dist/bindingutilities.js +108 -1
- package/dist/couchbase.d.ts +3 -1
- package/dist/couchbase.js +2 -0
- package/dist/rangeScan.d.ts +1 -1
- package/dist/rangeScan.js +1 -1
- package/dist/transactions.d.ts +34 -3
- package/dist/transactions.js +25 -18
- package/dist/transcoders.d.ts +68 -0
- package/dist/transcoders.js +194 -1
- package/dist/usermanager.d.ts +14 -14
- package/dist/usermanager.js +178 -228
- package/dist/utilities.js +4 -6
- package/dist/utilities_internal.js +1 -2
- package/package.json +9 -8
- package/src/binding.cpp +13 -13
- package/src/connection.cpp +22 -0
- package/src/connection.hpp +12 -0
- package/src/connection_autogen.cpp +100 -0
- package/src/jstocbpp_autogen.hpp +315 -8
- package/src/jstocbpp_transactions.hpp +1 -2
- package/tools/gen-bindings-js.js +38 -3
- package/tools/gen-bindings-json.py +575 -328
@@ -2,7 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.AnalyticsIndexManager = exports.AzureExternalAnalyticsLink = exports.S3ExternalAnalyticsLink = exports.CouchbaseRemoteAnalyticsLink = exports.AnalyticsLink = exports.CouchbaseAnalyticsEncryptionSettings = exports.AnalyticsIndex = exports.AnalyticsDataset = exports.AnalyticsEncryptionLevel = exports.AnalyticsLinkType = void 0;
|
4
4
|
const errors_1 = require("./errors");
|
5
|
-
const
|
5
|
+
const bindingutilities_1 = require("./bindingutilities");
|
6
6
|
const utilities_1 = require("./utilities");
|
7
7
|
/**
|
8
8
|
* Represents the type of an analytics link.
|
@@ -102,19 +102,21 @@ class AnalyticsLink {
|
|
102
102
|
*/
|
103
103
|
constructor() {
|
104
104
|
this.linkType = '';
|
105
|
+
this.dataverse = '';
|
106
|
+
this.name = '';
|
105
107
|
}
|
106
108
|
/**
|
107
109
|
* @internal
|
108
110
|
*/
|
109
111
|
static _toHttpData(data) {
|
110
112
|
if (data.linkType === AnalyticsLinkType.CouchbaseRemote) {
|
111
|
-
return CouchbaseRemoteAnalyticsLink._toHttpData(data);
|
113
|
+
return CouchbaseRemoteAnalyticsLink._toHttpData(new CouchbaseRemoteAnalyticsLink(data));
|
112
114
|
}
|
113
115
|
else if (data.linkType === AnalyticsLinkType.S3External) {
|
114
|
-
return S3ExternalAnalyticsLink._toHttpData(data);
|
116
|
+
return S3ExternalAnalyticsLink._toHttpData(new S3ExternalAnalyticsLink(data));
|
115
117
|
}
|
116
118
|
else if (data.linkType === AnalyticsLinkType.AzureBlobExternal) {
|
117
|
-
return AzureExternalAnalyticsLink._toHttpData(data);
|
119
|
+
return AzureExternalAnalyticsLink._toHttpData(new AzureExternalAnalyticsLink(data));
|
118
120
|
}
|
119
121
|
else {
|
120
122
|
throw new Error('invalid link type');
|
@@ -143,6 +145,39 @@ exports.AnalyticsLink = AnalyticsLink;
|
|
143
145
|
* Provides information about a analytics remote Couchbase link.
|
144
146
|
*/
|
145
147
|
class CouchbaseRemoteAnalyticsLink extends AnalyticsLink {
|
148
|
+
/**
|
149
|
+
* Validates the CouchbaseRemoteAnalyticsLink.
|
150
|
+
*/
|
151
|
+
validate() {
|
152
|
+
if (!this.dataverse) {
|
153
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide a dataverse for the CouchbaseRemoteAnalyticsLink.'));
|
154
|
+
}
|
155
|
+
if (!this.name) {
|
156
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide a name for the CouchbaseRemoteAnalyticsLink.'));
|
157
|
+
}
|
158
|
+
if (!this.hostname) {
|
159
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide a hostname for the CouchbaseRemoteAnalyticsLink.'));
|
160
|
+
}
|
161
|
+
if (this.encryption) {
|
162
|
+
if ([AnalyticsEncryptionLevel.None, AnalyticsEncryptionLevel.Half].includes(this.encryption.encryptionLevel)) {
|
163
|
+
if (!this.username || !this.password) {
|
164
|
+
throw new errors_1.InvalidArgumentError(new Error('When encryption level is half or none, username and password must be set for the CouchbaseRemoteAnalyticsLink.'));
|
165
|
+
}
|
166
|
+
}
|
167
|
+
else {
|
168
|
+
if (!this.encryption.certificate ||
|
169
|
+
this.encryption.certificate.length == 0) {
|
170
|
+
throw new errors_1.InvalidArgumentError(new Error('When encryption level full, a certificate must be set for the CouchbaseRemoteAnalyticsLink.'));
|
171
|
+
}
|
172
|
+
const clientCertificateInvalid = !this.encryption.clientCertificate ||
|
173
|
+
this.encryption.clientCertificate.length == 0;
|
174
|
+
const clientKeyInvalid = !this.encryption.clientKey || this.encryption.clientKey.length == 0;
|
175
|
+
if (clientCertificateInvalid || clientKeyInvalid) {
|
176
|
+
throw new errors_1.InvalidArgumentError(new Error('When encryption level full, a client key and certificate must be set for the CouchbaseRemoteAnalyticsLink.'));
|
177
|
+
}
|
178
|
+
}
|
179
|
+
}
|
180
|
+
}
|
146
181
|
/**
|
147
182
|
* @internal
|
148
183
|
*/
|
@@ -159,61 +194,27 @@ class CouchbaseRemoteAnalyticsLink extends AnalyticsLink {
|
|
159
194
|
/**
|
160
195
|
* @internal
|
161
196
|
*/
|
162
|
-
static
|
163
|
-
|
164
|
-
if (data.dataverse.indexOf('/') !== -1) {
|
165
|
-
const encDataverse = encodeURIComponent(data.dataverse);
|
166
|
-
const encName = encodeURIComponent(data.name);
|
167
|
-
dvSpecific = {
|
168
|
-
httpPath: `/analytics/link/${encDataverse}/${encName}`,
|
169
|
-
};
|
170
|
-
}
|
171
|
-
else {
|
172
|
-
dvSpecific = {
|
173
|
-
httpPath: `/analytics/link`,
|
174
|
-
dataverse: data.dataverse,
|
175
|
-
name: data.name,
|
176
|
-
};
|
177
|
-
}
|
197
|
+
static _toCppData(data) {
|
198
|
+
data.validate();
|
178
199
|
return {
|
179
|
-
|
180
|
-
|
200
|
+
link_name: data.name,
|
201
|
+
dataverse: data.dataverse,
|
181
202
|
hostname: data.hostname,
|
182
|
-
username: data.
|
203
|
+
username: data.hostname,
|
183
204
|
password: data.password,
|
184
|
-
encryption:
|
185
|
-
certificate: data.encryption
|
186
|
-
? data.encryption.certificate
|
187
|
-
? data.encryption.certificate.toString()
|
188
|
-
: undefined
|
189
|
-
: undefined,
|
190
|
-
clientCertificate: data.encryption
|
191
|
-
? data.encryption.clientCertificate
|
192
|
-
? data.encryption.clientCertificate.toString()
|
193
|
-
: undefined
|
194
|
-
: undefined,
|
195
|
-
clientKey: data.encryption
|
196
|
-
? data.encryption.clientKey
|
197
|
-
? data.encryption.clientKey.toString()
|
198
|
-
: undefined
|
199
|
-
: undefined,
|
205
|
+
encryption: (0, bindingutilities_1.encryptionSettingsToCpp)(data.encryption),
|
200
206
|
};
|
201
207
|
}
|
202
208
|
/**
|
203
209
|
* @internal
|
204
210
|
*/
|
205
|
-
static
|
211
|
+
static _fromCppData(data) {
|
206
212
|
return new CouchbaseRemoteAnalyticsLink({
|
207
213
|
linkType: AnalyticsLinkType.CouchbaseRemote,
|
208
|
-
dataverse: data.dataverse
|
209
|
-
name: data.
|
210
|
-
hostname: data.
|
211
|
-
encryption:
|
212
|
-
encryptionLevel: data.encryption,
|
213
|
-
certificate: Buffer.from(data.certificate),
|
214
|
-
clientCertificate: Buffer.from(data.clientCertificate),
|
215
|
-
clientKey: Buffer.from(data.clientKey),
|
216
|
-
}),
|
214
|
+
dataverse: data.dataverse,
|
215
|
+
name: data.link_name,
|
216
|
+
hostname: data.hostname,
|
217
|
+
encryption: (0, bindingutilities_1.encryptionSettingsFromCpp)(data.encryption),
|
217
218
|
username: data.username,
|
218
219
|
password: undefined,
|
219
220
|
});
|
@@ -239,47 +240,53 @@ class S3ExternalAnalyticsLink extends AnalyticsLink {
|
|
239
240
|
this.serviceEndpoint = data.serviceEndpoint;
|
240
241
|
}
|
241
242
|
/**
|
242
|
-
*
|
243
|
+
* Validates the S3ExternalAnalyticsLink.
|
243
244
|
*/
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
const encDataverse = encodeURIComponent(data.dataverse);
|
248
|
-
const encName = encodeURIComponent(data.name);
|
249
|
-
dvSpecific = {
|
250
|
-
httpPath: `/analytics/link/${encDataverse}/${encName}`,
|
251
|
-
};
|
245
|
+
validate() {
|
246
|
+
if (!this.dataverse) {
|
247
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide a dataverse for the S3ExternalAnalyticsLink.'));
|
252
248
|
}
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
249
|
+
if (!this.name) {
|
250
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide a name for the S3ExternalAnalyticsLink.'));
|
251
|
+
}
|
252
|
+
if (!this.accessKeyId) {
|
253
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide an accessKeyId for the S3ExternalAnalyticsLink.'));
|
254
|
+
}
|
255
|
+
if (!this.secretAccessKey) {
|
256
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide an secretAccessKey for the S3ExternalAnalyticsLink.'));
|
257
|
+
}
|
258
|
+
if (!this.region) {
|
259
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide an region for the S3ExternalAnalyticsLink.'));
|
259
260
|
}
|
261
|
+
}
|
262
|
+
/**
|
263
|
+
* @internal
|
264
|
+
*/
|
265
|
+
static _toCppData(data) {
|
266
|
+
data.validate();
|
260
267
|
return {
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
268
|
+
link_name: data.name,
|
269
|
+
dataverse: data.dataverse,
|
270
|
+
access_key_id: data.accessKeyId,
|
271
|
+
secret_access_key: data.secretAccessKey,
|
272
|
+
session_token: data.sessionToken,
|
265
273
|
region: data.region,
|
266
|
-
|
267
|
-
serviceEndpoint: data.serviceEndpoint,
|
274
|
+
service_endpoint: data.serviceEndpoint,
|
268
275
|
};
|
269
276
|
}
|
270
277
|
/**
|
271
278
|
* @internal
|
272
279
|
*/
|
273
|
-
static
|
280
|
+
static _fromCppData(data) {
|
274
281
|
return new S3ExternalAnalyticsLink({
|
282
|
+
name: data.link_name,
|
275
283
|
linkType: AnalyticsLinkType.S3External,
|
276
|
-
dataverse: data.dataverse
|
277
|
-
|
278
|
-
accessKeyId: data.accessKeyId,
|
284
|
+
dataverse: data.dataverse,
|
285
|
+
accessKeyId: data.access_key_id,
|
279
286
|
secretAccessKey: undefined,
|
280
|
-
region: data.region,
|
281
287
|
sessionToken: undefined,
|
282
|
-
|
288
|
+
region: data.region,
|
289
|
+
serviceEndpoint: data.service_endpoint,
|
283
290
|
});
|
284
291
|
}
|
285
292
|
}
|
@@ -304,49 +311,54 @@ class AzureExternalAnalyticsLink extends AnalyticsLink {
|
|
304
311
|
this.endpointSuffix = data.endpointSuffix;
|
305
312
|
}
|
306
313
|
/**
|
307
|
-
*
|
314
|
+
* Validates the AzureExternalAnalyticsLink.
|
308
315
|
*/
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
const encDataverse = encodeURIComponent(data.dataverse);
|
313
|
-
const encName = encodeURIComponent(data.name);
|
314
|
-
dvSpecific = {
|
315
|
-
httpPath: `/analytics/link/${encDataverse}/${encName}`,
|
316
|
-
};
|
316
|
+
validate() {
|
317
|
+
if (!this.dataverse) {
|
318
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide a dataverse for the AzureExternalAnalyticsLink.'));
|
317
319
|
}
|
318
|
-
|
319
|
-
|
320
|
-
httpPath: `/analytics/link`,
|
321
|
-
dataverse: data.dataverse,
|
322
|
-
name: data.name,
|
323
|
-
};
|
320
|
+
if (!this.name) {
|
321
|
+
throw new errors_1.InvalidArgumentError(new Error('Must provide a name for the AzureExternalAnalyticsLink.'));
|
324
322
|
}
|
323
|
+
if (!this.connectionString) {
|
324
|
+
const missingAcctNameAndKey = !(this.accountName && this.accountKey);
|
325
|
+
const missingAcctNameAndSharedAccessSignature = !(this.accountName && this.sharedAccessSignature);
|
326
|
+
if (missingAcctNameAndKey && missingAcctNameAndSharedAccessSignature) {
|
327
|
+
throw new errors_1.InvalidArgumentError(new Error('If not providing connectionString, accountName and either accountKey' +
|
328
|
+
' or sharedAccessSignature must be provided for the AzureExternalAnalyticsLink.'));
|
329
|
+
}
|
330
|
+
}
|
331
|
+
}
|
332
|
+
/**
|
333
|
+
* @internal
|
334
|
+
*/
|
335
|
+
static _toCppData(data) {
|
336
|
+
data.validate();
|
325
337
|
return {
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
338
|
+
link_name: data.name,
|
339
|
+
dataverse: data.dataverse,
|
340
|
+
connection_string: data.connectionString,
|
341
|
+
account_name: data.accountName,
|
342
|
+
account_key: data.accountKey,
|
343
|
+
shared_access_signature: data.sharedAccessSignature,
|
344
|
+
blob_endpoint: data.blobEndpoint,
|
345
|
+
endpoint_suffix: data.endpointSuffix,
|
334
346
|
};
|
335
347
|
}
|
336
348
|
/**
|
337
349
|
* @internal
|
338
350
|
*/
|
339
|
-
static
|
351
|
+
static _fromCppData(data) {
|
340
352
|
return new AzureExternalAnalyticsLink({
|
353
|
+
name: data.link_name,
|
341
354
|
linkType: AnalyticsLinkType.AzureBlobExternal,
|
342
|
-
dataverse: data.dataverse
|
343
|
-
name: data.name,
|
355
|
+
dataverse: data.dataverse,
|
344
356
|
connectionString: undefined,
|
345
|
-
accountName: data.
|
357
|
+
accountName: data.account_name,
|
346
358
|
accountKey: undefined,
|
347
359
|
sharedAccessSignature: undefined,
|
348
|
-
blobEndpoint: data.
|
349
|
-
endpointSuffix: data.
|
360
|
+
blobEndpoint: data.blob_endpoint,
|
361
|
+
endpointSuffix: data.endpoint_suffix,
|
350
362
|
});
|
351
363
|
}
|
352
364
|
}
|
@@ -364,9 +376,6 @@ class AnalyticsIndexManager {
|
|
364
376
|
constructor(cluster) {
|
365
377
|
this._cluster = cluster;
|
366
378
|
}
|
367
|
-
get _http() {
|
368
|
-
return new httpexecutor_1.HttpExecutor(this._cluster.conn);
|
369
|
-
}
|
370
379
|
/**
|
371
380
|
* Creates a new dataverse.
|
372
381
|
*
|
@@ -382,25 +391,20 @@ class AnalyticsIndexManager {
|
|
382
391
|
if (!options) {
|
383
392
|
options = {};
|
384
393
|
}
|
385
|
-
let qs = '';
|
386
|
-
qs += 'CREATE DATAVERSE';
|
387
|
-
qs += ' `' + dataverseName.split('/').join('`.`') + '`';
|
388
|
-
if (options.ignoreIfExists) {
|
389
|
-
qs += ' IF NOT EXISTS';
|
390
|
-
}
|
391
394
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
395
|
+
const ignoreIfExists = options.ignoreIfExists || false;
|
396
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
397
|
+
this._cluster.conn.managementAnalyticsDataverseCreate({
|
398
|
+
dataverse_name: dataverseName,
|
399
|
+
timeout: timeout,
|
400
|
+
ignore_if_exists: ignoreIfExists,
|
401
|
+
}, (cppErr) => {
|
402
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
403
|
+
if (err) {
|
404
|
+
return wrapCallback(err, null);
|
401
405
|
}
|
402
|
-
|
403
|
-
}
|
406
|
+
wrapCallback(err);
|
407
|
+
});
|
404
408
|
}, callback);
|
405
409
|
}
|
406
410
|
/**
|
@@ -418,25 +422,20 @@ class AnalyticsIndexManager {
|
|
418
422
|
if (!options) {
|
419
423
|
options = {};
|
420
424
|
}
|
421
|
-
let qs = '';
|
422
|
-
qs += 'DROP DATAVERSE';
|
423
|
-
qs += ' `' + dataverseName.split('/').join('`.`') + '`';
|
424
|
-
if (options.ignoreIfNotExists) {
|
425
|
-
qs += ' IF EXISTS';
|
426
|
-
}
|
427
425
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
426
|
+
const ignoreIfNotExists = options.ignoreIfNotExists || false;
|
427
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
428
|
+
this._cluster.conn.managementAnalyticsDataverseDrop({
|
429
|
+
dataverse_name: dataverseName,
|
430
|
+
timeout: timeout,
|
431
|
+
ignore_if_does_not_exist: ignoreIfNotExists,
|
432
|
+
}, (cppErr) => {
|
433
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
434
|
+
if (err) {
|
435
|
+
return wrapCallback(err, null);
|
437
436
|
}
|
438
|
-
|
439
|
-
}
|
437
|
+
wrapCallback(err);
|
438
|
+
});
|
440
439
|
}, callback);
|
441
440
|
}
|
442
441
|
/**
|
@@ -455,39 +454,24 @@ class AnalyticsIndexManager {
|
|
455
454
|
if (!options) {
|
456
455
|
options = {};
|
457
456
|
}
|
458
|
-
|
459
|
-
|
460
|
-
if (options.ignoreIfExists) {
|
461
|
-
qs += ' IF NOT EXISTS';
|
462
|
-
}
|
463
|
-
if (options.dataverseName) {
|
464
|
-
qs +=
|
465
|
-
' `' +
|
466
|
-
options.dataverseName.split('/').join('`.`') +
|
467
|
-
'`.`' +
|
468
|
-
datasetName +
|
469
|
-
'`';
|
470
|
-
}
|
471
|
-
else {
|
472
|
-
qs += ' `' + datasetName + '`';
|
473
|
-
}
|
474
|
-
qs += ' ON `' + bucketName + '`';
|
475
|
-
if (options.condition) {
|
476
|
-
qs += ' WHERE ' + options.condition;
|
477
|
-
}
|
457
|
+
const dataverseName = options.dataverseName || 'Default';
|
458
|
+
const ignoreIfExists = options.ignoreIfExists || false;
|
478
459
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
479
|
-
return utilities_1.PromiseHelper.
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
460
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
461
|
+
this._cluster.conn.managementAnalyticsDatasetCreate({
|
462
|
+
dataverse_name: dataverseName,
|
463
|
+
dataset_name: datasetName,
|
464
|
+
bucket_name: bucketName,
|
465
|
+
condition: options === null || options === void 0 ? void 0 : options.condition,
|
466
|
+
timeout: timeout,
|
467
|
+
ignore_if_exists: ignoreIfExists,
|
468
|
+
}, (cppErr) => {
|
469
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
470
|
+
if (err) {
|
471
|
+
return wrapCallback(err, null);
|
488
472
|
}
|
489
|
-
|
490
|
-
}
|
473
|
+
wrapCallback(err);
|
474
|
+
});
|
491
475
|
}, callback);
|
492
476
|
}
|
493
477
|
/**
|
@@ -505,35 +489,22 @@ class AnalyticsIndexManager {
|
|
505
489
|
if (!options) {
|
506
490
|
options = {};
|
507
491
|
}
|
508
|
-
|
509
|
-
|
510
|
-
if (options.dataverseName) {
|
511
|
-
qs +=
|
512
|
-
' `' +
|
513
|
-
options.dataverseName.split('/').join('`.`') +
|
514
|
-
'`.`' +
|
515
|
-
datasetName +
|
516
|
-
'`';
|
517
|
-
}
|
518
|
-
else {
|
519
|
-
qs += ' `' + datasetName + '`';
|
520
|
-
}
|
521
|
-
if (options.ignoreIfNotExists) {
|
522
|
-
qs += ' IF EXISTS';
|
523
|
-
}
|
492
|
+
const dataverseName = options.dataverseName || 'Default';
|
493
|
+
const ignoreIfNotExists = options.ignoreIfNotExists || false;
|
524
494
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
525
|
-
return utilities_1.PromiseHelper.
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
495
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
496
|
+
this._cluster.conn.managementAnalyticsDatasetDrop({
|
497
|
+
dataverse_name: dataverseName,
|
498
|
+
dataset_name: datasetName,
|
499
|
+
timeout: timeout,
|
500
|
+
ignore_if_does_not_exist: ignoreIfNotExists,
|
501
|
+
}, (cppErr) => {
|
502
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
503
|
+
if (err) {
|
504
|
+
return wrapCallback(err, null);
|
534
505
|
}
|
535
|
-
|
536
|
-
}
|
506
|
+
wrapCallback(err);
|
507
|
+
});
|
537
508
|
}, callback);
|
538
509
|
}
|
539
510
|
/**
|
@@ -550,19 +521,23 @@ class AnalyticsIndexManager {
|
|
550
521
|
if (!options) {
|
551
522
|
options = {};
|
552
523
|
}
|
553
|
-
const qs = 'SELECT d.* FROM `Metadata`.`Dataset` d WHERE d.DataverseName <> "Metadata"';
|
554
524
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
555
|
-
return utilities_1.PromiseHelper.
|
556
|
-
|
525
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
526
|
+
this._cluster.conn.managementAnalyticsDatasetGetAll({
|
557
527
|
timeout: timeout,
|
528
|
+
}, (cppErr, resp) => {
|
529
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
530
|
+
if (err) {
|
531
|
+
return wrapCallback(err, null);
|
532
|
+
}
|
533
|
+
const dataSets = resp.datasets.map((dataset) => new AnalyticsDataset({
|
534
|
+
name: dataset.name,
|
535
|
+
dataverseName: dataset.dataverse_name,
|
536
|
+
linkName: dataset.link_name,
|
537
|
+
bucketName: dataset.bucket_name,
|
538
|
+
}));
|
539
|
+
wrapCallback(null, dataSets);
|
558
540
|
});
|
559
|
-
const datasets = res.rows.map((row) => new AnalyticsDataset({
|
560
|
-
name: row.DatasetName,
|
561
|
-
dataverseName: row.DataverseName,
|
562
|
-
linkName: row.LinkName,
|
563
|
-
bucketName: row.BucketName,
|
564
|
-
}));
|
565
|
-
return datasets;
|
566
541
|
}, callback);
|
567
542
|
}
|
568
543
|
/**
|
@@ -582,32 +557,23 @@ class AnalyticsIndexManager {
|
|
582
557
|
if (!options) {
|
583
558
|
options = {};
|
584
559
|
}
|
585
|
-
|
586
|
-
|
587
|
-
qs += ' `' + indexName + '`';
|
588
|
-
if (options.ignoreIfExists) {
|
589
|
-
qs += ' IF NOT EXISTS';
|
590
|
-
}
|
591
|
-
if (options.dataverseName) {
|
592
|
-
qs +=
|
593
|
-
' ON `' +
|
594
|
-
options.dataverseName.split('/').join('`.`') +
|
595
|
-
'`.`' +
|
596
|
-
datasetName +
|
597
|
-
'`';
|
598
|
-
}
|
599
|
-
else {
|
600
|
-
qs += ' ON `' + datasetName + '`';
|
601
|
-
}
|
602
|
-
qs += ' (';
|
603
|
-
qs += Object.keys(fields)
|
604
|
-
.map((i) => '`' + i + '`: ' + fields[i])
|
605
|
-
.join(', ');
|
606
|
-
qs += ')';
|
560
|
+
const dataverseName = options.dataverseName || 'Default';
|
561
|
+
const ignoreIfExists = options.ignoreIfExists || false;
|
607
562
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
608
|
-
return utilities_1.PromiseHelper.
|
609
|
-
|
563
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
564
|
+
this._cluster.conn.managementAnalyticsIndexCreate({
|
565
|
+
dataverse_name: dataverseName,
|
566
|
+
dataset_name: datasetName,
|
567
|
+
index_name: indexName,
|
568
|
+
fields: fields,
|
610
569
|
timeout: timeout,
|
570
|
+
ignore_if_exists: ignoreIfExists,
|
571
|
+
}, (cppErr) => {
|
572
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
573
|
+
if (err) {
|
574
|
+
return wrapCallback(err, null);
|
575
|
+
}
|
576
|
+
wrapCallback(err);
|
611
577
|
});
|
612
578
|
}, callback);
|
613
579
|
}
|
@@ -627,27 +593,22 @@ class AnalyticsIndexManager {
|
|
627
593
|
if (!options) {
|
628
594
|
options = {};
|
629
595
|
}
|
630
|
-
|
631
|
-
|
632
|
-
if (options.dataverseName) {
|
633
|
-
qs +=
|
634
|
-
' `' +
|
635
|
-
options.dataverseName.split('/').join('`.`') +
|
636
|
-
'`.`' +
|
637
|
-
datasetName +
|
638
|
-
'`';
|
639
|
-
}
|
640
|
-
else {
|
641
|
-
qs += ' `' + datasetName + '`';
|
642
|
-
}
|
643
|
-
qs += '.`' + indexName + '`';
|
644
|
-
if (options.ignoreIfNotExists) {
|
645
|
-
qs += ' IF EXISTS';
|
646
|
-
}
|
596
|
+
const dataverseName = options.dataverseName || 'Default';
|
597
|
+
const ignoreIfNotExists = options.ignoreIfNotExists || false;
|
647
598
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
648
|
-
return utilities_1.PromiseHelper.
|
649
|
-
|
599
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
600
|
+
this._cluster.conn.managementAnalyticsIndexDrop({
|
601
|
+
dataverse_name: dataverseName,
|
602
|
+
dataset_name: datasetName,
|
603
|
+
index_name: indexName,
|
650
604
|
timeout: timeout,
|
605
|
+
ignore_if_does_not_exist: ignoreIfNotExists,
|
606
|
+
}, (cppErr) => {
|
607
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
608
|
+
if (err) {
|
609
|
+
return wrapCallback(err, null);
|
610
|
+
}
|
611
|
+
wrapCallback(err);
|
651
612
|
});
|
652
613
|
}, callback);
|
653
614
|
}
|
@@ -665,29 +626,41 @@ class AnalyticsIndexManager {
|
|
665
626
|
if (!options) {
|
666
627
|
options = {};
|
667
628
|
}
|
668
|
-
const qs = 'SELECT d.* FROM `Metadata`.`Index` d WHERE d.DataverseName <> "Metadata"';
|
669
629
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
670
|
-
return utilities_1.PromiseHelper.
|
671
|
-
|
630
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
631
|
+
this._cluster.conn.managementAnalyticsIndexGetAll({
|
672
632
|
timeout: timeout,
|
633
|
+
}, (cppErr, resp) => {
|
634
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
635
|
+
if (err) {
|
636
|
+
return wrapCallback(err, null);
|
637
|
+
}
|
638
|
+
const indexes = resp.indexes.map((index) => new AnalyticsIndex({
|
639
|
+
name: index.name,
|
640
|
+
dataverseName: index.dataverse_name,
|
641
|
+
datasetName: index.dataset_name,
|
642
|
+
isPrimary: index.is_primary,
|
643
|
+
}));
|
644
|
+
wrapCallback(null, indexes);
|
673
645
|
});
|
674
|
-
const indexes = res.rows.map((row) => new AnalyticsIndex({
|
675
|
-
name: row.IndexName,
|
676
|
-
datasetName: row.DatasetName,
|
677
|
-
dataverseName: row.DataverseName,
|
678
|
-
isPrimary: row.IsPrimary,
|
679
|
-
}));
|
680
|
-
return indexes;
|
681
646
|
}, callback);
|
682
647
|
}
|
683
648
|
/**
|
684
|
-
*
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
649
|
+
* @internal
|
650
|
+
*/
|
651
|
+
async connectLink() {
|
652
|
+
if (typeof arguments[0] === 'string') {
|
653
|
+
return this._connectLinkDeprecated(arguments[0], arguments[1], arguments[2]);
|
654
|
+
}
|
655
|
+
else {
|
656
|
+
return this._connectLink(arguments[0], arguments[1]);
|
657
|
+
}
|
658
|
+
}
|
659
|
+
// TODO(JSCBC-1293): Remove deprecated path
|
660
|
+
/**
|
661
|
+
* @internal
|
689
662
|
*/
|
690
|
-
async
|
663
|
+
async _connectLinkDeprecated(linkStr, options, callback) {
|
691
664
|
if (options instanceof Function) {
|
692
665
|
callback = arguments[1];
|
693
666
|
options = undefined;
|
@@ -695,8 +668,12 @@ class AnalyticsIndexManager {
|
|
695
668
|
if (!options) {
|
696
669
|
options = {};
|
697
670
|
}
|
698
|
-
const
|
671
|
+
const force = options.force || false;
|
699
672
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
673
|
+
let qs = 'CONNECT LINK ' + linkStr;
|
674
|
+
if (force) {
|
675
|
+
qs += ' WITH {"force": true}';
|
676
|
+
}
|
700
677
|
return utilities_1.PromiseHelper.wrapAsync(async () => {
|
701
678
|
await this._cluster.analyticsQuery(qs, {
|
702
679
|
timeout: timeout,
|
@@ -704,13 +681,9 @@ class AnalyticsIndexManager {
|
|
704
681
|
}, callback);
|
705
682
|
}
|
706
683
|
/**
|
707
|
-
*
|
708
|
-
*
|
709
|
-
* @param linkName The name of the link to disconnect.
|
710
|
-
* @param options Optional parameters for this operation.
|
711
|
-
* @param callback A node-style callback to be invoked after execution.
|
684
|
+
* @internal
|
712
685
|
*/
|
713
|
-
async
|
686
|
+
async _connectLink(options, callback) {
|
714
687
|
if (options instanceof Function) {
|
715
688
|
callback = arguments[1];
|
716
689
|
options = undefined;
|
@@ -718,7 +691,49 @@ class AnalyticsIndexManager {
|
|
718
691
|
if (!options) {
|
719
692
|
options = {};
|
720
693
|
}
|
721
|
-
const
|
694
|
+
const dataverseName = options.dataverseName || 'Default';
|
695
|
+
const linkName = options.linkName || 'Local';
|
696
|
+
const force = options.force || false;
|
697
|
+
const timeout = options.timeout || this._cluster.managementTimeout;
|
698
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
699
|
+
this._cluster.conn.managementAnalyticsLinkConnect({
|
700
|
+
dataverse_name: dataverseName,
|
701
|
+
link_name: linkName,
|
702
|
+
timeout: timeout,
|
703
|
+
force: force,
|
704
|
+
}, (cppErr) => {
|
705
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
706
|
+
if (err) {
|
707
|
+
return wrapCallback(err, null);
|
708
|
+
}
|
709
|
+
wrapCallback(err);
|
710
|
+
});
|
711
|
+
}, callback);
|
712
|
+
}
|
713
|
+
/**
|
714
|
+
* @internal
|
715
|
+
*/
|
716
|
+
async disconnectLink() {
|
717
|
+
if (typeof arguments[0] === 'string') {
|
718
|
+
return this._disconnectLinkDeprecated(arguments[0], arguments[1], arguments[2]);
|
719
|
+
}
|
720
|
+
else {
|
721
|
+
return this._disconnectLink(arguments[0], arguments[1]);
|
722
|
+
}
|
723
|
+
}
|
724
|
+
// TODO(JSCBC-1293): Remove deprecated path
|
725
|
+
/**
|
726
|
+
* @internal
|
727
|
+
*/
|
728
|
+
async _disconnectLinkDeprecated(linkStr, options, callback) {
|
729
|
+
if (options instanceof Function) {
|
730
|
+
callback = arguments[1];
|
731
|
+
options = undefined;
|
732
|
+
}
|
733
|
+
if (!options) {
|
734
|
+
options = {};
|
735
|
+
}
|
736
|
+
const qs = 'DISCONNECT LINK ' + linkStr;
|
722
737
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
723
738
|
return utilities_1.PromiseHelper.wrapAsync(async () => {
|
724
739
|
await this._cluster.analyticsQuery(qs, {
|
@@ -726,6 +741,34 @@ class AnalyticsIndexManager {
|
|
726
741
|
});
|
727
742
|
}, callback);
|
728
743
|
}
|
744
|
+
/**
|
745
|
+
* @internal
|
746
|
+
*/
|
747
|
+
async _disconnectLink(options, callback) {
|
748
|
+
if (options instanceof Function) {
|
749
|
+
callback = arguments[1];
|
750
|
+
options = undefined;
|
751
|
+
}
|
752
|
+
if (!options) {
|
753
|
+
options = {};
|
754
|
+
}
|
755
|
+
const dataverseName = options.dataverseName || 'Default';
|
756
|
+
const linkName = options.linkName || 'Local';
|
757
|
+
const timeout = options.timeout || this._cluster.managementTimeout;
|
758
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
759
|
+
this._cluster.conn.managementAnalyticsLinkDisconnect({
|
760
|
+
dataverse_name: dataverseName,
|
761
|
+
link_name: linkName,
|
762
|
+
timeout: timeout,
|
763
|
+
}, (cppErr) => {
|
764
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
765
|
+
if (err) {
|
766
|
+
return wrapCallback(err, null);
|
767
|
+
}
|
768
|
+
wrapCallback(err);
|
769
|
+
});
|
770
|
+
}, callback);
|
771
|
+
}
|
729
772
|
/**
|
730
773
|
* Returns a list of all pending mutations.
|
731
774
|
*
|
@@ -741,18 +784,19 @@ class AnalyticsIndexManager {
|
|
741
784
|
options = {};
|
742
785
|
}
|
743
786
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
744
|
-
return utilities_1.PromiseHelper.
|
745
|
-
|
746
|
-
type: httpexecutor_1.HttpServiceType.Analytics,
|
747
|
-
method: httpexecutor_1.HttpMethod.Get,
|
748
|
-
path: `/analytics/node/agg/stats/remaining`,
|
787
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
788
|
+
this._cluster.conn.managementAnalyticsGetPendingMutations({
|
749
789
|
timeout: timeout,
|
790
|
+
}, (cppErr, resp) => {
|
791
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
792
|
+
if (err) {
|
793
|
+
return wrapCallback(err, null);
|
794
|
+
}
|
795
|
+
const stats = {
|
796
|
+
stats: resp.stats,
|
797
|
+
};
|
798
|
+
wrapCallback(null, stats);
|
750
799
|
});
|
751
|
-
if (res.statusCode !== 200) {
|
752
|
-
const errCtx = httpexecutor_1.HttpExecutor.errorContextFromResponse(res);
|
753
|
-
throw new errors_1.CouchbaseError('failed to get pending mutations', undefined, errCtx);
|
754
|
-
}
|
755
|
-
return JSON.parse(res.body.toString());
|
756
800
|
}, callback);
|
757
801
|
}
|
758
802
|
/**
|
@@ -771,31 +815,51 @@ class AnalyticsIndexManager {
|
|
771
815
|
options = {};
|
772
816
|
}
|
773
817
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
});
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
818
|
+
if (link.linkType == AnalyticsLinkType.CouchbaseRemote) {
|
819
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
820
|
+
this._cluster.conn.managementAnalyticsLinkCreateCouchbaseRemoteLink({
|
821
|
+
link: CouchbaseRemoteAnalyticsLink._toCppData(new CouchbaseRemoteAnalyticsLink(link)),
|
822
|
+
timeout: timeout,
|
823
|
+
}, (cppErr) => {
|
824
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
825
|
+
if (err) {
|
826
|
+
return wrapCallback(err, null);
|
827
|
+
}
|
828
|
+
wrapCallback(err);
|
829
|
+
});
|
830
|
+
}, callback);
|
831
|
+
}
|
832
|
+
else if (link.linkType == AnalyticsLinkType.S3External) {
|
833
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
834
|
+
this._cluster.conn.managementAnalyticsLinkCreateS3ExternalLink({
|
835
|
+
link: S3ExternalAnalyticsLink._toCppData(new S3ExternalAnalyticsLink(link)),
|
836
|
+
timeout: timeout,
|
837
|
+
}, (cppErr) => {
|
838
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
839
|
+
if (err) {
|
840
|
+
return wrapCallback(err, null);
|
841
|
+
}
|
842
|
+
wrapCallback(err);
|
843
|
+
});
|
844
|
+
}, callback);
|
845
|
+
}
|
846
|
+
else if (link.linkType == AnalyticsLinkType.AzureBlobExternal) {
|
847
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
848
|
+
this._cluster.conn.managementAnalyticsLinkCreateAzureBlobExternalLink({
|
849
|
+
link: AzureExternalAnalyticsLink._toCppData(new AzureExternalAnalyticsLink(link)),
|
850
|
+
timeout: timeout,
|
851
|
+
}, (cppErr) => {
|
852
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
853
|
+
if (err) {
|
854
|
+
return wrapCallback(err, null);
|
855
|
+
}
|
856
|
+
wrapCallback(err);
|
857
|
+
});
|
858
|
+
}, callback);
|
859
|
+
}
|
860
|
+
else {
|
861
|
+
throw new Error('invalid link type');
|
862
|
+
}
|
799
863
|
}
|
800
864
|
/**
|
801
865
|
* Replaces an existing analytics remote link.
|
@@ -813,31 +877,51 @@ class AnalyticsIndexManager {
|
|
813
877
|
options = {};
|
814
878
|
}
|
815
879
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
});
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
880
|
+
if (link.linkType == AnalyticsLinkType.CouchbaseRemote) {
|
881
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
882
|
+
this._cluster.conn.managementAnalyticsLinkReplaceCouchbaseRemoteLink({
|
883
|
+
link: CouchbaseRemoteAnalyticsLink._toCppData(new CouchbaseRemoteAnalyticsLink(link)),
|
884
|
+
timeout: timeout,
|
885
|
+
}, (cppErr) => {
|
886
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
887
|
+
if (err) {
|
888
|
+
return wrapCallback(err, null);
|
889
|
+
}
|
890
|
+
wrapCallback(err);
|
891
|
+
});
|
892
|
+
}, callback);
|
893
|
+
}
|
894
|
+
else if (link.linkType == AnalyticsLinkType.S3External) {
|
895
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
896
|
+
this._cluster.conn.managementAnalyticsLinkReplaceS3ExternalLink({
|
897
|
+
link: S3ExternalAnalyticsLink._toCppData(new S3ExternalAnalyticsLink(link)),
|
898
|
+
timeout: timeout,
|
899
|
+
}, (cppErr) => {
|
900
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
901
|
+
if (err) {
|
902
|
+
return wrapCallback(err, null);
|
903
|
+
}
|
904
|
+
wrapCallback(err);
|
905
|
+
});
|
906
|
+
}, callback);
|
907
|
+
}
|
908
|
+
else if (link.linkType == AnalyticsLinkType.AzureBlobExternal) {
|
909
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
910
|
+
this._cluster.conn.managementAnalyticsLinkReplaceAzureBlobExternalLink({
|
911
|
+
link: AzureExternalAnalyticsLink._toCppData(new AzureExternalAnalyticsLink(link)),
|
912
|
+
timeout: timeout,
|
913
|
+
}, (cppErr) => {
|
914
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
915
|
+
if (err) {
|
916
|
+
return wrapCallback(err, null);
|
917
|
+
}
|
918
|
+
wrapCallback(err);
|
919
|
+
});
|
920
|
+
}, callback);
|
921
|
+
}
|
922
|
+
else {
|
923
|
+
throw new Error('invalid link type');
|
924
|
+
}
|
841
925
|
}
|
842
926
|
/**
|
843
927
|
* Drops an existing analytics remote link.
|
@@ -856,41 +940,18 @@ class AnalyticsIndexManager {
|
|
856
940
|
options = {};
|
857
941
|
}
|
858
942
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
859
|
-
return utilities_1.PromiseHelper.
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
const encDataverse = encodeURIComponent(dataverseName);
|
864
|
-
const encName = encodeURIComponent(linkName);
|
865
|
-
httpPath = `/analytics/link/${encDataverse}/${encName}`;
|
866
|
-
httpParams = {};
|
867
|
-
}
|
868
|
-
else {
|
869
|
-
httpPath = `/analytics/link`;
|
870
|
-
httpParams = {
|
871
|
-
dataverse: dataverseName,
|
872
|
-
name: linkName,
|
873
|
-
};
|
874
|
-
}
|
875
|
-
const res = await this._http.request({
|
876
|
-
type: httpexecutor_1.HttpServiceType.Analytics,
|
877
|
-
method: httpexecutor_1.HttpMethod.Delete,
|
878
|
-
path: httpPath,
|
879
|
-
contentType: 'application/x-www-form-urlencoded',
|
880
|
-
body: (0, utilities_1.cbQsStringify)(httpParams),
|
943
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
944
|
+
this._cluster.conn.managementAnalyticsLinkDrop({
|
945
|
+
dataverse_name: dataverseName,
|
946
|
+
link_name: linkName,
|
881
947
|
timeout: timeout,
|
882
|
-
})
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
if (errText.includes('24055')) {
|
887
|
-
throw new errors_1.LinkExistsError(undefined, errCtx);
|
888
|
-
}
|
889
|
-
else if (errText.includes('24034')) {
|
890
|
-
throw new errors_1.DataverseNotFoundError(undefined, errCtx);
|
948
|
+
}, (cppErr) => {
|
949
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
950
|
+
if (err) {
|
951
|
+
return wrapCallback(err, null);
|
891
952
|
}
|
892
|
-
|
893
|
-
}
|
953
|
+
wrapCallback(err);
|
954
|
+
});
|
894
955
|
}, callback);
|
895
956
|
}
|
896
957
|
/**
|
@@ -911,49 +972,29 @@ class AnalyticsIndexManager {
|
|
911
972
|
const linkName = options.name;
|
912
973
|
const linkType = options.linkType;
|
913
974
|
const timeout = options.timeout || this._cluster.managementTimeout;
|
914
|
-
return utilities_1.PromiseHelper.
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
if (linkName) {
|
920
|
-
const encName = encodeURIComponent(linkName);
|
921
|
-
httpPath += `/${encName}`;
|
922
|
-
}
|
923
|
-
httpPath += '?';
|
924
|
-
if (linkType) {
|
925
|
-
httpPath += `type=${linkType}&`;
|
926
|
-
}
|
927
|
-
}
|
928
|
-
else {
|
929
|
-
httpPath = `/analytics/link?`;
|
930
|
-
if (dataverseName) {
|
931
|
-
httpPath += `dataverse=${dataverseName}&`;
|
932
|
-
if (linkName) {
|
933
|
-
httpPath += `dataverse=${linkName}&`;
|
934
|
-
}
|
935
|
-
}
|
936
|
-
if (linkType) {
|
937
|
-
httpPath += `type=${linkType}&`;
|
938
|
-
}
|
939
|
-
}
|
940
|
-
const res = await this._http.request({
|
941
|
-
type: httpexecutor_1.HttpServiceType.Analytics,
|
942
|
-
method: httpexecutor_1.HttpMethod.Get,
|
943
|
-
path: httpPath,
|
975
|
+
return utilities_1.PromiseHelper.wrap((wrapCallback) => {
|
976
|
+
this._cluster.conn.managementAnalyticsLinkGetAll({
|
977
|
+
link_type: linkType,
|
978
|
+
link_name: linkName,
|
979
|
+
dataverse_name: dataverseName,
|
944
980
|
timeout: timeout,
|
945
|
-
})
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
if (errText.includes('24034')) {
|
950
|
-
throw new errors_1.DataverseNotFoundError(undefined, errCtx);
|
981
|
+
}, (cppErr, resp) => {
|
982
|
+
const err = (0, bindingutilities_1.errorFromCpp)(cppErr);
|
983
|
+
if (err) {
|
984
|
+
return wrapCallback(err, null);
|
951
985
|
}
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
986
|
+
const links = [];
|
987
|
+
resp.couchbase.forEach((link) => {
|
988
|
+
links.push(CouchbaseRemoteAnalyticsLink._fromCppData(link));
|
989
|
+
});
|
990
|
+
resp.s3.forEach((link) => {
|
991
|
+
links.push(S3ExternalAnalyticsLink._fromCppData(link));
|
992
|
+
});
|
993
|
+
resp.azure_blob.forEach((link) => {
|
994
|
+
links.push(AzureExternalAnalyticsLink._fromCppData(link));
|
995
|
+
});
|
996
|
+
wrapCallback(null, links);
|
997
|
+
});
|
957
998
|
}, callback);
|
958
999
|
}
|
959
1000
|
}
|