Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,7 @@
"en/basic/admin-panel/overview",
"en/basic/admin-panel/users",
"en/basic/admin-panel/spaces",
"en/basic/admin-panel/database-tenant",
"en/basic/admin-panel/template-admin",
"en/basic/admin-panel/settings",
"en/basic/admin-panel/ai-setting",
Expand Down Expand Up @@ -725,6 +726,7 @@
"zh/basic/admin-panel/overview",
"zh/basic/admin-panel/users",
"zh/basic/admin-panel/spaces",
"zh/basic/admin-panel/database-tenant",
"zh/basic/admin-panel/template-admin",
"zh/basic/admin-panel/settings",
"zh/basic/admin-panel/ai-setting",
Expand Down
48 changes: 11 additions & 37 deletions en/basic/admin-panel/computed-outbox.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,52 +3,26 @@ title: "Computed Outbox"
description: "Monitor BullMQ delivery and computed task backlog in the Admin Panel."
---

Path: Admin Panel → Computed Outbox
<Tip>Available for self-hosted Business plan and above</Tip>

Use **Computed Outbox** when formula, lookup, or other computed field values stop updating or take much longer than expected. It helps instance administrators determine whether the delay comes from Redis and BullMQ, missing workers, queue failures, or database backlog before checking service logs.
Path: Admin Panel → Computed Outbox

The page samples the BullMQ queue and database task ledger. It also lets you recover individual dead-letter or timed-out tasks.
Use **Computed Outbox** when formula, lookup, or other computed field values stop updating or take much longer than expected. The page shows the overall task health, recent failures, and tasks that may need recovery.

## Read the Health Status

The status beside the page title summarizes the latest sample:
The status beside the page title shows whether computed tasks need attention:

| Status | Meaning |
| --- | --- |
| **Healthy** | BullMQ is reachable, a consumer is available, and no backlog condition needs attention. |
| **Degraded** | Tasks are still being monitored, but the sample found failed queue jobs, dead letters, stale work, overdue tasks, or an unavailable data database. |
| **Critical** | BullMQ is unavailable or no consumer is connected. |

When the status needs attention, the page lists the specific reasons below the header.

## Review Queue and Backlog

| Section | What it shows |
| --- | --- |
| Summary cards | Trigger roles, BullMQ availability and workers, due tasks, running tasks, stale work, and dead letters. |
| Live BullMQ queue | Current waiting, active, delayed, failed, paused, prioritized, and retained completed job counts. |
| Recently completed BullMQ jobs | Recent task IDs, Base IDs, completion times, processing times, and attempts. |
| Database task ledger | Tasks still tracked in each data database, including pending, scheduled, running, stale, and dead tasks. |
| This process activity | The latest publish and consume activity observed by the application process serving the page. |

Click **Refresh** to request a new sample. The page also refreshes using the configured monitoring interval, which is 30 seconds by default.

## Recover an Anomalous Task
| **Healthy** | Computed tasks are running normally. |
| **Degraded** | Teable found failures, timed-out tasks, or a growing backlog. |
| **Critical** | BullMQ is unavailable or no worker is available to process tasks. |

The **Anomaly maintenance** section lists dead-letter and timed-out tasks. Fix the cause, click **Recover**, then click **Recover task**. Teable delivers the task when BullMQ is available or keeps it in the database ledger until BullMQ recovers.
When the status needs attention, the page lists the reason. Click the **Failed** count to view recent failed tasks and their failure reasons.

## Use the Result

| What you see | What to check next |
| --- | --- |
| **Critical** status | Check the Redis connection and confirm that at least one consumer process is running. |
| Failed queue jobs, dead letters, or stale work | Check backend logs for task errors and confirm that application processes are healthy. |
| Due tasks and the longest wait keep increasing | Compare the worker count and active jobs, then check consumer capacity and concurrency settings. |
| Unavailable data database | Check whether the application can connect to the affected data database. |
## Handle Anomalous Tasks

## Notes
<Info>The **Failed** count and **Anomaly maintenance** show different types of problems, so their numbers may differ.</Info>

- **Completed (retained)** is the number of completed jobs currently retained in Redis, not a lifetime total.
- **This process activity** resets when that application process restarts and is not aggregated across replicas.
- For historical rates, errors, latency, queue depth, and backlog, use the OpenTelemetry metrics exported by your deployment.
- Configure the required Redis connection through [Environment Variables](/en/deploy/env).
Review the failure reason and fix the underlying problem before recovering a task. In **Anomaly maintenance**, click **Recover latest** to process the newest task in a group again. To choose another task, expand the group and click **Recover** for that task.
31 changes: 31 additions & 0 deletions en/basic/admin-panel/database-tenant.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: "Database Tenant"
description: "Host Teable Space data in a customer-managed PostgreSQL database."
---

<Tip>Available for self-hosted Business plan and above</Tip>

Path: Admin Panel → BYODB

A database tenant is useful when a specific customer or business Space needs separately managed data storage. The Space's business data is stored in a designated PostgreSQL database instead of sharing the instance's default data database with other Spaces, reducing the impact of one tenant's database load or failure on other Spaces. Your organization can also manage the database's deployment location, database access controls, backups, and monitoring.

## What You Can Do

From **Admin Panel** → **BYODB**, an instance administrator can:

- Create a new Space that uses a customer-managed PostgreSQL database.
- Move an existing Space to the target database.
- Check the connection, migration status, and recent errors.

<Info>For an existing Space, Teable tests the migration without switching databases by default. After validation, the administrator decides whether to switch. Plan the final switch for a suitable maintenance window because writes may be paused.</Info>

## FAQ

<AccordionGroup>
<Accordion title="Does tenant mean a PostgreSQL user account?">
No. It refers to the Teable Space whose data is stored in that database.
</Accordion>
<Accordion title="Does a database tenant connect an existing business database to Teable?">
No. It changes where Teable stores and manages its own Space data. You provide a PostgreSQL database hosted elsewhere, and Teable creates and manages its own data there. Existing tables and records in that database are not connected to Teable or automatically imported as Bases.
</Accordion>
</AccordionGroup>
1 change: 1 addition & 0 deletions en/basic/admin-panel/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ After logging in as an administrator, click the "Admin Panel" button in the uppe

- **[Users](/en/basic/admin-panel/users)** - Manage user accounts, permissions, and access
- **[Spaces](/en/basic/admin-panel/spaces)** - Manage spaces and auto-join settings
- **[Database Tenant](/en/basic/admin-panel/database-tenant)** - Create and manage database tenants that use customer-managed PostgreSQL databases
- **[Self-hosted license](/en/deploy/activate)** - Register, update, and view the current instance license
- **[Template admin](/en/basic/admin-panel/template-admin)** - Configure template center and custom templates
- **[Instance settings](/en/basic/admin-panel/settings)** - Configure system-wide settings, permissions, email, and system limits
Expand Down
40 changes: 11 additions & 29 deletions en/basic/admin-panel/table-query-ops.mdx
Original file line number Diff line number Diff line change
@@ -1,45 +1,27 @@
---
title: "Table Query Ops"
description: "Analyze saved view and relation field query configuration, query risk, and index recommendations in the Admin Panel."
description: "Analyze slow table queries and review possible database improvements."
---

<Tip>Available for self-hosted Business plan and above</Tip>

Path: Admin Panel → Table Query Ops

**Table Query Ops** helps instance administrators inspect query patterns that may affect large tables. It analyzes saved view filters, sorts, grouping, and relation field query configuration, then reports query risk and index recommendations.
Use **Table Query Ops** when views, filters, relations, or searches on a large table become slow. It helps instance administrators analyze a Table, Base, or Space and identify possible improvements.

This page is for diagnosis. It does not apply index changes by itself.
## Choose an Analysis

## Analyze a Scope

Enter one of the following IDs, then click **Analyze**:

| Field | Use it for |
| Analysis type | Use it for |
| --- | --- |
| **Space ID** | Scan query shapes across one space. |
| **Base ID** | Focus the analysis on one base. |
| **Table ID** | Check one table when you already know where the issue is. |
| **Max** | Limit how many candidate indexes are returned. |

If no scope ID is entered, **Analyze** remains disabled.
| **Queries & indexes** | Find query risks and possible index improvements. |
| **Full-text search** | Check whether full-text search could improve broad or multi-field searches. |

## Read the Results
## Run an Analysis

After analysis, the page shows:

| Section | What it means |
| --- | --- |
| Summary cards | Number of saved views, relation fields, candidate indexes, validated recommendations, and rejected candidates scanned in the selected scope. |
| Coverage report | How many sources were parsed, validated, skipped, or rejected. |
| Query risk | Query shape, risk level, reason codes, execution plan evidence, and the suggested next action. |
| Final recommended indexes | Candidate indexes that passed validation and are ready for administrator review. |
| Rejected candidates | Candidate indexes that were considered but not recommended. |
Choose **Table**, **Base**, or **Space**, then enter the corresponding ID and select an analysis type. Start with **Table** when you already know which table is slow.

<Info>Analysis results show query configuration, field/index structure, and execution plan summaries. They do not show record contents or cell values.</Info>
Click **Generate query report** or **Generate search report**. The report summarizes detected risks and recommended next actions.

## Notes
<Info>The query report does not change the database. A full-text search recommendation requires administrator confirmation before Teable applies a database change.</Info>

- Use a narrower scope first when you are investigating one slow base or table.
- Index recommendations still need administrator review before any database change is made.
- Results depend on the current saved view and relation field configuration.
For a large table, review the impact and schedule any confirmed change for a suitable maintenance window.
50 changes: 12 additions & 38 deletions zh/basic/admin-panel/computed-outbox.mdx
Original file line number Diff line number Diff line change
@@ -1,54 +1,28 @@
---
title: "计算任务 Outbox"
title: "计算任务队列"
description: "在管理面板中监控 BullMQ 投递和计算任务积压。"
---

路径:管理面板 → 计算任务 Outbox
<Tip>私有化部署商业版及以上适用</Tip>

当公式、Lookup 等计算字段没有更新,或更新时间明显变长时,可以打开 **计算任务 Outbox**。它帮助实例管理员先判断问题来自 Redis 和 BullMQ、Worker 缺失、队列失败还是数据库积压,再查看对应的服务日志。
路径:管理面板 → 计算任务队列

页面会采样 BullMQ 队列和数据库任务账本,也可以逐条恢复死信或执行超时的任务
当公式、Lookup 等计算字段长时间没有更新,或更新时间明显变长时,可以打开 **计算任务队列**。页面会显示计算任务的整体状态、最近失败任务,以及可能需要恢复的异常任务

## 查看健康状态

页面标题旁的状态汇总了最近一次采样结果
页面标题旁的状态表示计算任务是否需要处理

| 状态 | 含义 |
| --- | --- |
| **健康** | BullMQ 可连接,已有 Consumer 接入,并且没有需要关注的任务积压。 |
| **降级** | 监控仍可运行,但采样发现队列任务失败、死信、执行超时、任务等待过久或数据数据库不可访问。 |
| **严重** | BullMQ 不可用,或者没有 Consumer 接入。 |
| **健康** | 计算任务运行正常。 |
| **需关注** | Teable 发现任务失败、执行超时或积压。 |
| **严重** | BullMQ 不可用,或当前没有可处理任务的 Worker。 |

状态需要关注时,页面会在顶部列出具体原因
状态需要关注时,页面会显示具体原因。点击 **失败** 数量,可以查看最近失败的任务和原因

## 查看队列和积压
## 处理异常任务

| 区域 | 显示内容 |
| --- | --- |
| 摘要卡片 | 触发角色、BullMQ 连接和 Worker、等待执行、正在执行、执行超时和异常任务数量。 |
| BullMQ 实时队列 | 当前等待中、执行中、延迟、失败、暂停、优先和已保留完成任务数量。 |
| 最近完成的 BullMQ 任务 | 最近任务的任务 ID、Base ID、完成时间、处理耗时和尝试次数。 |
| 数据库任务账本 | 各数据数据库仍在跟踪的等待、延迟执行、正在执行、执行超时和死信任务。 |
| 当前进程活动 | 当前页面所连接应用进程最近观察到的发布和消费活动。 |

点击 **刷新** 可以立即请求一次新采样。页面也会按配置的监控间隔自动刷新,默认间隔为 30 秒。

## 恢复异常任务

**异常任务维护** 区域会显示死信和执行超时任务。修复异常原因后,点击 **恢复**,再点击 **确认恢复**。BullMQ 可用时,Teable 会重新投递任务;暂不可用时,任务会保留在数据库账本中,待 BullMQ 恢复后再投递。

## 根据结果继续排查

| 页面结果 | 后续检查 |
| --- | --- |
| 状态为 **严重** | 检查 Redis 连接,并确认至少有一个 Consumer 进程正在运行。 |
| 出现队列失败、死信或执行超时 | 查看后端任务错误日志,并确认应用进程运行正常。 |
| 等待执行数量和最长等待时间持续增加 | 对照 Worker 数量和正在执行的任务,检查 Consumer 容量和并发配置。 |
| 数据数据库不可访问 | 检查应用是否可以连接对应的数据数据库。 |

## 注意事项
<Info>**失败** 与 **异常任务维护** 显示的是不同类型的问题,因此数量可能不一致。</Info>

- **已完成(保留)** 是 Redis 当前保留的已完成任务数,不是历史累计值。
- **当前进程活动** 会在应用进程重启后清空,也不会跨副本聚合。
- 如需查看历史速率、错误、延迟、队列深度和积压,请使用部署导出的 OpenTelemetry 指标。
- 必需的 Redis 连接通过[环境变量](/zh/deploy/env)配置。
恢复任务前,请先查看失败原因并修复问题。在 **异常任务维护** 中,点击 **恢复最近一条** 可以重新处理该组最新任务。如需选择其他任务,展开问题组后点击对应任务的 **恢复**。
31 changes: 31 additions & 0 deletions zh/basic/admin-panel/database-tenant.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: "数据库租户"
description: "将 Teable 空间数据托管在客户自管的 PostgreSQL 数据库中。"
---

<Tip>私有化部署商业版及以上适用</Tip>

路径:管理员后台 → BYODB

数据库租户适合需要为特定客户或业务空间单独管理数据存储的场景。空间的业务数据会存储在指定的 PostgreSQL 数据库中,而不是与实例中的其他空间共用默认数据数据库,从而降低单个租户的数据库负载或故障对其他空间的影响。企业还可以自行管理数据库的部署位置、数据库访问权限、备份和监控策略。

## 可以做什么

实例管理员可以在 **管理员后台** → **BYODB** 中:

- 创建使用客户自管 PostgreSQL 数据库的新空间。
- 把已有空间迁移到目标数据库。
- 查看连接、迁移状态和最近错误。

<Info>对于已有空间,Teable 默认只测试迁移,不会切换数据库。校验完成后,由管理员决定是否切换。最终切换可能会暂停写入,请安排在合适的维护窗口执行。</Info>

## 常见问题

<AccordionGroup>
<Accordion title="数据库租户中的“租户”是 PostgreSQL 用户账号吗?">
不是。这里的“租户”指使用该数据库存储数据的 Teable 空间。
</Accordion>
<Accordion title="数据库租户是把已有业务数据库接入 Teable 吗?">
不是。数据库租户改变的是 Teable 空间数据的托管位置。你需要提供托管在其他位置的 PostgreSQL 数据库,Teable 会在其中创建并管理自己的数据。目标数据库中已有的表和记录不会接入 Teable,也不会自动导入为 Base。
</Accordion>
</AccordionGroup>
3 changes: 2 additions & 1 deletion zh/basic/admin-panel/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,14 @@ description: "Teable 私有化部署的管理员后台,用于管理实例的

- **[用户管理](/zh/basic/admin-panel/users)** - 管理用户账户、权限和访问
- **[空间管理](/zh/basic/admin-panel/spaces)** - 管理空间和自动加入设置
- **[数据库租户](/zh/basic/admin-panel/database-tenant)** - 创建和管理使用客户自管 PostgreSQL 数据库的租户
- **[自托管许可证](/zh/deploy/activate)** - 注册、更新和查看当前实例许可证
- **[模板管理](/zh/basic/admin-panel/template-admin)** - 配置模板中心和自定义模板
- **[实例设置](/zh/basic/admin-panel/settings)** - 配置系统级设置、权限、邮箱和系统限制
- **[AI 配置](/zh/basic/admin-panel/ai-setting)** - 配置 AI 功能和模型
- **[自动化管理](/zh/basic/admin-panel/automation-management)** - 查看自动化运行状态和历史记录
- **[表格查询运维](/zh/basic/admin-panel/table-query-ops)** - 分析表格查询风险和索引建议
- **[计算任务 Outbox](/zh/basic/admin-panel/computed-outbox)** - 监控计算任务投递、队列健康状态和数据库积压
- **[计算任务队列](/zh/basic/admin-panel/computed-outbox)** - 监控计算任务投递、队列健康状态和数据库积压
- **[审计日志](/zh/basic/admin-panel/audit-log)** - 查看近期实例活动和操作详情
- **[沙箱 Agent](/zh/basic/admin-panel/sandbox-agent)** - 配置和管理沙箱 Agent

Expand Down
Loading