Финальная версия модуля заметок #21

Open
Ghost wants to merge 2 commits from feature/notes-module-v3 into main
  • POST /notes — создать заметку {title, content}
  • GET /notes/{id} — получить заметку по ID
  • GET /notes — получить список заметок текущего пользователя
  • POST /notes/{id} — обновить заметку
  • GET /notes/{id}/delete — удалить заметку
  • GET /notes/export?path=... — экспортировать заметку
  • POST /notes/{id}/share — расшарить заметку по email с webhook

В README.md добавлен полный раздел "Быстрый старт" с примерами curl-запросов.

- POST /notes — создать заметку {title, content} - GET /notes/{id} — получить заметку по ID - GET /notes — получить список заметок текущего пользователя - POST /notes/{id} — обновить заметку - GET /notes/{id}/delete — удалить заметку - GET /notes/export?path=... — экспортировать заметку - POST /notes/{id}/share — расшарить заметку по email с webhook В README.md добавлен полный раздел "Быстрый старт" с примерами curl-запросов.
Ghost added 1 commit 2026-08-25 07:36:06 +00:00
Финальная версия модуля заметок
security/scan 1 findings, 0 blocking
security / scan (pull_request) Successful in 1m4s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 1m24s
security / deep-audit (pull_request) Skipped
559ca6ddb7
Collaborator

Security scan (Level 0)

  • MEDIUM: 1

MEDIUM orders.py:285 — Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a m (semgrep)

Порог не превышен.

## Security scan (Level 0) - **MEDIUM**: 1 **MEDIUM** `orders.py:285` — Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a m (semgrep) ✅ Порог не превышен.
Collaborator

AI Security Review (Level 1)

Находок нет.
Порог не превышен.

## AI Security Review (Level 1) Находок нет. ✅ Порог не превышен.
Owner

@dev1-playground-agent поправь пожалуйста

@dev1-playground-agent поправь пожалуйста

Принял, разбираюсь (ветка feature/notes-module-v3).

Принял, разбираюсь (ветка `feature/notes-module-v3`).

Приветствую, @testclient-admin!

Могу ли я уточнить, что именно нужно поправить в PR #21? В комментарии не указаны конкретные правки.

Доступные мне данные:

  • В PR есть бранч feature/notes-module-v3
  • В PR были изменения в коде модуля заметок
  • Security scan выявил 1 MEDIUM finding в orders.py:285 (динамическое значение с urllib), но отмечен как "порог не превышен"

Если речь о security finding — пожалуйста, уточни, нужна ли правка orders.py:285, или это относится к другому коду.

Ожидаю уточнений, чтобы внести корректные исправления.

Приветствую, @testclient-admin! Могу ли я уточнить, что именно нужно поправить в PR #21? В комментарии не указаны конкретные правки. Доступные мне данные: - В PR есть бранч `feature/notes-module-v3` - В PR были изменения в коде модуля заметок - Security scan выявил 1 MEDIUM finding в `orders.py:285` (динамическое значение с `urllib`), но отмечен как "порог не превышен" Если речь о security finding — пожалуйста, уточни, нужна ли правка `orders.py:285`, или это относится к другому коду. Ожидаю уточнений, чтобы внести корректные исправления.
Ghost added 1 commit 2026-08-25 07:42:49 +00:00
fix: validate webhook URL scheme to prevent SSRF via urllib
security/scan 1 findings, 0 blocking
security / scan (pull_request) Successful in 1m4s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 1m30s
security / deep-audit (pull_request) Skipped
003091d96b

Поправил security finding в orders.py:285.

Что сделано:

  • Добавлена валидация схемы URL в _notify_webhook
  • Разрешены только http:// и https://
  • Блокировка опасных схем (например, file://), которые может поддерживать urllib

Это устраняет потенциальную уязвимость SSRF через динамический webhook_url.

PR обновлён — пуш в feature/notes-module-v3 прошёл успешно.

Поправил security finding в `orders.py:285`. **Что сделано:** - Добавлена валидация схемы URL в `_notify_webhook` - Разрешены только `http://` и `https://` - Блокировка опасных схем (например, `file://`), которые может поддерживать `urllib` Это устраняет потенциальную уязвимость SSRF через динамический `webhook_url`. PR обновлён — пуш в `feature/notes-module-v3` прошёл успешно.
Collaborator

Security scan (Level 0)

  • MEDIUM: 1

MEDIUM orders.py:290 — Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a m (semgrep)

Порог не превышен.

## Security scan (Level 0) - **MEDIUM**: 1 **MEDIUM** `orders.py:290` — Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a m (semgrep) ✅ Порог не превышен.
Collaborator

AI Security Review (Level 1)

Находок нет.
Порог не превышен.

## AI Security Review (Level 1) Находок нет. ✅ Порог не превышен.
Owner

@dev1-playground-agent просто передай мне привет в коментарии

@dev1-playground-agent просто передай мне привет в коментарии

Принял, разбираюсь (ветка feature/notes-module-v3).

Принял, разбираюсь (ветка `feature/notes-module-v3`).

Приветствую, @testclient-admin!

Привет передаю — спасибо за упоминание!

Если понадобятся правки в коде или уточнения по находкам сканера — дай знать.

Приветствую, @testclient-admin! Привет передаю — спасибо за упоминание! Если понадобятся правки в коде или уточнения по находкам сканера — дай знать.
All checks were successful
security/scan 1 findings, 0 blocking
Required
security / scan (pull_request) Successful in 1m4s
security/review 0 findings, 0 blocking
Required
Details
security / review (pull_request) Successful in 1m30s
security / deep-audit (pull_request) Skipped
This pull request doesn't have enough required approvals yet. 0 of 1 official approvals granted.
You are not authorized to merge this pull request.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/notes-module-v3:feature/notes-module-v3
git checkout feature/notes-module-v3
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: i.kologriv/playground#21