open-index/open-npm huggingface dataset:
npm package: @tachybase/module-backup
Description: Backup and restore applications for scenarios such as application replication, migration, and upgrades.
Latest version: 1.6.15

# Duplicator

[English](./README.md) | 中文

TachyBase 应用的备份与还原插件，可用于应用的复制、迁移、升级等场景。

## 安装激活

内置插件无需手动安装激活。

## 使用方法

Duplicator 插件提供了 `dump` 和 `restore` 命令，分别用于备份和还原应用数据，可用于单应用的备份和还原，也可以跨应用。如果跨应用还原数据，请保证目标应用 TachyBase 版本与源应用一致，相对应插件也已下载本地。

**⚠️ 如果使用了继承（PostgreSQL）、视图、触发器等不兼容的特性，跨数据库还原备份数据可能失败。**

### 备份数据

```bash
yarn tachybase dump
```

选择需要备份的插件表结构及其数据

```bash
? Select the plugin collections to be dumped (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
 == Required ==
 - migration (core) (Disabled)
 - collections (collection-manager) (Disabled)
 - uiSchemas (ui-schema-storage) (Disabled)
 - uiRoutes (ui-routes-storage) (Disabled)
 - acl (acl) (Disabled)
 - workflowConfig (workflow) (Disabled)
 - snapshot-field (snapshot-field) (Disabled)
 - sequences (sequence-field) (Disabled)
 == Optional ==
❯◉ executionLogs (workflow)
 ◉ users (users)
 ◉ storageSetting (file-manager)
 ◉ attachmentRecords (file-manager)
 ◉ systemSettings (system-settings)
 ◉ verificationProviders (verification)
 ◉ verificationData (verification)
 ◉ oidcProviders (oidc)
 ◉ samlProviders (saml)
 ◉ mapConfiguration (map)
(Move up and down to reveal more choices)
```

选择需要备份的其他数据表的记录

```bash
? Select the collection records to be dumped (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◉ Test1
❯◉ Test2
❯◉ Test3
```

数据备份成功之后，备份文件位于 `storage/duplicator` 目录下：

```bash
dumped to /your/apps/a/storage/duplicator/dump-20230210T223910.nbdump
dumped file size: 20.8 kB
```

### 还原数据

```bash
yarn tachybase restore /your/apps/a/storage/duplicator/dump-20230210T223910.nbdump
```

导入前请先备份数据

```bash
? Danger !!! This action will overwrite your current data, please make sure you have a backup❗️❗️ (y/N)
```

选择需要还原的插件表结构及其数据

```bash
? Select the plugin collections to be restored (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
 == Required ==
 - migration (core) (Disabled)
 - collections (collection-manager) (Disabled)
 - uiSchemas (ui-schema-storage) (Disabled)
 - uiRoutes (ui-routes-storage) (Disabled)
 - acl (acl) (Disabled)
 - workflowConfig (workflow) (Disabled)
 - sequences (sequence-field) (Disabled)
 == Optional ==
❯◯ executionLogs (workflow)
 ◯ users (users)
 ◯ storageSetting (file-manager)
 ◯ attachmentRecords (file-manager)
 ◯ systemSettings (system-settings)
 ◯ verificationProviders (verification)
 ◯ verificationData (verification)
 ◯ auditLogs (audit-logs)
 ◯ iframe html storage (iframe-block)
```

选择需要还原的其他数据表的记录

```bash
? Select the collection records to be restored (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◉ Test1
❯◉ Test2
❯◉ Test3
```

成功之后，重启应用

```bash
# for development
yarn dev
# for production
yarn start
```
npm package: @tachybase/opentelemetry-auto-instrumentations
Description: Metapackage of telemetry for TachyBase which bundles OpenTelemetry node core and instrumentations
Author: TachyBase Team
Latest version: 0.1.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# opentelemetry-auto-instrumentations

TachyBase 专属的 OpenTelemetry 自动插桩库
npm package: @tachybase/opentelemetry-instrumentation-http
Description: OpenTelemetry instrumentation for `node:http` and `node:https` http client and server modules for TachyBase
Author: TachyBase Team
Latest version: 0.1.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# opentelemetry-instrumentations-http

TachyBase 专属的 OpenTelemetry HTTP 自动插桩库
npm package: @tachybase/plugin-auth-saml
Description: SAML 2.0 authentication.
Latest version: 1.6.15

# SAML

提供SAML2.0 SSO登录功能。

## 依赖

- `@tachybase/auth` 认证插件，提供认证相关功能，表、模型、函数复用等。

## 使用方法

> 以Google WorkSpace IdP为例

### 将Google设置为IdP

[Google管理控制台](https://admin.google.com/) - 应用 - Web应用和移动应用

<img src="https://s2.loli.net/2023/05/18/O7UYh9pjePrKzTq.png" width="800px" />   


进行应用配置之后，复制**SSO网址**、**实体ID**和**证书**。

<img src="https://s2.loli.net/2023/05/18/Mpwk3dAIvShmUCe.png" width="800px"/>

### 在Tachybase上新增认证器

插件设置 - 认证 - 新增 - SAML

<img src="https://s2.loli.net/2023/05/18/EpXsJ1BM5lju2mY.png" width="800px" />

将刚才复制的信息依次进行填写
- SSO URL: SSO网址
- Public Certificate: 证书
- idP Issuer: 实体id
- http: 如果是本地http测试可以勾选

之后复制`Usage`中的`SP Issuer/EntityID`和`ACS URL`.

### 在Google上填写SP信息

回到Google控制台，在**服务提供商详细信息**页面，输入刚才复制的ACS网址和实体ID，并勾选**已签署响应**。

在**属性映射**位置，添加映射，映射对应属性，Tachybase可供映射的字段有：

- email（必填）
- phone (仅对scope支持phone的平台生效，如阿里云)
- nickname
- username
- firstName
- lastName

用户名使用规则优先级: `nickname` > `username` > `firstName lastName` > `nameID`

`nameID`为SAML协议携带，无需映射，将作为用户唯一标识保存。

在有email或nameID为email的情况下，登录时将尝试匹配已有用户，否则创建新用户。
npm package: @tachybase/plugin-auth-sms
Description: SMS authentication.
Latest version: 1.6.15

# SMS Auth

提供短信登录认证功能。

## 依赖

- `@tachybase/auth` 认证插件，提供认证相关功能，表、模型、函数复用等。
- `@tachybase/plugin-otp` 验证码插件，提供短信发送功能。

## 使用方法

### 新增验证码Provider
插件设置 - Verification/验证码   
新增一个Provider, 并设置为默认方式。

<img src="https://s2.loli.net/2023/05/16/6VKDcqW41F8P9Gu.png" width="800px" />

### 新增SMS认证器
插件设置 - Authentication/认证   
新增，选择认证类型为SMS，新增一个Authenticator。

效果如图：   
<img src="https://s2.loli.net/2023/05/16/GVW5mHTvBhn8Zck.png" width="400px" />
npm package: @tachybase/plugin-block-charts
Description: Provides data visualization feature, including chart block and chart filter block, support line charts, area charts, bar charts and more than a dozen kinds of charts, you can also extend more chart types.
Latest version: 1.6.15

# Data Visualization

提供BI面板和数据可视化功能。

## 介绍

新版数据可视化插件以Collection为基础，提供了可视化的数据检索、图表配置面板，多个图表可以在同一卡片内进行组织，支持以插件形式扩展和使用其他图表组件库。未来还计划支持SQL模式，单个及多个图表的时间、条件筛选，数据下钻，图表与数据卡片联动等功能。

## 图表卡片

<img src="https://s2.loli.net/2023/06/30/vTKZt9EXxS4Im5L.png"/>

- 图表卡片可以组织多个图表，卡片中的图表可以像卡片一样排列和拖拽。
- 卡片标题可以编辑。
- 图表以Collection为基础，新建图表时需要选定一个Collection.
- 有查看权限的Collection才可以用于配置图表，否则将会在选项中被隐藏。
- 图表可以修改 (Configure), 复制 (Duplicate), 设置标题 (Edit block title).

## 配置面板

<img src="https://s2.loli.net/2023/06/30/75GMbhCcypHitkE.png"/>

配置面板整体上分为三个卡片：数据配置，图表配置，图表预览。

### 数据配置

<img src="https://s2.loli.net/2023/06/30/34fnM7i6SIPJgFm.png" width="500" />

- 顶部下拉框代表当前正在配置的Collection，通过下拉菜单可以切换。
- 配置完成后，点击"Run query"可以通过配置获取数据，"Data"面板会展示数据。

#### 度量

<img src="https://s2.loli.net/2023/06/30/xZwW6UR1klB4dCs.png" width="500" />

度量字段，通常是图表需要展示的核心数据。度量数据可以通过聚合函数进行统计，支持常用的数据库统计函数`Sum`, `Count`, `Avg`, `Max`, `Min`. 度量字段可以有多个，可以设置别名。

#### 维度

<img src="https://s2.loli.net/2023/06/30/2eAHvGojmlL1YtQ.png" width="500" />

维度字段，通常是图表数据分组的依据。对于日期类型字段，支持如图所示的格式化方式，格式化通过数据库函数实现（例如：MySQL对应`date_format`），其他类型数据格式化见[数据转换](数据转换)部分。

> **维度格式化 (Dimensions Format) VS 数据转换 (Transform)**  
> - 维度格式化发生在获取最终数据之前，数据分组按照维度格式化后的值进行，通常在按时间段筛选数据时有此需求。  
> - 数据转换对响应数据做进一步处理，诸如可读性处理，以展现恰当的数据，数据转换在前端进行。

#### 筛选

<img src="https://s2.loli.net/2023/06/30/kvbHO5Y1fsiMm3E.png" width="500" />

此处配置将对分组前的数据进行过滤。

#### 排序 (Sort) 和限制 (Limit)

<img src="https://s2.loli.net/2023/06/30/HCpiQ4qATcLeKUE.png" width="500" />

目前图表允许的数据集条数上限为2000.

#### 缓存

<img src="https://s2.loli.net/2023/06/30/OY6JephtbcH4run.png" width="300" />

开启缓存后，图表将展示缓存的数据。

### 图表配置

<img src="https://s2.loli.net/2023/06/30/KHaPvYsBxh7plGQ.png" width="500" />

- 图表类型 (Chart Type) - 用于展示的图表类型，目前按图表库分组。如何使用其他图表库？
- 基础配置 - 选择图表后，会出现相应的基础可视化配置，字段配置通常提供了下拉菜单供选择，选项中包含了Collection的基础字段和字段别名。
- JSON配置 - 当基础配置不满足要求时，可以使用JSON配置其他图表属性。

### 数据转换

<img src="https://s2.loli.net/2023/06/30/yf82mYs6V1aCRIj.png" width="500" />

使用数据转换可以对接口响应的数据做进一步处理，目前支持转换处理的数据类型为 `number`, `date`, `time`, `datetime`, 对于不属于支持的数据类型的字段，可以手动选择为这几个类型，以使用对应的转换方法。

## 使用其他图表库

```TypeScript
import { ChartLibraryProvider } from '@tachybase/plugin-charts-v2/client';
```

图表插件提供了ChartLibraryProvider组件，组件接收以下属性:
- name 图表库名字
- charts 图表组件列表，参考`packages/plugins/charts-v2/src/client/renderer/library/G2PlotLibrary.tsx`