SugarLife — объяснения

Почему приложение ведёт себя именно так и чем платят настройки

View the Project on GitHub iMironRU/sugarlife-wiki

Nightscout: адрес и токен

Nightscout — ваш собственный сервер с историей. Приложение умеет и читать из него, и складывать туда своё, но и то и другое — только с вашего разрешения и по вашему адресу.

Адрес

Полный, вместе с https:// — тот же, что вы открываете в браузере. Без завершающей косой черты, без пути к странице: только сам сервер.

Токен — не тот же, что пароль

В Nightscout два разных секрета, и путать их дорого.

API_SECRET — пароль администратора всей базы. Им можно всё: стереть, переписать, раздать доступ. Его в приложение вводить не нужно, и мы такого поля не заводили намеренно.

Токен роли — то, что мы просим. Заводится в самом Nightscout: Admin Tools → Subjects — People, Devices, etc. → Add new Subject. Вы создаёте subject, даёте ему роль и получаете строку вида имя-a1b2c3d4e5f6.

Роль решает, что мы сможем:

Меньше прав — меньше последствий у любой нашей ошибки. Начните с чтения; расширить всегда успеете.

Почему поле не обязательное

Если база открыта на чтение без токена, приложение подключится и с пустым полем. Это работает — но означает, что вашу историю читает кто угодно, кто знает адрес. Мы не запрещаем: сервер ваш. Просто знайте, что пустое поле — это не «по умолчанию безопасно».

Что мы делаем с токеном

Храним как секрет: он не попадает в снимок для интерфейса, не появляется в журнале, не уезжает в отчёты об ошибках. Отправляется он ровно одному адресату — вашему серверу по адресу, который вы ввели.

Что попадёт в базу

Ничего, пока вы не включите выгрузку. Nightscout — это архив: то, что туда записано, вы будете смотреть месяцы спустя. Поэтому мы не начинаем писать «на всякий случай».

И одно предупреждение, если у вас уже есть другая программа, пишущая в тот же Nightscout: две программы, льющие показания одного сенсора, дают в базе два ряда точек — слегка разных, потому что считают они по-своему. График превращается в забор, и чистить это придётся вручную.