APIサーバー設定
Bencher APIサーバーは起動時にJSON設定を必要とします。 設定は3つの方法で提供できます:
BENCHER_CONFIG
環境変数:値はJSON設定に設定する必要がありますBENCHER_CONFIG_PATH
環境変数:値はJSON設定を含むファイルのパスに設定する必要があります- JSON設定を含むファイルをサーバー実行可能ファイルに対して相対的に
./bencher.json
で配置します
設定が見つからない場合、デフォルトの設定がロードされます。
サーバーが稼働している間に設定を更新するには、
管理者はCLI bencher server config update
コマンドを使用できます
これはPUT /v0/server/config
ルートを利用します。
すべての更新された設定は BENCHER_CONFIG
環境変数に保存され、
BENCHER_CONFIG_PATH
のディスク上にも保存されます。
JSON設定の例:
{
"console": {
"url": "https://bencher.example.com"
},
"security": {
"issuer": "https://api.bencher.example.com",
"secret_key": "UJu7Cpxb-zFaJYqXD-3mDDSDyj-ZvfxZFZs-X58xjxPy"
},
"server": {
"bind_address": "0.0.0.0:61016",
"request_body_max_bytes": 1048576,
"tls": {
"type": "as_file",
"cert_file": "/path/to/cert.pem",
"key_file": "/path/to/key.pem"
}
},
"logging": {
"name": "Bencher API",
"log": {
"stderr_terminal": {
"level": "info"
}
},
},
"database": {
"file": "data/bencher.db",
"data_store": {
"service": "aws_s3"
"access_key_id": "ABC123DoRemMiABC123",
"secret_access_key": "AA3Chr-JSF5sUQqKwayx-FvCfZKsMev-5BqPpcFC3m7",
"access_point": "arn:aws:s3:some-region-1:123456789:accesspoint/my-bucket/path/to/backup/dir"
}
},
"smtp": {
"hostname": "mailbonobo.com",
"port": 587,
"starttls": true,
"username": "bencher"
"secret": "WM3F2u9cqSNdBPLfy9sJ5kk9",
"from_name": "Bencher",
"from_email": "info@bencher.example.com"
},
"apm": {
"sentry": {
"dsn": "https://0123abc1023abc@987efg987efg.ingest.sentry.io/0123456789"
}
},
"plus": {
"stats": {
"offset": 11242,
"enabled": true
}
}
}
console
名前 | 例 | デフォルト | 必須 | 説明 |
---|---|---|---|---|
url | ”https://bencher.example.com” | ”http://localhost:3000” | はい | Bencher UIコンソールホストのURLを指定します。 |
security
名前 | 例 | デフォルト | 必須 | 説明 |
---|---|---|---|---|
issuer | ”https://api.bencher.example.com” | “bencher.dev” | いいえ | JSON Webトークン(JWT)の発行者を指定します。 警告 この値を変更すると、すでに生成されたすべてのJWTの検証ができなくなります。 |
secret_key | “UJu7Cpxb-zFaJYqXD-3mDDSDyj-ZvfxZFZs-X58xjxPy” | Random UUID v4 | はい | すべてのトークンを生成するために使用されるキーを指定します。 非常に安全であるべきです! デフォルト値はランダムに生成された UUID v4です。ログに記録されるとき、それは絶対に ************ と表示されます。 |
server
このセクションは Dropshotサーバー設定 に基づいています。
名前 | 例例 | デフォルト | 必須 | 説明 |
---|---|---|---|---|
bind_address | “0.0.0.0:61016” | “0.0.0.0:61016” | はい | サーバーが指定されたIPアドレスとTCPポートにバインドする必要があることを指定します。一般的に、サーバーは複数のIPアドレスとポートにバインドすることができますが、これはまだサポートされていません。デフォルトは “127.0.0.1:0” に設定されています。 |
request_body_max_bytes | 1048576 | 1048576 | はい | 要求の本文で許容されるバイト数の最大値を指定します。大きな要求は400のエラーを受け取ります。デフォルトは 1024 です。 |
tls.type | “as_file” | --- | いいえ | TLS証明書とキー情報が提供される場合と方法を指定します。有効な値には “as_file” と “as_bytes” が含まれます。 |
tls.cert_file | “/path/to/cert.pem” | --- | if tls.type = as_file | サーバーが自身を識別するための証明書チェーンを含むPEMファイルへのパスを指定します。最初の証明書はエンドエンティティ証明書であり、残りは信頼できるCAへの途中の中間証明書です。指定された場合、サーバーはTLS接続のみを受け付けます。 |
tls.key_file | “/path/to/key.pem” | --- | if tls.type = as_file | サーバーが使用するプライベートキーを含むPKCS#8ファイルへのパスを指定します。指定した場合、サーバーはTLS接続のみをリッスンします。 |
tls.certs | --- | --- | if tls.type = as_bytes | tls.cert_fileと同じですが、証明書データのバイト配列として提供されます。 |
tls.key | --- | --- | if tls.type = as_bytes | tls.key_fileと同じですが、キーデータのバイト配列として提供されます。 |
logging
このセクションは、Dropshot logging configurationに基づいています。
名前 | 例 | デフォルト値 | 必須項目 | 説明 |
---|---|---|---|---|
name | “Bencher API” | “Bencher API” | はい | ロガーの名前を指定します。 |
log.mode | “stderr_terminal” | “stderr_terminal” | はい | サーバーロギングがどこに行くかを制御します。有効なモードは “stderr-terminal” と “file” です。モードが "stderr-terminal" の場合、人間が読める出力を可能な限り色や他の端末の書式設定とともに stderr に送ります。モードが “file” の場合、Bunyan形式の出力を log.path で指定したファイルシステムのパスに送ります。 log.if_exists も参照してください。これは、目的地のパスが既に存在する場合の挙動をコントロールします。 |
log.level | “info” | “info” | はい | ログに含めるログメッセージの重大度を指定します。有効な値は “trace”、“debug”、“info”、“warn”、“error”、そして “critical” で、それらは重大度が増す順番です。指定されたレベルとそれ以上の重大度のログメッセージがログに含まれます。 |
log.path | --- | --- | log.mode = “file”の場合のみ | log.mode が “file” の場合、このプロパティはログファイルへのパスを決定します。 log.if_exists も参照してください。 |
log.if_exists | --- | --- | log.mode = “file”の場合のみ | log.mode が “file” の場合、このプロパティは目的地のログファイルが既に存在する場合に何をするかを指定します。有効な値は “append”(既存のファイルに追記)、 “truncate”(既存のファイルを切り捨ててから、新規作成されたものとして使用)、そして “fail”(エラーと共にサーバーが直ちに終了する)です。 |
database
名前 | 例 | デフォルト値 | 必須項目 | 説明 |
---|---|---|---|---|
file | “path/to/database.db” | “data/bencher.db” | はい | サーバーデータベースがどこに行くかを制御します。 |
data_store.service | “aws_s3” | --- | いいえ | 遠隔データストアサービスを指定します。有効な値は “aws_s3” です。 |
data_store.access_key_id | “ABC123DoRemMiABC123” | --- | data_store.service = “aws_s3”の場合のみ | data_store.service = “aws_s3” の場合、このプロパティは AWS アクセスキー ID を指定します。 data_store.service も参照してください。 |
data_store.secret_access_key | “AA3Chr-JSF5sUQqKwayx-FvCfZKsMev-5BqPpcFC3m7” | --- | data_store.service = “aws_s3”の場合のみ | data_store.service = “aws_s3” の場合、このプロパティは AWS シークレットアクセスキーを指定します。 data_store.service も参照してください。ログ時には ************ として表示されます。 |
data_store.access_point | “arn:aws:s3:some-region-1:123456789:accesspoint/my-bucket/path/to/backup/dir” | --- | data_store.service = “aws_s3”の場合のみ | data_store.service = “aws_s3” の場合、このプロパティは AWS S3 アクセスポイント を指定します。 data_store.service も参照してください。 |
smtp
このセクションは、SMTP サービスの設定を指定します。
このセクション全体はオプションです。
指定されていない場合、すべてのメッセージは代わりに logging
に送信されます。
名前 | 例 | デフォルト値 | 必須項目 | 説明 |
---|---|---|---|---|
hostname | “mailbonobo.com” | --- | はい | SMTP ホスト名を指定します。 |
port | 587 | 587 | いいえ | SMTP ポートを指定します。 |
starttls | true | true | いいえ | SMTP 接続が STARTTLS プロトコルを使用するかどうかを制御します。 |
username | “bencher” | --- | はい | SMTP ホストでのユーザー名を指定します。 |
secret | “WM3F2u9cqSNdBPLfy9sJ5kk9” | --- | はい | SMTP ホストのユーザー名のための秘密を指定します。ログ時には ************ として表示されます。 |
from_name | “Bencher” | --- | はい | すべてのメールの差出人セクションに表示される名前を指定します。 |
from_email | ”info@bencher.example.com” | --- | はい | すべてのメールの差出人セクションに表示されるメールアドレスを指定します。 |
plus
このセクションは、Bencher Plusライセンスでカバーされる機能について説明しています。
plus.stats
このセクションは、サーバー統計がどのくらいの頻度で収集されるのかを指定します。
このセクション全体は任意です。
何も指定されない場合は、リストされたデフォルト値が使用されます。
つまり、サーバー統計はオプトアウトです。
サーバー統計を無効にするには、enabled
をfalse
に設定します。
名前 | 例 | デフォルト | 必須 | 説明 |
---|---|---|---|---|
offset | 11242 | 11242 | いいえ | サーバー統計の収集を深夜から何秒後に開始するかを指定します。デフォルトでは03:07:22 UTCに実行されます。 |
enabled | true | true | いいえ | サーバー統計の収集を制御します。false に設定してオプトアウトします。 |