MikaAir LIGHTNESSCapability Book
目次を開く

F BUS / 実装状態は正本registryから生成

F2_Database / Database

行単位の所有権を通して、読取と不可逆な書換を分ける器官。

subjectが自分のtable行だけを query し、値の変更は plan → arm → execute と進める。

入力 → 状態 → 出力

線形テキスト代替: Action Registryが検証したpayloadをengineへ渡す。engineはこの器官のdurable state sliceを更新し、resultまたはerrorをAction Coreへ返す。光は実行中、琥珀の境界はarmed状態、外縁はこの器官の作用半径を表す。
  1. 入力validated JSON payload
  2. 状態engine-owned durable slice
  3. 承認必要な外部 / 不可逆操作だけ
  4. 出力result / receipt / explicit error
  5. 回復未armed planは実行されず、idempotency key が重複実行を止める。失敗は error code を保持する。
9 registered actionsnone dependenciessupabase binding reference

保存状態はAction Coreのfilesystem state store内の capabilities sliceとして再起動可能なplain dataで保持される。functionや秘密値をstateへ保存しない。

全Action

以下はAction Registryに実在するF2_Databaseの全actionである。クリックでpayload境界、状態、出力、回復を開ける。

capability.db.bindBind databaselocal or validated transition
payload
provider
状態
unbound → configured / ready
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.db.queryDatabase querylocal or validated transition
payload
table
状態
state transition defined by the capability engine
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.db.plan_mutationPlan database mutationreversible preparation
payload
table values
状態
durable plan → approval_required
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.db.arm_mutationArm database mutationreversible preparation
payload
planId
状態
approval_required → armed
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.db.execute_mutationExecute database mutationapproval boundary / external effect
payload
planId
状態
armed → visible provider/result state
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
実行前にarm状態を要求する。失敗はengineが保持し、同一keyは重複実行を防ぐ。
capability.db.plan_migrationPlan database migrationreversible preparation
payload
version steps
状態
durable plan → approval_required
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.db.arm_migrationArm database migrationreversible preparation
payload
planId
状態
approval_required → armed
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.db.execute_migrationExecute database migrationapproval boundary / external effect
payload
planId
状態
armed → visible provider/result state
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
実行前にarm状態を要求する。失敗はengineが保持し、同一keyは重複実行を防ぐ。
capability.spec.saveSave spec bindinglocal or validated transition
payload
key value
状態
state transition defined by the capability engine
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。

Capability Spec

F2 Database — Capability Spec

Provider-independent database capability with explicit connection states, read/query path, plan→arm→execute mutation and migration flows, transaction idempotency, and row-level authorization.

States

StateMeaning
disconnectedNo binding configured.
readyBound; reads and plans allowed.
readingQuery/read in flight.
writingApproved mutation executing.
migratingApproved migration executing.
errorRecoverable failure; binding may remain.

Actions

ActionFlow
bindConfigure provider binding from env names only → ready
queryreadyreadingready with row-level authorization
plan_mutationCreate durable mutation plan → approval_required
arm_mutationHuman approval → armed
execute_mutationarmedwritingready; idempotent by key
plan_migrationCreate migration plan → approval_required
arm_migrationHuman approval → armed
execute_migrationarmedmigratingready; idempotent by key

Row-Level Authorization

  • Env name: MIKAAIR_DB_ROW_POLICY_JSON
  • JSON array of { table, owner_field, operations[] }
  • Subject identity must match owner_field on existing rows
  • Inserts require authenticated subject; no cross-owner writes

Error Contract

Codes: not_bound, config_missing, invalid_query, authorization_denied, plan_not_found, plan_not_armed, idempotency_conflict, mutation_failed, migration_failed, provider_error.

Environment Names (values never in repo)

NameRole
SUPABASE_URLProvider API base
SUPABASE_PUBLISHABLE_KEYClient-safe key
SUPABASE_SECRET_KEYServer-only elevated key
MIKAAIR_DATABASE_URLConnection string reference
MIKAAIR_DB_ROW_POLICY_JSONRow-level policy manifest

Provider Binding

Reference adapter: Supabase contract mock at binding/adapter_contract.mjs. No remote writes or secret echo.

binding / secret boundary

provider設定はbinding templateから参照する。環境変数は名前だけを扱い、値はsource repository・画面・reportに書かない。

環境変数名扱い
SUPABASE_URLconfiguration reference — 値は表示・保存しない
SUPABASE_PUBLISHABLE_KEYconfiguration reference — 値は表示・保存しない
SUPABASE_SECRET_KEYsecret reference — 値は表示・保存しない
MIKAAIR_DATABASE_URLsecret reference — 値は表示・保存しない
MIKAAIR_DB_ROW_POLICY_JSONconfiguration reference — 値は表示・保存しない

未armed planは実行されず、idempotency key が重複実行を止める。失敗は error code を保持する。

source trace

../MikaAir LIGHTNESS/F_BUS_Capability/F2_Database/spec/capability_spec.md ba90403e7e3f
../MikaAir LIGHTNESS/F_BUS_Capability/F2_Database/binding/binding_manifest.template.json fbdd1546e8d5
../MikaAir LIGHTNESS/F_BUS_Capability/F2_Database/agent.md da187f3f3ac2
../MikaAir LIGHTNESS/F_BUS_Capability/runtime_bridge.mjs 7e7384638a41
../MikaAir LIGHTNESS/F_BUS_Capability/action_surface.mjs e5bae5f48648
../MikaAir LIGHTNESS/A_BUS_Action_Core/A2_State_Store/filesystem_store.mjs b1cc32d3f456
../MikaAir LIGHTNESS/F_BUS_Capability/F2_Database/contract/index.mjs ebcae2225d8d
../MikaAir LIGHTNESS/F_BUS_Capability/F2_Database/engine.mjs 4241ba50d565