@flatfile/blueprint

中文文档
0.0.15发布于 2025/06/30TypeScriptESM + CJS近 30 天下载 2.2万

用于定义Flatfile数据结构的通用DDL.

中文使用文档
文档目录13 节
  1. 目标
  2. 任期考虑
  3. 示例配置
  4. string 🧵 (默认)
  5. 配置选项
  6. number #️⃣
  7. 配置选项
  8. reference 🔗
  9. 配置选项
  10. enum
  11. 配置选项
  12. boolean
  13. date

蓝图

@flatfile/blueprint 是Flatfile中与客户定义的数据结构合作的参考点。 我们有很多不同的数据问题需要解决 跨不同的系统,例如DAL,管道,工作簿,转盘,和SDK.

目标

  • 描述外部系统界定的任何合理数据结构
  • 向数据库引擎通报如何最好地存储和检索数据
  • 告知渲染引擎(如表格或表格)如何最好地渲染数据点
  • 提供数据本体分类的匹配或AI系统
  • 向最终用户提供数据结构特有的指导
  • 为数据库驱动的验证提供配置
  • 为分析或未来优化目的报告用户或系统定义的钩子运行情况

任期考虑

  • 财产 描述实体的属性(如名称、电子邮件)及其应如何行事.

示例配置

{
  "properties": [
    {
      "key": "code",
      "label": "Product Code",
      "type": "string",
      "description": "Unique identifier defining an individual product.",
      "constraints": [
        {
          "type": "unique",
          "config": {
            "caseSensitive": false
          }
        }
      ],
      "config": {
        "size": "tiny"
      }
    },
    {
      "key": "description",
      "type": "string"
    },
    {
      "key": "price",
      "type": "number",
      "config": {
        "decimalPlaces": 2
      }
    },
    {
      "key": "category",
      "label": "Product Category",
      "type": "enum",
      "multi": true,
      "config": {
        "allowCustom": false,
        "options": [
          {
            "value": 9,
            "label": "Kitchenware",
            "icon": "pots-and-pans",
            "color": "#f00000",
            "meta": {
              "product_code_prefix": "KI-"
            }
          },

          {
            "value": 9,
            "label": "Clothing",
            "meta": {
              "product_code_prefix": "CL-"
            }
          }
        ]
      }
    }
  ]
}

核心属性

所有属性都有以下选项. 如果属性类型以 [] (例如: string[]它应作为无限大小的阵列来储存、检索和显示.

选项说明默认需要吗?
key此字段的系统名. 主要告知JSON和Egress结构.✅
type一个 string, (中文(简体) ), number, (中文(简体) ), boolean, (中文(简体) ), date, (中文(简体) ), enum, (中文(简体) ), reference。定义该财产的处理.✅
label一个面向用户的描述标签, 设计用于在UI中显示, 如表格头 .key
description对拟显示给最终用户的属性的长式描述 .
constraints一系列系统级验证规则,打算在钩子运行后应用.[]
config与列类型相关的配置 。 见下文财产文件.{}有时
multi如果设定的话, 将允许多个值并存储 / 提供数组中的值 。 并非所有字段类型都支持数组.false
meta任意的价值观对象通过钩子和后退{}

string 🧵 (默认)

定义一个应当存储并读取为基本字符串的属性。 数据库引擎应该期待在此提供任何文本长度,除非在配置中明确定义.

配置选项

  • size: enum(tiny, normal, medium, long) 这一领域应储存多少文本?
    • tiny = 最多255个字符
    • ➡normal = 64克b(默认)
    • medium = 16立方米b
    • long = 4克/秒

number #️⃣

定义一个应当存储并读取为整数或浮点数的属性。 数据库引擎应当查看配置以确定理想的存储格式.

配置选项

选项说明默认
decimalPlaces保留精确度的小数位数。 逾期的,应当自动四舍五入并发出警告. 钩子可以预格式来完成地平线或地平线.0

reference 🔗

3⁄4 ̄ ̧漯B

这与外国钥匙不相上下。 不应具体指明哪一栏是多变量的。 用户在绘制图时可以建立类似 company name一旦储存在我们的系统中,我们将参考 我们的内部身份证, 并在入侵时,我们提供已知的 system_id 如果有的话.

定义另一个工作表的引用。 在对数据集之间独特或相近的列进行评价后,由匹配引擎自动建立或类似的链接.

配置选项

选项说明需要吗?
ref其他工作表/表格配置的完整路径引用 。 一定是在同一个工作簿里.✅
relationship这定义的关系类型. 可以成为其中之一 has-many 或者说 has-one✅

enum

定义供用户选择的选项列表。 匹配用于解决数据输入的尝试与有效选项。 此列表的最大选项数为 100对于较大的列表,用户应当使用 reference 或未来 lookup 类型.

配置选项

选项说明默认需要吗?
allowCustom允许用户为这个特定字段创建新选项 .false
options[]用户可以从中选择的有效选项列表✅
value此选项的值或ID 。 此值将逐一发送✅
label此选项的可视标签, 如果不提供则默认值
color指定此选项的可选颜色
icon以前注册的图标的参考指针
meta任意的 JSON 对象与此选项相关联, 并可供钩子使用

boolean

A 类 true 或者说 false 值类型。 匹配引擎应该尝试解决所有常见的表达这个值的方法,并且它通常应该被显示为一个复选框.

选项说明默认
allowIndeterminate允许不确定( E)null)既未选定,也未选定.true

date

存储一个字段作为 GMT 日期 。 数据勾钩必须转换为 YYYY-MM-DD 格式,使其被视为有效的值。 时间应当是一个单独的、未来得到支持的价值,因为它必须考虑时区.

未来类型

  1. 链接属性 – 从被引用的表格中以一个或多个值填充此属性 - 数据钩可以被进一步转换. 应支持过滤器 .
    • 示例1:在 a 上显示只读值 contact 基于 country 链接 company
  2. 滚动 — 使用一个数据hook来汇总或计算所有引用的值. 应支持过滤 .
    • 实例1: sum() 总计 items.price * items.quty 链接到 invoice
    • 实例2: deals 与 status: lost 链接到 a salesperson
  3. 组/组- 任意取名的一组记录,这些记录可以只按命名空间分组,也可以重复使用类似于关系集的记录.
    • 实例1: contact_methods 带有 type, (中文(简体) ), value,以及 priority。 。 。 .
    • 实例2: address 组为 street, (中文(简体) ), city,, , , , , , , , .
  4. 远程查询(Remote Lookup)——一种依靠数据hook返回有效选项而不是enum列表或参考表格的字段.
    • 例1:这个字段必须是所提供飞行的有效编号 city 财务报告和审定财务报表 date。用户在与单元格互动时应当能够从有效飞行列表中选择.
    • 示例2:全球自动完成 address 输入。 在您输入时, 一组建议出现在下拉中 .

版本与发布记录

@flatfile/blueprint 共发布 14 个版本,首次发布于 2022/08/17;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.15latest2025/06/301.4 年前
0.0.142024/04/262 年前
0.0.132024/04/042 年前
0.0.122024/03/282 年前
0.0.102023/12/142 年前
0.0.92023/05/203 年前

关于 @flatfile/blueprint 的常见问题

@flatfile/blueprint 是什么?

用于定义Flatfile数据结构的通用DDL.

如何安装 @flatfile/blueprint?

在项目目录运行 npm install @flatfile/blueprint,或使用 pnpm add / yarn add / bun add。

@flatfile/blueprint 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@flatfile/blueprint 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@flatfile/blueprint 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=16 || >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@flatfile/blueprint 可以商用吗?

@flatfile/blueprint 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@flatfile/blueprint 的下载量有多少?

根据 npm 官方下载统计,@flatfile/blueprint 在 2026/10/15 – 2026/11/13 这 30 天内被下载 22,310 次,日均约 744 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@flatfile/blueprint 还在维护吗?

最新版本 0.0.15 发布于 2025/06/30(1.4 年前);至今共发布 14 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/08/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。