データベーステンプレート
テンプレートを使うと、クリックひとつでデータベース全体を作成できます。テーブルとそのリレーション、サンプル行、ビュー、ダッシュボード、オートメーション、そしてAIが自動で埋めるフィールドまで含まれます。basedbが提供するテンプレートは、テンプレートギャラリーで見られます。
テンプレートから始める
Section titled “テンプレートから始める”新しいデータベース、続いて テンプレートから始める、またはAIに依頼 を選ぶと、ギャラリーが開きます。

各テンプレートは、使う前に全体を確認できます。テーブルとそのフィールド、ビュー、オートメーション、そして各AIフィールドの指示です。データベースを作成を押すとラベルを尋ねられ、AIフィールドがある場合は、それらが引用する値をインスタンスのAIプロバイダーに送ることへの同意を求められます。同意しない場合、それらは通常のフィールドとなり、サンプル値が入ります。
サンプルデータを読み込むは初期状態でオンになっており、データベースの動作を確認できるよう、テーブルにサンプル行を入れます。オフにすると、テーブルは空のまま、自分のデータを入れる準備が整います——ビュー、ダッシュボード、オートメーションはそれでも作成されます。
空のプロジェクトでは、デモデータベースも作成できます。小さなエージェンシーの顧客、プロジェクト、タスク、請求書、レビューが入っており、basedbのあらゆる機能を紹介します。
ご利用の言語で
Section titled “ご利用の言語で”公式のテンプレートは、画面の言語で読み書きされます:テーブル、フィールド、選択肢、サンプル行、ビュー、ダッシュボード、オートメーション、AIへの指示。サンプル行は、言語とともに舞台も変わります:Lyonの「Boulangerie Martin」は、日本語では大阪の「田中ベーカリー」になります。
インスタンスにインポートされた、またはデータベースから保存されたテンプレートは、誰かが書いたものです:書かれたとおりに読まれます。
AIに作ってもらう
Section titled “AIに作ってもらう”ギャラリーの上部で、必要なものを一文で説明します(「顧客からのクレームの管理。トーン分析付き」)。AIが完全なデータベースを提案します:テーブル、現実的なサンプル行、ビュー、ダッシュボード、そして用途に合う場合はAIフィールド。テンプレートと同じように内容を確認し、調整(「仕入先のテーブルを追加して」)してから作成できます。AIが受け取るのは入力した文だけで、どのデータベースのデータも送られません。クリックするまで何も作成されません。
JSONでテンプレートを書く
Section titled “JSONでテンプレートを書く”テンプレートはJSONドキュメントです。骨組みは次のとおりです:
{ "format": 1, "key": "suivi-tickets", "label": "Suivi de tickets", "summary": "Une phrase pour la galerie.", "category": "Produit et technique", "icon": "bug", "color": "#ef4444", "tables": [ { "key": "tickets", "label": "Tickets", "fields": [ { "label": "Titre", "kind": "short_text" }, { "label": "Statut", "kind": "select", "options": ["Nouveau", "En cours", "Résolu"] }, { "label": "Ouvert le", "kind": "date" }, { "label": "Description", "kind": "long_text" }, { "label": "Catégorie", "kind": "select", "options": ["Bug", "Demande"], "ai": { "prompt": "Classe ce ticket : {{Titre}} — {{Description}}" } }, { "label": "Âge (jours)", "kind": "formula", "formula": "JOURS(AUJOURDHUI(); [Ouvert le])" } ] }, { "key": "produits", "label": "Produits", "fields": [{ "label": "Nom", "kind": "short_text" }] } ], "links": [{ "from": "tickets", "label": "Produit", "to": "produits" }], "rows": { "produits": [{ "$key": "app", "Nom": "Application mobile" }], "tickets": [{ "Titre": "Crash au démarrage", "Statut": "En cours", "Ouvert le": "-3d", "Produit": "@app" }] }, "views": [ { "table": "tickets", "label": "Tableau", "kind": "kanban", "spec": { "group_by": "Statut" } } ], "dashboards": [ { "label": "Vue d’ensemble", "blocks": [ { "kind": "number", "title": "Ouverts", "table": "tickets", "filter": "[Statut] ne \"Résolu\"" }, { "kind": "chart", "title": "Par catégorie", "table": "tickets", "group_by": "Catégorie", "style": "pie" } ] } ], "automations": []}主なルール:
- すべてラベルで参照します:ビュー内のフィールド、フィルター(
[Statut] ne "Résolu")、数式([Prix] * [Quantité])、AIの指示やメッセージ({{Titre}})。選択肢も、そのラベルで指定します。 - テーブルの最初のフィールドが、そのテーブルの表示フィールドになります:テキスト、数値、日付、メールアドレス、またはURL。
- リレーションはフィールドとしてではなく、
linksで宣言します。行からは"@clé"(対象テーブルの行の$key)で参照します。 - 日付は、テンプレートを適用した日からの相対指定ができます:
"today"、"+3d"、"-2w"、"+1m"。日時の場合は時刻を加えます:"+1d 14:30"。メンバーは"$moi"と書きます。 - AIフィールドは
"ai": { "prompt": "…" }を持ち、サンプル値を持たせることもできます。サンプル値は、AIを使わない場合にのみ書き込まれます。 - テンプレートには、共有、権限、Webhook、ファイル、
"$moi"以外のメンバーを決して含めません。テンプレートは外部から持ち込まれることもあるため、何も開放してはならないからです。
完全なリファレンス(すべてのフィールドの型、ビューのキー、上限値)は、リポジトリにあるアーキテクチャ文書の第20章にあります。
すべてのインスタンス向けにテンプレートを公開する
Section titled “すべてのインスタンス向けにテンプレートを公開する”公式ギャラリーのテンプレートは、リポジトリのpackages/templates/catalogフォルダーにあるファイルです。テンプレートごとに1ファイルで、keyにちなんだ名前が付いています。公開サイトはこれをギャラリーにし、カタログ全体を/basedb/modeles/catalogue.jsonで公開しています。各インスタンスは、誰かがギャラリーを開いたときにこれを読み込み、1時間保持します。ファイルを変更してサイトを再公開するだけで、すべてのインスタンスのギャラリーが変わります。
各テンプレートは、サーバーと同じバリデーターで、サイトのビルド時に検証されます。無効なテンプレートがあるとビルドが失敗するため、ユーザーに届くことはありません。
公式テンプレートはフランス語で一度だけ書かれます。他の言語のテキストは辞書——packages/templates/i18n/<langue>/<clé>.json(フランス語のテキストと、その翻訳)——になっており、サイトはこれをカタログと並べて公開します(/basedb/modeles/i18n/<langue>.json)。インスタンスは各テキストをそこに当てはめ、数式、フィルター、ビュー、指示など、各ラベルが引用されている箇所をすべて追跡したうえで、結果を読み直します:テンプレートを壊してしまう辞書は提供されず、フランス語のテンプレートが提供されます。辞書にないテキストは、フランス語のまま残ります。
インスタンスはBASEDB_TEMPLATES_URLのアドレスを読み込みます。デフォルトは公開サイトのアドレスです。独自のカタログを指定することも、offにして何も読み込まないようにすることもできます。その場合、インスタンスは自身のバージョンに組み込まれたテンプレートを提供します。
インスタンス独自のテンプレート
Section titled “インスタンス独自のテンプレート”管理者は、ギャラリーから(「JSONをインポート」)JSONテンプレートをインスタンスにインポートできます。インポートしたテンプレートはすべてのユーザーのギャラリーに加わり、同じキーのテンプレートを置き換えます。AIの提案も、クリックひとつで追加できます。
どのデータベースもテンプレートにできます。データベースのメニューのその他の操作にあるテンプレートとして保存を使います。テーブル、フィールド、AIの指示、リレーション、共有ビュー、ダッシュボード、オートメーション、さらに必要に応じてテーブルごとに最大50行がJSONとしてダウンロードされ、公式カタログやインスタンスのカタログにそのまま追加できます。行を検索する、行を繰り返し処理する、分岐する、前のステップを引用するオートメーションは、現時点では含まれず、画面にその旨が表示されます。
basedbは、AIネイティブなソフトウェアスタジオEodiaが開発するフリーソフトウェアです。