Configuration via Plugins
Owncastはプラグインに管理者が設定を変更できる2つの方法を提供します。 マニフェストでconfigブロックを宣言すると、Owncastは管理者のHTMLや保存または読み込みのコードを書くことなく、型付きのフォームを表示します。 または、adminページを登録し、自分のHTMLを提供します。
フラットな型付きのノブにはマニフェストconfigブロックを使用してください:文字列、数値、およびスイッチ。 自動フォームが表現できないUIが必要な場合にのみ、カスタム管理者ページにアクセスしてください。 両方共存できます。 プラグインは自動フォームの設定タブと1つ以上のカスタム管理者ページを持つことができます。
マニフェストで設定を宣言する
configの各エントリには、type、default、およびdescriptionがあります:
{
"config": {
"greeting": { "type": "string", "default": "welcome!", "description": "First-join message" },
"cooldownMs": { "type": "number", "default": 2000, "description": "Per-user command cooldown" },
"modOnly": { "type": "boolean", "default": false, "description": "Restrict to moderators" }
}
}
| フィールド | ノート |
|---|---|
type | string、number、またはbooleanのいずれかです。 他の値も受け入れられますが、プレーンテキスト入力となり、保存時に型チェックは行われません。 |
default | その値は、管理者がオーバーライドを保存するまでconfig.getが返します。 そのJSONタイプはtypeと一致する必要があります。 |
description | 管理者フォームのフィールドの横に表示されるラベルです。 空の場合はキー名にフォールバックします。 |
キー名は__で始めることができません。 そのプレフィックスはホストが注入するインスタンスごとの状態のために予約されており、__internalのようなキーを宣言するとプラグインは読み込まれません。
管理者が見るもの
configブロックを宣言したプラグインは、管理者 → プラグインの詳細ページに設定タブが表示されます。 Owncastはスキーマからフォームを構築します:
stringはテキスト入力、numberは数値入力、booleanはスイッチを表示します。descriptionがフィールドのラベルです。defaultは、管理者がオーバーライドを保存するまで表示されます。- 名前が資格情報のように見えるキーはマスクされたパスワード入力として表示されます。 一致は大文字と小文字を区別せず、名前に
secret、password、token、apikey、またはapi_keyが含まれるか、単独の単語keyで発生します。 したがって、apiKey、clientSecret、accessToken、およびwebhook_secretはマスクされます。accessKeyやkeyValueのような名前はマスクされません。keyは全体の単語としてのみ一致します。 マスクしたい場合は、秘密のフィールドにapiKey、api_key、またはSecretまたはTokenで終わる名前を付けてください。
configブロックがないプラグインは設定タブを表示しません。
実行時に値を読み取る
owncast.config.get(key, fallback?)は、設定されている場合は管理者のオーバーライドを返し、そうでない場合は宣言されたデフォルトを返し、すでに宣言された型に解析済みです。
- JavaScript
- Python
const cooldownMs = owncast.config.get('cooldownMs', 2000);
const modOnly = owncast.config.get('modOnly', false);
cooldown_ms = owncast.config.get("cooldownMs", 2000)
mod_only = owncast.config.get("modOnly", False)
config.getは周囲にあるため、権限は必要ありません。 numberフィールドは数値として返され、booleanはboolとして返されるため、自分で文字列を解析する必要はありません。 不明なキーやデフォルトまたは保存されたオーバーライドがない宣言されたキーの場合、fallback(JavaScriptではundefined、PythonではNone)を返します。 実行できるフォールバックを渡してください。
完全なシグネチャはAPIリファレンスにあります。
検証とストレージ
管理者がフォームを保存すると、Owncastはストレージする前にスキーマに対して各値をチェックします:
- マニフェストで宣言されていないキーは
400 unknown config keyで拒否されます。 stringフィールドは文字列を受け取り、numberは数値を、booleanはboolを受け取る必要があります。 型の不一致は拒否されます。 宣言された他のtypeはそのまま保存されます。- リクエストボディは1MBに制限されています。
オーバーライドはプラグインの予約キーowncast.configの下に、プラグインのslugによって名前空間化されたストレージに保持されます。 他のプラグインはそれらを読み取れず、再起動や再インストールでも生き残ります。 リリース後にslugを変更すると新しいストレージが始まり、保存されたオーバーライドはデフォルトに戻り、これは他のKVデータに適用される同じルールです。
Improve this page
See something missing or incorrect? Edit this page and improve the documentation for everyone.
