feat: data-management lookup for platform/account fields
All checks were successful
技能自动化发布 / release (push) Successful in 7s
All checks were successful
技能自动化发布 / release (push) Successful in 7s
This commit is contained in:
@@ -6,6 +6,7 @@ SQLite 无原生表/字段 COMMENT;中文展示名称通过这两张元数据
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from typing import Iterable
|
||||
|
||||
INTERNAL_METADATA_TABLES = frozenset({"_jiangchang_tables", "_jiangchang_columns"})
|
||||
@@ -20,6 +21,26 @@ ACCOUNT_LEASES_TABLE = "account_leases"
|
||||
DATETIME_UNIX_SECONDS = "datetime_unix_seconds"
|
||||
STANDARD_TIMESTAMP_COLUMNS = frozenset({"created_at", "updated_at"})
|
||||
|
||||
# Data-management lookup: host resolves options_json object into select options.
|
||||
PLATFORM_KEY_LOOKUP_JSON = json.dumps(
|
||||
{
|
||||
"ref_table": "platforms",
|
||||
"value_column": "platform_key",
|
||||
"label_column": "display_name",
|
||||
"filter_column": "enabled",
|
||||
"filter_value": 1,
|
||||
},
|
||||
ensure_ascii=False,
|
||||
)
|
||||
ACCOUNT_ID_LOOKUP_JSON = json.dumps(
|
||||
{
|
||||
"ref_table": "accounts",
|
||||
"value_column": "id",
|
||||
"label_column": "account_label",
|
||||
},
|
||||
ensure_ascii=False,
|
||||
)
|
||||
|
||||
USER_BUSINESS_TABLES = (
|
||||
PLATFORMS_TABLE,
|
||||
ACCOUNTS_TABLE,
|
||||
@@ -123,7 +144,13 @@ ACCOUNTS_TABLE_METADATA = {
|
||||
|
||||
ACCOUNTS_COLUMN_METADATA: tuple[dict[str, object], ...] = (
|
||||
_col("id", "编号", description="账号唯一编号", editable=0),
|
||||
_col("platform_key", "平台", description="所属平台键"),
|
||||
_col(
|
||||
"platform_key",
|
||||
"平台",
|
||||
description="所属平台键(来自平台信息表)",
|
||||
display_type="lookup",
|
||||
options_json=PLATFORM_KEY_LOOKUP_JSON,
|
||||
),
|
||||
_col("account_label", "账号名称", description="人可读的账号名称"),
|
||||
_col("login_id", "登录账号", description="手机号、邮箱、用户名等登录标识"),
|
||||
_col("login_id_type", "登录标识类型", description="phone / email / username / unknown 等"),
|
||||
@@ -158,8 +185,20 @@ CREDENTIALS_TABLE_METADATA = {
|
||||
|
||||
CREDENTIALS_COLUMN_METADATA: tuple[dict[str, object], ...] = (
|
||||
_col("id", "编号", description="凭据唯一编号", editable=0),
|
||||
_col("account_id", "账号编号", description="关联的 accounts.id,可空"),
|
||||
_col("platform_key", "平台", description="所属平台键"),
|
||||
_col(
|
||||
"account_id",
|
||||
"账号编号",
|
||||
description="关联的 accounts.id,可空",
|
||||
display_type="lookup",
|
||||
options_json=ACCOUNT_ID_LOOKUP_JSON,
|
||||
),
|
||||
_col(
|
||||
"platform_key",
|
||||
"平台",
|
||||
description="所属平台键(来自平台信息表)",
|
||||
display_type="lookup",
|
||||
options_json=PLATFORM_KEY_LOOKUP_JSON,
|
||||
),
|
||||
_col("credential_label", "凭据名称", description="人可读的凭据名称"),
|
||||
_col("credential_type", "凭据类型", description="api_key / password / bearer_token 等"),
|
||||
_col("secret_storage", "密钥存储方式", description="none / env / windows_credential / local_encrypted", editable=0),
|
||||
|
||||
Reference in New Issue
Block a user