sqlite-web 0.7.2
gitea.db
package_version
Create
Query
access
access_token
action
action_artifact
action_run
action_run_index
action_run_job
action_runner
action_runner_token
action_schedule
action_schedule_spec
action_task
action_task_output
action_task_step
action_tasks_version
action_variable
app_state
attachment
auth_token
badge
branch
collaboration
comment
commit_status
commit_status_index
commit_status_summary
commit_sync_log
commit_sync_status
dbfs_data
dbfs_meta
deploy_key
email_address
email_hash
external_login_user
follow
gpg_key
gpg_key_import
hook_task
issue
issue_assignees
issue_content_history
issue_dependency
issue_index
issue_label
issue_pin
issue_user
issue_watch
label
language_stat
lfs_lock
lfs_meta_object
login_source
milestone
mirror
notice
notification
oauth2_application
oauth2_authorization_code
oauth2_grant
org_user
package
package_blob
package_blob_upload
package_cleanup_rule
package_file
package_property
package_version
project
project_board
project_issue
protected_branch
protected_tag
public_key
pull_auto_merge
pull_request
push_mirror
reaction
release
renamed_branch
repo_archiver
repo_hidden_file
repo_indexer_status
repo_license
repo_redirect
repo_topic
repo_transfer
repo_unit
repository
review
review_state
secret
session
sqlite_sequence
star
stopwatch
system_setting
task
team
team_invite
team_repo
team_unit
team_user
topic
tracked_time
two_factor
upload
user
user_badge
user_blocking
user_open_id
user_redirect
user_setting
version
watch
webauthn_credential
webhook
Toggle helper tables
Structure
Content
Query
Insert
Drop
Import
Export
Update row 35 in package_version
id
Primary key.
INTEGER NOT NULL
package_id
INTEGER NOT NULL
creator_id
INTEGER NOT NULL (default 0
version
1.0.0-rc.7
TEXT NOT NULL
lower_version
1.0.0-rc.7
TEXT NOT NULL
created_unix
INTEGER NOT NULL
is_internal
INTEGER NOT NULL (default 0
metadata_json
{"scope":"@juhai","name":"client-configuration-feature-flags","description":"配置与功能开关:批准快照、规范 JSON 摘要校验、租户稳定分桶放量、最后良好回退","license":"UNLICENSED","development_dependencies":{"@types/node":"22.19.20","typescript":"5.9.3","vitest":"2.1.9"},"readme":"# `@juhai/client-configuration-feature-flags`\n\n配置与功能开关能力的**带副作用那半**:批准快照的装载与刷新、规范 JSON 摘要校验、租户稳定分桶放量、最后良好回退。\n\n**规则那半在 `contracts/src/domain/configuration-feature-flags/`**(`feature-flag.ts` 与 `configuration-client.ts` 的纯判定,2026-09-14 迁入并于 2026-09-18 硬化)。\n\n## 来源与迁入\n\n逐字迁自工单仓 `packages/configuration-client/src/`(284 行实现 + 63 行单测),2026-09-18 按目录负责人「直接搬」的 G4 裁决执行。5 例单测原样随迁,5/5 绿;判定逻辑一行未改,无外部依赖。\n\n## ⚠️ 这个包还没长成平台能力\n\n**它硬编码了一个应用和一个开关:**\n\n```ts\nexport const EXECUTION_CONTROL_APP_ID = \"juhai.execution-control\";\nexport const AUTOMATION_EXECUTION_FLAG_KEY = \"automation.execution.enabled\";\n```\n\n`AutomationConfigurationSnapshot.appId` 的类型就是 `typeof EXECUTION_CONTROL_APP_ID`,`flags` 的键类型就是那一个 flag key。也就是说:**本包目前只能为「执行控制」这一个应用的「自动化执行」这一个开关服务**,换任何第二个应用或第二个开关都要改类型。\n\n这不是疏忽,是**三消费者规则要拦的那种状态**——本能力至今只有 1 个消费者(工单仓),代码还没被第二个使用者逼着一般化。设计方案 §4.2 给配置与功能开关排的条件正是「三消费者 + G4」,而文件与通知早在 2026-09-09 就满足了 3 个,配置一直是 1 个。\n\n本轮按「直接搬」的裁决**原样迁入、不做一般化**:搬是搬,重构是重构,把两件事混在一起会让「判定逻辑一行未改」这句话不再可核验。**代价要说清楚**:基础设施仓里从此有一个知道 `juhai.execution-control` 的包,方向上违反依赖单向。解除路径二选一——出现第二、第三个消费者时由它们逼出一般化(`appId` 与 flag key 变参数),或由配置与功能开关 Owner 直接裁决先一般化再接入。\n\n## 接口\n\n| 导出 | 作用 |\n|---|---|\n| `buildAutomationConfigurationSnapshot` / `configurationSnapshotDigest` | 规范 JSON(键排序)后 SHA-256;摘要比对走 `timingSafeEqual` |\n| `LocalAutomationConfigurationClient.create` | 候选快照不合格时**回退到 bundled 真值并记下拒绝原因**,生产 bundled 默认关;拒绝原因可从 `status()` 读出,不是静默吞掉 |\n| `.evaluateAutomationExecution` | 优先级:denylist → 开关关 → allowlist → 100% → 稳定分桶 → 不在放量内;FNV-1a 分桶保证同租户结论稳定 |\n| `.refresh` | 只接受**版本前进**且全部校验通过的快照,否则保留最后良好版本并给出原因数组 |\n\n校验拒绝原因(11 条):`SNAPSHOT_FORMAT_INVALID`、`SNAPSHOT_SCHEMA_INVALID`、`FLAG_SCHEMA_INVALID`、`FLAG_VALUE_INVALID`、`SCHEMA_VERSION_UNSUPPORTED`、`APP_ID_MISMATCH`、`ENVIRONMENT_MISMATCH`、`SNAPSHOT_VERSION_STALE`、`SNAPSHOT_NOT_APPROVED`、`PLAINTEXT_SECRET_FORBIDDEN`、`SNAPSHOT_EXPIRED`、`DIGEST_FORMAT_INVALID` / `DIGEST_MISMATCH`、`SNAPSHOT_VERSION_NOT_FORWARD`。\n\n## 与其他 `@juhai/client-*` 的不同\n\n本包**不实现任何内核端口**,无 `@juhai/kernel` peer 依赖,也不进端口一致性三画像——配置与功能开关按设计**在三消费者之前根本不设运行服务**。形态判据见 `../README.md`。\n\n## 未做(不在本轮范围)\n\n- **一般化**(见上)。\n- **消费者未改接**:工单仓仍用自己的 `@repo/configuration-client`;改接前提是本包发布,而发布卡在 CI 计费。\n- **Catalog 登记未动**:仍 `module_e2 / E2`,`code_truth` 仍指工单仓 `packages/configuration-client`。\n- **OpenFeature 兼容接口未做**(设计方案 §4.2 的采纳项)。\n","repository":{"type":"","url":""}}
TEXT
download_count
INTEGER NOT NULL (default 0
Update
Cancel