Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"MySQL": "MySQL",
|
||||
"The world's most popular open-source database": "The world's most popular open-source database",
|
||||
"Host": "Host",
|
||||
"Port": "Port",
|
||||
"Username": "Username",
|
||||
"Password": "Password",
|
||||
"Database": "Database",
|
||||
"The hostname or address of the mysql server": "The hostname or address of the mysql server",
|
||||
"The port to use for connecting to the mysql server": "The port to use for connecting to the mysql server",
|
||||
"The username to use for connecting to the mysql server": "The username to use for connecting to the mysql server",
|
||||
"The password to use to identify at the mysql server": "The password to use to identify at the mysql server",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "The name of the database to use. Required if you are not using the \"Execute Query\" Action",
|
||||
"Find Rows": "Find Rows",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Update Row",
|
||||
"Delete Row": "Delete Row",
|
||||
"Get Tables": "Get Tables",
|
||||
"Execute Query": "Execute Query",
|
||||
"Reads rows from a table": "Reads rows from a table",
|
||||
"Inserts a new row into a table": "Inserts a new row into a table",
|
||||
"Updates one or more rows in a table": "Updates one or more rows in a table",
|
||||
"Deletes one or more rows from a table": "Deletes one or more rows from a table",
|
||||
"Returns a list of tables in the database": "Returns a list of tables in the database",
|
||||
"Executes a query on the mysql database and returns the results": "Executes a query on the mysql database and returns the results",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Table",
|
||||
"Condition": "Condition",
|
||||
"Arguments": "Arguments",
|
||||
"Columns": "Columns",
|
||||
"Values": "Values",
|
||||
"Search Column": "Search Column",
|
||||
"Search Value": "Search Value",
|
||||
"Query": "Query",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "Timezone for the MySQL server to use",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL condition, can also include logic operators, etc.",
|
||||
"Arguments can be used using ? in the condition": "Arguments can be used using ? in the condition",
|
||||
"Specify the columns you want to select": "Specify the columns you want to select",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "The query string to execute, use ? for arguments to avoid SQL injection.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Arguments to use in the query, if any. Should be in the same order as the ? in the query string.."
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"The world's most popular open-source database": "Die weltweit beliebteste Open-Source-Datenbank",
|
||||
"Host": "Host",
|
||||
"Port": "Port",
|
||||
"Username": "Benutzername",
|
||||
"Password": "Kennwort",
|
||||
"Database": "Datenbank",
|
||||
"The hostname or address of the mysql server": "Der Hostname oder die Adresse des mysql-Servers",
|
||||
"The port to use for connecting to the mysql server": "Der zu verwendende Port für die Verbindung zum mysql-Server",
|
||||
"The username to use for connecting to the mysql server": "Der Benutzername für die Verbindung zum mysql-Server",
|
||||
"The password to use to identify at the mysql server": "Das Passwort, mit dem man sich auf dem mysql-Server identifizieren soll",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "Der Name der zu verwendenden Datenbank. Wird benötigt, wenn Sie die Aktion \"Ausführen\" nicht verwenden",
|
||||
"Find Rows": "Zeilen finden",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Zeile aktualisieren",
|
||||
"Delete Row": "Zeile löschen",
|
||||
"Get Tables": "Tische holen",
|
||||
"Execute Query": "Abfrage ausführen",
|
||||
"Reads rows from a table": "Liest Zeilen aus einer Tabelle",
|
||||
"Inserts a new row into a table": "Fügt eine neue Zeile in eine Tabelle ein",
|
||||
"Updates one or more rows in a table": "Aktualisiert eine oder mehrere Zeilen in einer Tabelle",
|
||||
"Deletes one or more rows from a table": "Löscht eine oder mehrere Zeilen aus einer Tabelle",
|
||||
"Returns a list of tables in the database": "Gibt eine Liste von Tabellen in der Datenbank zurück",
|
||||
"Executes a query on the mysql database and returns the results": "Führt eine Abfrage in der mysql-Datenbank aus und gibt die Ergebnisse zurück",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Tisch",
|
||||
"Condition": "Bedingung",
|
||||
"Arguments": "Argumente",
|
||||
"Columns": "Spalten",
|
||||
"Values": "Werte",
|
||||
"Search Column": "Spalte durchsuchen",
|
||||
"Search Value": "Suchwert",
|
||||
"Query": "Abfrage",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** verwenden dynamische Eingaben direkt im Query-String oder Spaltennamen.\n \n\n **?** in der Abfrage und in dynamischen Werten in args/values für parametrierte Abfragen verwenden, um **SQL-Einspritzung** zu verhindern.",
|
||||
"Timezone for the MySQL server to use": "Zeitzone für den MySQL-Server",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL-Bedingung, kann auch logische Operatoren usw. enthalten.",
|
||||
"Arguments can be used using ? in the condition": "Argumente können verwendet werden ? in der Bedingung",
|
||||
"Specify the columns you want to select": "Geben Sie die Spalten an, die Sie auswählen möchten",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "Der auszuführende Abfrage-String, ? für Argumente verwenden, um SQL-Einschleusung zu vermeiden.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Argumente, die in der Abfrage verwendet werden sollen, falls vorhanden. Sollte in der gleichen Reihenfolge sein wie die ? im Abfrage-String.."
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"The world's most popular open-source database": "La base de datos de código abierto más popular del mundo",
|
||||
"Host": "Anfitrión",
|
||||
"Port": "Puerto",
|
||||
"Username": "Usuario",
|
||||
"Password": "Contraseña",
|
||||
"Database": "Base de datos",
|
||||
"The hostname or address of the mysql server": "El nombre de host o la dirección del servidor (0)[video] ql",
|
||||
"The port to use for connecting to the mysql server": "El puerto a usar para conectarse al servidor willing ql",
|
||||
"The username to use for connecting to the mysql server": "El nombre de usuario a utilizar para conectarse al servidor de la cadena",
|
||||
"The password to use to identify at the mysql server": "La contraseña a utilizar para identificarse en el servidor willing ql",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "El nombre de la base de datos a utilizar. Requerido si no está utilizando la acción \"Ejecutar consulta\"",
|
||||
"Find Rows": "Encontrar filas",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Actualizar fila",
|
||||
"Delete Row": "Eliminar fila",
|
||||
"Get Tables": "Obtener Tablas",
|
||||
"Execute Query": "Ejecutar consulta",
|
||||
"Reads rows from a table": "Lee filas de una tabla",
|
||||
"Inserts a new row into a table": "Inserta una nueva fila en una tabla",
|
||||
"Updates one or more rows in a table": "Actualiza uno o más registros en una tabla",
|
||||
"Deletes one or more rows from a table": "Elimina uno o más registros de una tabla",
|
||||
"Returns a list of tables in the database": "Devuelve una lista de tablas en la base de datos",
|
||||
"Executes a query on the mysql database and returns the results": "Ejecuta una consulta en la base de datos del servidor de correo y retorna los resultados",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Tabla",
|
||||
"Condition": "Condición",
|
||||
"Arguments": "Argumentos",
|
||||
"Columns": "Columnas",
|
||||
"Values": "Valores",
|
||||
"Search Column": "Columna de búsqueda",
|
||||
"Search Value": "Valor de búsqueda",
|
||||
"Query": "Consulta",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "Zona horaria para el servidor MySQL a usar",
|
||||
"SQL condition, can also include logic operators, etc.": "La condición SQL, también puede incluir operadores lógicos, etc.",
|
||||
"Arguments can be used using ? in the condition": "Argumentos pueden ser usados ? en la condición",
|
||||
"Specify the columns you want to select": "Especifique las columnas que desea seleccionar",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "La cadena de consulta a ejecutar, use ? para los argumentos para evitar la inyección SQL.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Argumentos a usar en la consulta, si los hay. Debe estar en el mismo orden que el ? en la cadena de consultas.."
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"The world's most popular open-source database": "La base de données open-source la plus populaire au monde",
|
||||
"Host": "Hôte",
|
||||
"Port": "Port",
|
||||
"Username": "Nom d'utilisateur",
|
||||
"Password": "Password",
|
||||
"Database": "Base de données",
|
||||
"The hostname or address of the mysql server": "Le nom d'hôte ou l'adresse du serveur mysql",
|
||||
"The port to use for connecting to the mysql server": "Le port à utiliser pour se connecter au serveur mysql",
|
||||
"The username to use for connecting to the mysql server": "Le nom d'utilisateur à utiliser pour se connecter au serveur mysql",
|
||||
"The password to use to identify at the mysql server": "Le mot de passe à utiliser pour l'identification sur le serveur mysql",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "Le nom de la base de données à utiliser. Obligatoire si vous n'utilisez pas l'action \"Exécuter la requête\"",
|
||||
"Find Rows": "Trouver des lignes",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Mettre à jour la ligne",
|
||||
"Delete Row": "Supprimer la ligne",
|
||||
"Get Tables": "Récupérer les tables",
|
||||
"Execute Query": "Exécuter la requête",
|
||||
"Reads rows from a table": "Lit les lignes d'une table",
|
||||
"Inserts a new row into a table": "Insère une nouvelle ligne dans une table",
|
||||
"Updates one or more rows in a table": "Met à jour une ou plusieurs lignes dans une table",
|
||||
"Deletes one or more rows from a table": "Supprime une ou plusieurs lignes d'une table",
|
||||
"Returns a list of tables in the database": "Retourne une liste des tables dans la base de données",
|
||||
"Executes a query on the mysql database and returns the results": "Exécute une requête sur la base de données mysql et retourne les résultats",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Fuseau horaire",
|
||||
"Table": "Tableau",
|
||||
"Condition": "Condition",
|
||||
"Arguments": "Arguments",
|
||||
"Columns": "Colonnes",
|
||||
"Values": "Valeurs",
|
||||
"Search Column": "Colonne de recherche",
|
||||
"Search Value": "Valeur de la recherche",
|
||||
"Query": "Requête",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **NE PAS utiliser** une entrée dynamique directement dans la chaîne de requête ou les noms de colonnes.\n \n\n Utiliser **?** dans la requête et les valeurs dynamiques dans args/valeurs pour les requêtes paramétrées pour éviter **l'injection SQL**.",
|
||||
"Timezone for the MySQL server to use": "Fuseau horaire à utiliser par le serveur MySQL",
|
||||
"SQL condition, can also include logic operators, etc.": "La condition SQL, peut également inclure des opérateurs de logique, etc.",
|
||||
"Arguments can be used using ? in the condition": "Les arguments peuvent être utilisés en utilisant ? dans la condition",
|
||||
"Specify the columns you want to select": "Spécifiez les colonnes que vous voulez sélectionner",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "La chaîne de requête à exécuter, utilisez ? pour les arguments pour éviter l'injection SQL.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Arguments à utiliser dans la requête, le cas échéant. Doit être dans le même ordre que le ? dans la chaîne de requête."
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"MySQL": "MySQL",
|
||||
"The world's most popular open-source database": "The world's most popular open-source database",
|
||||
"Host": "Host",
|
||||
"Port": "Port",
|
||||
"Username": "Username",
|
||||
"Password": "Password",
|
||||
"Database": "Database",
|
||||
"The hostname or address of the mysql server": "The hostname or address of the mysql server",
|
||||
"The port to use for connecting to the mysql server": "The port to use for connecting to the mysql server",
|
||||
"The username to use for connecting to the mysql server": "The username to use for connecting to the mysql server",
|
||||
"The password to use to identify at the mysql server": "The password to use to identify at the mysql server",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "The name of the database to use. Required if you are not using the \"Execute Query\" Action",
|
||||
"Find Rows": "Find Rows",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Update Row",
|
||||
"Delete Row": "Delete Row",
|
||||
"Get Tables": "Get Tables",
|
||||
"Execute Query": "Execute Query",
|
||||
"Reads rows from a table": "Reads rows from a table",
|
||||
"Inserts a new row into a table": "Inserts a new row into a table",
|
||||
"Updates one or more rows in a table": "Updates one or more rows in a table",
|
||||
"Deletes one or more rows from a table": "Deletes one or more rows from a table",
|
||||
"Returns a list of tables in the database": "Returns a list of tables in the database",
|
||||
"Executes a query on the mysql database and returns the results": "Executes a query on the mysql database and returns the results",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Table",
|
||||
"Condition": "Condition",
|
||||
"Arguments": "Arguments",
|
||||
"Columns": "Columns",
|
||||
"Values": "Values",
|
||||
"Search Column": "Search Column",
|
||||
"Search Value": "Search Value",
|
||||
"Query": "Query",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "Timezone for the MySQL server to use",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL condition, can also include logic operators, etc.",
|
||||
"Arguments can be used using ? in the condition": "Arguments can be used using ? in the condition",
|
||||
"Specify the columns you want to select": "Specify the columns you want to select",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "The query string to execute, use ? for arguments to avoid SQL injection.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Arguments to use in the query, if any. Should be in the same order as the ? in the query string.."
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"MySQL": "MySQL",
|
||||
"The world's most popular open-source database": "The world's most popular open-source database",
|
||||
"Host": "Host",
|
||||
"Port": "Port",
|
||||
"Username": "Username",
|
||||
"Password": "Password",
|
||||
"Database": "Database",
|
||||
"The hostname or address of the mysql server": "The hostname or address of the mysql server",
|
||||
"The port to use for connecting to the mysql server": "The port to use for connecting to the mysql server",
|
||||
"The username to use for connecting to the mysql server": "The username to use for connecting to the mysql server",
|
||||
"The password to use to identify at the mysql server": "The password to use to identify at the mysql server",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "The name of the database to use. Required if you are not using the \"Execute Query\" Action",
|
||||
"Find Rows": "Find Rows",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Update Row",
|
||||
"Delete Row": "Delete Row",
|
||||
"Get Tables": "Get Tables",
|
||||
"Execute Query": "Execute Query",
|
||||
"Reads rows from a table": "Reads rows from a table",
|
||||
"Inserts a new row into a table": "Inserts a new row into a table",
|
||||
"Updates one or more rows in a table": "Updates one or more rows in a table",
|
||||
"Deletes one or more rows from a table": "Deletes one or more rows from a table",
|
||||
"Returns a list of tables in the database": "Returns a list of tables in the database",
|
||||
"Executes a query on the mysql database and returns the results": "Executes a query on the mysql database and returns the results",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Table",
|
||||
"Condition": "Kondisi",
|
||||
"Arguments": "Arguments",
|
||||
"Columns": "Columns",
|
||||
"Values": "Values",
|
||||
"Search Column": "Search Column",
|
||||
"Search Value": "Search Value",
|
||||
"Query": "Query",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "Timezone for the MySQL server to use",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL condition, can also include logic operators, etc.",
|
||||
"Arguments can be used using ? in the condition": "Arguments can be used using ? in the condition",
|
||||
"Specify the columns you want to select": "Specify the columns you want to select",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "The query string to execute, use ? for arguments to avoid SQL injection.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Arguments to use in the query, if any. Should be in the same order as the ? in the query string.."
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"The world's most popular open-source database": "世界で最も人気のあるオープンソースデータベース",
|
||||
"Host": "ホスト",
|
||||
"Port": "ポート",
|
||||
"Username": "ユーザー名",
|
||||
"Password": "Password",
|
||||
"Database": "データベース",
|
||||
"The hostname or address of the mysql server": "mysql サーバーのホスト名またはアドレス",
|
||||
"The port to use for connecting to the mysql server": "mysqlサーバーへの接続に使用するポート",
|
||||
"The username to use for connecting to the mysql server": "mysqlサーバーに接続するために使用するユーザー名",
|
||||
"The password to use to identify at the mysql server": "mysql サーバーで識別するために使用するパスワード",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "使用するデータベースの名前。「クエリの実行」アクションを使用していない場合に必要です。",
|
||||
"Find Rows": "行を検索",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "行を更新",
|
||||
"Delete Row": "行を削除",
|
||||
"Get Tables": "テーブルの取得",
|
||||
"Execute Query": "クエリの実行",
|
||||
"Reads rows from a table": "テーブルから行を読み込みます。",
|
||||
"Inserts a new row into a table": "テーブルに新しい行を挿入",
|
||||
"Updates one or more rows in a table": "テーブル内の 1 つ以上の行を更新します。",
|
||||
"Deletes one or more rows from a table": "テーブルから1つまたは複数の行を削除します。",
|
||||
"Returns a list of tables in the database": "データベース内のテーブルのリストを返します",
|
||||
"Executes a query on the mysql database and returns the results": "mysql データベースのクエリを実行し、結果を返します",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "表",
|
||||
"Condition": "条件",
|
||||
"Arguments": "引数",
|
||||
"Columns": "列",
|
||||
"Values": "値",
|
||||
"Search Column": "列を検索",
|
||||
"Search Value": "検索値",
|
||||
"Query": "クエリ",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "MySQLサーバーが使用するタイムゾーン",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL条件はロジック演算子なども含めることができます。",
|
||||
"Arguments can be used using ? in the condition": "引数は?を使用して使用できます。",
|
||||
"Specify the columns you want to select": "選択する列を指定します",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "実行するクエリ文字列は、SQLインジェクションを避けるために引数に?を使用します。",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "クエリで使用する引数がある場合は、クエリ文字列の?と同じ順にする必要があります。"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"The world's most popular open-source database": "'s Werelds populairste open-source database",
|
||||
"Host": "Hostnaam",
|
||||
"Port": "Poort",
|
||||
"Username": "Gebruikersnaam",
|
||||
"Password": "Wachtwoord",
|
||||
"Database": "Database",
|
||||
"The hostname or address of the mysql server": "De hostnaam of het adres van de mysql server",
|
||||
"The port to use for connecting to the mysql server": "De poort die gebruikt moet worden voor het verbinden met de mysql server",
|
||||
"The username to use for connecting to the mysql server": "De gebruikersnaam voor het verbinden met de mysql server",
|
||||
"The password to use to identify at the mysql server": "Het wachtwoord dat moet worden gebruikt om te identificeren op de mysql server",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "De naam van de database om te gebruiken. Vereist als u de actie \"Execute Query\" niet gebruikt",
|
||||
"Find Rows": "Vind rijen",
|
||||
"Insert Row": "Rijen invoegen",
|
||||
"Update Row": "Rij bijwerken",
|
||||
"Delete Row": "Verwijder rij",
|
||||
"Get Tables": "Tabellen ophalen",
|
||||
"Execute Query": "Query uitvoeren",
|
||||
"Reads rows from a table": "Leest rijen van een tabel",
|
||||
"Inserts a new row into a table": "Voegt een nieuwe rij in een tabel in",
|
||||
"Updates one or more rows in a table": "Werkt een of meer rijen in een tabel bij",
|
||||
"Deletes one or more rows from a table": "Verwijdert één of meer rijen van een tabel",
|
||||
"Returns a list of tables in the database": "Geeft een lijst van tabellen in de database terug",
|
||||
"Executes a query on the mysql database and returns the results": "Voert een query uit op de mysql database en geeft de resultaten weer",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Tabel",
|
||||
"Condition": "Voorwaarde",
|
||||
"Arguments": "Argumenten",
|
||||
"Columns": "Kolommen",
|
||||
"Values": "Waarden",
|
||||
"Search Column": "Zoek in kolom",
|
||||
"Search Value": "Waarde zoeken",
|
||||
"Query": "Zoekopdracht",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **NIET** gebruikt dynamische invoer direct in de zoekterm of kolomnamen.\n \n\n Gebruik **?** in de query en dynamische waarden in args/waarden voor geparameteriseerde query's om **SQL injectie** te voorkomen.",
|
||||
"Timezone for the MySQL server to use": "Tijdzone voor de MySQL server om te gebruiken",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL conditie, kan ook logica operatoren etc. bevatten.",
|
||||
"Arguments can be used using ? in the condition": "Argumenten kunnen worden gebruikt ? in de staat",
|
||||
"Specify the columns you want to select": "Geef de kolommen op die u wilt selecteren",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "De uit te voeren query-tekenreeks, gebruik ? voor argumenten om SQL injectie te voorkomen.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Argumenten om te gebruiken in de query, indien van toepassing. Moet in dezelfde volgorde staan als de ? in de querystring.."
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"The world's most popular open-source database": "O banco de dados open-source mais popular do mundo",
|
||||
"Host": "Servidor",
|
||||
"Port": "Porta",
|
||||
"Username": "Usuário:",
|
||||
"Password": "Senha",
|
||||
"Database": "Banco",
|
||||
"The hostname or address of the mysql server": "O nome do host ou endereço do servidor mysql",
|
||||
"The port to use for connecting to the mysql server": "Porta a ser usada para conexão ao servidor mysql",
|
||||
"The username to use for connecting to the mysql server": "O nome de usuário a ser usado para conectar ao servidor mysql",
|
||||
"The password to use to identify at the mysql server": "A senha para identificar no servidor mysql",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "O nome do banco de dados a ser usado. Necessário se você não estiver usando a ação \"Executar consulta\"",
|
||||
"Find Rows": "Encontrar linhas",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Atualizar linha",
|
||||
"Delete Row": "Excluir linha",
|
||||
"Get Tables": "Obter tabelas",
|
||||
"Execute Query": "Executar Consulta",
|
||||
"Reads rows from a table": "Lê linhas de uma tabela",
|
||||
"Inserts a new row into a table": "Insere uma nova linha em uma tabela",
|
||||
"Updates one or more rows in a table": "Atualiza uma ou mais linhas em uma tabela",
|
||||
"Deletes one or more rows from a table": "Exclui uma ou mais linhas de uma tabela",
|
||||
"Returns a list of tables in the database": "Retorna uma lista de tabelas no banco de dados",
|
||||
"Executes a query on the mysql database and returns the results": "Executa uma consulta no banco de dados mysql e retorna os resultados",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Classificações",
|
||||
"Condition": "Condição",
|
||||
"Arguments": "Parâmetros",
|
||||
"Columns": "Colunas",
|
||||
"Values": "Valores",
|
||||
"Search Column": "Pesquisar Coluna",
|
||||
"Search Value": "Pesquisar Valor",
|
||||
"Query": "Requisição",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **NÃO** usa entrada dinâmica diretamente na cadeia de caracteres de consulta ou nos nomes das colunas.\n \n\n Use **?** na consulta e valores dinâmicos em args/valores para consultas parametrizadas para evitar **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "Fuso horário para o servidor MySQL a ser usado",
|
||||
"SQL condition, can also include logic operators, etc.": "A condição SQL também pode incluir operadores lógicos, etc.",
|
||||
"Arguments can be used using ? in the condition": "Os argumentos podem ser utilizados ? na condição",
|
||||
"Specify the columns you want to select": "Especifique as colunas que você deseja selecionar",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "A string de consulta a ser executada, use ? para argumentos que evitem a injeção de SQL.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Argumentos para usar na consulta, se houver. Deve estar na mesma ordem que o ? na string de consulta.."
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"MySQL": "MySQL",
|
||||
"The world's most popular open-source database": "Наиболее популярная в мире база данных с открытым исходным кодом",
|
||||
"Host": "Хост",
|
||||
"Port": "Порт",
|
||||
"Username": "Имя пользователя",
|
||||
"Password": "Пароль",
|
||||
"Database": "База данных",
|
||||
"The hostname or address of the mysql server": "Имя хоста или адрес сервера mysql",
|
||||
"The port to use for connecting to the mysql server": "Порт для подключения к серверу mysql",
|
||||
"The username to use for connecting to the mysql server": "Имя пользователя для подключения к серверу mysql",
|
||||
"The password to use to identify at the mysql server": "Пароль для идентификации на сервере mysql",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "Имя используемой базы данных. Требуется если вы не используете действие \"Выполнить запрос\"",
|
||||
"Find Rows": "Найти строки",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Обновить строку",
|
||||
"Delete Row": "Удалить строку",
|
||||
"Get Tables": "Получить таблицы",
|
||||
"Execute Query": "Выполнить запрос",
|
||||
"Reads rows from a table": "Читает строки из таблицы",
|
||||
"Inserts a new row into a table": "Вставляет новую строку в таблицу",
|
||||
"Updates one or more rows in a table": "Обновляет одну или несколько строк в таблице",
|
||||
"Deletes one or more rows from a table": "Удаляет одну или несколько строк из таблицы",
|
||||
"Returns a list of tables in the database": "Возвращает список таблиц в базе данных",
|
||||
"Executes a query on the mysql database and returns the results": "Выполняет запрос в базе данных mysql и возвращает результаты",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Таблица",
|
||||
"Condition": "Условие",
|
||||
"Arguments": "Аргументы",
|
||||
"Columns": "Столбцы",
|
||||
"Values": "Значения",
|
||||
"Search Column": "Столбец поиска",
|
||||
"Search Value": "Поисковое значение",
|
||||
"Query": "Запрос",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** использовать динамические входные данные непосредственно в строке запроса или названия столбцов.\n \n\n Используйте **?** в запросе и динамические значения аргов/значений для параметризированных запросов, чтобы предотвратить **инъекцию SQL**.",
|
||||
"Timezone for the MySQL server to use": "Часовой пояс для использования сервера MySQL",
|
||||
"SQL condition, can also include logic operators, etc.": "Условие SQL, может также включать логических операторов и т.д.",
|
||||
"Arguments can be used using ? in the condition": "Аргументы можно использовать ? в состоянии",
|
||||
"Specify the columns you want to select": "Укажите столбцы, которые вы хотите выбрать",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "Строка запроса для выполнения, используйте ? для аргументов, чтобы избежать SQL инъекции.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Аргументы для использования в запросе, если таковые имеются. Должно быть в том же порядке, что и ? в строке запроса.."
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"The world's most popular open-source database": "The world's most popular open-source database",
|
||||
"Host": "Host",
|
||||
"Port": "Port",
|
||||
"Username": "Username",
|
||||
"Password": "Password",
|
||||
"Database": "Database",
|
||||
"The hostname or address of the mysql server": "The hostname or address of the mysql server",
|
||||
"The port to use for connecting to the mysql server": "The port to use for connecting to the mysql server",
|
||||
"The username to use for connecting to the mysql server": "The username to use for connecting to the mysql server",
|
||||
"The password to use to identify at the mysql server": "The password to use to identify at the mysql server",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "The name of the database to use. Required if you are not using the \"Execute Query\" Action",
|
||||
"Find Rows": "Find Rows",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Update Row",
|
||||
"Delete Row": "Delete Row",
|
||||
"Get Tables": "Get Tables",
|
||||
"Execute Query": "Execute Query",
|
||||
"Reads rows from a table": "Reads rows from a table",
|
||||
"Inserts a new row into a table": "Inserts a new row into a table",
|
||||
"Updates one or more rows in a table": "Updates one or more rows in a table",
|
||||
"Deletes one or more rows from a table": "Deletes one or more rows from a table",
|
||||
"Returns a list of tables in the database": "Returns a list of tables in the database",
|
||||
"Executes a query on the mysql database and returns the results": "Executes a query on the mysql database and returns the results",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Table",
|
||||
"Condition": "Condition",
|
||||
"Arguments": "Arguments",
|
||||
"Columns": "Columns",
|
||||
"Values": "Values",
|
||||
"Search Column": "Search Column",
|
||||
"Search Value": "Search Value",
|
||||
"Query": "Query",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "Timezone for the MySQL server to use",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL condition, can also include logic operators, etc.",
|
||||
"Arguments can be used using ? in the condition": "Arguments can be used using ? in the condition",
|
||||
"Specify the columns you want to select": "Specify the columns you want to select",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "The query string to execute, use ? for arguments to avoid SQL injection.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Arguments to use in the query, if any. Should be in the same order as the ? in the query string.."
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"MySQL": "MySQL",
|
||||
"The world's most popular open-source database": "The world's most popular open-source database",
|
||||
"Host": "Host",
|
||||
"Port": "Port",
|
||||
"Username": "Username",
|
||||
"Password": "Password",
|
||||
"Database": "Database",
|
||||
"The hostname or address of the mysql server": "The hostname or address of the mysql server",
|
||||
"The port to use for connecting to the mysql server": "The port to use for connecting to the mysql server",
|
||||
"The username to use for connecting to the mysql server": "The username to use for connecting to the mysql server",
|
||||
"The password to use to identify at the mysql server": "The password to use to identify at the mysql server",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "The name of the database to use. Required if you are not using the \"Execute Query\" Action",
|
||||
"Find Rows": "Find Rows",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "Update Row",
|
||||
"Delete Row": "Delete Row",
|
||||
"Get Tables": "Get Tables",
|
||||
"Execute Query": "Execute Query",
|
||||
"Reads rows from a table": "Reads rows from a table",
|
||||
"Inserts a new row into a table": "Inserts a new row into a table",
|
||||
"Updates one or more rows in a table": "Updates one or more rows in a table",
|
||||
"Deletes one or more rows from a table": "Deletes one or more rows from a table",
|
||||
"Returns a list of tables in the database": "Returns a list of tables in the database",
|
||||
"Executes a query on the mysql database and returns the results": "Executes a query on the mysql database and returns the results",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "Table",
|
||||
"Condition": "Điều kiện",
|
||||
"Arguments": "Arguments",
|
||||
"Columns": "Columns",
|
||||
"Values": "Values",
|
||||
"Search Column": "Search Column",
|
||||
"Search Value": "Search Value",
|
||||
"Query": "Query",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "Timezone for the MySQL server to use",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL condition, can also include logic operators, etc.",
|
||||
"Arguments can be used using ? in the condition": "Arguments can be used using ? in the condition",
|
||||
"Specify the columns you want to select": "Specify the columns you want to select",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "The query string to execute, use ? for arguments to avoid SQL injection.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Arguments to use in the query, if any. Should be in the same order as the ? in the query string.."
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"The world's most popular open-source database": "The world's most popular open-source database",
|
||||
"Host": "主机",
|
||||
"Port": "端口",
|
||||
"Username": "用户名",
|
||||
"Password": "密码",
|
||||
"Database": "Database",
|
||||
"The hostname or address of the mysql server": "The hostname or address of the mysql server",
|
||||
"The port to use for connecting to the mysql server": "The port to use for connecting to the mysql server",
|
||||
"The username to use for connecting to the mysql server": "The username to use for connecting to the mysql server",
|
||||
"The password to use to identify at the mysql server": "The password to use to identify at the mysql server",
|
||||
"The name of the database to use. Required if you are not using the \"Execute Query\" Action": "The name of the database to use. Required if you are not using the \"Execute Query\" Action",
|
||||
"Find Rows": "查找行",
|
||||
"Insert Row": "Insert Row",
|
||||
"Update Row": "更新行",
|
||||
"Delete Row": "删除行",
|
||||
"Get Tables": "Get Tables",
|
||||
"Execute Query": "Execute Query",
|
||||
"Reads rows from a table": "Reads rows from a table",
|
||||
"Inserts a new row into a table": "Inserts a new row into a table",
|
||||
"Updates one or more rows in a table": "Updates one or more rows in a table",
|
||||
"Deletes one or more rows from a table": "Deletes one or more rows from a table",
|
||||
"Returns a list of tables in the database": "Returns a list of tables in the database",
|
||||
"Executes a query on the mysql database and returns the results": "Executes a query on the mysql database and returns the results",
|
||||
"Markdown": "Markdown",
|
||||
"Timezone": "Timezone",
|
||||
"Table": "表",
|
||||
"Condition": "条件",
|
||||
"Arguments": "Arguments",
|
||||
"Columns": "Columns",
|
||||
"Values": "值",
|
||||
"Search Column": "Search Column",
|
||||
"Search Value": "搜索值",
|
||||
"Query": "Query",
|
||||
"\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.": "\n **DO NOT** use dynamic input directly in the query string or column names.\n \n\n Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.",
|
||||
"Timezone for the MySQL server to use": "Timezone for the MySQL server to use",
|
||||
"SQL condition, can also include logic operators, etc.": "SQL condition, can also include logic operators, etc.",
|
||||
"Arguments can be used using ? in the condition": "Arguments can be used using ? in the condition",
|
||||
"Specify the columns you want to select": "Specify the columns you want to select",
|
||||
"The query string to execute, use ? for arguments to avoid SQL injection.": "The query string to execute, use ? for arguments to avoid SQL injection.",
|
||||
"Arguments to use in the query, if any. Should be in the same order as the ? in the query string..": "Arguments to use in the query, if any. Should be in the same order as the ? in the query string.."
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
import {
|
||||
PieceAuth,
|
||||
Property,
|
||||
createPiece,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import actions from './lib/actions';
|
||||
|
||||
export const mysqlAuth = PieceAuth.CustomAuth({
|
||||
props: {
|
||||
host: Property.ShortText({
|
||||
displayName: 'Host',
|
||||
required: true,
|
||||
description: 'The hostname or address of the mysql server',
|
||||
}),
|
||||
port: Property.Number({
|
||||
displayName: 'Port',
|
||||
defaultValue: 3306,
|
||||
description: 'The port to use for connecting to the mysql server',
|
||||
required: true,
|
||||
}),
|
||||
user: Property.ShortText({
|
||||
displayName: 'Username',
|
||||
required: true,
|
||||
description: 'The username to use for connecting to the mysql server',
|
||||
}),
|
||||
password: PieceAuth.SecretText({
|
||||
displayName: 'Password',
|
||||
description: 'The password to use to identify at the mysql server',
|
||||
required: true,
|
||||
}),
|
||||
database: Property.ShortText({
|
||||
displayName: 'Database',
|
||||
description: 'The name of the database to use. Required if you are not using the "Execute Query" Action',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
required: true,
|
||||
});
|
||||
|
||||
export const mysql = createPiece({
|
||||
displayName: 'MySQL',
|
||||
description: "The world's most popular open-source database",
|
||||
|
||||
minimumSupportedRelease: '0.30.0',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/mysql.png',
|
||||
categories: [PieceCategory.DEVELOPER_TOOLS],
|
||||
authors: ["JanHolger","kishanprmr","khaledmashaly","abuaboud"],
|
||||
auth: mysqlAuth,
|
||||
actions,
|
||||
triggers: [],
|
||||
});
|
||||
@@ -0,0 +1,39 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { mysqlCommon, mysqlConnect, sanitizeColumnName, warningMarkdown } from '../common';
|
||||
import { mysqlAuth } from '../..';
|
||||
import sqlstring from 'sqlstring';
|
||||
|
||||
export default createAction({
|
||||
auth: mysqlAuth,
|
||||
name: 'delete_row',
|
||||
displayName: 'Delete Row',
|
||||
description: 'Deletes one or more rows from a table',
|
||||
props: {
|
||||
markdown: warningMarkdown,
|
||||
timezone: mysqlCommon.timezone,
|
||||
table: mysqlCommon.table(),
|
||||
search_column: Property.ShortText({
|
||||
displayName: 'Search Column',
|
||||
required: true,
|
||||
}),
|
||||
search_value: Property.ShortText({
|
||||
displayName: 'Search Value',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const tableName = sanitizeColumnName(context.propsValue.table);
|
||||
const searchColumn = sanitizeColumnName(context.propsValue.search_column);
|
||||
const searchValue = context.propsValue.search_value;
|
||||
|
||||
const queryString = `DELETE FROM ${tableName} WHERE ${searchColumn}=?;`;
|
||||
|
||||
const connection = await mysqlConnect(context.auth, context.propsValue);
|
||||
try {
|
||||
const result = await connection.query(queryString, [searchValue]);
|
||||
return result;
|
||||
} finally {
|
||||
await connection.end();
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,36 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { mysqlCommon, mysqlConnect, warningMarkdown } from '../common';
|
||||
import { mysqlAuth } from '../..';
|
||||
|
||||
export default createAction({
|
||||
auth: mysqlAuth,
|
||||
name: 'execute_query',
|
||||
displayName: 'Execute Query',
|
||||
description: 'Executes a query on the mysql database and returns the results',
|
||||
props: {
|
||||
markdown: warningMarkdown,
|
||||
timezone: mysqlCommon.timezone,
|
||||
query: Property.ShortText({
|
||||
displayName: 'Query',
|
||||
description: 'The query string to execute, use ? for arguments to avoid SQL injection.',
|
||||
required: true,
|
||||
}),
|
||||
args: Property.Array({
|
||||
displayName: 'Arguments',
|
||||
description: 'Arguments to use in the query, if any. Should be in the same order as the ? in the query string..',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const conn = await mysqlConnect(context.auth, context.propsValue);
|
||||
try {
|
||||
const results = await conn.query(
|
||||
context.propsValue.query,
|
||||
context.propsValue.args || []
|
||||
);
|
||||
return Array.isArray(results) ? { results } : results;
|
||||
} finally {
|
||||
await conn.end();
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,47 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { mysqlCommon, mysqlConnect, sanitizeColumnName, warningMarkdown } from '../common';
|
||||
import { mysqlAuth } from '../..';
|
||||
|
||||
export default createAction({
|
||||
auth: mysqlAuth,
|
||||
name: 'find_rows',
|
||||
displayName: 'Find Rows',
|
||||
description: 'Reads rows from a table',
|
||||
props: {
|
||||
markdown: warningMarkdown,
|
||||
timezone: mysqlCommon.timezone,
|
||||
table: mysqlCommon.table(),
|
||||
condition: Property.ShortText({
|
||||
displayName: 'Condition',
|
||||
description: 'SQL condition, can also include logic operators, etc.',
|
||||
required: true,
|
||||
}),
|
||||
args: Property.Array({
|
||||
displayName: 'Arguments',
|
||||
description: 'Arguments can be used using ? in the condition',
|
||||
required: false,
|
||||
}),
|
||||
columns: Property.Array({
|
||||
displayName: 'Columns',
|
||||
description: 'Specify the columns you want to select',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const columns = (context.propsValue.columns as string[]) || ['*'];
|
||||
const qsColumns = columns
|
||||
.map((c) => sanitizeColumnName(c))
|
||||
.join(',');
|
||||
|
||||
const qs = `SELECT ${qsColumns} FROM ${sanitizeColumnName(context.propsValue.table)} WHERE ${context.propsValue.condition};`;
|
||||
|
||||
const conn = await mysqlConnect(context.auth, context.propsValue);
|
||||
|
||||
try {
|
||||
const results = await conn.query(qs, context.propsValue.args);
|
||||
return { results };
|
||||
} finally {
|
||||
await conn.end();
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,20 @@
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { mysqlConnect, mysqlGetTableNames } from '../common';
|
||||
import { mysqlAuth } from '../..';
|
||||
|
||||
export default createAction({
|
||||
auth: mysqlAuth,
|
||||
name: 'get_tables',
|
||||
displayName: 'Get Tables',
|
||||
description: 'Returns a list of tables in the database',
|
||||
props: {},
|
||||
async run(context) {
|
||||
const conn = await mysqlConnect(context.auth, context.propsValue);
|
||||
try {
|
||||
const tables = await mysqlGetTableNames(conn);
|
||||
return { tables };
|
||||
} finally {
|
||||
await conn.end();
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,15 @@
|
||||
import executeQuery from './execute-query';
|
||||
import getTables from './get-tables';
|
||||
import insertRow from './insert-row';
|
||||
import updateRows from './update-row';
|
||||
import deleteRows from './delete-row';
|
||||
import selectRows from './find-rows';
|
||||
|
||||
export default [
|
||||
selectRows,
|
||||
insertRow,
|
||||
updateRows,
|
||||
deleteRows,
|
||||
getTables,
|
||||
executeQuery,
|
||||
];
|
||||
@@ -0,0 +1,33 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { mysqlCommon, mysqlConnect, sanitizeColumnName, warningMarkdown } from '../common';
|
||||
import { mysqlAuth } from '../..';
|
||||
import sqlstring from 'sqlstring';
|
||||
|
||||
export default createAction({
|
||||
auth: mysqlAuth,
|
||||
name: 'insert_row',
|
||||
displayName: 'Insert Row',
|
||||
description: 'Inserts a new row into a table',
|
||||
props: {
|
||||
timezone: mysqlCommon.timezone,
|
||||
table: mysqlCommon.table(),
|
||||
values: Property.Object({
|
||||
displayName: 'Values',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const fields = Object.keys(context.propsValue.values);
|
||||
const qsFields = fields.map((f) => sanitizeColumnName(f)).join(',');
|
||||
const qsValues = fields.map(() => '?').join(',');
|
||||
const qs = `INSERT INTO ${sanitizeColumnName(context.propsValue.table)} (${qsFields}) VALUES (${qsValues});`;
|
||||
const conn = await mysqlConnect(context.auth, context.propsValue);
|
||||
try {
|
||||
const values = fields.map((f) => context.propsValue.values[f]);
|
||||
const result = await conn.query(qs, values);
|
||||
return result;
|
||||
} finally {
|
||||
await conn.end();
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,43 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { mysqlCommon, mysqlConnect, sanitizeColumnName } from '../common';
|
||||
import { mysqlAuth } from '../..';
|
||||
import sqlstring from 'sqlstring';
|
||||
|
||||
export default createAction({
|
||||
auth: mysqlAuth,
|
||||
name: 'update_row',
|
||||
displayName: 'Update Row',
|
||||
description: 'Updates one or more rows in a table',
|
||||
props: {
|
||||
timezone: mysqlCommon.timezone,
|
||||
table: mysqlCommon.table(),
|
||||
values: Property.Object({
|
||||
displayName: 'Values',
|
||||
required: true,
|
||||
}),
|
||||
search_column: Property.ShortText({
|
||||
displayName: 'Search Column',
|
||||
required: true,
|
||||
}),
|
||||
search_value: Property.ShortText({
|
||||
displayName: 'Search Value',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const fields = Object.keys(context.propsValue.values);
|
||||
const qsValues = fields.map((f) => sanitizeColumnName(f) + '=?').join(',');
|
||||
const qs = `UPDATE ${sanitizeColumnName(context.propsValue.table)} SET ${qsValues} WHERE ${sqlstring.escape(context.propsValue.search_column)}=?;`;
|
||||
const conn = await mysqlConnect(context.auth, context.propsValue);
|
||||
try {
|
||||
const values = fields.map((f) => context.propsValue.values[f]);
|
||||
const result = await conn.query(qs, [
|
||||
...values,
|
||||
context.propsValue.search_value,
|
||||
]);
|
||||
return result;
|
||||
} finally {
|
||||
await conn.end();
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,83 @@
|
||||
import {
|
||||
AppConnectionValueForAuthProperty,
|
||||
PiecePropValueSchema,
|
||||
Property,
|
||||
StaticPropsValue,
|
||||
} from '@activepieces/pieces-framework';
|
||||
import { Connection, createConnection } from 'promise-mysql';
|
||||
import { mysqlAuth } from '../..';
|
||||
import sqlstring from 'sqlstring';
|
||||
|
||||
export const warningMarkdown = Property.MarkDown({
|
||||
value: `
|
||||
**DO NOT** use dynamic input directly in the query string or column names.
|
||||
\n
|
||||
Use **?** in the query and dynamic values in args/values for parameterized queries to prevent **SQL injection**.`
|
||||
});
|
||||
|
||||
export async function mysqlConnect(
|
||||
auth: AppConnectionValueForAuthProperty<typeof mysqlAuth>,
|
||||
propsValue: StaticPropsValue<any>
|
||||
): Promise<Connection> {
|
||||
const conn = await createConnection({
|
||||
host: auth.props.host,
|
||||
port: auth.props.port || 3306,
|
||||
user: auth.props.user,
|
||||
password: auth.props.password,
|
||||
database: auth.props.database || undefined,
|
||||
timezone: propsValue.timezone,
|
||||
});
|
||||
return conn;
|
||||
}
|
||||
|
||||
export async function mysqlGetTableNames(conn: Connection): Promise<string[]> {
|
||||
const result = await conn.query('SHOW TABLES;');
|
||||
return result.map((row: Record<string, string>) => row[Object.keys(row)[0]]);
|
||||
}
|
||||
|
||||
export const mysqlCommon = {
|
||||
timezone: Property.ShortText({
|
||||
displayName: 'Timezone',
|
||||
description: 'Timezone for the MySQL server to use',
|
||||
required: false,
|
||||
}),
|
||||
table: (required = true) =>
|
||||
Property.Dropdown({
|
||||
auth: mysqlAuth,
|
||||
displayName: 'Table',
|
||||
required,
|
||||
refreshers: [],
|
||||
options: async ({ auth }) => {
|
||||
if (!auth) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'Connect to your database first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
const conn = await mysqlConnect(
|
||||
auth,
|
||||
{ auth }
|
||||
);
|
||||
const tables = await mysqlGetTableNames(conn);
|
||||
await conn.end();
|
||||
return {
|
||||
disabled: false,
|
||||
options: tables.map((table) => {
|
||||
return {
|
||||
label: table,
|
||||
value: table,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
export function sanitizeColumnName(name: string | undefined): string {
|
||||
if ( name == '*') {
|
||||
return name;
|
||||
}
|
||||
return sqlstring.escapeId(name);
|
||||
}
|
||||
Reference in New Issue
Block a user