アーカイブの構成
- ルートディレクトリは任意です。
toolset.ymlをZIPの最上位に置くこともでき、その場合ToolSetのスラッグはnameから生成されます。ルートディレクトリがある場合はその名前がスラッグになります。 - 各ツールは
tools/配下の専用フォルダに置きます。フォルダ名がツールのスラッグです。.で始まるフォルダは無視されます。 - コードファイルは、PythonのToolSetでは
main.py、TypeScriptのToolSetではmain.tsです。
ファイル形式
toolset.yml
environmentSlugの無いenv要素はdefault環境プロファイルに属します。存在しないenvironmentSlugはインポート時に作成され、スラッグがそのまま名前になります。プロファイルの仕組みは環境変数の管理を参照してください。
tool.yml
コードファイル
入出力スキーマはアーカイブには含まれません。インポート時にコードから抽出されるため、コードはエディタで書く場合と同じ規約に従う必要があります。- Python (main.py)
- TypeScript (main.ts)
InputとOutputはpydantic v2のモデルである必要があります。エクスポート
ToolSetヘッダーのExportをクリックすると、全ツールのドラフト状態を含む{slug}.zipがダウンロードされます。ToolSetにツールが1つも無い間はボタンは無効です。
公開済みの各バージョンはVersionsタブから個別にエクスポートできます。バージョンのアーカイブは{slug}-{version}.zipという名前で、公開時点のツールとパッケージをそのまま含み、バージョンではなくToolSetに属する環境変数は含みません。ルートディレクトリは{slug}のままなので、他のアーカイブと同じようにインポートできます。
シークレットの環境変数は平文ではなく暗号化された値のままエクスポートされ、インポート時もそのまま書き戻されます。そのため再インポートできるのは同じJinba Toolbox環境に対してだけです。アーカイブを別の環境へ移した場合は、コンソールでシークレットの値を再入力してください。シークレットでない変数は平文でエクスポートされます。
既存のToolSetへのインポート
1
インポートダイアログを開く
ToolSet詳細ページのヘッダーでImportをクリックします。Import Toolsダイアログが開きます。
2
上書きの可否を決める
Overwrite existing tools with same slugをオンにすると、ToolSetに既に存在するツールを置き換えます。オフの場合、該当ツールは
Tool "<slug>" already exists (enable overwrite)としてFailedに計上されます。既に存在する環境変数を更新するかスキップするかも、同じスイッチで決まります。このオプションは取り込み元を選ぶと表示されなくなるため、先に決めてください(変更するにはBackで戻ります)。3
取り込み元を選ぶ
Select Folderでルートに
toolset.ymlを含むローカルフォルダを、またはSelect ZIPでアーカイブを選択します。フォルダのルートにtoolset.ymlが無い場合は「The selected folder does not contain a toolset.yml at its root.」と表示されます。4
確定する
ダイアログに「Import this file?」と表示され、上書きがオンの場合は同じスラッグの既存ツールが上書きされる旨の警告が出ます。Importをクリックします。**Importing…**と表示された後、Created・Updated・Failedそれぞれのツール数が表示され、成功した場合は数秒後に自動で閉じます。
toolset.ymlのpackagesは無視されます。スキーマ抽出は各ツールのコードをToolSetのSandboxで現在のパッケージのまま実行するため、アーカイブが必要とするパッケージはインポート前にPackagesタブで追加してください。コード内のimportが失敗したツールはFailedに計上され、パッケージを揃えた後に再度インポートできます。
新しいToolSetとしてインポート
ToolSet一覧ページのImportボタンは、アーカイブから新しいToolSetを作成します。ダイアログは同じですが、上書きオプションはありません。- 名前・説明・言語・パッケージ・環境変数は
toolset.ymlから取り込まれます。languageはpythonまたはtypescriptである必要があります。 - スラッグはルートディレクトリ名(ルートディレクトリが無い場合は
name)から決まります。同じスラッグのToolSetが組織に既にある場合は-1、-2…の接尾辞が付きます。 - SandboxプロバイダはE2Bになります。