### Quick MinIO Setup on GCE VM Source: https://github.com/teableio/docs/blob/main/en/deploy/gcp.mdx Installs and starts a MinIO server on a Google Compute Engine VM for S3-compatible storage. Requires SSH access and root privileges for installation. ```bash # Create VM gcloud compute instances create minio-server \ --machine-type=e2-medium \ --zone=us-central1-a \ --image-family=ubuntu-2204-lts \ --image-project=ubuntu-os-cloud \ --boot-disk-size=100GB # SSH and install MinIO gcloud compute ssh minio-server --zone=us-central1-a # On the VM: wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio sudo mv minio /usr/local/bin/ export MINIO_ROOT_USER=admin export MINIO_ROOT_PASSWORD= minio server /data --console-address ":9001" ``` -------------------------------- ### Install and Run MinIO Server on Azure VM Source: https://github.com/teableio/docs/blob/main/en/deploy/azure.mdx Quick setup for MinIO on an Azure VM. This involves downloading the MinIO binary, setting root credentials, and starting the server. ```bash wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio sudo mv minio /usr/local/bin/ # Start MinIO export MINIO_ROOT_USER=admin export MINIO_ROOT_PASSWORD= minio server /data --console-address ":9001" ``` -------------------------------- ### Install Docker Source: https://github.com/teableio/docs/blob/main/en/deploy/docker.mdx Downloads and installs the latest version of Docker and verifies the installation. ```bash # Download the latest version of Docker curl -fsSL https://get.docker.com | bash -s docker # Verify the installation docker --version docker-compose --version ``` -------------------------------- ### Example Prompt for Classification Source: https://github.com/teableio/docs/blob/main/en/basic/automation/actions/ai/ai-generate.mdx Provide specific instructions and examples to guide the AI in classifying text. This helps ensure accurate and consistent output. ```text Classify the following support ticket. Return only the category name. Categories: Billing, Technical, Account, Other Examples: - "I can't log in to my account" → Account - "My invoice amount is wrong" → Billing - "The API returns a 500 error" → Technical Ticket: {{Ticket Description}} ``` -------------------------------- ### Install Mintlify CLI Source: https://github.com/teableio/docs/blob/main/README.md Install the Mintlify CLI globally using npm. This tool is used for previewing documentation changes locally. ```bash npm i -g mintlify ``` -------------------------------- ### Example Authorization URL with PKCE Source: https://github.com/teableio/docs/blob/main/en/api-doc/oauth.mdx An example of a complete URL to redirect users for authorization using the PKCE flow. Ensure all query parameters, including code challenge and method, are correctly set. ```http https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=http://127.0.0.1:8080/callback&code_challenge=YOUR_CODE_CHALLENGE&code_challenge_method=S256&state=random_state_string ``` -------------------------------- ### Example SQL Query Source: https://github.com/teableio/docs/blob/main/en/api-doc/sql-query.mdx This is an example of how to query data from a table using SQL. Remember to use double quotes around schema and table names for case sensitivity. ```sql SELECT * FROM "bseamGnQT65TVSCzIaC"."clients" LIMIT 100 ``` -------------------------------- ### Mintlify Install Dependencies Source: https://github.com/teableio/docs/blob/main/README.md If Mintlify dev is not running, run 'mintlify install' to re-install dependencies. This command helps resolve issues related to missing or corrupted dependencies. ```bash mintlify install ``` -------------------------------- ### Run Mintlify Development Server Source: https://github.com/teableio/docs/blob/main/README.md Start the Mintlify development server from the root of your documentation directory. Ensure docs.json is present in the directory. ```bash mintlify dev ``` -------------------------------- ### Example Authorization Request URL Source: https://github.com/teableio/docs/blob/main/en/api-doc/oauth.mdx This example demonstrates how to construct the authorization URL, including the client ID, redirect URI, and desired scopes. The `state` parameter is used to prevent CSRF attacks. ```http https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=https://yourapp.com/callback&scope=table|read%20record|read&state=random_state_string ``` -------------------------------- ### Example Request: Exchange Code for Tokens (Standard Flow) Source: https://github.com/teableio/docs/blob/main/en/api-doc/oauth.mdx Example using curl to send a POST request to exchange an authorization code for tokens. Replace placeholders with your actual credentials and code. ```bash curl -X POST https://app.teable.ai/api/oauth/access_token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code" \ -d "code=AUTHORIZATION_CODE" \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET" \ -d "redirect_uri=https://yourapp.com/callback" ``` -------------------------------- ### Example Success Response Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/create.mdx This is an example of a successful response when creating records. It returns an array of the created records, including their new IDs and fields. ```json { "records": [ { "id": "record789", "fields": { "single line text": "text value 1" } }, { "id": "record567", "fields": { "single line text": "text value 2" } } ] } ``` -------------------------------- ### Date Field Write Example Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/interface.mdx Example of how to format a date value when writing to a date field. ```javascript // Write value "2024-09-02T02:51:03.875Z" ``` -------------------------------- ### Example Request: Exchange Code + code_verifier for Tokens (PKCE Flow) Source: https://github.com/teableio/docs/blob/main/en/api-doc/oauth.mdx Example using curl to send a POST request to exchange an authorization code and code verifier for tokens. This is used in the PKCE flow and does not require a client secret. ```bash curl -X POST https://app.teable.ai/api/oauth/access_token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code" \ -d "code=AUTHORIZATION_CODE" \ -d "client_id=YOUR_CLIENT_ID" \ -d "code_verifier=YOUR_CODE_VERIFIER" \ -d "redirect_uri=http://127.0.0.1:8080/callback" ``` -------------------------------- ### Rating Field Write Example Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/interface.mdx Example of how to format a number value when writing to a rating field. ```javascript // Write value 4 ``` -------------------------------- ### Install NGINX Ingress Controller Source: https://github.com/teableio/docs/blob/main/en/deploy/azure.mdx Installs the NGINX Ingress Controller using Helm. This command configures the controller with a specific health probe request path. ```bash helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm install ingress-nginx ingress-nginx/ingress-nginx \ --set controller.service.annotations."service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path"=/healthz ``` -------------------------------- ### Pull and Start Teable Application Source: https://github.com/teableio/docs/blob/main/en/deploy/docker.mdx Use these commands to pull the latest Teable Docker image and start the application in detached mode. Access the application at http://127.0.0.1:3000 after it starts. ```bash docker-compose pull docker-compose up -d ``` -------------------------------- ### Example Organization Structure Source: https://github.com/teableio/docs/blob/main/en/basic/admin-panel/multitenancy.mdx Illustrates how a Teable instance can be structured to manage different departments as separate organizations. ```text Teable Instance ├── R&D Department Organization ├── Marketing Department Organization └── Sales Department Organization ``` -------------------------------- ### Example Success Response Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/update.mdx This is an example of a successful response when a record is updated. It returns the ID and the updated fields of the record. ```json { "id": "rec123456789ABCDE", "fields": { "Name": "John Doe", "Age": 31, "Email": "john.doe@example.com" } } ``` -------------------------------- ### Response Example: Access and Refresh Tokens Source: https://github.com/teableio/docs/blob/main/en/api-doc/oauth.mdx This is an example of a successful response when exchanging an authorization code for tokens. It includes token types, expiration times, and granted scopes. ```json { "token_type": "Bearer", "access_token": "teable_xxxxxxxxxxxx", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_in": 600, "refresh_expires_in": 2592000, "scopes": ["table|read", "record|read"] } ``` -------------------------------- ### NOW Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Returns the current date and time. The output format includes both date and time components. ```formula NOW() ``` -------------------------------- ### Authentication Example Source: https://github.com/teableio/docs/blob/main/en/api-doc/overview.mdx Demonstrates how to authenticate API requests using a Bearer token. This is a common pattern for securing API access. ```APIDOC ## Authentication Example ### Description This example shows how to include an Authorization header with a Bearer token for API authentication. ### Method `GET` (example, actual method may vary) ### Endpoint `/api/table/__tableId__/record` (example, actual endpoint may vary) ### Parameters #### Headers - **Authorization** (string) - Required - `Bearer __token__` ### Request Example ```bash curl -H 'Authorization: Bearer __token__' 'https://app.teable.ai/api/table/__tableId__/record' ``` ### Response #### Success Response (200) (Response structure depends on the specific endpoint called) #### Response Example (Example response structure depends on the specific endpoint called) ``` -------------------------------- ### Attachment Field Example Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/interface.mdx Illustrates how to format data for writing to an attachment field and the corresponding structure returned by the API. ```javascript // Write value [ { name: "document.pdf", type: "application/pdf", token: "abc123", size: 1024000 } ] // Return value [ { id: "att123", name: "document.pdf", path: "/uploads/document.pdf", token: "abc123", size: 1024000, mimetype: "application/pdf", presignedUrl: "https://app.teable.ai/preview/document.pdf", }, { id: "att456", name: "image.jpg", path: "/uploads/image.jpg", token: "def456", size: 2048000, mimetype: "image/jpeg", presignedUrl: "https://app.teable.ai/preview/image.jpg", width: 1920, height: 1080 } ] ``` -------------------------------- ### IS_SAME Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Compares two dates to determine if they are the same within a specified unit. Returns true if they match, false otherwise. ```formula IS_SAME("2023-09-08", "2023-09-10") ``` -------------------------------- ### WEEKDAY Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Returns the day of the week as an integer from 0 to 6. An optional parameter can set Sunday or Monday as the start of the week. ```formula WEEKDAY("2023-09-08", "Monday") ``` -------------------------------- ### WORKDAY Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Calculates a future or past date by adding a specified number of workdays to a start date, excluding weekends and optional holidays. ```formula WORKDAY("2023-09-08", 200) ``` -------------------------------- ### Create Teable App Settings File Source: https://github.com/teableio/docs/blob/main/en/deploy/azure.mdx Prepare the `app-settings.txt` file with essential environment variables for Teable, including the public origin URL and a generated secret key. ```bash # Core PUBLIC_ORIGIN=https://teable-app.azurewebsites.net SECRET_KEY= ``` -------------------------------- ### Accessing Get Records Step Data in Run Script Source: https://github.com/teableio/docs/blob/main/en/basic/automation/ai/scripting/runscript.mdx Retrieve and iterate over records obtained from a 'Get Records' step. This snippet assumes the 'Get Records' step is the second action in the workflow. ```javascript const actionIds = Object.keys(input); const getRecordsData = input[actionIds[1]]; // Second step, for example const records = getRecordsData.records; records.forEach(record => { console.log(record.id, record.fields.fldName); }); ``` -------------------------------- ### Configure MinIO Aliases and Buckets Source: https://github.com/teableio/docs/blob/main/en/deploy/azure.mdx Set up MinIO aliases using the MinIO client (mc) and create public and private buckets. The public bucket's policy is set to allow downloads. ```bash mc alias set myminio http://your-vm-ip:9000 admin mc mb myminio/public mc mb myminio/private mc policy set download myminio/public ``` -------------------------------- ### Create MinIO Buckets and Set Permissions Source: https://github.com/teableio/docs/blob/main/en/deploy/k8s.mdx Use the MinIO client (mc) to set up aliases, create public and private buckets, and configure anonymous read access for the public bucket. ```sh # Set up MinIO client alias mc alias set teable-minio https://minio.example.com YOUR_ACCESS_KEY YOUR_SECRET_KEY # Create public bucket and set anonymous read access mc mb --ignore-existing teable-minio/teable-pub mc anonymous set public teable-minio/teable-pub # Create private bucket mc mb --ignore-existing teable-minio/teable-pvt # Verify buckets exist mc ls teable-minio # Expected output: # [2024-01-01 00:00:00 UTC] 0B teable-pub/ # [2024-01-01 00:00:00 UTC] 0B teable-pvt/ ``` -------------------------------- ### Checkbox Field Write Example Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/interface.mdx Example of how to format a boolean value when writing to a checkbox field. ```javascript // Write value true ``` -------------------------------- ### Example Email Body with Variables and Formatting Source: https://github.com/teableio/docs/blob/main/en/basic/automation/actions/communication/send-email-overview.mdx Shows how to construct an email body using plain text, Markdown for basic formatting, and dynamic variables for personalization. Variables can be inserted by clicking the '+' button. ```text Hi {{Customer Name}}, Your order #{{Order ID}} has been confirmed. **Total:** ${{Order Amount}} **Estimated delivery:** {{Delivery Date}} Thank you for your purchase! ``` -------------------------------- ### Create Record using Python Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/create.mdx This Python example uses the requests library to create a record via a POST request. It sets the necessary headers and sends the record data as JSON. Replace __tableId__ and __token__ with your actual values. ```python import requests response = requests.post( 'https://app.teable.ai/api/table/__tableId__/record', headers={ 'Authorization': 'Bearer __token__', 'Content-Type': 'application/json' }, json={ 'records': [ { 'fields': { 'Name': 'John Doe', 'Age': 30 } } ] } ) print(response.json()) ``` -------------------------------- ### Complete example: Process and route support tickets Source: https://github.com/teableio/docs/blob/main/en/basic/automation/ai/scripting/runscript.mdx A comprehensive script that processes incoming support ticket data, determines category and priority based on keywords and VIP status, and sets output variables accordingly. ```javascript const actionIds = Object.keys(input); const record = input[actionIds[0]].record; const subject = record.fields.fldSubject || ""; const body = record.fields.fldBody || ""; const email = record.fields.fldEmail || ""; // Simple keyword-based routing const text = (subject + " " + body).toLowerCase(); let category = "General"; let priority = "Normal"; if (text.includes("billing") || text.includes("invoice") || text.includes("payment")) { category = "Billing"; } else if (text.includes("bug") || text.includes("error") || text.includes("crash")) { category = "Technical"; priority = "High"; } else if (text.includes("cancel") || text.includes("refund")) { category = "Account"; priority = "High"; } // Check for VIP customers const vipDomains = ["bigcorp.com", "enterprise.io"]; const domain = email.split("@")[1] || ""; if (vipDomains.includes(domain)) { priority = "Urgent"; } output.set("category", category); output.set("priority", priority); output.set("isVIP", vipDomains.includes(domain)); ``` -------------------------------- ### Create Azure App Service Plan Source: https://github.com/teableio/docs/blob/main/en/deploy/azure.mdx Create a Linux-based App Service Plan with the P1v3 SKU in the East US region. ```bash az appservice plan create \ --resource-group teable-rg \ --name teable-plan \ --location eastus \ --is-linux \ --sku P1v3 ``` -------------------------------- ### Create Teable Directory Source: https://github.com/teableio/docs/blob/main/en/deploy/docker.mdx Creates a directory for Teable and navigates into it. ```bash mkdir teable cd teable ``` -------------------------------- ### Example Error Response Body Source: https://github.com/teableio/docs/blob/main/en/api-doc/error-code.mdx Error responses return a JSON-encoded body with 'message', 'status', and 'code' fields. This example shows a typical structure for a forbidden resource error. ```json { "message": "not allowed to operate space|read on spcxxxxxx", "status": 403, "code": "restricted_resource" } ``` -------------------------------- ### Create Azure Web App with Container Source: https://github.com/teableio/docs/blob/main/en/deploy/azure.mdx Create a web app in Azure App Service and specify the container image to deploy. ```bash az webapp create \ --resource-group teable-rg \ --plan teable-plan \ --name teable-app \ --deployment-container-image-name ghcr.io/teableio/teable:latest ``` -------------------------------- ### Get ElastiCache Endpoint Source: https://github.com/teableio/docs/blob/main/en/deploy/aws.mdx Fetches the endpoint address for the ElastiCache Redis cluster. ```bash aws elasticache describe-cache-clusters \ --cache-cluster-id teable-cache \ --show-cache-node-info \ --query 'CacheClusters[0].CacheNodes[0].Endpoint.Address' --output text ``` -------------------------------- ### YEAR Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Extracts the four-digit year from a given date value. ```formula YEAR("2023-09-08") ``` -------------------------------- ### Minimal Nginx Configuration (HTTP-only Quick Start) Source: https://github.com/teableio/docs/blob/main/en/deploy/nginx.mdx This is a minimal, HTTP-only configuration suitable for internal networks or quick testing. For production, the HTTPS configuration is strongly recommended. ```nginx upstream teable { server 127.0.0.1:3000; # If Nginx runs in the same Docker network as Teable: # server teable:3000; } map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name teable.example.com; location / { proxy_pass http://teable; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_http_version 1.1; } } ``` -------------------------------- ### Create Cloud SQL PostgreSQL Instance Source: https://github.com/teableio/docs/blob/main/en/deploy/gcp.mdx Provisions a PostgreSQL instance on Cloud SQL with specified version, tier, region, and storage. ```bash gcloud sql instances create teable-db \ --database-version=POSTGRES_16 \ --tier=db-custom-2-7680 \ --region=$REGION \ --root-password= \ --storage-type=SSD \ --storage-size=100GB ``` -------------------------------- ### WEEKNUM Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Calculates and returns the week number of the year for a given date. ```formula WEEKNUM("2023-09-08") ``` -------------------------------- ### TODAY Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Returns the current date. The output format is 'YYYY-MM-DD 00:00'. ```formula TODAY() ``` -------------------------------- ### Create Record using JS SDK Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/create.mdx This example demonstrates creating a record using the Teable JavaScript SDK. First, configure the API with your endpoint and token, then use the createRecords function. Replace __tableId__ with your table ID. ```javascript import { configApi, createRecords } from '@teable/openapi'; configApi({ endpoint: 'https://app.teable.ai', token, }); const response = await createRecords('__tableId__', { records: [ { fields: { Name: 'John Doe', Age: 30 } } ] }); console.log(response.data); ``` -------------------------------- ### Navigate to Teable Deployment Directory Source: https://github.com/teableio/docs/blob/main/en/deploy/upgrade.mdx Change to your Teable deployment directory to execute upgrade commands. ```bash cd teable # Navigate to your teable deployment directory ``` -------------------------------- ### Get Records Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/get.mdx Retrieves records from a specified table. Supports extensive query parameters for customization. ```APIDOC ## GET /api/table/{tableId}/record ### Description Retrieves records from a specified table. Supports extensive query parameters for customization, including filtering, sorting, pagination, and field selection. ### Method GET ### Endpoint /api/table/\{tableId\}/record ### Parameters #### Path Parameters - **tableId** (string): The unique identifier of the table. #### Query Parameters - **viewId** (string): Specifies the view ID to fetch records from. If not specified, records will be returned in order of creation time, including all records and fields. - **take** (number): Specifies the number of records to retrieve, maximum value is 1000. - **skip** (number): Specifies the number of records to skip, used for pagination. - **fieldKeyType** (string, optional, default: "name"): Defines the key type for fields in records. Possible values: `name`, `id`, `dbFieldName`. - **cellFormat** (string, optional, default: "json"): Defines the return format for cell values. Possible values: `json`, `text`. - **projection** (string[]): If you only need specific fields, specify them through this parameter. Otherwise, all visible fields will be retrieved. Parameter values depend on fieldKeyType setting. - **orderBy** (string): Array of sort objects specifying how records should be ordered. - **filter** (string): Complex query condition object for filtering results. Supports complex query conditions based on fields, operators, and values. - **search** (string[]): Search for records matching specified fields and values. #### Advanced Query Parameters - **groupBy** (string): Array of group objects specifying how records should be grouped. - **collapsedGroupIds** (string[]): Array of group IDs to collapse. - **selectedRecordIds** (string[]): Filter selected records by record IDs. - **ignoreViewQuery** (boolean): When viewId is specified, setting this to true will ignore the view's filters, sorting, and other settings. - **filterLinkCellCandidate** (string[]): Filter records from the linked table that can be selected by the specified link cell. - **filterLinkCellSelected** (string[]): Filter records from the linked table that are already selected by this link cell. ### Request Example ```json { "example": "GET /api/table/tbl_xxxxxxxxxxxxxx/record?viewId=viw_yyyyyyyyyyyyyy&take=10&skip=0&fieldKeyType=name&projection[]=fieldName1&projection[]=fieldName2" } ``` ### Response #### Success Response (200) - **field1** (type): Description - **field2** (type): Description #### Response Example ```json { "example": "[Array of record objects]" } ``` ``` -------------------------------- ### DAY Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Extracts the day of the month from a date, returning a number between 1 and 31. ```formula DAY("2023-09-08") ``` -------------------------------- ### Create Memorystore for Redis Instance Source: https://github.com/teableio/docs/blob/main/en/deploy/gcp.mdx Provisions a Redis instance on Memorystore with a specified size, region, and Redis version. ```bash gcloud redis instances create teable-cache \ --size=1 \ --region=$REGION \ --redis-version=redis_7_0 ``` -------------------------------- ### MONTH Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Extracts the month from a date as a number between 1 (January) and 12 (December). ```formula MONTH("2023-09-08") ``` -------------------------------- ### Apply Teable Configurations Source: https://github.com/teableio/docs/blob/main/en/deploy/azure.mdx Apply the necessary YAML configuration files for Teable, including deployment and ingress. ```bash kubectl apply -f teable-config.yaml kubectl apply -f teable-secrets.yaml kubectl apply -f minio-deployment.yaml # If using MinIO in AKS kubectl apply -f teable-deployment.yaml kubectl apply -f teable-ingress.yaml ``` -------------------------------- ### Get RDS Instance Endpoint Source: https://github.com/teableio/docs/blob/main/en/deploy/aws.mdx Retrieves the connection endpoint address for the created RDS PostgreSQL instance. ```bash aws rds describe-db-instances \ --db-instance-identifier teable-db \ --query 'DBInstances[0].Endpoint.Address' --output text ``` -------------------------------- ### Numeric Functions: ABS Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Returns the absolute value of a number. Use to get the non-negative magnitude of a value. ```formula ABS(-1) => 1 ``` -------------------------------- ### SECOND Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Extracts the seconds from a date and time value, returning an integer between 0 and 59. ```formula SECOND("2023-09-08 16:50:30") ``` -------------------------------- ### Create Azure PostgreSQL Flexible Server Source: https://github.com/teableio/docs/blob/main/en/deploy/azure.mdx Provision a PostgreSQL Flexible Server instance for Teable's database. Ensure to use a strong password and note the server's fully qualified domain name. ```bash az postgres flexible-server create \ --resource-group teable-rg \ --name teable-db \ --location eastus \ --admin-user teableadmin \ --admin-password '' \ --sku-name Standard_B2s \ --tier Burstable \ --storage-size 128 \ --version 16 \ --public-access 0.0.0.0-255.255.255.255 ``` -------------------------------- ### Example JSON Output Source: https://github.com/teableio/docs/blob/main/en/basic/automation/actions/ai/ai-generate.mdx The AI returns structured data in JSON format based on the prompt's specifications. Each key in the JSON can be accessed as a separate variable in subsequent workflow steps. ```json { "vendor_name": "Acme Corp", "invoice_number": "INV-2024-001", "amount": 1250.00, "due_date": "2024-03-15" } ``` -------------------------------- ### MINUTE Function Example Source: https://github.com/teableio/docs/blob/main/en/basic/field/formula/cheat-sheet.mdx Extracts the minute from a date and time value, returning an integer between 0 and 59. ```formula MINUTE("2023-09-08 16:50") ``` -------------------------------- ### Create Record Using Field Name Source: https://github.com/teableio/docs/blob/main/en/api-doc/record/create.mdx This example demonstrates creating a record using field names as keys. This is the default behavior if 'fieldKeyType' is not specified. ```json { "fields": { "Name": "John Doe", "Age": 30 } } ```