diff --git a/components/azure_sql/actions/execute-query/execute-query.mjs b/components/azure_sql/actions/execute-query/execute-query.mjs index 8903f8fdb59c9..42bbdc31adea4 100644 --- a/components/azure_sql/actions/execute-query/execute-query.mjs +++ b/components/azure_sql/actions/execute-query/execute-query.mjs @@ -5,7 +5,7 @@ export default { name: "Execute Query", description: "Executes a SQL query and returns the results. [See the documentation](https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql?view=azuresqldb-current)", type: "action", - version: "0.0.5", + version: "0.0.6", props: { app, query: { @@ -20,18 +20,26 @@ export default { description: "The inputs to the query. These will be available as @input_parameter in the query. For example, if you provide an input named 'id', you can use @id in the query.", optional: true, }, + requestTimeout: { + propDefinition: [ + app, + "requestTimeout", + ], + }, }, run({ $ }) { const { app, inputs, query, + requestTimeout, } = this; return app.executeQuery({ $, query, inputs, + requestTimeout, summary: () => "Successfully executed query.", }); }, diff --git a/components/azure_sql/actions/execute-raw-query/execute-raw-query.mjs b/components/azure_sql/actions/execute-raw-query/execute-raw-query.mjs index 3c0937967ec81..04f303c1c4e7b 100644 --- a/components/azure_sql/actions/execute-raw-query/execute-raw-query.mjs +++ b/components/azure_sql/actions/execute-raw-query/execute-raw-query.mjs @@ -5,10 +5,9 @@ export default { name: "Execute SQL Query", description: "Execute a custom SQL query. See [our docs](https://pipedream.com/docs/databases/working-with-sql) to learn more about working with SQL in Pipedream.", type: "action", - version: "0.0.4", + version: "0.0.5", props: { app, - // eslint-disable-next-line pipedream/props-description sql: { type: "sql", auth: { @@ -16,9 +15,16 @@ export default { }, label: "SQL Query", }, + requestTimeout: { + propDefinition: [ + app, + "requestTimeout", + ], + }, }, async run({ $ }) { const args = this.app.executeQueryAdapter(this.sql); + args.requestTimeout = this.requestTimeout; const response = await this.app.executeQuery(args); $.export("$summary", "Successfully executed query."); return response; diff --git a/components/azure_sql/actions/insert-row/insert-row.mjs b/components/azure_sql/actions/insert-row/insert-row.mjs index a64dde2806345..78bcaf1f88acc 100644 --- a/components/azure_sql/actions/insert-row/insert-row.mjs +++ b/components/azure_sql/actions/insert-row/insert-row.mjs @@ -4,7 +4,7 @@ export default { key: "azure_sql-insert-row", name: "Insert Row", description: "Inserts a new row in a table. [See the documentation](https://learn.microsoft.com/en-us/sql/t-sql/statements/insert-transact-sql?view=azuresqldb-current)", - version: "0.0.5", + version: "0.0.6", type: "action", props: { app, @@ -16,6 +16,12 @@ export default { ], reloadProps: true, }, + requestTimeout: { + propDefinition: [ + app, + "requestTimeout", + ], + }, }, async additionalProps() { const { @@ -41,6 +47,7 @@ export default { const { app, table, + requestTimeout, ...inputs } = this; @@ -48,6 +55,7 @@ export default { $, table, inputs, + requestTimeout, summary: () => "Successfully inserted row.", }); }, diff --git a/components/azure_sql/azure_sql.app.mjs b/components/azure_sql/azure_sql.app.mjs index bf34b1933d1a9..16b48386e4d47 100644 --- a/components/azure_sql/azure_sql.app.mjs +++ b/components/azure_sql/azure_sql.app.mjs @@ -28,6 +28,13 @@ export default { return recordset.map(({ COLUMN_NAME: columnName }) => columnName); }, }, + requestTimeout: { + type: "integer", + label: "Request Timeout", + description: "The timeout for query execution in seconds. Default is 60 seconds if not specified.", + optional: true, + default: 60, + }, }, methods: { ...sqlProxy.methods, @@ -37,7 +44,7 @@ export default { }, getConfig() { const { - host, username, password, port, database, + host, username, password, port, database, requestTimeout, } = this.$auth; return { user: username, @@ -51,7 +58,7 @@ export default { options: { encrypt: true, port: Number(port), - requestTimeout: 60000, + requestTimeout: (requestTimeout || 60) * 1000, // Convert to milliseconds }, }; }, @@ -148,10 +155,16 @@ export default { }, async executeQuery(preparedStatement = {}) { let connection; - const { query } = preparedStatement; + const { + query, requestTimeout, + } = preparedStatement; const inputs = preparedStatement?.inputs || {}; try { - connection = await sql.connect(this.getClientConfiguration()); + const config = this.getConfig(); + if (requestTimeout) { + config.options.requestTimeout = requestTimeout * 1000; // Convert to milliseconds + } + connection = await sql.connect(config); const input = Object.entries(inputs) .reduce((req, inputArgs) => diff --git a/components/azure_sql/package.json b/components/azure_sql/package.json index d2a299f1904fe..2eb548a18e497 100644 --- a/components/azure_sql/package.json +++ b/components/azure_sql/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/azure_sql", - "version": "0.1.4", + "version": "0.1.5", "description": "Pipedream Microsoft Azure SQL Database Components", "main": "azure_sql.app.mjs", "keywords": [ diff --git a/components/azure_sql/sources/new-column/new-column.mjs b/components/azure_sql/sources/new-column/new-column.mjs index a6d6747ee0fe3..cd9286c62076c 100644 --- a/components/azure_sql/sources/new-column/new-column.mjs +++ b/components/azure_sql/sources/new-column/new-column.mjs @@ -7,7 +7,7 @@ export default { name: "New Column", description: "Triggers when a new column is added to a table.", type: "source", - version: "0.0.5", + version: "0.0.6", dedupe: "unique", props: { ...common.props, diff --git a/components/azure_sql/sources/new-or-updated-row/new-or-updated-row.mjs b/components/azure_sql/sources/new-or-updated-row/new-or-updated-row.mjs index 8f3e65214e561..bef6d6b1ebdea 100644 --- a/components/azure_sql/sources/new-or-updated-row/new-or-updated-row.mjs +++ b/components/azure_sql/sources/new-or-updated-row/new-or-updated-row.mjs @@ -7,7 +7,7 @@ export default { name: "New or Updated Row", description: "Triggers when a new row is added or an existing row is updated.", type: "source", - version: "0.0.5", + version: "0.0.6", dedupe: "unique", props: { ...common.props,