データベースとは
データベース は、Synqlet の中にデータを保存しておくための機能です。フローの処理結果を蓄積したり、外部サービスから取り込んだデータを保持したり、フローの実行に必要なデータを置いたりできます。
グローバルメニューの「データベース」から利用します。
テーブル・フィールド・行
Section titled “テーブル・フィールド・行”| 用語 | 説明 |
|---|---|
| テーブル | データの入れ物。表計算ソフトの「シート」に相当します。組織ごとに複数作成できます。 |
| フィールド | テーブルの列にあたる項目。名前(コード)と型(テキスト・数値・日時・ファイルなど)を定義します。 |
| 行 | テーブルに保存された1件のデータ。表計算ソフトの「行」に相当します。 |
各行には、フィールドの値(values)のほかに、システムが自動で管理する次の項目が付きます。
| 項目 | 説明 |
|---|---|
id | 行のID。作成時に指定しなければ自動で割り振られます(UUIDv7)。テーブル内で一意です。 |
createdAt / updatedAt | 作成日時 / 更新日時 |
createdBy / updatedBy | 作成したユーザー / 更新したユーザー |
データを操作する3つの方法
Section titled “データを操作する3つの方法”| 方法 | 用途 | 参照 |
|---|---|---|
| 画面 | 中身の確認、手作業での修正、マスタデータの整備 | 画面からデータを操作する |
| スクリプト | フロー / ファンクションの処理からの読み書き | スクリプトからデータベースを操作する |
| REST API | 外部システムからの読み書き | データベースの REST API |
いずれの方法でも同じデータを扱います。スクリプトからは synqlet:database/{テーブルのID} をインポートするだけで、そのテーブル専用の型が付いた関数(list / insertOne / updateOne など)が使えます。
import * as customers from "synqlet:database/{テーブルのID}";
export default async function () { for await (const row of customers.list({ filter: { values: { status: { _eq: "active" } } }, })) { console.log(row.values.name); }}ファイルを保存する
Section titled “ファイルを保存する”フィールドの型に ファイル を選ぶと、行にファイルを添付できます。フォームトリガーで受け取ったファイルをテーブルに保存したり、テーブルのファイルを別のテーブルへコピーしたりできます。→ ファイル型フィールドを扱う
データベースの操作にはロールに応じた制限があります。
| ロール | テーブルの作成・変更・削除 | 行の閲覧 | 行の作成・更新・削除 |
|---|---|---|---|
| 管理者 | できる | できる | できる |
| 管理者(閲覧) | できない | できる | できない |
| 一般 | できない | できる | できない |
スクリプトから操作する場合は、実行しているランナーが属する組織のテーブル・行のみ読み書きできます。
→ メンバー管理