Skip to content

[P25] [Server/API] Вынести SLF API token из server.py в environment #26

Description

@MostDef2000

Задача

Заменить hardcoded API token в /root/slf-server/server.py на чтение из переменной окружения systemd-сервиса.

Контекст

Сейчас токен хранится прямо в коде сервера:

SECRET_TOKEN = "..."

Это рабочее, но небезопасное решение: токен уже попадал в терминал/чат и может попасть в shell history. API защищён авторизацией, но с токеном доступны не только GET-запросы, но и POST /api/<collection>, то есть можно перезаписать данные.

Целевое состояние

В server.py:

SECRET_TOKEN = os.environ.get("SLF_API_TOKEN", "")

В slf-server.service:

Environment="SLF_API_TOKEN=<new-token>"

Старый токен должен быть заменён новым.

Scope

  • Сервер: /root/slf-server/server.py
  • systemd service: slf-server.service
  • API auth behavior

Acceptance checks

  • server.py больше не содержит реальный токен строкой.
  • systemctl restart slf-server.service проходит успешно.
  • GET /api/analysis с новым Bearer token работает.
  • GET /api/forum_faq с новым Bearer token возвращает source=forum_faq и count=6.
  • Запрос без токена по-прежнему возвращает {"error":"Unauthorized"}.

Risk

Medium. Ошибка в environment/systemd может временно сломать API-доступ. Перед изменением сделать backup server.py и посмотреть текущий systemctl cat slf-server.service.

Responsible agent

SLF Core Release Agent / Server/API maintenance.

PM planning

  • Complexity: S
  • Risk: Medium
  • Type: Security / Server maintenance
  • Recommended order: after current forum_faq verification is complete

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions