From e5374c57d27628f9f5b3d0de76995a8afa801023 Mon Sep 17 00:00:00 2001 From: gitea_admin Date: Mon, 12 Oct 2026 02:35:30 +0000 Subject: [PATCH] Add kamelet definition: mongodb-source --- kamelet.json | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 kamelet.json diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..f993c20 --- /dev/null +++ b/kamelet.json @@ -0,0 +1,193 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "mongodb-source", + "annotations": { + "camel.apache.org/kamelet.support.level": "Stable", + "camel.apache.org/catalog.version": "4.22.1", + "camel.apache.org/kamelet.icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzEgNjciIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjx1c2UgeGxpbms6aHJlZj0iI0EiIHg9IjEiIHk9IjEiLz48c3ltYm9sIGlkPSJBIiBvdmVyZmxvdz0idmlzaWJsZSI+PGcgc3Ryb2tlPSJub25lIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjxwYXRoIGQ9Ik0xNC4xNzQuMTc1bDEuNzA4IDMuMjA4Yy4zNzEuNTc5LjgwNCAxLjExNyAxLjI5IDEuNjA0IDEuNDMgMS40MyAyLjc4OCAyLjkyOCA0LjAwOCA0LjUzMiAyLjg5NCAzLjggNC44NDYgOCA2LjI0IDEyLjU4NGEzMC45NCAzMC45NCAwIDAgMSAxLjMyNCA4LjU0Yy4xNCA4LjY0Ni0yLjgyNCAxNi4wNy04LjggMjIuMjQtLjk3Mi45NzgtMi4wMjIgMS44NzYtMy4xNCAyLjY4NC0uNTkyIDAtLjg3Mi0uNDU0LTEuMTE2LS44NzItLjQ1NC0uNzY2LS43MzItMS42NC0uODcyLTIuNTEtLjIxLTEuMDQ2LS4zNDgtMi4wOTItLjI4LTMuMTcydi0uNDg4Yy0uMDQ4LS4xMjQtLjU3LTQ4LjEyNC0uMzYyLTQ4LjM1eiIgZmlsbD0iIzU5OTYzNiIvPjxwYXRoIGQ9Ik0xNC4xNzQuMDY5Yy0uMDctLjE0LS4xNC0uMDM0LS4yMS4wMzQuMDM0LjctLjIxIDEuMzI0LS41OTIgMS45Mi0uNC41OTItLjk3NiAxLjA0Ni0xLjUzNCAxLjUzNC0zLjEgMi42ODQtNS41NCA1LjkyNi03LjQ5NCA5LjU1Mi0yLjYgNC44OC0zLjk0IDEwLjExLTQuMzIgMTUuNjE2LS4xNzQgMS45ODYuNjI4IDguOTk0IDEuMjU0IDExLjAxNiAxLjcwOCA1LjM2OCA0Ljc3NiA5Ljg2NiA4Ljc1IDEzLjc3YTM1LjA4IDM1LjA4IDAgMCAwIDMuMSAyLjY1Yy4zMTQgMCAuMzQ4LS4yOC40LS40ODhhOS41NyA5LjU3IDAgMCAwIC4zMTQtMS4zNmwuNy01LjIyOEwxNC4xNzQuMDY5eiIgZmlsbD0iIzZjYWM0OCIvPjxwYXRoIGQ9Ik0xNS44ODIgNTcuNjkxYy4wNy0uOC40NTQtMS40NjQuODcyLTIuMTI2LS40LS4xNzQtLjczMi0uNTItLjk3Ni0uOTA2YTYuNDcgNi40NyAwIDAgMS0uNTItMS4xNWMtLjQ4OC0xLjQ2NC0uNTkyLTMtLjczMi00LjQ5NnYtLjkwNmMtLjE3NC4xNC0uMjEgMS4zMjQtLjIxIDEuNS0uMTAyIDEuNTgxLS4zMTIgMy4xNTQtLjYyOCA0LjcwNi0uMTA0LjYyOC0uMTc0IDEuMjU0LS41NiAxLjgxMiAwIC4wNyAwIC4xNC4wMzQuMjQ0LjYyOCAxLjg0OC44IDMuNzMuOTA2IDUuNjQ4di43YzAgLjgzNi0uMDM0LjY2LjY2Ljk0LjI4LjEwNC41OTIuMTQuODcyLjM0OC4yMSAwIC4yNDQtLjE3NC4yNDQtLjMxNGwtLjEwNC0xLjE1di0zLjIwOGMtLjAzNC0uNTYuMDctMS4xMTYuMTQtMS42NHoiIGZpbGw9IiNjMmJmYmYiLz48L2c+PC9zeW1ib2w+PC9zdmc+", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "MongoDB", + "camel.apache.org/kamelet.namespace": "Nosql" + }, + "labels": { + "camel.apache.org/kamelet.type": "source" + } + }, + "spec": { + "definition": { + "title": "MongoDB Source", + "description": "Consume data from MongoDB.", + "required": [ + "hosts", + "collection", + "database" + ], + "type": "object", + "properties": { + "hosts": { + "title": "MongoDB Hosts", + "description": "A comma-separated list of MongoDB host addresses in `host:port` format.", + "type": "string" + }, + "collection": { + "title": "MongoDB Collection", + "description": "The name of the MongoDB collection to bind to this endpoint.", + "type": "string" + }, + "password": { + "title": "MongoDB Password", + "description": "The user password for accessing MongoDB.", + "type": "string", + "format": "password", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "username": { + "title": "MongoDB Username", + "description": "The username for accessing MongoDB. The username must be present in the MongoDB's authentication database (`authenticationDatabase`). By default, the MongoDB `authenticationDatabase` is 'admin'.", + "type": "string", + "x-descriptors": [ + "urn:camel:group:credentials" + ] + }, + "ssl": { + "title": "Enable Ssl for Mongodb Connection", + "description": "whether to enable ssl connection to mongodb", + "type": "boolean", + "default": true + }, + "sslValidationEnabled": { + "title": "Enables Ssl Certificates Validation and Host name checks.", + "description": "IMPORTANT this should be disabled only in test environment since can pose security issues.", + "type": "boolean", + "default": true + }, + "database": { + "title": "MongoDB Database", + "description": "The name of the MongoDB database.", + "type": "string" + }, + "persistentTailTracking": { + "title": "MongoDB Persistent Tail Tracking", + "description": "Specifies to enable persistent tail tracking, which is a mechanism to keep track of the last consumed data across system restarts. The next time the system is up, the endpoint recovers the cursor from the point where it last stopped consuimg data. This option will only work on capped collections.", + "type": "boolean", + "default": false + }, + "tailTrackIncreasingField": { + "title": "MongoDB Tail Track Increasing Field", + "description": "The correlation field in the incoming data which is of increasing nature and is used to position the tailing cursor every time it is generated.", + "type": "string" + } + } + }, + "dependencies": [ + "camel:kamelet", + "camel:mongodb", + "camel:jackson" + ], + "template": { + "beans": [ + { + "name": "local-mongodb", + "type": "#class:org.apache.camel.component.mongodb.MongoDbComponent" + }, + { + "name": "mongo-client", + "type": "#class:org.apache.camel.component.mongodb.SslAwareMongoClient", + "properties": { + "password": "{{?password}}", + "username": "{{?username}}", + "hosts": "{{hosts}}", + "ssl": "{{ssl}}", + "sslValidationEnabled": "{{sslValidationEnabled}}" + } + } + ], + "from": { + "uri": "{{local-mongodb}}:test", + "parameters": { + "collection": "{{collection}}", + "database": "{{database}}", + "persistentTailTracking": "{{persistentTailTracking}}", + "tailTrackIncreasingField": "{{?tailTrackIncreasingField}}", + "mongoConnection": "#{{mongo-client}}" + }, + "steps": [ + { + "marshal": { + "json": {} + } + }, + { + "to": "kamelet:sink" + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "MongoDB Source", + "description": "Consume data from MongoDB.", + "required": [ + "hosts", + "collection", + "database" + ], + "properties": { + "hosts": { + "type": "string", + "title": "MongoDB Hosts", + "description": "A comma-separated list of MongoDB host addresses in `host:port` format." + }, + "collection": { + "type": "string", + "title": "MongoDB Collection", + "description": "The name of the MongoDB collection to bind to this endpoint." + }, + "password": { + "type": "string", + "title": "MongoDB Password", + "description": "The user password for accessing MongoDB.", + "format": "password" + }, + "username": { + "type": "string", + "title": "MongoDB Username", + "description": "The username for accessing MongoDB. The username must be present in the MongoDB's authentication database (`authenticationDatabase`). By default, the MongoDB `authenticationDatabase` is 'admin'." + }, + "ssl": { + "type": "boolean", + "title": "Enable Ssl for Mongodb Connection", + "description": "whether to enable ssl connection to mongodb", + "default": true + }, + "sslValidationEnabled": { + "type": "boolean", + "title": "Enables Ssl Certificates Validation and Host name checks.", + "description": "IMPORTANT this should be disabled only in test environment since can pose security issues.", + "default": true + }, + "database": { + "type": "string", + "title": "MongoDB Database", + "description": "The name of the MongoDB database." + }, + "persistentTailTracking": { + "type": "boolean", + "title": "MongoDB Persistent Tail Tracking", + "description": "Specifies to enable persistent tail tracking, which is a mechanism to keep track of the last consumed data across system restarts. The next time the system is up, the endpoint recovers the cursor from the point where it last stopped consuimg data. This option will only work on capped collections.", + "default": false + }, + "tailTrackIncreasingField": { + "type": "string", + "title": "MongoDB Tail Track Increasing Field", + "description": "The correlation field in the incoming data which is of increasing nature and is used to position the tailing cursor every time it is generated." + } + } + } +} \ No newline at end of file