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