All Downloads are FREE. Search and download functionalities are using the official Maven repository.

kamelets.mongodb-sink.kamelet.yaml Maven / Gradle / Ivy

The newest version!
# ---------------------------------------------------------------------------
# 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.
# ---------------------------------------------------------------------------
apiVersion: camel.apache.org/v1
kind: Kamelet
metadata:
  name: mongodb-sink
  annotations:
    camel.apache.org/kamelet.support.level: "Stable"
    camel.apache.org/catalog.version: "4.8.0"
    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: "sink"
spec:
  definition:
    title: "MongoDB Sink"
    description: |-
      Send data to MongoDB.

      This Kamelet expects a JSON-formatted body.

      In the header, you can set the `db-upsert` / `ce-dbupsert` property, a boolean value that specifies whether the database should create an element if it does not exist.
    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: A user password for accessing MongoDB.
        type: string
        format: password
        x-descriptors:
        - urn:camel:group:credentials
      username:
        title: MongoDB Username
        description: A username for accessing MongoDB.
        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
      writeConcern:
        title: Write Concern
        description: The level of acknowledgment requested from MongoDB for write operations.
        type: string
        enum: ["ACKNOWLEDGED", "W1", "W2", "W3", "UNACKNOWLEDGED", "JOURNALED", "MAJORITY"]
      createCollection:
        title: Collection
        description: Create a collection during initialization if it doesn't exist.
        type: boolean
        default: false
  types:
    in:
      mediaType: application/json
  dependencies:
    - "camel:core"
    - "camel:kamelet"
    - "camel:mongodb"
    - "camel:jackson"
    - "mvn:org.apache.camel.kamelets:camel-kamelets-utils:4.8.0"
  template:
    beans:
      - name: local-mongodb
        type: "#class:org.apache.camel.component.mongodb.MongoDbComponent"
      - name: mongo-client
        type: "#class:org.apache.camel.kamelets.utils.mongodb.SslAwareMongoClient"
        properties:
          password: "{{?password}}"
          username: "{{?username}}"
          hosts: "{{hosts}}"
          ssl: "{{ssl}}"
          sslValidationEnabled: "{{sslValidationEnabled}}"
    from:
      uri: kamelet:source
      steps:
      - choice:
          when:
          - simple: "${header[db-upsert]}"
            steps:
            - setHeader:
                name: CamelMongoDbUpsert
                simple: "${header[db-upsert]}"
          - simple: "${header[ce-dbupsert]}"
            steps:
            - setHeader:
                name: CamelMongoDbUpsert
                simple: "${header[ce-dbupsert]}"
      - to:
          uri: "{{local-mongodb}}:test"
          parameters:
            createCollection: "{{?createCollection}}"
            writeConcern: "{{?writeConcern}}"
            collection: "{{collection}}"
            database: "{{database}}"
            operation: "insert"
            mongoConnection: "#{{mongo-client}}"




© 2015 - 2024 Weber Informatics LLC | Privacy Policy