Окружение

Страница Окружение показывает, откуда берётся каждое свойство сервиса Spring Boot, какое значение приложение использует на самом деле, какие свойства устарели и какие бины их считывают.

СкриншотыСкриншоты соответствуют последнему минорному релизу Axelix.

главная страница окружения

Окружение в интерфейсе Axelix

Одно и то же свойство может прийти из многих мест: application.yaml, файлов профилей, переменных окружения, системных свойств, аргументов командной строки.

Что показывает страница

На странице перечислены все свойства, сгруппированные по источникам свойств. Источники идут от наиболее приоритетного к наименее приоритетному, в том порядке, в котором к ним обращается Spring Boot (см. Externalized Configuration). Если одно и то же свойство задано в нескольких источниках, приложение использует значение из источника, который выше в списке.

Для каждого свойства видно:

  • Применяется ли его значение:
    • Активное, если приложение использует это значение.
    • Перекрыто, если его задаёт и источник с более высоким приоритетом, поэтому это значение до приложения не доходит.
  • Все источники, в которых оно задано, от наивысшего приоритета к наименьшему, с отметкой о победившем значении.
  • @ConfigurationProperties бин, который его связывает, и бины, которые получают его через @Value, со ссылками на страницы Свойства конфигурации и Бины.
  • Описание из spring-configuration-metadata.json, если оно есть.
СкриншотыСкриншоты соответствуют последнему минорному релизу Axelix.

страница подробностей свойства

Выпадающий блок свойства в интерфейсе Axelix

Устаревшие свойства выделены и показывают сообщение об устаревании, так что перед обновлением легко найти настройки, которые нужно перенести.

СкриншотыСкриншоты соответствуют последнему минорному релизу Axelix.

устаревшее свойство

Устаревшее свойство в интерфейсе Axelix

Также страница показывает активные профили сервиса и профили по умолчанию (spring.profiles.active и spring.profiles.default).

Опасные значения свойств

Некоторые значения свойств безобидны на машине разработчика, но в production часто приводят к проблемам: потере данных, раскрытию внутренностей приложения или медленным запросам. Axelix помечает свойства с такими значениями. Для каждого из них показывается, чем опасно значение и какое значение использовать вместо него. Например, spring.jpa.hibernate.ddl-auto=update позволяет Hibernate самому менять схему базы данных.

Axelix проверяет только значение, которое использует приложение, поэтому опасное значение в перекрытом источнике свойств не помечается. Значение должно совпадать целиком, регистр не важен: management.endpoints.web.exposure.include=* помечается, а health,* нет. Замаскированные значения тоже не проверяются, поэтому без полномочия ENV_VALUES_READ пометки для маскируемых ключей не видно (см. Маскирование значений).

По умолчанию все значения маскируются как ****** для пользователей, не обладающих полномочиями ENV_VALUES_READ. О том, как выбрать, какие ключи будут замаскированы, а какие останутся открытыми, см. в разделе Маскирование значений.

Маскирование значений

Axelix никогда не полагается на переключатель Spring Boot management.endpoint.env.show-values — он всегда просит Spring Boot вернуть сырые значения (Show.ALWAYS) и поверх применяет собственное маскирование на основе проверки полномочий.

Кто видит исходные значения. Вызывающие с полномочием ENV_VALUES_READ предоставляемыми встроенными ролями ADMIN и SUPER_ADMIN — получают исходные значения. Остальные получают значения, заменённые на ******. Полную матрицу ролей и полномочий см. в разделе Роли и полномочия.

Какие ключи маскируются. Одно свойство стартера — axelix.sbs.endpoints.config.sanitized-properties — управляет этим набором, и оно применяется и к axelix-env (эта страница), и к axelix-configprops (страница Configuration Properties):

  • Пустой список (по умолчанию) — все значения маскируются для пользователей без соответствующих полномочий.
  • Непустой список — маскируются только указанные ключи, остальные возвращаются без изменений.
axelix.sbs.endpoints.config.sanitized-properties[0]=database.password
axelix.sbs.endpoints.config.sanitized-properties[1]=spring.datasource.password
axelix.sbs.endpoints.config.sanitized-properties[2]=jwt.signing-key

См. Маскирование чувствительных значений свойств в руководстве по настройке Spring Boot Starter — то же свойство описано рядом с остальными настройками стартера.

Стандартные свойства Spring Boot Actuator для маскирования — management.endpoint.env.show-values, management.endpoint.env.keys-to-sanitize и их эквиваленты для configprops — не учитываются. Вместо них используйте axelix.sbs.endpoints.config.sanitized-properties.

MCP-инструменты

Полное окружение управляемого сервиса — свойства приложения, системные свойства и переменные окружения ОС — также доступно ИИ-агентам через MCP. См. Каталог MCP-инструментов.

Включите Нужный Actuator Ендпоинт

УстарелоАктуально только до релиза: 1.2.0.

Если вы используете Axelix 1.2.0 или новее, ничего из этого не требуется: стартер сам регистрирует свои actuator-эндпоинты, а эндпоинты health/info Axelix больше не требуются — он отлично работает и без них. Никакая настройка здесь не нужна.

Страница работает поверх actuator-эндпоинта axelix-env, который добавляет Axelix Spring Boot Starter. Она доступна через стандартные свойства Spring Boot Actuator. Полный список конечных точек Axelix и сопутствующих настроек см. в разделе Настройка Spring Boot Starter:

management.endpoints.web.exposure.include=axelix-env

См. также

На этой странице