196 lines
12 KiB
JSON
196 lines
12 KiB
JSON
|
|
{
|
||
|
|
"apiVersion": "camel.apache.org/v1",
|
||
|
|
"kind": "Kamelet",
|
||
|
|
"metadata": {
|
||
|
|
"name": "mysql-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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmVyc2lvbj0iMS4wIj4KIDxyZWN0IGZpbGw9IiMyNjU1N2MiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyOCIgeD0iLTMwIiB5PSItMzAiIHJ4PSIxLjQiIHJ5PSIxLjQiIHRyYW5zZm9ybT0ibWF0cml4KDAsLTEsLTEsMCwwLDApIi8+CiA8cGF0aCBvcGFjaXR5PSIuMiIgZD0ibTguMDI1NCA4LjAwMDFjLTAuNzgyNS0wLjAxNjYtMS4xNDk0IDAuNTI0NC0wLjk4ODMgMS40NTcgMC4wNTIgMC4zMDA2IDAuMzE1MiAwLjcyOTkgMC44ODI4IDEuNDQxOSAwLjYzMTIyIDAuNzkwOSAwLjg4NTE0IDEuMjIyNyAxLjE2MDIgMS45NzA3IDAuNDMzNiAxLjE3OTMgMC42MzQwMyAxLjU3NDggMC45ODYzMyAxLjk0MzQgMC4yNzM2NiAwLjI4NjMgMC4yNzM2OSAwLjI4NzEyIDAuMDg5ODQgMC44NzEwOS0wLjI4NTA3IDAuOTA1NTYtMC4zNDQwNyAyLjcyMDctMC4xMTUyMyAzLjU3NDIgMC4zNDI0OCAxLjI3NzQgMC43NjQwMiAxLjg1NzQgMS4zNTE2IDEuODU3NCAwLjQxOTY4IDAgMC43NjM2NC0wLjM1MDkyIDAuODg2NzItMC45MDQzIDAuMDQyNjgtMC4xOTE4NiAwLjEyMjQ5LTAuNDY2MDcgMC4xNzc3My0wLjYwOTM4IDAuMDk1MzUtMC4yNDcyOCAwLjEyMDkzLTAuMjI4MTggMC40OTQxNCAwLjM4MDg2IDAuMjE2MjggMC4zNTI5NiAwLjYyODY2IDAuODc4NjEgMC45MTYwMiAxLjE2OCAwLjY2MzggMC42Njg0NSAxLjU3NDkgMS40MjE3IDEuNjQwNiAxLjM1NzQgMC4wMjc3NS0wLjAyNzEzLTAuMjM4LTAuNDIxNzctMC41ODk4NC0wLjg3ODkxcy0xLjAxNTEtMS41MTg5LTEuNDc0Ni0yLjM1OTRjLTAuNTM1OTMtMC45ODAyOS0wLjg5OTctMS41Mjg2LTEuMDEzNy0xLjUyOTMtMC4zNzA0NS0wLjAwMjUtMC43MTU4OCAwLjU4MDA0LTAuOTE2MDIgMS41NDY5LTAuMjMwNTYgMS4xMTM4LTAuNjM2NzUgMC45MjcwOC0wLjk2NjgtMC40NDUzMS0wLjE5MDE5LTAuNzkwODUtMC4wOTEwNi0xLjg1NiAwLjI2MzY3LTIuODUzNSAwLjE2MTM3LTAuNDUzNzYgMC4yOTI5Ny0wLjg3MzczIDAuMjkyOTctMC45MzE2NHMtMC4yNTczMS0wLjU0MzQ4LTAuNTcyMjctMS4wODAxYy0wLjMxNS0wLjUzNy0wLjY4NTEtMS4yOTctMC44MjItMS42OS0wLjMzMjYtMC45NTQtMC40OTA1LTEuMjMyLTEuMTU4Mi0yLjA0My0wLjY4NzktMC44MzQ2LTAuNzUzLTEuMjIwMy0wLjIwNTEtMS4yMTY2IDAuNDI1NTQgMC4wMDI4MSAxLjExMjMgMC4yODk0NCAxLjgwMjcgMC43NTM5MSAwLjQzNzEgMC4yOTQwNCAwLjU4NTIzIDAuMzMzOTggMS4yODcxIDAuMzMzOTggMC44ODE0MiAwIDEuMDcwOSAwLjA3MjIgMi4yOTMgMC44NzY5NSAxLjI0NDUgMC44MTk1OCAyLjE3MjIgMS41ODEzIDIuODE0NSAyLjMxMjUgMC41NzA0IDAuNjQ5MzcgMC44ODIwMSAxLjIxMzggMi41NjA1IDQuNjU2MiAwLjY0NDMzIDEuMzIxNCAxLjIxNTggMS45NTkzIDIuMDAzOSAyLjIzMjQgMS4yMTczIDAuNDIxODUgMS42MzE3IDAuNjEzMTQgMi4xNjggMC45OTgwNWwwLjU2NjQxIDAuNDA2MjUtMC4zODA4NiAwLjA3NDIyYy0wLjIxMDMgMC4wNDAzMy0wLjY2ODQ3IDAuMTA2MTYtMS4wMTc2IDAuMTQ2NDgtMC43Mjc0MSAwLjA4NC0xLjIwMzEgMC4zODU3My0xLjIwMzEgMC43NjM2NyAwIDAuNDI1OTIgMS40NTEzIDEuNjQ1MyAyLjkwNjIgMi40NDE0IDAuNjk5MDMgMC4zODI0NyAxLjM3MTYgMC43NTkyNyAxLjQ5NDEgMC44Mzc4OSAwLjMyNTk4IDAuMjA5MjIgMC40MTQyNCAwLjE4Mzg5IDAuMzMwMDgtMC4wOTE4LTAuMTc2MjQtMC41NzczOC0wLjc3Mjc5LTEuMTM5OC0yLjQyOTctMi4yOTQ5LTAuOTcxOTctMC42Nzc2LTAuOTgxOTktMC42NTI0NCAwLjMxNjQxLTAuNzgxMjUgMC45MjUtMC4wOTEgMS4zOTItMC4yNDkgMS4zOTItMC40NzIgMC0wLjEwMi0wLjQ3LTAuNjQ0LTEuMDQ1LTEuMjAzLTAuOS0wLjg3Ni0xLjIwNC0xLjA5NC0yLjE5NS0xLjU3Ny0xLjM1LTAuNjU2LTEuODQyLTEuMTc3LTIuMTUzLTIuMjgzLTAuNDY0LTEuNjQ5LTEuNzEyLTMuNTg3LTMuMzcxLTUuMjMtMS43MTItMS42OTYtMy4zNDctMi42MzQ0LTQuODQ1LTIuNzgxNC0wLjYwOS0wLjA1OTgtMC45MjQtMC4xNTIyLTEuMjM5LTAuMzY1My0wLjUzMzItMC4zNjExLTEuNzcxNy0wLjc2ODQtMi4zNzY2LTAuNzgxMnptMi45NjI5IDMuMDAyYy0wLjEyMjY2LTAuMDA3OS0wLjIyOTQ1IDAuMDA4NS0wLjMwMjczIDAuMDU4NTktMC4yNzM0MSAwLjE4Njk5LTAuMjQwOTkgMC40MTUwNCAwLjA4MDA4IDAuNTU2NjQgMC4xNTA5MiAwLjA2NjU2IDAuMzY1MDEgMC4zMDE0NyAwLjQ3NjU2IDAuNTIxNDggMC4zNzUxIDAuNzM5NzggMC45NDk4NSAwLjI0NDUgMC42OTMzNi0wLjU5NzY2LTAuMDgwODUtMC4yNjU0Ni0wLjU3OTMtMC41MTU0Ny0wLjk0NzI3LTAuNTM5MDZ6Ii8+CiA8cGF0aCBmaWxsPSIjZmZmIiBkPSJtOC4wMjU0IDdjLTAuNzgyNS0wLjAxNjYtMS4xNDk0IDAuNTI0NC0wLjk4ODMgMS40NTcgMC4wNTIgMC4zMDA2IDAuMzE1MiAwLjczMDIgMC44ODI4IDEuNDQxNCAwLjYzMTIgMC43OTA2IDAuODg1MiAxLjIyMjYgMS4xNjAyIDEuOTcwNiAwLjQzMzYgMS4xNzkgMC42MzQgMS41NzUgMC45ODU5IDEuOTQzIDAuMjc0IDAuMjg3IDAuMjc0IDAuMjg4IDAuMDkgMC44NzItMC4yODQ4IDAuOTA1LTAuMzQzOCAyLjcyLTAuMTE1IDMuNTc0IDAuMzQyIDEuMjc3IDAuNzY0IDEuODU3IDEuMzUyIDEuODU3IDAuNDE5IDAgMC43NjMtMC4zNTEgMC44ODYtMC45MDQgMC4wNDMtMC4xOTIgMC4xMjMtMC40NjYgMC4xNzgtMC42MDkgMC4wOTUtMC4yNDggMC4xMjEtMC4yMjkgMC40OTQgMC4zOCAwLjIxNiAwLjM1MyAwLjYyOSAwLjg3OSAwLjkxNiAxLjE2OCAwLjY2NCAwLjY2OSAxLjU3NSAxLjQyMiAxLjY0MSAxLjM1OCAwLjAyOC0wLjAyNy0wLjIzOC0wLjQyMi0wLjU5LTAuODc5cy0xLjAxNS0xLjUxOS0xLjQ3NS0yLjM1OWMtMC41MzYtMC45ODEtMC44OTktMS41MjktMS4wMTMtMS41My0wLjM3MS0wLjAwMi0wLjcxNiAwLjU4LTAuOTE2IDEuNTQ3L
|
||
|
|
"camel.apache.org/provider": "Apache Software Foundation",
|
||
|
|
"camel.apache.org/kamelet.group": "SQL",
|
||
|
|
"camel.apache.org/kamelet.namespace": "Database"
|
||
|
|
},
|
||
|
|
"labels": {
|
||
|
|
"camel.apache.org/kamelet.type": "source"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"spec": {
|
||
|
|
"definition": {
|
||
|
|
"title": "MySQL Source",
|
||
|
|
"description": "Query data from a MySQL Database.",
|
||
|
|
"required": [
|
||
|
|
"serverName",
|
||
|
|
"username",
|
||
|
|
"password",
|
||
|
|
"query",
|
||
|
|
"databaseName"
|
||
|
|
],
|
||
|
|
"type": "object",
|
||
|
|
"properties": {
|
||
|
|
"serverName": {
|
||
|
|
"title": "Server Name",
|
||
|
|
"description": "The server name for the data source.",
|
||
|
|
"type": "string",
|
||
|
|
"example": "localhost"
|
||
|
|
},
|
||
|
|
"serverPort": {
|
||
|
|
"title": "Server Port",
|
||
|
|
"description": "The server port for the data source.",
|
||
|
|
"type": "string",
|
||
|
|
"default": 3306
|
||
|
|
},
|
||
|
|
"username": {
|
||
|
|
"title": "Username",
|
||
|
|
"description": "The username to access a secured MySQL Database.",
|
||
|
|
"type": "string",
|
||
|
|
"x-descriptors": [
|
||
|
|
"urn:camel:group:credentials"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"password": {
|
||
|
|
"title": "Password",
|
||
|
|
"description": "The password to access a secured MySQL Database.",
|
||
|
|
"type": "string",
|
||
|
|
"format": "password",
|
||
|
|
"x-descriptors": [
|
||
|
|
"urn:camel:group:credentials"
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"query": {
|
||
|
|
"title": "Query",
|
||
|
|
"description": "The query to execute against the MySQL Database.",
|
||
|
|
"type": "string",
|
||
|
|
"example": "INSERT INTO accounts (username,city) VALUES (:#username,:#city)"
|
||
|
|
},
|
||
|
|
"databaseName": {
|
||
|
|
"title": "Database Name",
|
||
|
|
"description": "The name of the MySQL Database.",
|
||
|
|
"type": "string"
|
||
|
|
},
|
||
|
|
"consumedQuery": {
|
||
|
|
"title": "Consumed Query",
|
||
|
|
"description": "A query to run on a tuple consumed.",
|
||
|
|
"type": "string",
|
||
|
|
"example": "DELETE FROM accounts where user_id = :#user_id"
|
||
|
|
},
|
||
|
|
"delay": {
|
||
|
|
"title": "Delay",
|
||
|
|
"description": "The number of milliseconds before the next poll",
|
||
|
|
"type": "integer",
|
||
|
|
"default": 500
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"types": {
|
||
|
|
"out": {
|
||
|
|
"mediaType": "application/json"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"dependencies": [
|
||
|
|
"camel:jackson",
|
||
|
|
"camel:kamelet",
|
||
|
|
"camel:sql",
|
||
|
|
"mvn:org.apache.commons:commons-dbcp2:2.14.0"
|
||
|
|
],
|
||
|
|
"template": {
|
||
|
|
"beans": [
|
||
|
|
{
|
||
|
|
"name": "local-sql-mysql-source",
|
||
|
|
"type": "#class:org.apache.camel.component.sql.SqlComponent",
|
||
|
|
"properties": {
|
||
|
|
"autowiredEnabled": "false"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"name": "dsBean",
|
||
|
|
"type": "#class:org.apache.commons.dbcp2.BasicDataSource",
|
||
|
|
"properties": {
|
||
|
|
"username": "{{username}}",
|
||
|
|
"password": "{{password}}",
|
||
|
|
"url": "jdbc:mysql://{{serverName}}:{{serverPort}}/{{databaseName}}",
|
||
|
|
"driverClassName": "com.mysql.cj.jdbc.Driver"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"from": {
|
||
|
|
"uri": "{{local-sql-mysql-source}}:{{query}}",
|
||
|
|
"parameters": {
|
||
|
|
"dataSource": "#bean:{{dsBean}}",
|
||
|
|
"onConsume": "{{?consumedQuery}}",
|
||
|
|
"delay": "{{delay}}"
|
||
|
|
},
|
||
|
|
"steps": [
|
||
|
|
{
|
||
|
|
"marshal": {
|
||
|
|
"json": {
|
||
|
|
"library": "Jackson"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"to": "kamelet:sink"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"propertiesSchema": {
|
||
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||
|
|
"type": "object",
|
||
|
|
"title": "MySQL Source",
|
||
|
|
"description": "Query data from a MySQL Database.",
|
||
|
|
"required": [
|
||
|
|
"serverName",
|
||
|
|
"username",
|
||
|
|
"password",
|
||
|
|
"query",
|
||
|
|
"databaseName"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"serverName": {
|
||
|
|
"type": "string",
|
||
|
|
"title": "Server Name",
|
||
|
|
"description": "The server name for the data source."
|
||
|
|
},
|
||
|
|
"serverPort": {
|
||
|
|
"type": "string",
|
||
|
|
"title": "Server Port",
|
||
|
|
"description": "The server port for the data source.",
|
||
|
|
"default": 3306
|
||
|
|
},
|
||
|
|
"username": {
|
||
|
|
"type": "string",
|
||
|
|
"title": "Username",
|
||
|
|
"description": "The username to access a secured MySQL Database."
|
||
|
|
},
|
||
|
|
"password": {
|
||
|
|
"type": "string",
|
||
|
|
"title": "Password",
|
||
|
|
"description": "The password to access a secured MySQL Database.",
|
||
|
|
"format": "password"
|
||
|
|
},
|
||
|
|
"query": {
|
||
|
|
"type": "string",
|
||
|
|
"title": "Query",
|
||
|
|
"description": "The query to execute against the MySQL Database."
|
||
|
|
},
|
||
|
|
"databaseName": {
|
||
|
|
"type": "string",
|
||
|
|
"title": "Database Name",
|
||
|
|
"description": "The name of the MySQL Database."
|
||
|
|
},
|
||
|
|
"consumedQuery": {
|
||
|
|
"type": "string",
|
||
|
|
"title": "Consumed Query",
|
||
|
|
"description": "A query to run on a tuple consumed."
|
||
|
|
},
|
||
|
|
"delay": {
|
||
|
|
"type": "integer",
|
||
|
|
"title": "Delay",
|
||
|
|
"description": "The number of milliseconds before the next poll",
|
||
|
|
"default": 500
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|