This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new 40d77549c8 [DOCS] missing pages and marketplace references (#8483)
40d77549c8 is described below
commit 40d77549c8f460320def782cc0f7d41433e1eeec
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Sun Sep 20 16:55:00 2026 +0200
[DOCS] missing pages and marketplace references (#8483)
---
.../images/transforms/icons/spark-file-input.svg | 5 +
.../images/transforms/icons/spark-file-output.svg | 4 +
docs/hop-user-manual/modules/ROOT/nav.adoc | 3 +
.../ROOT/pages/database/databases/databricks.adoc | 1 +
.../ROOT/pages/hop-gui/perspective-neo4j.adoc | 1 +
.../ROOT/pages/hop-tools/hop-arrow-command.adoc | 1 +
.../pages/hop-tools/hop-python/hop-python.adoc | 1 +
.../pages/metadata-types/beam-file-definition.adoc | 1 +
.../cassandra/cassandra-connection.adoc | 1 +
.../data-stream/arrow-file-stream.adoc | 1 +
.../metadata-types/data-stream/arrow-flight.adoc | 1 +
.../data-stream/arrow-random-access-file.adoc | 1 +
.../metadata-types/databricks-connection.adoc | 1 +
.../metadata-types/databricks-vfs-connection.adoc | 1 +
.../ROOT/pages/metadata-types/dbt-project.adoc | 1 +
.../metadata-types/elastic-location-type.adoc | 1 +
.../ROOT/pages/metadata-types/hdfs-connection.adoc | 1 +
.../pages/metadata-types/minio-connection.adoc | 1 +
.../pages/metadata-types/mongodb-connection.adoc | 1 +
.../metadata-types/neo4j/neo4j-connection.adoc | 1 +
.../metadata-types/neo4j/neo4j-graphmodel.adoc | 1 +
.../metadata-types/neo4j/neo4j-location-type.adoc | 1 +
.../metadata-types/opensearch-location-type.adoc | 1 +
.../metadata-types/redis/redis-connection.adoc | 1 +
.../metadata-types/salesforce-connection.adoc | 1 +
.../ROOT/pages/metadata-types/spark-catalog.adoc | 1 +
.../pages/pipeline/beam/beam-samples-dataflow.adoc | 1 +
.../pipeline/beam/beam-samples-direct-runner.adoc | 1 +
.../pages/pipeline/beam/beam-samples-flink.adoc | 1 +
.../pages/pipeline/beam/beam-samples-spark.adoc | 1 +
.../dataflowPipeline/google-dataflow-pipeline.adoc | 1 +
.../flink-k8s-operator-running-hop-pipeline.adoc | 1 +
.../pipeline/beam/getting-started-with-beam.adoc | 1 +
.../pipeline/beam/running-the-beam-samples.adoc | 1 +
.../beam-dataflow-pipeline-engine.adoc | 1 +
.../beam-direct-pipeline-engine.adoc | 1 +
.../beam-flink-pipeline-engine.adoc | 1 +
.../beam-spark-pipeline-engine.adoc | 1 +
.../native-spark-pipeline-engine.adoc | 1 +
.../spark/cluster-mapping-walkthrough.adoc | 1 +
.../spark/getting-started-with-native-spark.adoc | 1 +
.../ROOT/pages/pipeline/spark/lakehouse.adoc | 1 +
.../pipeline/spark/paths-and-filesystems.adoc | 1 +
.../pages/pipeline/transforms/apache-tika.adoc | 1 +
.../pages/pipeline/transforms/avro-decode.adoc | 1 +
.../pages/pipeline/transforms/avro-encode.adoc | 1 +
.../pages/pipeline/transforms/avro-file-input.adoc | 1 +
.../pipeline/transforms/avro-file-output.adoc | 1 +
.../pipeline/transforms/beambigqueryinput.adoc | 1 +
.../pipeline/transforms/beambigqueryoutput.adoc | 1 +
.../pipeline/transforms/beambigtableinput.adoc | 1 +
.../pipeline/transforms/beambigtableoutput.adoc | 1 +
.../pages/pipeline/transforms/beamfileinput.adoc | 1 +
.../pages/pipeline/transforms/beamfileoutput.adoc | 1 +
.../pipeline/transforms/beamgcppublisher.adoc | 1 +
.../pipeline/transforms/beamgcpsubscriber.adoc | 1 +
.../pipeline/transforms/beamhivecataloginput.adoc | 1 +
.../pipeline/transforms/beamkafkaconsume.adoc | 1 +
.../pipeline/transforms/beamkafkaproduce.adoc | 1 +
.../pipeline/transforms/beamkinesisconsume.adoc | 1 +
.../pipeline/transforms/beamkinesisproduce.adoc | 1 +
.../pages/pipeline/transforms/beamtimestamp.adoc | 1 +
.../ROOT/pages/pipeline/transforms/beamwindow.adoc | 1 +
.../pages/pipeline/transforms/cassandra-input.adoc | 1 +
.../pipeline/transforms/cassandra-output.adoc | 1 +
.../pages/pipeline/transforms/detectlanguage.adoc | 1 +
.../pages/pipeline/transforms/mongodbdelete.adoc | 1 +
.../pages/pipeline/transforms/mongodbinput.adoc | 1 +
.../pages/pipeline/transforms/mongodboutput.adoc | 1 +
.../pipeline/transforms/neo4j-cypher-builder.adoc | 142 +++++++++++++++++++++
.../pages/pipeline/transforms/neo4j-cypher.adoc | 1 +
.../pages/pipeline/transforms/neo4j-gencsv.adoc | 1 +
.../pipeline/transforms/neo4j-getloginfo.adoc | 1 +
.../pipeline/transforms/neo4j-graphoutput.adoc | 1 +
.../pages/pipeline/transforms/neo4j-import.adoc | 1 +
.../pages/pipeline/transforms/neo4j-output.adoc | 1 +
.../pipeline/transforms/neo4j-split-graph.adoc | 1 +
.../pipeline/transforms/parquet-file-input.adoc | 1 +
.../pipeline/transforms/parquet-file-output.adoc | 1 +
.../pages/pipeline/transforms/pgvector-search.adoc | 1 +
.../pages/pipeline/transforms/pgvector-upsert.adoc | 1 +
.../pages/pipeline/transforms/redis-input.adoc | 1 +
.../pages/pipeline/transforms/redis-output.adoc | 1 +
.../pipeline/transforms/rulesaccumulator.adoc | 1 +
.../pages/pipeline/transforms/rulesexecutor.adoc | 1 +
.../pipeline/transforms/salesforcedelete.adoc | 1 +
.../pages/pipeline/transforms/salesforceinput.adoc | 1 +
.../pipeline/transforms/salesforceinsert.adoc | 1 +
.../pipeline/transforms/salesforceupdate.adoc | 1 +
.../pipeline/transforms/salesforceupsert.adoc | 1 +
.../pipeline/transforms/spark-file-input.adoc | 98 ++++++++++++++
.../pipeline/transforms/spark-file-output.adoc | 92 +++++++++++++
.../transforms/spark-lake-table-input.adoc | 1 +
.../transforms/spark-lake-table-maintenance.adoc | 1 +
.../transforms/spark-lake-table-merge.adoc | 1 +
.../transforms/spark-lake-table-output.adoc | 1 +
.../ROOT/pages/pipeline/transforms/spark-sql.adoc | 1 +
.../pages/pipeline/transforms/sstable-output.adoc | 1 +
.../pages/pipeline/transforms/stanfordnlp.adoc | 1 +
.../ROOT/pages/pipeline/transforms/vcardinput.adoc | 1 +
.../pages/pipeline/transforms/vcardoutput.adoc | 1 +
.../ROOT/pages/technology/arrow/apache-arrow.adoc | 1 +
.../modules/ROOT/pages/technology/avro/index.adoc | 1 +
.../ROOT/pages/technology/cassandra/index.adoc | 1 +
.../ROOT/pages/technology/memgraph/index.adoc | 1 +
.../modules/ROOT/pages/technology/neo4j/index.adoc | 1 +
.../technology/neo4j/neo4j-logging-schema.adoc | 1 +
.../technology/neo4j/working-with-neo4j-data.adoc | 1 +
.../technology/openlineage/dataset-identity.adoc | 1 +
.../ROOT/pages/technology/openlineage/index.adoc | 1 +
.../modules/ROOT/pages/technology/redis/index.adoc | 1 +
.../modules/ROOT/pages/vfs/databricks-vfs.adoc | 1 +
.../modules/ROOT/pages/vfs/dropbox-vfs.adoc | 1 +
.../modules/ROOT/pages/vfs/hdfs-vfs.adoc | 1 +
.../modules/ROOT/pages/vfs/minio-vfs.adoc | 1 +
.../pages/workflow/actions/cassandra-exec-cql.adoc | 1 +
.../pages/workflow/actions/databricks-job-run.adoc | 1 +
.../workflow/actions/databricks-job-wait.adoc | 1 +
.../modules/ROOT/pages/workflow/actions/dbt.adoc | 1 +
.../ROOT/pages/workflow/actions/documentation.adoc | 1 +
.../modules/ROOT/pages/workflow/actions/mql.adoc | 1 +
.../workflow/actions/neo4j-checkconnections.adoc | 1 +
.../pages/workflow/actions/neo4j-constraint.adoc | 1 +
.../pages/workflow/actions/neo4j-cypherscript.adoc | 1 +
.../ROOT/pages/workflow/actions/neo4j-index.adoc | 1 +
.../hop/neo4j/transforms/split/SplitGraphMeta.java | 2 +-
126 files changed, 464 insertions(+), 1 deletion(-)
diff --git
a/docs/hop-user-manual/modules/ROOT/assets/images/transforms/icons/spark-file-input.svg
b/docs/hop-user-manual/modules/ROOT/assets/images/transforms/icons/spark-file-input.svg
new file mode 100644
index 0000000000..dd89035553
--- /dev/null
+++
b/docs/hop-user-manual/modules/ROOT/assets/images/transforms/icons/spark-file-input.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24">
+ <path d="M 12,12.190476 8,8.1904762 V 11.190476 H 0 v 2 h 8 v 3 m 10,2 V
6.1904762 c 0,-1.11 -0.9,-2 -2,-2 H 4 a 2,2 0 0 0 -2,2 v 3 h 2 v -3 H 16 V
18.190476 H 4 v -3 H 2 v 3 a 2,2 0 0 0 2,2 h 12 a 2,2 0 0 0 2,-2 z"
+ style="fill:#0e3a5a;fill-opacity:1"/>
+</svg>
diff --git
a/docs/hop-user-manual/modules/ROOT/assets/images/transforms/icons/spark-file-output.svg
b/docs/hop-user-manual/modules/ROOT/assets/images/transforms/icons/spark-file-output.svg
new file mode 100644
index 0000000000..e3fb4293a6
--- /dev/null
+++
b/docs/hop-user-manual/modules/ROOT/assets/images/transforms/icons/spark-file-output.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24">
+ <path fill="#0F3B5A" d="M23,12L19,8V11H10V13H19V16M1,18V6C1,4.89 1.9,4
3,4H15A2,2 0 0,1 17,6V9H15V6H3V18H15V15H17V18A2,2 0 0,1 15,20H3A2,2 0 0,1
1,18Z"/>
+</svg>
diff --git a/docs/hop-user-manual/modules/ROOT/nav.adoc
b/docs/hop-user-manual/modules/ROOT/nav.adoc
index eba4f81a41..c05479893a 100644
--- a/docs/hop-user-manual/modules/ROOT/nav.adoc
+++ b/docs/hop-user-manual/modules/ROOT/nav.adoc
@@ -233,6 +233,7 @@ under the License.
*** xref:pipeline/transforms/multimerge.adoc[Multiway Merge Join]
*** xref:pipeline/transforms/mysqlbulkloader.adoc[MySQL bulk loader]
*** xref:pipeline/transforms/neo4j-cypher.adoc[Neo4j Cypher]
+*** xref:pipeline/transforms/neo4j-cypher-builder.adoc[Neo4j Cypher builder]
*** xref:pipeline/transforms/neo4j-gencsv.adoc[Neo4j generate CSVs]
*** xref:pipeline/transforms/neo4j-getloginfo.adoc[Neo4j Get Logging Info]
*** xref:pipeline/transforms/neo4j-graphoutput.adoc[Neo4j graph output]
@@ -291,6 +292,8 @@ under the License.
*** xref:pipeline/transforms/sort.adoc[Sort Rows]
*** xref:pipeline/transforms/sortedmerge.adoc[Sorted Merge]
*** xref:pipeline/transforms/sortedschemamerge.adoc[Sorted schema merge]
+*** xref:pipeline/transforms/spark-file-input.adoc[Spark file input]
+*** xref:pipeline/transforms/spark-file-output.adoc[Spark file output]
*** xref:pipeline/transforms/spark-lake-table-input.adoc[Spark lake table
input]
*** xref:pipeline/transforms/spark-lake-table-maintenance.adoc[Spark lake
table maintenance]
*** xref:pipeline/transforms/spark-lake-table-merge.adoc[Spark lake table
merge]
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/database/databases/databricks.adoc
b/docs/hop-user-manual/modules/ROOT/pages/database/databases/databricks.adoc
index 8687ec2cd0..d1218cb98c 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/database/databases/databricks.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/database/databases/databricks.adoc
@@ -17,6 +17,7 @@ under the License.
[[database-plugins-databricks]]
:documentationPath: /database/databases/
:language: en_US
+:page-marketplace: hop-tech-databricks
= Databricks
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/hop-gui/perspective-neo4j.adoc
b/docs/hop-user-manual/modules/ROOT/pages/hop-gui/perspective-neo4j.adoc
index 98398b14ae..2750729521 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/hop-gui/perspective-neo4j.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/hop-gui/perspective-neo4j.adoc
@@ -15,6 +15,7 @@ specific language governing permissions and limitations
under the License.
////
:imagesdir: ../assets/images
+:page-marketplace: hop-tech-neo4j
= Neo4j Perspective
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-arrow-command.adoc
b/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-arrow-command.adoc
index 5bbe33f044..c6c182b867 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-arrow-command.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-arrow-command.adoc
@@ -18,6 +18,7 @@ under the License.
:imagesdir: ../../../assets/images/
:page-pagination:
:description: Hop Arrow command
+:page-marketplace: hop-tech-arrow
= Hop Arrow command
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-python/hop-python.adoc
b/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-python/hop-python.adoc
index 15f10f60fc..758ba3fe65 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-python/hop-python.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/hop-tools/hop-python/hop-python.adoc
@@ -18,6 +18,7 @@ under the License.
:description: Program Hop pipelines and workflows in Python
:TOC:
+:page-marketplace: hop-misc-py4j
= Hop Python
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/beam-file-definition.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/beam-file-definition.adoc
index e323a4cd40..3abbb0e494 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/beam-file-definition.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/beam-file-definition.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: A Beam File Definition describes a file layout in a Beam
pipeline. The Beam File Definition specifies the file layout (name, field
definitions, enclosure and separator) to be used in Beam Pipelines.
+:page-marketplace: hop-engines-beam
= Beam File Definition
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/cassandra/cassandra-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/cassandra/cassandra-connection.adoc
index 24ea35f2c7..32dfd53cda 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/cassandra/cassandra-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/cassandra/cassandra-connection.adoc
@@ -16,6 +16,7 @@ under the License.
////
:documentationPath: /metadata-types/cassandra/
:language: en_US
+:page-marketplace: hop-tech-cassandra
= Cassandra Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-file-stream.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-file-stream.adoc
index a9dde01b25..fe4313ff9a 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-file-stream.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-file-stream.adoc
@@ -18,6 +18,7 @@ under the License.
:imagesdir: ../../../assets/images/
:page-pagination:
:description: Apache Arrow Flight Data Stream
+:page-marketplace: hop-tech-arrow
= Apache Arrow Flight Data Stream
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-flight.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-flight.adoc
index 69c8d81494..7f5c6ee283 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-flight.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-flight.adoc
@@ -17,6 +17,7 @@ under the License.
////
:imagesdir: ../assets/images
:description: Apache Arrow Flight data stream
+:page-marketplace: hop-tech-arrow
== Overview
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-random-access-file.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-random-access-file.adoc
index bd7a98eecd..42cafadd3b 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-random-access-file.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/data-stream/arrow-random-access-file.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../../assets/images/
:page-pagination:
:description: Apache Arrow Random Access File Data Stream
+:page-marketplace: hop-tech-arrow
= Apache Arrow Random Access File Data Stream
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/databricks-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/databricks-connection.adoc
index 571fa12ebd..52ede2a816 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/databricks-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/databricks-connection.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: Databricks Connection metadata for the Jobs / workspace REST API
(PAT), used by Databricks job run actions.
+:page-marketplace: hop-tech-databricks
= Databricks Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/databricks-vfs-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/databricks-vfs-connection.adoc
index 3a27c63b43..ffb2463c75 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/databricks-vfs-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/databricks-vfs-connection.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: Named Databricks VFS connection for Unity Catalog Volumes and
Workspace files (Files API)
+:page-marketplace: hop-tech-databricks
= Databricks VFS Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/dbt-project.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/dbt-project.adoc
index dced4e7203..a0db38abbd 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/dbt-project.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/dbt-project.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: Register a dbt Core project once and reference it from the dbt
actions in your workflows.
+:page-marketplace: hop-action-dbt
= dbt Project
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/elastic-location-type.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/elastic-location-type.adoc
index 1e05d76390..6bf6e198e5 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/elastic-location-type.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/elastic-location-type.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /metadata-types/
:language: en_US
+:page-marketplace: hop-tech-elastic
= Elastic Location Type
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/hdfs-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/hdfs-connection.adoc
index 7fe3900be6..a7d8dfa9cd 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/hdfs-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/hdfs-connection.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: Named HDFS connection over WebHDFS, HttpFS or Knox
+:page-marketplace: hop-tech-hadoop
= HDFS Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/minio-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/minio-connection.adoc
index 992d074b28..42ec870307 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/minio-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/minio-connection.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: This is used to register one or more S3 endpoints
+:page-marketplace: hop-tech-minio
= Minio Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/mongodb-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/mongodb-connection.adoc
index 850324dc4b..770a1b30a8 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/mongodb-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/mongodb-connection.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: Describes a MongoDB connection. The MongoDB connection,
specified on a project level, can be reused across multiple (instances of) a
transform or other plugin types.
+:page-marketplace: hop-tech-mongodb
= MongoDB Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-connection.adoc
index 3e2dc857a4..544427a4c6 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-connection.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /metadata-types/neo4j/
:language: en_US
:toc:
+:page-marketplace: hop-tech-neo4j
= Neo4j Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-graphmodel.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-graphmodel.adoc
index 85c923e965..7567fdca46 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-graphmodel.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-graphmodel.adoc
@@ -16,6 +16,7 @@ under the License.
////
:documentationPath: /metadata-types/neo4j/
:language: en_US
+:page-marketplace: hop-tech-neo4j
= Neo4j Graph Model
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-location-type.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-location-type.adoc
index adf2fce9ba..5afc8432b1 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-location-type.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/neo4j/neo4j-location-type.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /metadata-types/neo4j/
:language: en_US
+:page-marketplace: hop-tech-neo4j
= Neo4j Location Type
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/opensearch-location-type.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/opensearch-location-type.adoc
index 8cf7a42452..9691a0ffc7 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/opensearch-location-type.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/opensearch-location-type.adoc
@@ -17,6 +17,7 @@ under the License.
[[OpenSearchLocationType]]
:imagesdir: ../../assets/images
:description: Store Hop execution information in an OpenSearch index.
+:page-marketplace: hop-tech-opensearch
= OpenSearch Location Type
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/redis/redis-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/redis/redis-connection.adoc
index ea6e5ef425..814d4d6502 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/redis/redis-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/redis/redis-connection.adoc
@@ -16,6 +16,7 @@ under the License.
////
:documentationPath: /metadata-types/redis/
:language: en_US
+:page-marketplace: hop-tech-redis
= Redis Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/salesforce-connection.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/salesforce-connection.adoc
index dba955fd3c..1e273e47b5 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/salesforce-connection.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/salesforce-connection.adoc
@@ -17,6 +17,7 @@ License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: Describes a Salesforce connection. The Salesforce connection,
specified on a project level, can be reused across multiple Salesforce
transforms.
+:page-marketplace: hop-tech-salesforce
= Salesforce Connection
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/spark-catalog.adoc
b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/spark-catalog.adoc
index c8928bc717..278f6ac221 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/metadata-types/spark-catalog.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/metadata-types/spark-catalog.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../assets/images/
:page-pagination:
:description: Spark Catalog metadata configures Spark SQL catalogs for Delta
Lake and Apache Iceberg TABLE mode on the native Spark pipeline engine.
+:page-marketplace: hop-engines-spark
= Spark Catalog
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-dataflow.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-dataflow.adoc
index 97015c4eff..964ce31bcc 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-dataflow.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-dataflow.adoc
@@ -20,6 +20,7 @@ under the License.
:toc:
+:page-marketplace: hop-engines-beam
= Running the Apache Beam samples on Google Cloud Dataflow
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-direct-runner.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-direct-runner.adoc
index 3e67c0aaa9..1889aefa6b 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-direct-runner.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-direct-runner.adoc
@@ -19,6 +19,7 @@ under the License.
:description: Follow the instruction on this page to set up a minimal
installation to run the Apache Hop samples for the Apache Beam run
configurations for the Apache Beam Direct Runner.
:toc:
+:page-marketplace: hop-engines-beam
= Running the Apache Beam samples With the Beam Direct Runner
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-flink.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-flink.adoc
index dc7a9889b1..ba9dc94183 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-flink.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-flink.adoc
@@ -19,6 +19,7 @@ under the License.
:description: Follow the instruction on this page to set up a minimal
installation to run the Apache Hop samples for the Apache Beam run
configurations for Apache Flink.
:toc:
+:page-marketplace: hop-engines-beam
= Running the Apache Beam samples With Apache Flink
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-spark.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-spark.adoc
index 5ff986d23b..613fd45910 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-spark.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/beam-samples-spark.adoc
@@ -19,6 +19,7 @@ under the License.
:description: Follow the instruction on this page to set up a minimal
installation to run the Apache Hop samples for the Apache Beam run
configurations for Apache Spark.
:toc:
+:page-marketplace: hop-engines-beam
= Running the Apache Beam samples With Apache Spark
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/dataflowPipeline/google-dataflow-pipeline.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/dataflowPipeline/google-dataflow-pipeline.adoc
index 91101d5c91..e04296059f 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/dataflowPipeline/google-dataflow-pipeline.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/dataflowPipeline/google-dataflow-pipeline.adoc
@@ -18,6 +18,7 @@ under the License.
[[DataflowPipeline]]
:imagesdir: ../../../assets/images
:description: This page explains how to use the Google Dataflow pipeline
templates
+:page-marketplace: hop-engines-beam
= Google Dataflow Pipeline (Template)
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/flink-k8s-operator-running-hop-pipeline.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/flink-k8s-operator-running-hop-pipeline.adoc
index 34dedec891..0d83b6a31a 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/flink-k8s-operator-running-hop-pipeline.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/flink-k8s-operator-running-hop-pipeline.adoc
@@ -19,6 +19,7 @@ under the License.
:description: This page explains how you can run a Hop pipeline on a Flink
cluster that is automatically started on kubernetes.
:toc:
+:page-marketplace: hop-engines-beam
= Running a Hop pipeline using the Flink Kubernetes Operator
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/getting-started-with-beam.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/getting-started-with-beam.adoc
index e9effe2eef..1c93658037 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/getting-started-with-beam.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/getting-started-with-beam.adoc
@@ -19,6 +19,7 @@ under the License.
:description: Apache Beam is an advanced unified programming model that allows
you to implement and run batch and streaming data processing jobs.
:toc:
+:page-marketplace: hop-engines-beam
= Getting started with Apache Beam
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/running-the-beam-samples.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/running-the-beam-samples.adoc
index 293f298946..459900f407 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/running-the-beam-samples.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/beam/running-the-beam-samples.adoc
@@ -19,6 +19,7 @@ under the License.
:description: Follow the instruction on this page to set up a minimal
installation to run the Apache Hop samples for the Apache Beam run
configurations for Apache Spark, Apache Flink and Google Cloud Dataflow.
:toc:
+:page-marketplace: hop-engines-beam
= Running the Apache Beam samples
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-dataflow-pipeline-engine.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-dataflow-pipeline-engine.adoc
index 7955f252a2..dbc9ea518e 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-dataflow-pipeline-engine.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-dataflow-pipeline-engine.adoc
@@ -17,6 +17,7 @@ under the License.
[[BeamDataFlowPipelineEngine]]
:imagesdir: ../assets/images
:description: Apache Hop supports running pipelines on GCP Dataflow over
Apache Beam. GCP Dataflow is a fully managed service for executing Beam
pipelines.
+:page-marketplace: hop-engines-beam
= Apache Beam Google DataFlow Pipeline Engine
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-direct-pipeline-engine.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-direct-pipeline-engine.adoc
index 723bfb662c..da134b1933 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-direct-pipeline-engine.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-direct-pipeline-engine.adoc
@@ -17,6 +17,7 @@ under the License.
[[BeamDirectPipelineEngine]]
:imagesdir: ../assets/images
:description: The Direct runner can be used for local testing and development
of Hop pipelines on Apache Beam. The Direct Runner executes pipelines on your
machine and is designed to validate that pipelines adhere to the Apache Beam
model as closely as possible.
+:page-marketplace: hop-engines-beam
= Apache Beam Direct Pipeline Engine
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-flink-pipeline-engine.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-flink-pipeline-engine.adoc
index 80d50bb8af..9462787b24 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-flink-pipeline-engine.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-flink-pipeline-engine.adoc
@@ -17,6 +17,7 @@ under the License.
[[BeamFlinkPipelineEngine]]
:imagesdir: ../assets/images
:description: Apache Hop supports running pipelines on Apache Flink using an
Apache Beam Flink runner. This page describes how to configure this runner.
+:page-marketplace: hop-engines-beam
= Apache Beam Flink Pipeline Engine
== Beam Flink
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-spark-pipeline-engine.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-spark-pipeline-engine.adoc
index 80c5e58f4c..08df26bb97 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-spark-pipeline-engine.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/beam-spark-pipeline-engine.adoc
@@ -17,6 +17,7 @@ under the License.
[[BeamSparkPipelineEngine]]
:imagesdir: ../assets/images
:description: Apache Hop supports running pipelines on Apache Spark over
Apache Beam. The Apache Spark Runner can be used to execute Beam pipelines
using Apache Spark.
+:page-marketplace: hop-engines-beam
= Apache Beam Spark Pipeline Engine
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/native-spark-pipeline-engine.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/native-spark-pipeline-engine.adoc
index 4d632af226..4b0132dc99 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/native-spark-pipeline-engine.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/pipeline-run-configurations/native-spark-pipeline-engine.adoc
@@ -17,6 +17,7 @@ under the License.
[[NativeSparkPipelineEngine]]
:imagesdir: ../../../assets/images
:description: Apache Hop native Spark pipeline engine run configuration
options (Spark 4.1.x without Beam).
+:page-marketplace: hop-engines-spark
= Native Spark Pipeline Engine
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/cluster-mapping-walkthrough.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/cluster-mapping-walkthrough.adoc
index 4ee65a3140..4b1fb032e2 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/cluster-mapping-walkthrough.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/cluster-mapping-walkthrough.adoc
@@ -17,6 +17,7 @@ under the License.
[[NativeSparkClusterMappingWalkthrough]]
:imagesdir: ../../../assets/images
:description: Walk-through: run Native Spark pipelines (Simple Mapping and
Workflow Executor) on a Docker Spark 4.1 cluster using a project package.
+:page-marketplace: hop-engines-spark
= Cluster demo walk-through (Native Spark)
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/getting-started-with-native-spark.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/getting-started-with-native-spark.adoc
index 219729e64a..a3a04b898a 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/getting-started-with-native-spark.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/getting-started-with-native-spark.adoc
@@ -20,6 +20,7 @@ under the License.
:toc:
:toclevels: 3
+:page-marketplace: hop-engines-spark
= Getting started with the native Spark pipeline engine
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/lakehouse.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/lakehouse.adoc
index 1970719e75..50588960a6 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/lakehouse.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/lakehouse.adoc
@@ -19,6 +19,7 @@ under the License.
:description: Open table formats (Delta Lake and Apache Iceberg) on the Apache
Hop native Spark pipeline engine
:toc:
:toclevels: 3
+:page-marketplace: hop-engines-spark
= Lakehouse tables on the native Spark engine
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/paths-and-filesystems.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/paths-and-filesystems.adoc
index 7b46059137..d543c09d72 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/paths-and-filesystems.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/spark/paths-and-filesystems.adoc
@@ -17,6 +17,7 @@ under the License.
[[NativeSparkPathsAndFilesystems]]
:imagesdir: ../../../assets/images
:description: Hop VFS URIs versus Spark/Hadoop FileSystem URIs when using the
native Spark pipeline engine.
+:page-marketplace: hop-engines-spark
= Paths and file systems on native Spark
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/apache-tika.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/apache-tika.adoc
index 13fd05ffb7..1f88e1651f 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/apache-tika.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/apache-tika.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Apache Tika transform parses files in all sorts of formats
and extracts the text content as well as the available metadata.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-transform-tika
= image:transforms/icons/tika.svg[Apache Tika Icon, role="image-doc-icon"]
Apache Tika
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-decode.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-decode.adoc
index 2c92593d47..e7f5f91d25 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-decode.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-decode.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Avro decode transform allows you to decode an Avro field and
convert it to Hop fields.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-avro
= image:transforms/icons/avro_decode.svg[Avro decode Icon,
role="image-doc-icon"] Avro decode
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-encode.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-encode.adoc
index bc367588e8..bb407a1dbf 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-encode.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-encode.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Avro encode transform allows you to encode a new Avro field
using a selection of Hop fields.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-avro
= image:transforms/icons/avro_encode.svg[Avro encode Icon,
role="image-doc-icon"] Avro encode
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-file-input.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-file-input.adoc
index 59161e360e..9d54360131 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-file-input.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-file-input.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Avro file input transform simply reads Avro records from one
or more files. Each record is encapsulated in an Avro field, each value has its
own Schema and record.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-avro
= image:transforms/icons/avro_input.svg[Avro file input Icon,
role="image-doc-icon"] Avro file input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-file-output.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-file-output.adoc
index f5b9ec2882..00e0c2331a 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-file-output.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/avro-file-output.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Avro file output transform can write Apache Avro messages to
a file or field
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-avro
= image:transforms/icons/avro_output.svg[Avro file output Icon,
role="image-doc-icon"] Avro file output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigqueryinput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigqueryinput.adoc
index 5104f18508..fe5a2ca640 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigqueryinput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigqueryinput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The BigQuery input transform reads data from Google Cloud
BigQuery.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-bq-input.svg[BigQuery input Icon,
role="image-doc-icon"] BigQuery input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigqueryoutput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigqueryoutput.adoc
index 3777b23a6c..da3fa8a6be 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigqueryoutput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigqueryoutput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The BigQuery output transform writes data to a Google Cloud
BigQuery table.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-bq-output.svg[BigQuery output Icon,
role="image-doc-icon"] BigQuery output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigtableinput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigtableinput.adoc
index 097ba2d9b7..041a55ff97 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigtableinput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigtableinput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam Bigtable input transform can be used to input data from
Google Cloud Bigtable using the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-gcp-bigtable-input.svg[Beam Bigtable input Icon,
role="image-doc-icon"] Beam Bigtable input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigtableoutput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigtableoutput.adoc
index 5c8bf8a666..b3d7eab17c 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigtableoutput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beambigtableoutput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam Bigtable output transform can be used to write data to
a Google Cloud Bigtable table using the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-gcp-bigtable-output.svg[Beam Bigtable output
Icon, role="image-doc-icon"] Beam Bigtable output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamfileinput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamfileinput.adoc
index 3677ecd25d..b24db635ae 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamfileinput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamfileinput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam file input transform reads files using a file
definition with the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-input.svg[Beam Input Icon,
role="image-doc-icon"] Beam file input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamfileoutput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamfileoutput.adoc
index 960e055ea5..fd0ca3eaaa 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamfileoutput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamfileoutput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam file output transform writes files using a file
definition with the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-output.svg[Beam Output Icon,
role="image-doc-icon"] Beam file output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamgcppublisher.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamgcppublisher.adoc
index 2d678c6245..8e70f653c2 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamgcppublisher.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamgcppublisher.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam GCP Pub/Sub: publish transform publishes messages to a
Google Cloud Pub/Sub topic using the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-gcp-pubsub-publish.svg[Beam Pub/Sub Publish
Icon, role="image-doc-icon"] Beam GCP Pub/Sub: publish
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamgcpsubscriber.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamgcpsubscriber.adoc
index e5002d66e5..4324173d82 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamgcpsubscriber.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamgcpsubscriber.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam GCP Pub/Sub: subscribe transform gets messages from a
Google Cloud Pub/Sub topic using a subscription with the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-gcp-pubsub-subscribe.svg[Beam Pub/Sub Subscribe
Icon, role="image-doc-icon"] Beam GCP Pub/Sub: subscribe
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamhivecataloginput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamhivecataloginput.adoc
index bd01f736c3..5e419fbcca 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamhivecataloginput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamhivecataloginput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam Hive Catalog input transform reads data from an Apache
Hive metastore.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-input.svg[Beam Input Icon,
role="image-doc-icon"] (Experimental) Beam Hive catalog input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkafkaconsume.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkafkaconsume.adoc
index 9287fbd8b6..8bdbd953d7 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkafkaconsume.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkafkaconsume.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam Kafka consume transform consumes records from a Kafka
cluster using the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-kafka-input.svg[Beam Kafka consume Icon,
role="image-doc-icon"] Beam Kafka consume
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkafkaproduce.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkafkaproduce.adoc
index c2a8514fc8..764e6748f6 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkafkaproduce.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkafkaproduce.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam Kafka produce transform publishes records to a Kafka
cluster using the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-kafka-output.svg[Beam Kafka produce Icon,
role="image-doc-icon"] Beam Kafka produce
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkinesisconsume.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkinesisconsume.adoc
index cf61d60c54..88b0b1120f 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkinesisconsume.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkinesisconsume.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam Kinesis consume transform consumes records from a
Kinesis stream using the Beam pipeline execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-kinesis-consume.svg[Beam Kinesis consume Icon,
role="image-doc-icon"] Beam Kinesis consume
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkinesisproduce.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkinesisproduce.adoc
index 9dbcd426a0..5ba4403c29 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkinesisproduce.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamkinesisproduce.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam Kinesis produce transform sends data to a Kinesis
stream using the Beam pipeline execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-kinesis-produce.svg[Beam Kinesis produce Icon,
role="image-doc-icon"] Beam Kinesis produce
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamtimestamp.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamtimestamp.adoc
index 881c755ca6..5655a635f6 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamtimestamp.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamtimestamp.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam timestamp transform adds a custom timestamp using the
Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-timestamp.svg[Beam timestamp Icon,
role="image-doc-icon"] Beam timestamp
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamwindow.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamwindow.adoc
index 5a2598da46..ddff2f943f 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamwindow.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/beamwindow.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Beam window transform adds event-time-based window functions
using the Beam execution engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=no, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-engines-beam
= image:transforms/icons/beam-window.svg[Beam window Icon,
role="image-doc-icon"] Beam window
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/cassandra-input.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/cassandra-input.adoc
index 18b8d8223c..3ea33a9f44 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/cassandra-input.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/cassandra-input.adoc
@@ -19,6 +19,7 @@ under the License.
:description: The Cassandra Input transform reads data from a Cassandra table
of an Apache Cassandra cluster using CQL (Cassandra Query Language) version 3.x.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-cassandra
= image:transforms/icons/cassandrain.svg[Cassandra Input transform Icon,
role="image-doc-icon"] Cassandra Input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/cassandra-output.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/cassandra-output.adoc
index 942fd66cbe..699f95e194 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/cassandra-output.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/cassandra-output.adoc
@@ -19,6 +19,7 @@ under the License.
:description: The Cassandra Output transform writes data to a Cassandra table
of an Apache Cassandra cluster using CQL (Cassandra Query Language) version 3.x.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-cassandra
= image:transforms/icons/cassandraout.svg[Cassandra Output transform Icon,
role="image-doc-icon"] Cassandra Output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/detectlanguage.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/detectlanguage.adoc
index 38d6d1d81c..ace4d07ded 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/detectlanguage.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/detectlanguage.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Detect language transform examine text to identify the
language.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-transform-detectlanguage
= image:transforms/icons/detectlanguage.svg[Detect language transform Icon,
role="image-doc-icon"] Detect language
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodbdelete.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodbdelete.adoc
index dee7688c5d..2994985628 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodbdelete.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodbdelete.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The MongoDB delete transform enables you to delete documents or
records from a collection within MongoDB.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-mongodb
= image:transforms/icons/mongodb-delete.svg[MongoDB delete transform Icon,
role="image-doc-icon"] MongoDB delete
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodbinput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodbinput.adoc
index 759a075a27..803f587f76 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodbinput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodbinput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The MongoDB Input transform enables you to retrieve documents or
records from a collection within MongoDB.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-mongodb
= image:transforms/icons/mongodb-input.svg[MongoDB Input transform Icon,
role="image-doc-icon"] MongoDB Input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodboutput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodboutput.adoc
index c7a7703ecc..0fe0b77272 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodboutput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/mongodboutput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The MongoDB Output transform can output data to a MongoDB
database collection.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-mongodb
= image:transforms/icons/mongodb-output.svg[MongoDB Output transform Icon,
role="image-doc-icon"] MongoDB Output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-cypher-builder.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-cypher-builder.adoc
new file mode 100644
index 0000000000..bf3bd63040
--- /dev/null
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-cypher-builder.adoc
@@ -0,0 +1,142 @@
+////
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+////
+:documentationPath: /pipeline/transforms/
+:language: en_US
+:description: The Neo4j Cypher builder transform composes a Cypher statement
from a list of node and relationship operations, so you can read or update a
graph without writing Cypher by hand.
+:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-neo4j
+
+= image:transforms/icons/neo4j_cypher.svg[Neo4j Cypher builder transform Icon,
role="image-doc-icon"] Neo4j Cypher builder
+
+== Description
+
+The *Neo4j Cypher builder* transform builds a Cypher statement from a list of
**operations** you define in the dialog: match, merge, create, delete or set
nodes and relationships, order the result and return values.
+The generated Cypher is shown in the *Cypher* tab and executed over the Bolt
protocol for every input row, or for a batch of rows at once with `UNWIND`.
+
+Use it when you want the structure of the statement to be visible and editable
in the dialog rather than typed as free text.
+When you need something the operations cannot express, use the
xref:pipeline/transforms/neo4j-cypher.adoc[Neo4j Cypher] transform, which runs
any statement you give it.
+
+== Options
+
+=== Options tab
+
+[options="header",cols="1,3"]
+|===
+|Option |Description
+
+|Transform name
+|Unique name of the transform in the pipeline.
+
+|Neo4j Connection
+|The xref:metadata-types/neo4j/neo4j-connection.adoc[Neo4j connection] to use.
+
+|Batch size (rows)
+|How many input rows are sent to Neo4j in one transaction. Default `1000`.
With an *Unwind map alias* the whole batch goes into a single `UNWIND`
statement; without one, the statement is executed once per row inside the same
transaction.
+
+|Unwind map alias
+|The alias used in the generated `UNWIND $rows AS <alias>` clause, default
`row`. Every parameter is then referenced as `<alias>.<parameter>` in the
statement. Clear this field to execute the statement per row with plain
`$parameter` references instead; that is slower but keeps the input fields on
the output rows (see <<output>>).
+
+|Maximum retries
+|How many times a failed batch is retried before the transform errors out.
Default `10`; `0` disables retries.
+|===
+
+=== Parameters tab
+
+Parameters make input field values available to the operations.
+Click *Get parameters* to add every input field.
+
+[options="header",cols="1,3"]
+|===
+|Column |Description
+
+|Parameter
+|The name used to reference the value in the operations.
+
+|Input field
+|The input field whose value is passed.
+
+|Neo4j type
+|The type the value is converted to before it is sent to Neo4j.
+|===
+
+Parameters can be used for property values and keys.
+They can not be used for node labels or relationship labels.
+
+=== Operations tab
+
+The list on the left holds the operations, executed in the order shown; use
the buttons to add, delete and reorder them.
+Every operation has a name and a type, and the fields on the right depend on
the type:
+
+[options="header",cols="1,3"]
+|===
+|Operation type |What it generates
+
+|Match node
+|`MATCH (alias:Label {key: value, ...})`. Give the node one or more labels, an
alias to refer to it later, and the *Node keys* (property name and the
parameter that supplies its value) that identify it.
+
+|Merge node
+|`MERGE (alias:Label {key: value, ...})`, so the node is created when the keys
do not match an existing one. Extra *Properties* are set on the node with `SET`.
+
+|Create node
+|`CREATE (alias:Label {...})` with the listed properties.
+
+|Delete node
+|`DELETE alias` for a node matched earlier. Check *Detach when deleting?* to
also delete the relationships attached to it (`DETACH DELETE`).
+
+|Set values
+|`SET alias.property = value, ...` on a node or relationship matched earlier.
Each property has a name and a parameter or expression that supplies the value.
+
+|Match relationship
+|`MATCH (source)-[alias:LABEL]->(target)` between two nodes matched or merged
earlier, referenced by their aliases.
+
+|Merge relationship
+|`MERGE (source)-[alias:LABEL]->(target)`, with optional properties set on the
relationship.
+
+|Create relationship
+|`CREATE (source)-[alias:LABEL {...}]->(target)`.
+
+|Order by
+|`ORDER BY alias.property [DESC], ...` on the values returned.
+
+|Return values
+|`RETURN alias.property AS name, ...`. Each return value has an alias and
property or a free expression, an optional *Rename*, the Neo4j type and the Hop
type it is converted to. The listed values become the output fields of the
transform.
+|===
+
+=== Cypher tab
+
+Shows the statement the operations generate, with the `UNWIND` clause on top
when an alias is set.
+It is read-only; change the operations to change the Cypher.
+
+[[output]]
+== Output
+
+* Without a *Return values* operation the transform only writes to the graph
and passes the input rows through unchanged.
+* With *Return values* and an *Unwind map alias*, the output rows are the
records Neo4j returns for the whole batch. They can not be matched back to
individual input rows, so the output layout consists of the return values only.
+* With *Return values* and no unwind alias, every returned record is appended
to the input row it was produced for, so the output has the input fields
followed by the return values.
+
+The transform opens a read transaction when the operations only match, order
and return, and a write transaction as soon as one of them merges, creates,
deletes or sets values.
+
+== Metadata injection
+
+All options support xref:pipeline/metadata-injection.adoc[metadata injection].
+
+== Related pages
+
+* xref:pipeline/transforms/neo4j-cypher.adoc[Neo4j Cypher] for hand-written
statements
+* xref:pipeline/transforms/neo4j-output.adoc[Neo4j output] for loading nodes
and relationships from a row layout
+* xref:metadata-types/neo4j/neo4j-connection.adoc[Neo4j connection]
+* xref:technology/neo4j/index.adoc[Neo4j technology overview]
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-cypher.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-cypher.adoc
index 7c3d59ca79..732c7f1d14 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-cypher.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-cypher.adoc
@@ -19,6 +19,7 @@ under the License.
:description: The Neo4j Cypher transform allows you to execute any Cypher
through the Neo4j Bolt protocol using the Java driver.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-neo4j
= image:transforms/icons/neo4j_cypher.svg[Neo4j Cypher transform Icon,
role="image-doc-icon"] Neo4j Cypher
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-gencsv.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-gencsv.adoc
index 41755847bb..5c15a90b19 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-gencsv.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-gencsv.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Neo4j Generate CSV transform writes files for nodes and
relationships to the import folder for use with Neo4j's neo4j-import tool.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-neo4j
= image:transforms/icons/neo4j_load.svg[Neo4j generate CSVs transform Icon,
role="image-doc-icon"] Neo4j generate CSVs
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-getloginfo.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-getloginfo.adoc
index b2520ca598..cbce45a7d0 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-getloginfo.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-getloginfo.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Neo4j Get Logging Info transform queries the Neo4j logging
graph and retrieves logging information.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-neo4j
= image:transforms/icons/systeminfo.svg[Neo4j Get Logging Info transform Icon,
role="image-doc-icon"] Neo4j Get Logging Info
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-graphoutput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-graphoutput.adoc
index e46726dd18..7b8f8befe2 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-graphoutput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-graphoutput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Graph Output transform lets you map input fields
automatically to a graph model.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-neo4j
= image:transforms/icons/neo4j_graph_output.svg[Neo4j graph output transform
Icon, role="image-doc-icon"] Neo4j graph output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-import.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-import.adoc
index f674712dc1..8712d25aa6 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-import.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-import.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Neo4j import transform runs an import command using the
provided CSV files.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-neo4j
= image:transforms/icons/neo4j_import.svg[Neo4j import transform Icon,
role="image-doc-icon"] Neo4j import
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-output.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-output.adoc
index d2e78f7ecf..f10c3db738 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-output.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-output.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Neo4j output transform allows you to do high performance
updates in one node, two nodes or two nodes and a relationship.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-neo4j
= image:transforms/icons/neo4j_output.svg[Neo4j output transform Icon,
role="image-doc-icon"] Neo4j output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-split-graph.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-split-graph.adoc
index 4cff0a839a..4ccad1ca29 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-split-graph.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/neo4j-split-graph.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Neo4j split graph transforms splits the nodes and
relationships of a graph data type.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-neo4j
= image:transforms/icons/neo4j_split.svg[Neo4j split graph transform Icon,
role="image-doc-icon"] Neo4j split graph
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/parquet-file-input.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/parquet-file-input.adoc
index a00d96c822..879d0d549c 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/parquet-file-input.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/parquet-file-input.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Parquet file input transform reads (primitive) values from
an Apache Parquet file.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-parquet
= image:transforms/icons/parquet_input.svg[Parquet file input transform Icon,
role="image-doc-icon"] Parquet file input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/parquet-file-output.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/parquet-file-output.adoc
index ad682c0bc5..a30e7560e0 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/parquet-file-output.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/parquet-file-output.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Parquet file output transform writes data into the Apache
Parquet file format.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=yes, Beam Flink=yes, Beam Dataflow=yes
+:page-marketplace: hop-tech-parquet
= image:transforms/icons/parquet_output.svg[Parquet file output transform
Icon, role="image-doc-icon"] Parquet file output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/pgvector-search.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/pgvector-search.adoc
index 24053713a0..37d2ea9a97 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/pgvector-search.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/pgvector-search.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /pipeline/transforms/
:language: en_US
:description: Run a top-k similarity search against a PostgreSQL table that
uses the pgvector extension.
+:page-marketplace: hop-tech-pgvector
= image:transforms/icons/vector-store.svg[pgvector search transform Icon,
role="image-doc-icon"] pgvector search
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/pgvector-upsert.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/pgvector-upsert.adoc
index d2096f59c8..e1292580bc 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/pgvector-upsert.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/pgvector-upsert.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /pipeline/transforms/
:language: en_US
:description: Upsert text chunks and their embeddings into a PostgreSQL table
that uses the pgvector extension.
+:page-marketplace: hop-tech-pgvector
= image:transforms/icons/vector-store.svg[pgvector upsert transform Icon,
role="image-doc-icon"] pgvector upsert
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/redis-input.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/redis-input.adoc
index 9046f8932d..956163aad2 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/redis-input.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/redis-input.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /pipeline/transforms/
:language: en_US
:description: Read STRING, HASH, SET or LIST values from Redis.
+:page-marketplace: hop-tech-redis
= Redis Input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/redis-output.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/redis-output.adoc
index 4d13f37ca6..27da2b293f 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/redis-output.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/redis-output.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /pipeline/transforms/
:language: en_US
:description: Write STRING, HASH, SET or LIST values to Redis.
+:page-marketplace: hop-tech-redis
= Redis Output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/rulesaccumulator.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/rulesaccumulator.adoc
index 17f57f0755..7e8fe4a456 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/rulesaccumulator.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/rulesaccumulator.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The rules accumulator uses Drools to check rows against a rule
set
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-transform-drools
= image:transforms/icons/rules_acc.svg[Rules accumulator transform Icon,
role="image-doc-icon"] Rules accumulator
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/rulesexecutor.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/rulesexecutor.adoc
index 5632db4b40..ec12bc00c9 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/rulesexecutor.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/rulesexecutor.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The rules executor uses Drools to check rows against a rule set
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-transform-drools
= image:transforms/icons/rules_exec.svg[Rules executor transform Icon,
role="image-doc-icon"] Rules executor
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforcedelete.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforcedelete.adoc
index 9aa101a529..5f07ac4852 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforcedelete.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforcedelete.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Salesforce Delete transform deletes records directly from
your Salesforce database using the Salesforce Web Service.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-salesforce
= image:transforms/icons/SFD.svg[Salesforce Delete transform Icon,
role="image-doc-icon"] Salesforce Delete
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceinput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceinput.adoc
index 0b04191396..c2bf9bdcae 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceinput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceinput.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /pipeline/transforms/
:language: en_US
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-salesforce
= image:transforms/icons/SFI.svg[Salesforce Input transform Icon,
role="image-doc-icon"] Salesforce Input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceinsert.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceinsert.adoc
index 44aa352030..c726884a68 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceinsert.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceinsert.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Salesforce Insert transform inserts records directly into
your Salesforce database using the Salesforce Web Service.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-salesforce
= image:transforms/icons/salesforceinsert.svg[Salesforce Insert transform
Icon, role="image-doc-icon"] Salesforce Insert
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceupdate.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceupdate.adoc
index 9fafd43986..2000bf28d9 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceupdate.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceupdate.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Salesforce Update transform updates records directly in your
Salesforce database using the Salesforce Web Service.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-salesforce
= image:transforms/icons/SFUD.svg[Salesforce Update transform Icon,
role="image-doc-icon"] Salesforce Update
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceupsert.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceupsert.adoc
index c6dd98777d..a05bcc5df2 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceupsert.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/salesforceupsert.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Salesforce Upsert transform updates existing records and
inserts new records into your Salesforce database using the Salesforce Web
Service.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-salesforce
= image:transforms/icons/SFU.svg[Salesforce Upsert transform Icon,
role="image-doc-icon"] Salesforce Upsert
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-file-input.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-file-input.adoc
new file mode 100644
index 0000000000..75e53e46c7
--- /dev/null
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-file-input.adoc
@@ -0,0 +1,98 @@
+////
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+////
+:documentationPath: /pipeline/transforms/
+:language: en_US
+:description: Spark file input reads CSV, Parquet, JSON, ORC or text files as
a Spark Dataset on the native Spark pipeline engine. The path is a Spark/Hadoop
URI, not a Hop VFS path.
+:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=native, Beam
Spark=no, Beam Flink=no, Beam Dataflow=no
+:page-marketplace: hop-engines-spark
+
+= image:transforms/icons/spark-file-input.svg[Spark file input transform Icon,
role="image-doc-icon"] Spark file input
+
+== Description
+
+*Spark file input* reads a file, directory or glob with
`spark.read.format(...).load(path)` on the
xref:pipeline/spark/getting-started-with-native-spark.adoc[native Spark
pipeline engine] and hands the resulting `Dataset` to the next transform.
+It is the bulk input of the native Spark engine: Spark reads the files in
parallel on the executors, so use it instead of the classic Text File Input,
CSV File Input or Parquet File Input transforms for large data.
+
+This transform is **not** available on the local Hop engine or on the Beam
engines.
+
+The path is a Spark/Hadoop `FileSystem` URI that must be visible to every
executor, **not** a Hop VFS path: a local path on `local[*]`, `hdfs://…` or
`s3a://…` on a cluster.
+Hop-only schemes such as `s3://`, `azure://` or a named MinIO connection do
not work here; see xref:pipeline/spark/paths-and-filesystems.adoc[Paths and
file systems] for the mapping and for the *Path scheme map* on the run
configuration.
+
+== Options
+
+[options="header",cols="1,3"]
+|===
+|Option |Description
+
+|Transform name
+|Unique name of the transform in the pipeline.
+
+|Spark path (Hadoop URI)
+|File, directory or glob to read. Supports variables. Avoid `${PROJECT_HOME}`
when running with a Spark project package: that variable points at the
extracted definition files, not at data. Use a data variable such as `HOP_DATA`
or an explicit `s3a://` / `hdfs://` URI instead.
+
+|Format
+|`csv` (default), `parquet`, `json`, `orc` or `text`. Any other Spark data
source name is passed to `spark.read.format()` as is.
+
+|First line is header
+|CSV and text only. When checked, the first line names the columns and the
field list is matched to them by name.
+
+|Separator
+|CSV and text only. Field separator, default `,`. Supports variables.
+
+|Quote character
+|CSV and text only. Default `"`. Supports variables.
+
+|Infer schema (CSV without field list)
+|CSV and text only. Lets Spark run an extra pass over the data to guess column
types. Only applied when the field list is empty; an explicit field list is
safer and faster for production.
+
+|Multi-line
+|CSV and text only. Allows quoted values to span lines (Spark option
`multiLine`). Disables header-based schema typing, so columns are read as
strings and cast afterwards.
+
+|Extra options
+|Additional Spark read options as `key=value` lines, one per line. They are
applied before the options above, so a key you set here wins over the dialog
fields (for example `header`, `sep`, `quote`, `mode`, `dateFormat`,
`timestampFormat`, `recursiveFileLookup`).
+
+|Fields (optional schema)
+|The columns to read, with Hop type, length, precision and format mask. See
<<fields>> below.
+|===
+
+[[fields]]
+== Fields
+
+When the field list is empty every column in the file is passed on with the
type Spark gives it (strings for CSV unless *Infer schema* is checked).
+
+When fields are listed they are a **projection**: only the named columns are
returned, in the listed order, cast to the Hop types you give.
+
+* **CSV/text with a header**: columns are matched to the file header **by
name**, case-insensitive, in any order. Numeric and date fields are typed by
the CSV reader itself; other columns are read as strings and cast.
+* **CSV/text without a header**: Spark names the columns `_c0`, `_c1`, … and
the field list is mapped **by position**.
+* **Parquet, ORC and JSON**: the file already carries a schema, so the fields
select and cast columns by name.
+
+Date and timestamp fields without a format mask are parsed with a set of
common masks (`yyyy/MM/dd`, `yyyy-MM-dd`, `MM/dd/yyyy`, `dd/MM/yyyy`,
`yyyyMMdd`, and the same with a time part). Set a format mask on the field when
your data uses something else.
+
+Delimited files are read in Spark's `PERMISSIVE` mode with leading and
trailing whitespace ignored, so a value that does not fit its type becomes
`null` instead of failing the job. Set `mode=FAILFAST` in *Extra options* if
you want the job to fail instead.
+
+== Metadata injection
+
+All options support xref:pipeline/metadata-injection.adoc[metadata injection].
+
+Field group `FIELDS`: `NAME`, `TYPE`, `LENGTH`, `PRECISION`, `FORMAT_MASK`.
+
+== Related pages
+
+* xref:pipeline/transforms/spark-file-output.adoc[Spark file output]
+* xref:pipeline/spark/paths-and-filesystems.adoc[Paths and file systems on the
native Spark engine]
+* xref:pipeline/transforms/spark-lake-table-input.adoc[Spark lake table input]
for Delta Lake and Apache Iceberg tables
+*
xref:pipeline/pipeline-run-configurations/native-spark-pipeline-engine.adoc[Native
Spark pipeline engine]
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-file-output.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-file-output.adoc
new file mode 100644
index 0000000000..bde439f3d7
--- /dev/null
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-file-output.adoc
@@ -0,0 +1,92 @@
+////
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+////
+:documentationPath: /pipeline/transforms/
+:language: en_US
+:description: Spark file output writes a Spark Dataset as CSV, Parquet, JSON,
ORC or text files on the native Spark pipeline engine. The path is a
Spark/Hadoop URI, not a Hop VFS path.
+:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=native, Beam
Spark=no, Beam Flink=no, Beam Dataflow=no
+:page-marketplace: hop-engines-spark
+
+= image:transforms/icons/spark-file-output.svg[Spark file output transform
Icon, role="image-doc-icon"] Spark file output
+
+== Description
+
+*Spark file output* writes the incoming `Dataset` with
`df.write.format(...).save(path)` on the
xref:pipeline/spark/getting-started-with-native-spark.adoc[native Spark
pipeline engine].
+It is the bulk output of the native Spark engine: Spark writes one part file
per partition in parallel on the executors, so use it instead of the classic
Text File Output or Parquet File Output transforms for large or partitioned
writes.
+
+This transform is **not** available on the local Hop engine or on the Beam
engines.
+It is a leaf: the write is executed as a Spark action when the engine
materialises the pipeline, and no rows are passed on.
+
+The path is a Spark/Hadoop `FileSystem` URI that must be writable from every
executor, **not** a Hop VFS path: a local directory on `local[*]`, `hdfs://…`
or `s3a://…` on a cluster.
+Spark always writes a **directory** of part files at that location, never a
single file with that name; see <<single-file>> below.
+See xref:pipeline/spark/paths-and-filesystems.adoc[Paths and file systems] for
the scheme mapping and for the *Path scheme map* on the run configuration.
+
+== Options
+
+[options="header",cols="1,3"]
+|===
+|Option |Description
+
+|Transform name
+|Unique name of the transform in the pipeline.
+
+|Spark path / directory (Hadoop URI)
+|Output directory or prefix. Supports variables. Avoid `${PROJECT_HOME}` when
running with a Spark project package: that variable points at the extracted
definition files, not at a data location. Use a data variable such as
`HOP_DATA` or `OUTPUT_ROOT`, or an explicit `s3a://` / `hdfs://` URI. Can be
left empty for a path-less sink such as `jdbc`, which is addressed entirely
through *Extra options*.
+
+|Format
+|`csv` (default), `parquet`, `json`, `orc` or `text`. Any other Spark data
source name is passed to `df.write.format()` as is, for example `jdbc`.
+
+|Save mode
+|What to do when the target already exists: `Overwrite` (default), `Append`,
`Ignore` (silently do nothing) or `ErrorIfExists`.
+
+|Write header
+|CSV and text only. Write the column names as the first line of every part
file.
+
+|Separator
+|CSV and text only. Field separator, default `,`. Supports variables.
+
+|Quote character
+|CSV and text only. Default `"`. Supports variables.
+
+|Partition by columns
+|Comma-separated list of columns to partition the output by. Spark creates one
sub-directory per distinct value (`column=value/…`) and drops the column from
the files themselves.
+
+|Coalesce partitions
+|Reduce the number of partitions, and therefore of part files, before writing.
Supports variables. `1` produces a single part file at the cost of moving all
data through one task; leave empty to keep Spark's partitioning.
+
+|Extra options
+|Additional Spark write options as `key=value` lines, one per line. They are
applied before the options above, so a key you set here wins over the dialog
fields (for example `compression=gzip`, `dateFormat`, `timestampFormat`,
`nullValue`, or `url`, `dbtable`, `user` and `password` for a `jdbc` sink).
+|===
+
+The output fields are the input fields: this transform does not change the row
layout.
+
+[[single-file]]
+== Getting a single file
+
+Spark writes `part-00000-…` files into the directory you give, together with a
`_SUCCESS` marker.
+To get one data file, set *Coalesce partitions* to `1`; the file still lives
inside the output directory and keeps its Spark-generated name.
+If you need an exact file name, rename or copy it in a following workflow
action.
+
+== Metadata injection
+
+All options support xref:pipeline/metadata-injection.adoc[metadata injection].
+
+== Related pages
+
+* xref:pipeline/transforms/spark-file-input.adoc[Spark file input]
+* xref:pipeline/spark/paths-and-filesystems.adoc[Paths and file systems on the
native Spark engine]
+* xref:pipeline/transforms/spark-lake-table-output.adoc[Spark lake table
output] for Delta Lake and Apache Iceberg tables
+*
xref:pipeline/pipeline-run-configurations/native-spark-pipeline-engine.adoc[Native
Spark pipeline engine]
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-input.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-input.adoc
index 89813b1588..5e6901bf56 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-input.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-input.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: Spark lake table input reads Delta Lake or Apache Iceberg tables
on the native Spark pipeline engine, with optional time travel and projection.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=native, Beam
Spark=no, Beam Flink=no, Beam Dataflow=no
+:page-marketplace: hop-engines-spark
= image:transforms/icons/spark-lake-table-input.svg[Spark lake table input
transform Icon, role="image-doc-icon"] Spark lake table input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-maintenance.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-maintenance.adoc
index cefaee6870..ee7d966fab 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-maintenance.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-maintenance.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: Spark lake table maintenance runs OPTIMIZE, VACUUM, expire
snapshots, and related operations on Delta Lake or Apache Iceberg tables.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=native, Beam
Spark=no, Beam Flink=no, Beam Dataflow=no
+:page-marketplace: hop-engines-spark
= image:transforms/icons/spark-lake-table-maintenance.svg[Spark lake table
maintenance transform Icon, role="image-doc-icon"] Spark lake table maintenance
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-merge.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-merge.adoc
index 53704ae1f7..ab116c83d6 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-merge.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-merge.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: Spark lake table merge runs MERGE INTO against Delta Lake or
Apache Iceberg tables on the native Spark pipeline engine.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=native, Beam
Spark=no, Beam Flink=no, Beam Dataflow=no
+:page-marketplace: hop-engines-spark
= image:transforms/icons/spark-lake-table-merge.svg[Spark lake table merge
transform Icon, role="image-doc-icon"] Spark lake table merge
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-output.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-output.adoc
index 6aeaf6a910..b6fffd7355 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-output.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-lake-table-output.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: Spark lake table output writes Delta Lake or Apache Iceberg
tables on the native Spark pipeline engine with ACID commit semantics.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=native, Beam
Spark=no, Beam Flink=no, Beam Dataflow=no
+:page-marketplace: hop-engines-spark
= image:transforms/icons/spark-lake-table-output.svg[Spark lake table output
transform Icon, role="image-doc-icon"] Spark lake table output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-sql.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-sql.adoc
index 07114b9001..cd729a2e22 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-sql.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/spark-sql.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: Spark SQL runs a SQL statement over the Datasets of the incoming
transforms on the native Spark pipeline engine, so joins, unions and
aggregations are planned as one Catalyst query.
:page-engines: Hop Engine=no, Single Threaded=no, Native Spark=native, Beam
Spark=no, Beam Flink=no, Beam Dataflow=no
+:page-marketplace: hop-engines-spark
= image:transforms/icons/spark-sql.svg[Spark SQL transform Icon,
role="image-doc-icon"] Spark SQL
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/sstable-output.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/sstable-output.adoc
index 21b7f94cfb..78ebe040e5 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/sstable-output.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/sstable-output.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Cassandra SSTable Output transform writes to a file system
directory as a Cassandra SSTable.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-tech-cassandra
= image:transforms/icons/cassandra.svg[Cassandra SSTable Output transform
Icon, role="image-doc-icon"] Cassandra SSTable Output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/stanfordnlp.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/stanfordnlp.adoc
index fcd5cd4b8a..7502a71d38 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/stanfordnlp.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/stanfordnlp.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The Stanford NLP Transform allows you to parse text and provides
the foundational building blocks for higher level text understanding
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-transform-stanfordnlp
= image:transforms/icons/stanfordnlp.svg[Stanford NLP transform Icon,
role="image-doc-icon"] Stanford NLP Transform
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/vcardinput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/vcardinput.adoc
index 708454def0..6fbbd3327a 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/vcardinput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/vcardinput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The vCard Input transform reads vCard (.vcf) files and outputs
contact fields as rows.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-transform-vcard
= image:transforms/icons/vcard.svg[vCard Input transform Icon,
role="image-doc-icon"] vCard Input
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/vcardoutput.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/vcardoutput.adoc
index 587f49e028..c8493bbdc3 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/vcardoutput.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/vcardoutput.adoc
@@ -18,6 +18,7 @@ under the License.
:language: en_US
:description: The vCard Output transform builds vCard text from stream fields
and optionally writes .vcf files.
:page-engines: Hop Engine=yes, Single Threaded=yes, Native Spark=yes, Beam
Spark=maybe, Beam Flink=maybe, Beam Dataflow=maybe
+:page-marketplace: hop-transform-vcard
= image:transforms/icons/vcard.svg[vCard Output transform Icon,
role="image-doc-icon"] vCard Output
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/arrow/apache-arrow.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/arrow/apache-arrow.adoc
index 269c209ae9..ba8105e0ca 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/technology/arrow/apache-arrow.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/technology/arrow/apache-arrow.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../../assets/images/
:page-pagination:
:description: Apache Arrow
+:page-marketplace: hop-tech-arrow
= Apache Arrow
diff --git a/docs/hop-user-manual/modules/ROOT/pages/technology/avro/index.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/avro/index.adoc
index 52238095f8..6b64c60866 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/technology/avro/index.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/technology/avro/index.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /technology/avro/
:language: en_US
:description: This page describes how Hop supports the Avro data type.
+:page-marketplace: hop-tech-avro
= Avro
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/cassandra/index.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/cassandra/index.adoc
index f9ff3ce19c..895b817d07 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/technology/cassandra/index.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/technology/cassandra/index.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /technology/cassandra/
:language: en_US
:description: Apache Hop supports Apache Cassandra through a connection
metadata type, actions and transforms.
+:page-marketplace: hop-tech-cassandra
= Cassandra Technology
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/memgraph/index.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/memgraph/index.adoc
index 28bcaeafee..c9acff94ba 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/technology/memgraph/index.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/technology/memgraph/index.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /technology/memgraph/
:language: en_US
:description: Apache Hop has extensive support for the Neo4j graph database.
Memgraph is largely compatible with Neo4j and can use a lot of the Neo4j
functionality in Apache Hop.
+:page-marketplace: hop-tech-neo4j
= Memgraph
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/index.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/index.adoc
index 7286c0ca7a..f64bb4299e 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/index.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/index.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /technology/neo4j/
:language: en_US
:description: Apache Hop has extensive support for the Neo4j graph database
through a dedicated connection metadata type, a graph model type and tens of
transforms and actions. Additionally, Hop logging data can be written to a
Neo4j database and can be consulted directly from the Neo4j logging perspective
in Hop Gui.
+:page-marketplace: hop-tech-neo4j
= Neo4j
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/neo4j-logging-schema.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/neo4j-logging-schema.adoc
index 75c3156c79..1ebc76c0c4 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/neo4j-logging-schema.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/neo4j-logging-schema.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /technology/neo4j/
:language: en_US
:description: The Neo4j logging schema describes the nodes and relationships
Apache Hop writes when logging executions to Neo4j.
+:page-marketplace: hop-tech-neo4j
= Neo4j Logging Schema
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/working-with-neo4j-data.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/working-with-neo4j-data.adoc
index ecbeaba38f..4e11f6719f 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/working-with-neo4j-data.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/technology/neo4j/working-with-neo4j-data.adoc
@@ -15,6 +15,7 @@ specific language governing permissions and limitations
under the License.
////
:description: Apache Hop has extensive support for the Neo4j graph database,
including a library of samples that explain how to load data to and read from
your Neo4j graphs through Apache Hop.
+:page-marketplace: hop-tech-neo4j
= Working with Neo4j data
:toc:
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/openlineage/dataset-identity.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/openlineage/dataset-identity.adoc
index 3fff026d85..cc25af186f 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/technology/openlineage/dataset-identity.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/technology/openlineage/dataset-identity.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /technology/openlineage/
:language: en_US
:description: How the Hop OpenLineage sink identifies datasets, and the naming
another lineage producer has to match to stitch into Hop's graph.
+:page-marketplace: hop-tech-openlineage
= OpenLineage dataset identity
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/openlineage/index.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/openlineage/index.adoc
index 35d99ff7d1..a11d1378b3 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/technology/openlineage/index.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/technology/openlineage/index.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /technology/openlineage/
:language: en_US
:description: The OpenLineage technology plugin is a Hop lineage sink that
maps the engine's lineage events to OpenLineage JSON and posts them to a
collector such as Marquez.
+:page-marketplace: hop-tech-openlineage
= OpenLineage
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/technology/redis/index.adoc
b/docs/hop-user-manual/modules/ROOT/pages/technology/redis/index.adoc
index e2d315c4e2..10acab52e9 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/technology/redis/index.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/technology/redis/index.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /technology/redis/
:language: en_US
:description: Apache Hop supports Redis through a connection metadata type and
input/output transforms.
+:page-marketplace: hop-tech-redis
= Redis Technology
diff --git a/docs/hop-user-manual/modules/ROOT/pages/vfs/databricks-vfs.adoc
b/docs/hop-user-manual/modules/ROOT/pages/vfs/databricks-vfs.adoc
index f7e5726717..dc10ea28a2 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/vfs/databricks-vfs.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/vfs/databricks-vfs.adoc
@@ -18,6 +18,7 @@ under the License.
:documentationPath: /vfs/
:language: en_US
:description: Hop VFS for Databricks Unity Catalog Volumes and Workspace files
via the Files API
+:page-marketplace: hop-tech-databricks
= Databricks Volumes / Workspace VFS
diff --git a/docs/hop-user-manual/modules/ROOT/pages/vfs/dropbox-vfs.adoc
b/docs/hop-user-manual/modules/ROOT/pages/vfs/dropbox-vfs.adoc
index 5ef1397de0..bd9544846e 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/vfs/dropbox-vfs.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/vfs/dropbox-vfs.adoc
@@ -18,6 +18,7 @@ under the License.
:documentationPath: /vfs/
:language: en_US
:description: Apache Hop supports reading from and writing to Dropbox from
almost anywhere in the platform through Apache VFS
+:page-marketplace: hop-tech-dropbox
= Dropbox VFS
diff --git a/docs/hop-user-manual/modules/ROOT/pages/vfs/hdfs-vfs.adoc
b/docs/hop-user-manual/modules/ROOT/pages/vfs/hdfs-vfs.adoc
index 6c717cf925..b1c7785fc5 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/vfs/hdfs-vfs.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/vfs/hdfs-vfs.adoc
@@ -18,6 +18,7 @@ under the License.
:documentationPath: /vfs/
:language: en_US
:description: HDFS through a named VFS connection (WebHDFS / HttpFS / Knox)
+:page-marketplace: hop-tech-hadoop
= HDFS
diff --git a/docs/hop-user-manual/modules/ROOT/pages/vfs/minio-vfs.adoc
b/docs/hop-user-manual/modules/ROOT/pages/vfs/minio-vfs.adoc
index e0b6674ad7..6be95f430a 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/vfs/minio-vfs.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/vfs/minio-vfs.adoc
@@ -18,6 +18,7 @@ under the License.
:documentationPath: /vfs/
:language: en_US
:description: Use MinIO or other S3 compatible object stores
+:page-marketplace: hop-tech-minio
= MinIO
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/cassandra-exec-cql.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/cassandra-exec-cql.adoc
index c3fbfafc9b..2352c9acd1 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/cassandra-exec-cql.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/cassandra-exec-cql.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /workflow/actions/
:language: en_US
:description: The Cassandra Exec CQL action executes one or more CassandraQL
statements on a Cassandra cluster.
+:page-marketplace: hop-tech-cassandra
= Cassandra Exec CQL
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/databricks-job-run.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/databricks-job-run.adoc
index 4432a3232b..1a3914a851 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/databricks-job-run.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/databricks-job-run.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../../assets/images/
:page-pagination:
:description: Databricks job run workflow action — run or submit Jobs API work
and wait for completion.
+:page-marketplace: hop-tech-databricks
= Databricks job run
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/databricks-job-wait.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/databricks-job-wait.adoc
index b5a7c89668..b18a3b46ba 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/databricks-job-wait.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/databricks-job-wait.adoc
@@ -17,6 +17,7 @@ under the License.
:imagesdir: ../../../assets/images/
:page-pagination:
:description: Databricks job wait — poll a job run until it completes.
+:page-marketplace: hop-tech-databricks
= Databricks job wait
diff --git a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/dbt.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/dbt.adoc
index fe735e3834..773c5ede21 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/dbt.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/dbt.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /workflow/actions/
:language: en_US
:description: The dbt action runs a dbt Core operation against a dbt project
and reports its per-model results back to the workflow.
+:page-marketplace: hop-action-dbt
= dbt
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/documentation.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/documentation.adoc
index 3cc1f9344c..7d99fa6843 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/documentation.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/documentation.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /workflow/actions/
:language: en_US
:description: Build documentation of a Hop project
+:page-marketplace: hop-misc-documentation
= Build documentation
diff --git a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/mql.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/mql.adoc
index d8ada1cd99..49cd882c8f 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/mql.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/mql.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /workflow/actions/
:language: en_US
:description: The SQL action executes one or more SQL scripts from this
action's configuration or from a file.
+:page-marketplace: hop-tech-mongodb
= MongoDB QL
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-checkconnections.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-checkconnections.adoc
index 023e475930..92c8b64f7e 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-checkconnections.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-checkconnections.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /workflow/actions/
:language: en_US
:description: The Check Neo4j connections action lines up a list of Neo4j
connections that you want to check for availability.
+:page-marketplace: hop-tech-neo4j
= Check Neo4j connections
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-constraint.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-constraint.adoc
index d97e865c4c..9ad6d9e405 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-constraint.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-constraint.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /workflow/actions/
:language: en_US
:description: The Neo4j constraint action can be used to create or drop
constraints on node or relationship properties in a Neo4j Graph
+:page-marketplace: hop-tech-neo4j
= Neo4j constraint
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-cypherscript.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-cypherscript.adoc
index 5ceb15bf51..04b583505f 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-cypherscript.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-cypherscript.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /workflow/actions/
:language: en_US
:description: The Neo4j Cypher script action executes Cypher statements in a
workflow.
+:page-marketplace: hop-tech-neo4j
= Neo4j Cypher script
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-index.adoc
b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-index.adoc
index 69a6a2db4d..33c8d15860 100644
--- a/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-index.adoc
+++ b/docs/hop-user-manual/modules/ROOT/pages/workflow/actions/neo4j-index.adoc
@@ -17,6 +17,7 @@ under the License.
:documentationPath: /workflow/actions/
:language: en_US
:description: The Neo4j index action can be used to create or drop indexes on
node or relationship properties in a Neo4j Graph
+:page-marketplace: hop-tech-neo4j
= Neo4j index
diff --git
a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/split/SplitGraphMeta.java
b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/split/SplitGraphMeta.java
index e23b846778..8c2a07593d 100644
---
a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/split/SplitGraphMeta.java
+++
b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/split/SplitGraphMeta.java
@@ -39,7 +39,7 @@ import org.apache.hop.pipeline.transform.TransformMeta;
image = "neo4j_split.svg",
categoryDescription = "i18n::SplitGraphMeta.categoryDescription",
keywords = "i18n::SplitGraphMeta.keyword",
- documentationUrl = "/plugins/transforms/split-graph.html")
+ documentationUrl = "/pipeline/transforms/neo4j-split-graph.html")
public class SplitGraphMeta extends BaseTransformMeta<SplitGraph,
SplitGraphData> {
@HopMetadataProperty(key = "graph_field")