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
28 changes: 26 additions & 2 deletions en/basic/admin-panel/computed-outbox.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: "Monitor BullMQ delivery and computed task backlog in the Admin Pan

Path: Admin Panel → Computed Outbox

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.
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, tasks that may need recovery, and any space whose computed tasks are currently paused.

## Read the Health Status

Expand All @@ -25,4 +25,28 @@ When the status needs attention, the page lists the reason. Click the **Failed**

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

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.
**Anomaly maintenance** collects anomalies into problem groups, one per Base, source table, and error, so a single root cause is easy to spot. Review the failure reason and fix the underlying problem before you recover anything. Expand a group to read its error details and the tasks it covers; those rows are for inspection, and recovery always runs on the group as a whole.

Each group offers one action, depending on its type:

| Anomaly type | Action | What happens |
| --- | --- | --- |
| **Dead letter** | **Recover up to 10 oldest** | Restores the 10 oldest failures in that group and redelivers them. Newer failures in the same group, and every other group, stay untouched. |
| **Timed out** | **Re-arm latest timeout** | Wakes the queue for the newest task in the group so a worker can take it over. |

After a batch recovery, Teable reports how many tasks it recovered, delivered, deferred, or found in conflict, and how many are still waiting. Run the action again to work through a large group.

## Pause Computed Tasks for a Space

When one space's computed tasks are making an incident worse, pause that space in **Computed task pauses** rather than stopping the whole instance.

<Steps>
<Step title="Open the pause dialog">Click **Pause a space**.</Step>
<Step title="Find the space">Search by space ID or name, then select it from the results.</Step>
<Step title="Record why (optional)">Note the incident or maintenance window in **Reason**.</Step>
<Step title="Confirm">Click **Confirm pause**.</Step>
</Steps>

A pause only stops workers from claiming new computed tasks for that space. Tasks already running are not interrupted, and matching tasks wait until you resume rather than being dropped.

The list shows every active pause with who created it, why, and when it auto-resumes. To release one, click **Resume** on its row and confirm. Workers can then claim that space's computed tasks again.
6 changes: 6 additions & 0 deletions en/basic/automation/ai/scripting/runscript.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,12 @@ console.log("Fetched records:", data);
output.set("records", data);
```

### Calling AI from a script

`POST /api/automation/runtime/ai` sends a prompt to your base's AI model. The base comes from the automation's context, so no base ID is needed. The body takes `prompt`, plus optional `attachments`, `modelKey`, `temperature`, and `outputType`; the response is `{ "message": ... }`.

Attachments are `{ url, mimetype, name }` items, up to 10 per call, each under 20MB and 30 seconds to download, covering images, PDFs, and Office documents. The default chat model may not read images and similar attachments, so pass `modelKey` when you send files. Each call consumes credits.

## Error handling

Always wrap risky operations in try/catch blocks so your workflow can handle failures gracefully:
Expand Down
10 changes: 10 additions & 0 deletions en/basic/space/billing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ Monitor your space's resource consumption with these metrics:

Click **Details** on the **Total records** card to view record usage by Base. The dialog shows active records, trash records, and total records for each Base. You can open a Base trash page from the dialog, or permanently delete a Base that is already in trash.

### When a Limit Is Reached

When the space reaches a plan limit, Teable stops the action before it runs and opens the upgrade dialog, which names the limit you hit, shows how much of it you have used, and links to per-Base usage. This applies to pasting, filling, duplicating rows, creating records in bulk, importing, and uploading attachments.

To continue, upgrade the plan or free up room by deleting records or attachments.

### Credits

Credits are Teable's usage units for AI-powered features. Consumption is based on the AI tokens used by the underlying language models, and you can review the details on the Billing page. Credits reset every billing period and do not roll over.
Expand Down Expand Up @@ -169,6 +175,10 @@ After cancellation:
In a paid space, Teable asks for confirmation before an invitation or role change increases the number of subscription seats.
</Accordion>

<Accordion title="Why is a bulk paste or import rejected as a whole instead of partly applied?">
Bulk actions are checked against the number of records they would add, rather than writing until the quota runs out. An operation that would cross the limit is rejected outright, so it never leaves half-written data in your table.
</Accordion>

<Accordion title="Why don't Total records and Attachments storage update right away?">
**Total records** and **Attachments storage** are floating usage metrics. Teable calculates them automatically, but after large imports, deletes, trash cleanup, attachment uploads, or attachment deletes, the page may take some time to update.

Expand Down
32 changes: 13 additions & 19 deletions en/deploy/env.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,6 @@ description: "Here are all available environment variables in Teable and their e
mode: "wide"
---

<Warning>
Teable no longer ships built-in fallback secrets. If a required secret is not
set, the server refuses to start and the startup log lists exactly which
variables are missing, together with a copy-paste block for each case. See
[Secrets and rotation](#secrets-and-rotation) before upgrading an existing
deployment.
</Warning>

| Environment Variable | Description | Default Value | Required | Example |
| ----------------------------------------- | -------------------------------------------------------------------------- | --------------- | -------- | ------------------------------------------------- |
| **Core Configuration** | | | | |
Expand Down Expand Up @@ -145,16 +137,18 @@ deployment.

## Secrets and rotation

Secrets no longer have defaults compiled into the source. Every value above
marked as a secret must come from your own configuration, and the server checks
them at startup: if any required secret is missing, it stops and prints the
list.
Every value above marked as a secret should come from your own configuration.
The server checks them once at startup, but a missing secret never blocks
startup: Teable falls back to the default built into older versions, logs the
missing variables, and starts. Those built-in values are public, so anyone can
forge tokens or decrypt data protected by them. That is fine for a quick local
try-out and unsafe for anything else.

**Upgrading an existing deployment.** An instance that ran without these
variables was implicitly using the old built-in values. The startup error
prints the exact block to add so current sessions, tokens, and encrypted data
keep working. Copy it as-is, restart, then plan a rotation. If your
configuration format needs it, remember to escape `$` in the values.
variables was implicitly using the old built-in values, and still is. The
startup warning prints the exact block to add so current sessions, tokens, and
encrypted data keep working. Copy it as-is, restart, then plan a rotation. If
your configuration format needs it, remember to escape `$` in the values.

**New deployment.** Generate fresh values instead:

Expand All @@ -166,7 +160,7 @@ Use `openssl rand -hex 8` for the 16-character `*_ENCRYPTION_KEY` and
`*_ENCRYPTION_IV` slots.

<Warning>
If the startup log warns that a secret is still set to a publicly known former
default, the instance keeps running so your data stays reachable, but anyone
can forge tokens or decrypt data protected by that value. Rotate it.
The startup log also warns when a secret is explicitly set to a publicly known
former default. The instance keeps running so your data stays reachable, but
anyone can forge tokens or decrypt data protected by that value. Rotate it.
</Warning>
28 changes: 26 additions & 2 deletions zh/basic/admin-panel/computed-outbox.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: "在管理面板中监控 BullMQ 投递和计算任务积压。"

路径:管理面板 → 计算任务队列

当公式、Lookup 等计算字段长时间没有更新,或更新时间明显变长时,可以打开 **计算任务队列**。页面会显示计算任务的整体状态、最近失败任务,以及可能需要恢复的异常任务
当公式、Lookup 等计算字段长时间没有更新,或更新时间明显变长时,可以打开 **计算任务队列**。页面会显示计算任务的整体状态、最近失败任务、可能需要恢复的异常任务,以及当前被暂停计算的空间

## 查看健康状态

Expand All @@ -25,4 +25,28 @@ description: "在管理面板中监控 BullMQ 投递和计算任务积压。"

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

恢复任务前,请先查看失败原因并修复问题。在 **异常任务维护** 中,点击 **恢复最近一条** 可以重新处理该组最新任务。如需选择其他任务,展开问题组后点击对应任务的 **恢复**。
**异常任务维护** 会按 Base、来源表和错误把异常合并成问题组,便于定位同一根因。恢复之前,请先查看失败原因并修复问题。展开问题组可以查看具体错误和组内任务,这些行仅供排查,恢复始终以整个问题组为单位。

每个问题组只有一个操作,取决于它的类型:

| 异常类型 | 操作 | 效果 |
| --- | --- | --- |
| **死信** | **恢复最早一批(最多 10 条)** | 恢复该组中最早的 10 条失败任务并重新投递。同组中更晚的任务,以及其他问题组,都不受影响。 |
| **执行超时** | **重新唤醒最近一条超时** | 为组内最新任务重新唤醒队列,由 Worker 接管执行。 |

批量恢复完成后,Teable 会给出恢复、投递、延迟投递和冲突的条数,以及仍在等待的数量。问题组较大时,可以重复执行该操作逐批处理。

## 暂停某个空间的计算任务

当某个空间的计算任务正在加剧故障时,可以在 **计算任务暂停** 中单独暂停这个空间,而不必停掉整个实例。

<Steps>
<Step title="打开暂停弹窗">点击 **暂停空间**。</Step>
<Step title="找到目标空间">按 Space ID 或名称搜索,然后在结果中选中。</Step>
<Step title="填写原因(可选)">在 **原因** 中写明事故或维护窗口。</Step>
<Step title="确认">点击 **确认暂停**。</Step>
</Steps>

暂停只会阻止 Worker 领取该空间新的计算任务。已经在执行的任务不会被中断,匹配到的任务会一直等待,不会被丢弃。

列表会显示所有生效中的暂停,包括操作人、原因和自动恢复时间。需要解除时,点击对应行的 **恢复** 并确认,Worker 随后即可重新领取该空间的计算任务。
6 changes: 6 additions & 0 deletions zh/basic/automation/ai/scripting/runscript.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,12 @@ const data = await res.json();
output.set("records", data);
```

## 在脚本中调用 AI

用 `POST /api/automation/runtime/ai` 把提示词交给当前 Base 的 AI 模型。Base 由自动化上下文决定,不需要传 Base ID。请求体必填 `prompt`,可选 `attachments`、`modelKey`、`temperature` 和 `outputType`,响应为 `{ "message": ... }`。

附件按 `{ url, mimetype, name }` 传,最多 10 项,单个文件需在 20MB、30 秒内下载完成,支持图片、PDF 和 Office 文档。默认对话模型未必能读取图片这类附件,发送文件时建议用 `modelKey` 指定合适的模型。每次调用都会消耗算力。

## 调用外部 API

```javascript
Expand Down
10 changes: 10 additions & 0 deletions zh/basic/space/billing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ description: "了解如何管理订阅、查看账单详情、监控用量以及

在 **记录总数** 卡片中点击**详情**,可以按数据库查看记录用量。详情弹窗会展示每个数据库的活跃记录、回收站记录和总记录数。你也可以从弹窗前往数据库回收站,或彻底删除已经在回收站中的数据库。

### 达到额度上限时

空间触及套餐额度后,Teable 会在操作执行前拦截,并弹出升级弹窗,说明触及的是哪一项额度、已经用掉多少,并提供按数据库查看用量的入口。粘贴、填充、复制行、批量新建记录、导入和上传附件都适用。

要继续操作,可以升级套餐,或删除记录、附件腾出空间。

### 算力

算力是 Teable AI 功能的使用单位。实际消耗量根据底层语言模型使用的 AI Token 计算,可在计费页查看明细。算力在每个计费周期重置,不会累积到下一周期。
Expand Down Expand Up @@ -169,6 +175,10 @@ Teable 遵循"物有所值"的取消政策。当您取消订阅时,您并非
在付费空间中,如果邀请或角色调整会增加订阅席位,Teable 会在操作前要求确认。
</Accordion>

<Accordion title="为什么批量粘贴或导入会被整体拒绝,而不是先写一部分?">
批量操作会按它将新增的记录数来判断,而不是写到额度用完为止。会超出上限的操作整体拒绝,不会在表里留下写了一半的数据。
</Accordion>

<Accordion title="为什么记录总数和附件用量看起来没有及时更新?">
**记录总数** 和 **附件容量** 属于浮动用量。系统会自动统计这些数字,但大量导入、删除、清理回收站、上传附件或删除附件后,页面显示可能需要一段时间才会更新。

Expand Down
10 changes: 3 additions & 7 deletions zh/deploy/env.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ description: "这里列举了Teable 所有可用的环境变量以及相关解
mode: "wide"
---

<Warning>
Teable 不再内置任何默认密钥。缺少必填密钥时,服务会拒绝启动,并在启动日志中列出缺失的变量以及可直接复制的配置块。升级已有部署前,请先阅读[密钥与轮换](#密钥与轮换)。
</Warning>

| 环境变量 | 描述 | 默认值 | 必填 | 示例 |
| -------------------------------------------- | ------------------------------------------------------- | ---------------- | ---- | ------------------------------------------------ |
| **核心配置** | | | | |
Expand Down Expand Up @@ -141,9 +137,9 @@ Teable 不再内置任何默认密钥。缺少必填密钥时,服务会拒绝

## 密钥与轮换

密钥不再在源码中内置默认值。上表中标注为密钥的每一项都必须来自你自己的配置,服务在启动时会统一校验一次:只要缺少必填密钥就会停止启动,并打印缺失清单
上表中标注为密钥的每一项,都应该来自你自己的配置。服务在启动时会统一校验一次,但缺少密钥不会阻止启动:Teable 会回退到旧版本内置的默认值,在日志中列出缺失的变量,然后继续启动。这些内置值是公开的,任何人都可以据此伪造令牌或解密受其保护的数据。本地临时试用没问题,其他场景都不安全

**升级已有部署**:此前没有配置这些变量的实例,一直在用旧的内置值。启动报错会打印需要添加的配置块,照原样复制就能让现有会话、令牌和已加密数据继续可用;重启后再安排一次轮换。如果配置格式有要求,注意对值中的 `$` 做转义。
**升级已有部署**:此前没有配置这些变量的实例,一直在用旧的内置值,现在依然如此。启动警告会打印需要添加的配置块,照原样复制就能让现有会话、令牌和已加密数据继续可用;重启后再安排一次轮换。如果配置格式有要求,注意对值中的 `$` 做转义。

**全新部署**,直接生成新的随机值:

Expand All @@ -154,5 +150,5 @@ openssl rand -base64 32
`*_ENCRYPTION_KEY` 和 `*_ENCRYPTION_IV` 这类 16 位的槽位请改用 `openssl rand -hex 8`。

<Warning>
如果启动日志警告某个密钥仍然使用公开的历史默认值,实例会继续运行以保证数据可访问,但任何人都可以伪造令牌或解密受该密钥保护的数据,请尽快轮换。
某个密钥被显式设置成公开的历史默认值时,启动日志同样会发出警告。实例会继续运行以保证数据可访问,但任何人都可以伪造令牌或解密受该密钥保护的数据,请尽快轮换。
</Warning>