243 lines
9.0 KiB
JSON
243 lines
9.0 KiB
JSON
{
|
|
"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.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": "sink"
|
|
}
|
|
},
|
|
"spec": {
|
|
"definition": {
|
|
"title": "MongoDB Sink",
|
|
"description": "Send data to 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": "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"
|
|
],
|
|
"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": "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}}"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"propertiesSchema": {
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"title": "MongoDB Sink",
|
|
"description": "Send data to 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": "A user password for accessing MongoDB.",
|
|
"format": "password"
|
|
},
|
|
"username": {
|
|
"type": "string",
|
|
"title": "MongoDB Username",
|
|
"description": "A username for accessing MongoDB."
|
|
},
|
|
"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."
|
|
},
|
|
"writeConcern": {
|
|
"type": "string",
|
|
"title": "Write Concern",
|
|
"description": "The level of acknowledgment requested from MongoDB for write operations.",
|
|
"enum": [
|
|
"ACKNOWLEDGED",
|
|
"W1",
|
|
"W2",
|
|
"W3",
|
|
"UNACKNOWLEDGED",
|
|
"JOURNALED",
|
|
"MAJORITY"
|
|
]
|
|
},
|
|
"createCollection": {
|
|
"type": "boolean",
|
|
"title": "Collection",
|
|
"description": "Create a collection during initialization if it doesn't exist.",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
} |