開発者ドキュメント
データモデル·

データモデル

プラグイン独自テーブル plg_<scope>_<name>_* と niyase.data CRUD。

プラグインは原則として 独自テーブルで完結させます。 コアデータ(社員・部署等)の読み取りは コア API 連携 を参照(直接 DB 参照は不可)。

niyase.data で CRUD

manifest の tables[] で宣言したテーブルを、ブリッジ経由で操作します。

const niyase = useNiyase();

await niyase.data.list("task", { limit: 50 }); // → { items, nextCursor? }
await niyase.data.get("task", id);
await niyase.data.create("task", { title: "現場A" });
await niyase.data.update("task", id, { status: "DONE" });
await niyase.data.remove("task", id); // ソフトデリート

内部的には /nplg/:pluginId/:table を叩きます(ユーザーセッション + 現在のスペースで認可)。

物理テーブル名の規約

manifest の論理テーブル名は、各環境のローダが以下に展開します:

plg_<scope>_<name>_<table>

例: @your-org/taskstaskplg_your_org_tasks_taskscope / name のハイフンはアンダースコアに変換。Postgres の 63 文字上限内に収めること)

自動付与カラム

ローダが以下を自動付与するため、columns に書く必要はありません:

  • id(主キー)
  • workspace_id
  • created_at / updated_at
  • deleted_at(ソフトデリート)

マスタと業務テーブル

業種プリセット(industryPresets[].seedData)で投入する初期データ(マスタ)と、 ユーザーが作るトランザクション(業務)を分けて設計します:

  • マスタ: task_status / category など — seedData で初期投入、ユーザー編集可
  • 業務: task / quote など — ユーザーが作成するレコード

カラム型

プラットフォーム非依存の 3 型で宣言します(ローダが各 DB の物理型に翻訳):

用途
TEXT文字列・日付(ISO)・列挙
INTEGER整数・金額(円を整数管理)
REAL小数