開発者ドキュメント
はじめに·

はじめに

niyase プラグインとは何か、4 つの分類軸、useNiyase() ブリッジの考え方。

niyase プラグインは、スペース単位で有効・無効を切り替えられる機能拡張の仕組みです。 有効化すると、サイドバー(cloud / desktop)またはシェルフ(mobile)に1 つのメニュー項目が追加され、必要ならスペース DB 専用テーブルとダッシュボードカードも増えます。 1 つのプラグインバンドルが、niyase クラウド(Web)・niyase アプリ(Desktop / Mobile)の 3 面で同じように動きます。

プラグインを 4 つの軸で分類する

niyase プラグインは互いに独立した 4 つの軸で分類します。よくある誤解として「公式・認定・独自」を 1 つの選択肢のように並べてしまうケースがありますが、①(誰が作るか)と ②(どう提供するか)は別の軸です。混同しないでください。

#意味manifest
開発者公式 / 認定niyase が作る(OFFICIAL)/ 外部開発者が作り niyase が審査する(CERTIFIEDscope
提供範囲・費用標準 / 独自無料で全スペースに公開する(標準)/ エンジニアリング費用をかけて指定スペースだけに提供する(独自)visibility + plugin_allowed_workspace
導入可否ハイブリッド / クラウド限定ローカルスペース・クラウドスペースの両方に導入できる(ハイブリッド、既定)/ クラウドスペースにしか導入できない(クラウド限定)requiresCloud
動作パターン単独 / PROVIDER-CLIENT自スペース内だけで完結する(単独)/ 提供側と受け手側がペアで動き、データを共有する(PROVIDER-CLIENT)defaultRole + pairedPluginId
  • ① と ② は独立です。独自(有償・指定スペース限定)プラグインも、公式(niyase が受託開発)・認定(外部企業が受託開発)のどちらもあり得ます。
  • ④ PROVIDER-CLIENT は必ず ③クラウド限定になります。ローカルスペースには協業相手が存在しえないためです。単独プラグインでも、同期や協業に依存する機能があれば③をクラウド限定にできます。

それぞれの軸の詳しい仕組みは マニフェスト を参照してください。

コア原則 — useNiyase() ブリッジ

プラグインはアプリのソースコードを一切受け取らず、SDK だけで開発します。プラグインが触れる唯一の API 面が useNiyase() ブリッジです。

import { useNiyase } from "@niyase/plugin-sdk";

function Root() {
  const niyase = useNiyase();
  niyase.data; // 自プラグインの plg_* テーブル CRUD
  niyase.core; // コアデータの読み取り(社員・部署・スペース、最小フィールド)
  niyase.connections; // PROVIDER-CLIENT 型のみ。WS 跨ぎの接続・共有データ CRUD
  niyase.context; // { spaceId, workspaceType, role, audience, locale, theme, plugin } 反応的
  niyase.i18n; // プラグイン自前の ja/en メッセージを context.locale で解決
  niyase.navigate; // 自プラグイン内のナビ
  niyase.toast; // 通知
  niyase.palette; // 統合パレット連携
}

1 インターフェース・2 実装: useNiyase() は、ローカルプレビュー(niyase-plugin dev)では MOCK 実装が、 本番の niyase 上では REAL 実装が注入されます。プラグイン側のコードは同じままで、ローカルで見えるものがそのまま本番の見た目になります。

ブリッジの全面(各名前空間の詳しい API)は UI 統合コア API 連携 で扱います。

SDK パッケージ

  • @niyase/plugin-sdk — npm に公開済み(MIT)。useNiyase() ブリッジ契約、register()niyase-plugin CLI を含む
  • @niyase/plugin-sdk/manifestPluginManifest 型 + defineManifest() + validateManifest()(zod)
  • @niyase/plugin-sdk/ui — niyase の UI コンポーネント(ビルド時に external 化、実行時はホストの実装が使われる)
  • @niyase/plugin-previewniyase-plugin dev のローカルプレビューシェル。近日 npm 公開予定です(それまでは公式プラグイン開発がモノレポ内で先行利用しています)

次に読むべきページ

  • セットアップniyase-plugin new で雛形を作り数分で動かす
  • マニフェストmanifest.ts の必須フィールドと 4 つの軸の宣言方法
  • UI 統合useNiyase() ブリッジの全面と audience
  • 公開申請 — 認定プラグインの申請フロー