Конфигурация API сервера
Бенчер API сервер требует настройки в формате JSON при запуске. Конфигурация может быть предоставлена тремя способами:
BENCHER_CONFIG
переменная окружения: Значение должно быть установлено на конфигурацию в формате JSONBENCHER_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” | ”http://localhost:3000” | Да | Указывает URL для хоста консоли Bencher UI. |
security
Имя | Пример | По умолчанию | Обяз. | Описание |
---|---|---|---|---|
issuer | ”https://api.bencher.example.com” | “bencher.dev” | Нет | Указывает выпускающий орган JSON Web Token (JWT). ВНИМАНИЕ Изменение этого значения приведет к тому, что все ранее созданные JWT больше не проходят проверку. |
secret_key | “UJu7Cpxb-zFaJYqXD-3mDDSDyj-ZvfxZFZs-X58xjxPy” | Случайный UUID v4 | Да | Указывает ключ, используемый для генерации всех токенов. ОН ДОЛЖЕН БЫТЬ ОЧЕНЬ БЕЗОПАСНЫМ! Значение по умолчанию - это случайно сгенерированный UUID v4. При записи он будет выглядеть как ************ . |
server
Этот раздел основан на конфигурации сервера Dropshot.
Имя | Пример | По умолчанию | Обяз. | Описание |
---|---|---|---|---|
bind_address | “0.0.0.0:61016” | “0.0.0.0:61016” | Да | Указывает, что сервер должен привязываться к данному IP-адресу и TCP-порту. В общем случае серверы могут привязываться к более чем одному IP-адресу и порту, но это пока не поддерживается. |
request_body_max_bytes | 1048576 | 1048576 | Да | Указывает максимальное количество байт, разрешенное в теле запроса. Большие запросы получат ошибку 400. |
tls.type | “as_file” | --- | Нет | Указывает, используется ли и как информация о сертификате и ключе TLS. Действительные значения включают “as_file” и “as_bytes”. |
tls.cert_file | “/path/to/cert.pem” | --- | Только если tls.type = as_file | Указывает путь к файлу PEM, содержащему сертификат для идентификации сервера. Первый сертификат - это конечный сертификат субъекта, а оставшиеся - промежуточные сертификаты на пути к доверенному CA. Если указано, сервер будет прослушивать только TLS-соединения. |
tls.key_file | “/path/to/key.pem” | --- | Только если tls.type = as_file | Указывает путь к файлу PEM, содержащему закрытый ключ, который будет использовать сервер. Если указано, сервер будет прослушивать только TLS-соединения. |
tls.certs | --- | --- | Только если tls.type = as_bytes | То же, что и tls.cert_file, но предоставляемое в виде массива байт данных сертификата. |
tls.key | --- | --- | Только если tls.type = as_bytes | То же, что и tls.key_file, но предоставляемое в виде массива байт данных ключа. |
logging
Этот раздел основан на конфигурации журнала Dropshot.
Имя | Пример | По умолчанию | Обязательно | Описание |
---|---|---|---|---|
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” | “/var/lib/bencher/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. Смотрите также 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 | Нет | Управляет применением протокола STARTTLS для соединения SMTP. |
username | “bencher” | --- | Да | Задает имя пользователя на хосте SMTP. |
secret | “WM3F2u9cqSNdBPLfy9sJ5kk9” | --- | Да | Указывает пароль для имени пользователя на хосте SMTP. При логировании он будет обфусцирован как ************ . |
from_name | “Bencher” | --- | Да | Задает имя, которое будет отображаться в секции “от кого” во всех электронных письмах. |
from_email | ”info@bencher.example.com” | --- | Да | Устанавливает адрес электронной почты, который будет отображаться в секции “от кого” во всех электронных письмах. |
plus
Этот раздел посвящен функциям, которые покрываются лицензией Bencher Plus.
plus.github
В этом разделе указывается конфигурация приложения GitHub, используемого для аутентификации OAuth2. У вас должна быть действующая лицензия Bencher Plus Enterprise для хотя бы одной организации на сервере. Весь раздел является необязательным. Если он не указан, то аутентификация с помощью GitHub не будет включена.
Название | Пример | По умолчанию | Обязательно | Описание |
---|---|---|---|---|
client_id | Iv1.12864abcd1232048 | --- | Да | Указывает идентификатор клиента для вашего приложения GitHub. Идентификатор клиента отличается от идентификатора приложения. Вы можете найти идентификатор клиента на странице настроек вашего приложения. Для получения дополнительной информации о переходе на страницу настроек вашего приложения GitHub, см. Изменение регистрации приложения GitHub. |
client_secret | 00000abcd12345wxyz123456789abcdefgh0000 | --- | Да | Секретный ключ клиента для вашего приложения GitHub. Вы можете сгенерировать секретный ключ на странице настроек вашего приложения. |
plus.stats
В этом разделе указывается, собираются ли и когда статистические данные сервера.
Весь раздел является необязательным.
Если он не указан, будут использованы перечисленные значения по умолчанию.
То есть, статистика сервера собирается, если вы на это не отказываетесь.
Установите значение enabled
в false
, чтобы отключить сбор статистики сервера.
Название | Пример | По умолчанию | Обязательно | Описание |
---|---|---|---|---|
offset | 11242 | 11242 | Нет | Определяет смещение от полуночи в секундах для сбора статистики сервера. По умолчанию это происходит в 03:07:22 UTC. |
enabled | true | true | Нет | Контролирует, собирается ли статистика сервера. Установите значение false , чтобы отказаться. |