Installation
SoftClient4ES supports multiple installation methods depending on your use case.
REPL Client (CLI)
The interactive SQL client for ad-hoc queries and exploration.
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/SOFTNETWORK-APP/SoftClient4ES/main/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/SOFTNETWORK-APP/SoftClient4ES/main/install.ps1 | iexWindows (cmd.exe), when .ps1 scripts are blocked:
curl -O https://raw.githubusercontent.com/SOFTNETWORK-APP/SoftClient4ES/main/install.cmdinstall.cmdThe one-liner above is unaffected by the execution policy — iex runs a string, not a script file — but a downloaded install.ps1 is: the Windows client default is Restricted, and managed machines are often AllSigned. install.cmd runs the installer with -ExecutionPolicy Bypass for that one process, changing nothing on the machine and needing no elevation. It downloads install.ps1 if it is not sitting next to it, takes exactly the same flags, and forwards them verbatim.
-ExecutionPolicy Bypassis deliberately overridden when the policy comes from Group Policy (theMachinePolicy/UserPolicyscopes — checkGet-ExecutionPolicy -List). No wrapper can work around that one.
Java: the Windows installer supplies its own if it has to. Since 0.20.4 it resolves %JAVA_HOME%\bin\java.exe first when JAVA_HOME is set — that is the JVM tested, not whatever java is first on PATH — then the java on PATH. If neither is present, or the one found is below the floor for your Elasticsearch version (Java 11+, or 17+ for ES 9), it downloads a portable Temurin 17 JDK and unpacks it into the install directory. It is a zip, never an MSI, so it needs no administrator rights; nothing machine-wide is changed, and uninstalling removes it along with everything else.
Usage:
# Connect with defaultssoftclient4es --host localhost --port 9200
# With authenticationsoftclient4es --host es.example.com --port 9200 --user elastic --password secret
# With SSLsoftclient4es --host es.example.com --port 9243 --sslTelemetry: the REPL sends one anonymous usage ping per session (no IP, no SQL, no command text). Opt out with -Dsoftclient4es.telemetry.enabled=false. See Telemetry & Privacy for details.
Scala Library (SBT)
Add the appropriate dependencies for your ES version:
resolvers += "Softnetwork" at "https://softnetwork.jfrog.io/artifactory/releases/"Client Library Matrix
| Elasticsearch | Artifact | Scala | JDK |
|---|---|---|---|
| 6.x | softclient4es6-jest-client | 2.12, 2.13 | 8+ |
| 6.x | softclient4es6-rest-client | 2.12, 2.13 | 8+ |
| 7.x | softclient4es7-rest-client | 2.12, 2.13 | 8+ |
| 8.x | softclient4es8-java-client | 2.12, 2.13 | 8+ |
| 9.x | softclient4es9-java-client | 2.13 only | 17+ |
// Choose your Elasticsearch clientlibraryDependencies += "app.softnetwork.elastic" %% "softclient4es8-java-client" % "0.23.0"
// Arrow extensions — required for cross-index JOINs (Java 11+)libraryDependencies += "app.softnetwork.elastic" %% "softclient4es-arrow-extensions" % "0.3.3"
// Community extensions for materialized views (optional)libraryDependencies += "app.softnetwork.elastic" %% "softclient4es-community-extensions" % "0.3.2"JDBC Driver
Download the self-contained fat JAR for your Elasticsearch version:
| Elasticsearch Version | Artifact | Download |
|---|---|---|
| ES 6.x | softclient4es6-jdbc-driver-0.3.3.jar | Download ⬇ |
| ES 7.x | softclient4es7-jdbc-driver-0.3.3.jar | Download ⬇ |
| ES 8.x | softclient4es8-jdbc-driver-0.3.3.jar | Download ⬇ |
| ES 9.x | softclient4es9-jdbc-driver-0.3.3.jar | Download ⬇ |
Connection details:
JDBC URL: jdbc:elastic://localhost:9200Driver class: app.softnetwork.elastic.jdbc.ElasticDriverThe JDBC driver JARs are Scala-version-independent (no _2.12 or _2.13 suffix) and include all required dependencies.
Maven
<dependency> <groupId>app.softnetwork.elastic</groupId> <artifactId>softclient4es8-jdbc-driver</artifactId> <version>0.3.3</version></dependency>Gradle
implementation 'app.softnetwork.elastic:softclient4es8-jdbc-driver:0.3.3'sbt
libraryDependencies += "app.softnetwork.elastic" % "softclient4es8-jdbc-driver" % "0.3.3"See the JDBC Integration Guide for BI tool setup instructions.
Arrow Flight SQL Server (Docker)
Run the Arrow Flight SQL server as a Docker container:
docker run -p 32010:32010 \ -e ELASTIC_HOST=elasticsearch \ -e ELASTIC_PORT=9200 \ -e ELASTIC_CREDENTIALS_USERNAME=elastic \ -e ELASTIC_CREDENTIALS_PASSWORD=changeme \ softnetwork/softclient4es8-arrow-flight-sql:latestSee the Arrow Flight SQL Guide for details.