Перейти к содержимому

Храните ключи API в разделе «Секреты»

КраткоСекреты — запертый ящик приложения для ключей API и закрытых настроек. Добавляйте их в разделе «Облачные сервисы → Секреты» с названием вроде WEATHER_API_KEY: они хранятся в зашифрованном виде, больше никогда не показываются, и читает их только серверный код приложения. Нажмите «Применить к предпросмотру», чтобы сразу их использовать; рабочее приложение получит их при следующей публикации. Никогда не вставляйте ключ в чат.

Когда приложение пользуется сервисом другой компании — прогнозом погоды, базой рецептов, платёжным провайдером, — этот сервис выдаёт вам ключ API: длинный секретный пароль, через который приложение работает с вашим аккаунтом. Любой, у кого есть ключ, может пользоваться вашим аккаунтом и набрать вам счёт. Поэтому ключам нужно надёжное место.

Это место — Секреты. У каждого приложения они свои и хранятся в зашифрованном виде. Код приложения читает ключ, когда он нужен, и никто — ни пользователи приложения, ни те, с кем вы поделились проектом, — его не видит.

  1. Откройте проект и перейдите в раздел Облачные сервисыСекреты.

  2. В поле Название введите название ключа, например SPOONACULAR_API_KEY. Используйте заглавные латинские буквы, цифры и подчёркивания; строчные буквы MonstarX сам сделает заглавными.

  3. В поле Значение вставьте ключ. Пока вы вводите, он отображается точками.

  4. Нажмите Добавить.

  5. Нажмите Применить к предпросмотру — кнопка появится справа вверху после сохранения. Предпросмотр перезапустится с новым ключом, и его можно сразу проверить.

  6. Скажите MonstarX в чате, какая функция должна его использовать: «используй SPOONACULAR_API_KEY, чтобы находить пищевую ценность каждого рецепта».

Опубликованное приложение получит новые и изменённые секреты при следующей публикации. См. Опубликуйте приложение.

Чат сохраняется вместе с проектом. Его видят все, с кем вы поделились проектом, его читают ИИ-модели, которые создают приложение, и он остаётся в истории проекта. Ключ, вставленный туда, больше не секрет. Код, в который ключ вписан напрямую, так же уязвим: ключ окажется в файлах проекта, в экспорте и на GitHub, если вы его подключите.

Если вы случайно где-то вставили ключ, создайте новый в панели управления этого сервиса, удалите там старый и сохраните новый в разделе «Секреты».

  • Изменить: введите то же название ещё раз с новым значением. Вместо Добавить на кнопке будет Обновить. Нажмите её, а затем Применить к предпросмотру.
  • Удалить: нажмите корзину рядом с секретом и подтвердите. Части приложения, которые им пользовались, перестанут работать, пока вы не добавите его снова.

Сохранённое значение больше никто не сможет прочитать — даже вы. Каждое показывается точками с датой в столбце Добавлен. Если ключ понадобится, возьмите его в сервисе, который его выдал.

Некоторые названия принадлежат MonstarX или системе, на которой работает приложение, поэтому раздел «Секреты» их не принимает:

  • названия, которые начинаются с MONSTARX_, BETTER_AUTH_, CLOUDFLARE_, CF_, GCP_, RAILWAY_, NODE_ или NPM_;
  • PATH, HOME, PORT, NODE_ENV, TMPDIR, USER, SHELL, PWD, CI, HOSTNAME, FORCE_COLOR и NO_COLOR;
  • названия, которые начинаются с VITE_, потому что такие переменные попали бы в код страницы, где их может прочитать любой посетитель. (Импортированное приложение, которое уже использует названия с VITE_, может их оставить.)

Название должно начинаться с буквы и быть не длиннее 64 символов.

Некоторые значения и так предназначены для показа — например, название сайта или публикуемый (publishable) ключ, который сервис считает безопасным для браузера. Давайте им названия, начинающиеся с PUBLIC_. Они могут попадать на страницу, и MonstarX предупредит вас об этом, пока вы вводите название.

Кто видит мои секреты?

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

Я добавил ключ, но приложение по-прежнему говорит, что его нет.

Нажмите Применить к предпросмотру, чтобы предпросмотр перезапустился с ключом. Для рабочего приложения опубликуйте его заново. И проверьте, что название точно совпадает с тем, которое читает приложение.

Почему я не вижу сохранённое значение?

После сохранения значения больше не показываются, чтобы они не могли утечь с вашего экрана. Чтобы изменить значение, сохраните то же название с новым значением.

Может ли приложение использовать секрет в браузере?

Нет. Секреты читает только серверный код приложения, поэтому они никогда не попадают в браузер посетителя. Значение, которое нужно самой странице, например публикуемый ключ, получает название с PUBLIC_.

Чем секреты отличаются от подключений?

Подключения — это готовые формы для известных сервисов: они сохраняют ключи в раздел «Секреты» под заданными названиями и объясняют MonstarX, как с ними работать. Секреты — для всего остального.