メインコンテンツに移動

サーバープラグイン

サーバープラグイン

開発モードと本番モードに対応したHTTPサーバー機能を提供します。

主な機能:

  • REST API向けのExpressサーバー
  • ホットモジュールリロードに対応したVite開発サーバー
  • 本番環境向けの静的ファイル配信
  • デプロイ済みバックエンドへのリモートトンネリング

Server pluginは、遅延初期化フェーズを利用して他のpluginのルートにアクセスします。

機能

  • Express サーバーを起動します (デフォルトは host=0.0.0.0port=8000)
  • plugin のルートを /api/<pluginName>/... 配下にマウントします
  • /health endpoint を追加します ({ status: "ok" } を返します)
  • フロントエンドを配信します:
    • 開発時 (NODE_ENV=development) : Vite 開発サーバーをミドルウェアモードで実行します
    • 本番時: 静的フロントエンドのディレクトリを自動検出します (distclient/distbuildpublicout を順に確認)

最小構成のサーバー例

有効な最小構成の AppKit サーバーは次のとおりです。

// server/server.ts
import { createApp, server } from "@databricks/appkit";

await createApp({
  plugins: [server()],
});

カスタムルートの例

onPluginsReady コールバックを使用すると、サーバー起動前に Express へカスタムルートを追加できます。

import { createApp, server } from "@databricks/appkit";

await createApp({
  plugins: [server()],
  onPluginsReady(appkit) {
    appkit.server.extend((app) => {
      app.get("/custom", (_req, res) => res.json({ ok: true }));
    });
  },
});

onPluginsReady コールバックは非同期処理にも対応しています。

await createApp({
  plugins: [server()],
  async onPluginsReady(appkit) {
    const pool = await initializeDatabase();
    appkit.server.extend((app) => {
      app.get("/data", async (_req, res) => {
        const result = await pool.query("SELECT 1");
        res.json(result);
      });
    });
  },
});

設定オプション

import { createApp, server } from "@databricks/appkit";

await createApp({
  plugins: [
    server({
      port: 8000,          // デフォルト: Number(process.env.DATABRICKS_APP_PORT) || 8000
      host: "0.0.0.0",     // デフォルト: process.env.FLASK_RUN_HOST || "0.0.0.0"
      staticPath: "dist",  // 任意: 特定の静的ディレクトリを強制的に指定
    }),
  ],
});

Databricks Developer Hub

次のエージェント型アプリを数分でリリースする準備はできていますか?

ドキュメントを読む