From 70fd7b0a2fe03910dd59ccd6ffedd85dec33418e Mon Sep 17 00:00:00 2001 From: gitea_admin Date: Wed, 11 Mar 2026 14:28:47 +0000 Subject: [PATCH] Add kamelet definition: mongodb-source --- kamelet.yaml | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 kamelet.yaml diff --git a/kamelet.yaml b/kamelet.yaml new file mode 100644 index 0000000..a7e1b2d --- /dev/null +++ b/kamelet.yaml @@ -0,0 +1,102 @@ +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.10.2" + 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. + + If you enable the `persistentTailTracking` property, the consumer keeps track of the last consumed message and, on the next restart, the consumption restarts from that message. If you enable `persistentTailTracking`, you must provide a value for the `tailTrackIncreasingField` property (by default it is optional). + + If you disable the `persistentTailTracking` property, the consumer consumes the whole collection and waits in idle for new data to consume. + + The collection that provides the data must be a capped collection. + 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.kamelet.utils.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