mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-31 01:37:58 -05:00
* feat(tools): added calcom * added more triggers, tested * updated regex in script for release to be more lenient * fix(tag-dropdown): performance improvements and scroll bug fixes - Add flatTagIndexMap for O(1) tag lookups (replaces O(n²) findIndex calls) - Memoize caret position calculation to avoid DOM manipulation on every render - Use refs for inputValue/cursorPosition to keep handleTagSelect callback stable - Change itemRefs from index-based to tag-based keys to prevent stale refs - Fix scroll jump in nested folders by removing scroll reset from registerFolder - Add onFolderEnter callback for scroll reset when entering folder via keyboard - Disable keyboard navigation wrap-around at boundaries - Simplify selection reset to single effect on flatTagList.length change Also: - Add safeCompare utility for timing-safe string comparison - Refactor webhook signature validation to use safeCompare Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * updated types * fix(calcom): simplify required field constraints for booking attendee The condition field already restricts these to calcom_create_booking, so simplified to required: true. Per Cal.com API docs, email is optional while name and timeZone are required. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * added tests * updated folder multi select, updated calcom and github tools and docs generator script * updated drag, updated outputs for tools, regen docs with nested docs script * updated setup instructions links, destructure trigger outputs, fix text subblock styling * updated docs gen script * updated docs script * updated docs script * updated script * remove destructuring of stripe webhook * expanded wand textarea, updated calcom tools --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
206 lines
8.3 KiB
Plaintext
206 lines
8.3 KiB
Plaintext
---
|
|
title: PostgreSQL
|
|
description: Connect to PostgreSQL database
|
|
---
|
|
|
|
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
|
|
|
<BlockInfoCard
|
|
type="postgresql"
|
|
color="#336791"
|
|
/>
|
|
|
|
{/* MANUAL-CONTENT-START:intro */}
|
|
The [PostgreSQL](https://www.postgresql.org/) tool enables you to connect to any PostgreSQL database and perform a wide range of database operations directly within your agentic workflows. With secure connection handling and flexible configuration, you can easily manage and interact with your data.
|
|
|
|
With the PostgreSQL tool, you can:
|
|
|
|
- **Query data**: Execute SELECT queries to retrieve data from your PostgreSQL tables using the `postgresql_query` operation.
|
|
- **Insert records**: Add new rows to your tables with the `postgresql_insert` operation by specifying the table and data to insert.
|
|
- **Update records**: Modify existing data in your tables using the `postgresql_update` operation, providing the table, new data, and WHERE conditions.
|
|
- **Delete records**: Remove rows from your tables with the `postgresql_delete` operation, specifying the table and WHERE conditions.
|
|
- **Execute raw SQL**: Run any custom SQL command using the `postgresql_execute` operation for advanced use cases.
|
|
|
|
The PostgreSQL tool is ideal for scenarios where your agents need to interact with structured data—such as automating reporting, syncing data between systems, or powering data-driven workflows. It streamlines database access, making it easy to read, write, and manage your PostgreSQL data programmatically.
|
|
{/* MANUAL-CONTENT-END */}
|
|
|
|
|
|
## Usage Instructions
|
|
|
|
Integrate PostgreSQL into the workflow. Can query, insert, update, delete, and execute raw SQL.
|
|
|
|
|
|
|
|
## Tools
|
|
|
|
### `postgresql_query`
|
|
|
|
Execute a SELECT query on PostgreSQL database
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `host` | string | Yes | PostgreSQL server hostname or IP address |
|
|
| `port` | number | Yes | PostgreSQL server port \(default: 5432\) |
|
|
| `database` | string | Yes | Database name to connect to |
|
|
| `username` | string | Yes | Database username |
|
|
| `password` | string | Yes | Database password |
|
|
| `ssl` | string | No | SSL connection mode \(disabled, required, preferred\) |
|
|
| `query` | string | Yes | SQL SELECT query to execute |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `message` | string | Operation status message |
|
|
| `rows` | array | Array of rows returned from the query |
|
|
| `rowCount` | number | Number of rows returned |
|
|
|
|
### `postgresql_insert`
|
|
|
|
Insert data into PostgreSQL database
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `host` | string | Yes | PostgreSQL server hostname or IP address |
|
|
| `port` | number | Yes | PostgreSQL server port \(default: 5432\) |
|
|
| `database` | string | Yes | Database name to connect to |
|
|
| `username` | string | Yes | Database username |
|
|
| `password` | string | Yes | Database password |
|
|
| `ssl` | string | No | SSL connection mode \(disabled, required, preferred\) |
|
|
| `table` | string | Yes | Table name to insert data into |
|
|
| `data` | object | Yes | Data object to insert \(key-value pairs\) |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `message` | string | Operation status message |
|
|
| `rows` | array | Inserted data \(if RETURNING clause used\) |
|
|
| `rowCount` | number | Number of rows inserted |
|
|
|
|
### `postgresql_update`
|
|
|
|
Update data in PostgreSQL database
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `host` | string | Yes | PostgreSQL server hostname or IP address |
|
|
| `port` | number | Yes | PostgreSQL server port \(default: 5432\) |
|
|
| `database` | string | Yes | Database name to connect to |
|
|
| `username` | string | Yes | Database username |
|
|
| `password` | string | Yes | Database password |
|
|
| `ssl` | string | No | SSL connection mode \(disabled, required, preferred\) |
|
|
| `table` | string | Yes | Table name to update data in |
|
|
| `data` | object | Yes | Data object with fields to update \(key-value pairs\) |
|
|
| `where` | string | Yes | WHERE clause condition \(without WHERE keyword\) |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `message` | string | Operation status message |
|
|
| `rows` | array | Updated data \(if RETURNING clause used\) |
|
|
| `rowCount` | number | Number of rows updated |
|
|
|
|
### `postgresql_delete`
|
|
|
|
Delete data from PostgreSQL database
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `host` | string | Yes | PostgreSQL server hostname or IP address |
|
|
| `port` | number | Yes | PostgreSQL server port \(default: 5432\) |
|
|
| `database` | string | Yes | Database name to connect to |
|
|
| `username` | string | Yes | Database username |
|
|
| `password` | string | Yes | Database password |
|
|
| `ssl` | string | No | SSL connection mode \(disabled, required, preferred\) |
|
|
| `table` | string | Yes | Table name to delete data from |
|
|
| `where` | string | Yes | WHERE clause condition \(without WHERE keyword\) |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `message` | string | Operation status message |
|
|
| `rows` | array | Deleted data \(if RETURNING clause used\) |
|
|
| `rowCount` | number | Number of rows deleted |
|
|
|
|
### `postgresql_execute`
|
|
|
|
Execute raw SQL query on PostgreSQL database
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `host` | string | Yes | PostgreSQL server hostname or IP address |
|
|
| `port` | number | Yes | PostgreSQL server port \(default: 5432\) |
|
|
| `database` | string | Yes | Database name to connect to |
|
|
| `username` | string | Yes | Database username |
|
|
| `password` | string | Yes | Database password |
|
|
| `ssl` | string | No | SSL connection mode \(disabled, required, preferred\) |
|
|
| `query` | string | Yes | Raw SQL query to execute |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `message` | string | Operation status message |
|
|
| `rows` | array | Array of rows returned from the query |
|
|
| `rowCount` | number | Number of rows affected |
|
|
|
|
### `postgresql_introspect`
|
|
|
|
Introspect PostgreSQL database schema to retrieve table structures, columns, and relationships
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `host` | string | Yes | PostgreSQL server hostname or IP address |
|
|
| `port` | number | Yes | PostgreSQL server port \(default: 5432\) |
|
|
| `database` | string | Yes | Database name to connect to |
|
|
| `username` | string | Yes | Database username |
|
|
| `password` | string | Yes | Database password |
|
|
| `ssl` | string | No | SSL connection mode \(disabled, required, preferred\) |
|
|
| `schema` | string | No | Schema to introspect \(default: public\) |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `message` | string | Operation status message |
|
|
| `tables` | array | Array of table schemas with columns, keys, and indexes |
|
|
| ↳ `name` | string | Table name |
|
|
| ↳ `schema` | string | Schema name \(e.g., public\) |
|
|
| ↳ `columns` | array | Table columns |
|
|
| ↳ `name` | string | Column name |
|
|
| ↳ `type` | string | Data type \(e.g., integer, varchar, timestamp\) |
|
|
| ↳ `nullable` | boolean | Whether the column allows NULL values |
|
|
| ↳ `default` | string | Default value expression |
|
|
| ↳ `isPrimaryKey` | boolean | Whether the column is part of the primary key |
|
|
| ↳ `isForeignKey` | boolean | Whether the column is a foreign key |
|
|
| ↳ `references` | object | Foreign key reference information |
|
|
| ↳ `table` | string | Referenced table name |
|
|
| ↳ `column` | string | Referenced column name |
|
|
| ↳ `primaryKey` | array | Primary key column names |
|
|
| ↳ `foreignKeys` | array | Foreign key constraints |
|
|
| ↳ `column` | string | Local column name |
|
|
| ↳ `referencesTable` | string | Referenced table name |
|
|
| ↳ `referencesColumn` | string | Referenced column name |
|
|
| ↳ `indexes` | array | Table indexes |
|
|
| ↳ `name` | string | Index name |
|
|
| ↳ `columns` | array | Columns included in the index |
|
|
| ↳ `unique` | boolean | Whether the index enforces uniqueness |
|
|
| `schemas` | array | List of available schemas in the database |
|
|
|
|
|