スコープ
スコープ / 検索スコープ / sharedWith / visibility が、誰にデータを見せるかをどう決めるか。
Epismo で何かが誰に見えるかは、2つの問いで決まります。どこに置かれているか(スコープ)と、他に誰と共有されているかです。これを正しく扱うことが、下書きを非公開に保ち、作業をチームと共有し、意図しない公開を避ける方法です。
scope:非公開レコードの置き場所。自分の個人スペースか、1つ以上のワークスペースのプロジェクトです。sharedWith:スコープに加えてアクセスを与える特定の人です。visibility(パックのみ):そのパックを公開に発見可能にするかどうかです。
置き場所: スコープ
非公開のパック / トラックの作成・更新では scope を使います。自分だけに保つには個人用スコープです。
{ "scope": { "type": "personal" } }または、1つ以上のワークスペースのプロジェクトに置いて、そのプロジェクトのメンバーに見せます。
{ "scope": { "type": "projects", "ids": ["project-id"] } }更新で scope を省略すると既存のスコープを維持します。title を変えるだけのために再送する必要はありません。
複数の場所を横断検索: スコープ
1件のレコードは1つのスコープに属しますが、検索は複数の場所を一度に見たいことがよくあります。そのため検索では scopes(複数形)を使います。
{
"scopes": [{ "type": "personal" }, { "type": "projects", "ids": ["project-id"] }]
}これで個人スペースと指定したプロジェクトをまとめて1回の呼び出しで検索します。
追加のアクセスを与える: sharedWith
sharedWith はスコープに加えて特定の人を足します。プロジェクトには属さないがアクセスが必要な同僚がいるときに便利です。
{
"sharedWith": {
"userIds": ["user-id"],
"emails": ["teammate@example.com"]
}
}更新で sharedWith を省略すると既存の値を維持します。
組み合わせて考える
scope: { "type": "projects", "ids": ["proj-1"] } と sharedWith: { "emails": ["lead@example.com"] } を持つ context pack を考えます。
proj-1のメンバーは見えます(スコープによる)。lead@example.comも、proj-1に属していなくても見えます(sharedWithによる)。- それ以外は見えません。ただしパックの
visibilityをpublicにすると、スコープとは独立にハブで見つけられるようになります。トラックに公開設定はなく、常に非公開です。
迷ったら、まず個人用スコープで非公開のままテストし、共有できる状態になってからアクセスを広げてください。