From a2d91f9c202b149efd5155d5eaf220f64e17862b Mon Sep 17 00:00:00 2001 From: Christian Himpe Date: Fri, 4 Aug 2023 09:06:13 +0200 Subject: [PATCH 1/4] Prepare gdotv section in compatible tools --- src/main/asciidoc/api/tools.adoc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/asciidoc/api/tools.adoc b/src/main/asciidoc/api/tools.adoc index 0ce83671..435d4863 100644 --- a/src/main/asciidoc/api/tools.adoc +++ b/src/main/asciidoc/api/tools.adoc @@ -1,6 +1,16 @@ [[Compatible-Tools]] === Compatible Tools +//// +==== G.V() [gdotv] + +ArcadeDB is fully compatible to https://gdotv.com/[G.V()], thus no particular configurations need to be made. +The only requirement is loading the Gremlin plugin via the server setting: +``` +"-Darcadedb.server.plugins=GremlinServer:com.arcadedb.server.gremlin.GremlinServerPlugin" +``` +//// + ==== JetBrains DataGrip/Database Plugin Connecting via https://www.jetbrains.com/datagrip/[JetBrains DataGrid] database plugin is relatively straightforward. From 4b6ef1d8ced45caff1ffcd319fad094a867ec0bd Mon Sep 17 00:00:00 2001 From: Christian Himpe Date: Fri, 4 Aug 2023 09:06:45 +0200 Subject: [PATCH 2/4] Add list of plugins below settings table --- src/main/asciidoc/appendix/settings.adoc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/asciidoc/appendix/settings.adoc b/src/main/asciidoc/appendix/settings.adoc index 7172b02c..60008825 100644 --- a/src/main/asciidoc/appendix/settings.adoc +++ b/src/main/asciidoc/appendix/settings.adoc @@ -93,6 +93,7 @@ If you're embedding a server in your Java application you can use these settings |`profile`|Specify the preferred profile among: default, high-performance, low-ram, low-cpu|String|default |`test`|Tells if it is running in test mode. This enables the calling of callbacks for testing purpose |Boolean|false |=== + ===== SERVER [%header,cols="20%,55%,10%,15%",stripes=even] @@ -135,7 +136,7 @@ If you're embedding a server in your Java application you can use these settings |`serverMetrics`|True to enable metrics|Boolean|true |`server.mode`|Server mode between 'development', 'test' and 'production'|String|development |`server.name`|Server name|String|ArcadeDB_0 -|`server.plugins`|List of server plugins to install. The format to load a plugin is: `:`|String| +|`server.plugins`|Server plugins to load, see <<#_available-plugins,available plugins>>. Format as comma separated list of: `:`.|String| |`server.rootPassword`|Password for root user to use at first startup of the server. Set this to avoid asking the password to the user|String|null |`server.rootPath`|Root path in the file system where the server is looking for files. By default is the current directory|String|null |`server.securityAlgorithm`|Default encryption algorithm used for passwords hashing|String|PBKDF2WithHmacSHA256 @@ -143,6 +144,7 @@ If you're embedding a server in your Java application you can use these settings |`server.saltIterations`|Number of iterations to generate the salt or user password. Changing this setting does not affect stored passwords|Integer|65536 |`server.eventBusQueueSize`|Size of the queue used as a buffer for unserviced database change events.|Integer|1000 |=== + ===== DATABASE [%header,cols="20%,55%,10%,15%",stripes=even] @@ -176,3 +178,15 @@ If you're embedding a server in your Java application you can use these settings |`txWalFlush`|Flushes the WAL on disk at commit time. It can be 0 = no flush, 1 = flush without metadata and 2 = full flush (fsync)|Integer|0 |`typeDefaultBuckets`|Default number of buckets to create per type|Integer|8 |=== + +===== Available Plugins + +[%header,cols="2",stripes=even] +|=== +| Name | `server.plugins`-String +| Gremlin | `GremlinServer:com.arcadedb.server.gremlin.GremlinServerPlugin` +| MongoDB | `MongoDB:com.arcadedb.mongo.MongoDBProtocolPlugin` +| Postgres | `Postgres:com.arcadedb.postgres.PostgresProtocolPlugin` +| Redis | `Redis:com.arcadedb.redis.RedisProtocolPlugin` +|=== + From a2bbb7b5d4435267eeb1ae1370c15c6f8defce9b Mon Sep 17 00:00:00 2001 From: Christian Himpe Date: Fri, 4 Aug 2023 09:07:25 +0200 Subject: [PATCH 3/4] Extend secrets section with file-based secrets --- src/main/asciidoc/security/secrets.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/asciidoc/security/secrets.adoc b/src/main/asciidoc/security/secrets.adoc index 5ffbbbde..0ebf6e85 100644 --- a/src/main/asciidoc/security/secrets.adoc +++ b/src/main/asciidoc/security/secrets.adoc @@ -27,7 +27,7 @@ by wrapping the `server.sh` script: ```shell #!/bin/sh -export JAVA_TOOL_OPTIONS="-Darcadedb.server.rootPassword=password0 -Darcadedb.server.defaultDatabases=database1[user1:password1]" +export JAVA_TOOL_OPTIONS="-Darcadedb.server.rootPassword=`cat /path/to/root_secret` -Darcadedb.server.defaultDatabases=database1[user1:`cat /path/to/user_secret`]" ./bin/server.sh 2> >(grep -v "^Picked up JAVA_TOOL_OPTIONS:") & PID="$!" From d0a98d293b2e232a67526e2a1fa7999c4bc98133 Mon Sep 17 00:00:00 2001 From: Christian Himpe Date: Fri, 4 Aug 2023 09:08:03 +0200 Subject: [PATCH 4/4] Fix toJSON method reference text --- src/main/asciidoc/sql/SQL-Methods.adoc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/asciidoc/sql/SQL-Methods.adoc b/src/main/asciidoc/sql/SQL-Methods.adoc index d6333eea..1d06ed07 100644 --- a/src/main/asciidoc/sql/SQL-Methods.adoc +++ b/src/main/asciidoc/sql/SQL-Methods.adoc @@ -1045,10 +1045,19 @@ Returns the record in JSON format. Syntax: `<value>.toJSON([<format>])` Where: + - *format* optional, allows custom formatting rules (separate multiple options by comma). + Rules are the following: -- *rid* to include records's RIDs as attribute "@rid" - *type* to include the type name in the attribute "@type" - *attribSameRow* put all the attributes in the same row - *indent* is the indent level as integer. -By Default no ident is used - *fetchPlan* is the fetching strategy to use while fetching linked records - *alwaysFetchEmbedded* to always fetch embedded records (without considering the fetch plan) - *dateAsLong* to return dates (Date and Datetime types) as long numbers - *prettyPrint* indent the returning JSON in readeable (pretty) way. + +- *rid* to include records's RIDs as attribute "@rid" +- *type* to include the type name in the attribute "@type" +- *attribSameRow* put all the attributes in the same row +- *indent* is the indent level as integer. By Default no ident is used +- *fetchPlan* is the fetching strategy to use while fetching linked records +- *alwaysFetchEmbedded* to always fetch embedded records (without considering the fetch plan) +- *dateAsLong* to return dates (Date and Datetime types) as long numbers +- *prettyPrint* indent the returning JSON in readeable (pretty) way. Applies to the following types: