diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..9f5766d --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,54 @@ +# Security Policy + +The Argenta team takes security seriously. We appreciate your efforts to responsibly disclose your findings, and we will make every effort to acknowledge your contributions. + +## Supported Versions + +This table shows the versions of Argenta that are currently supported with security updates. + +| Version | Supported | +|---------|-----------------| +| 1.1.x | ✅ | +| < 1.1 | ❌ | + +## Reporting a Vulnerability + +If you believe you have found a security vulnerability in Argenta, please report it to us through one of the following methods: + +- **Email**: Send a detailed report to `kolo.is.main@gmailcom`. +- **GitHub Security Advisories**: You can create a new security advisory directly in the Argenta repository. + +**Please do not report security vulnerabilities through public GitHub issues.** + +### What to Include + +To help us understand and resolve the issue quickly, please include the following information in your report: + +- A clear and descriptive title. +- The affected version(s) of Argenta. +- A detailed description of the vulnerability. +- Step-by-step instructions to reproduce the issue (a Proof-of-Concept). +- The potential impact of the vulnerability. +- Any suggested mitigations or fixes, if you have any. + +You can expect a response from us within 48 hours to acknowledge receipt of your report. + +## Disclosure Process + +1. Upon receiving a vulnerability report, we will assign it to a team member and begin our investigation. +2. We will confirm the vulnerability and determine its severity. +3. We will work on a patch to address the issue. +4. Once the patch is ready, we will coordinate with you to schedule a release and a public disclosure. We prefer to disclose vulnerabilities through a GitHub Security Advisory. +5. We will credit you for your discovery in the advisory, unless you prefer to remain anonymous. + +## Security Best Practices + +As a user of Argenta, we recommend the following best practices to keep your application secure: + +- Always use the latest version of Argenta. +- Regularly scan your project's dependencies for known vulnerabilities. +- If your application handles sensitive data, ensure it is stored and transmitted securely. + +## Bug Bounty Program + +Currently, we do not have a formal bug bounty program. However, we deeply appreciate the work of security researchers and may offer non-monetary recognition for significant contributions. diff --git a/docs/root/overriding_formatting.rst b/docs/root/overriding_formatting.rst index cc34771..744f50c 100644 --- a/docs/root/overriding_formatting.rst +++ b/docs/root/overriding_formatting.rst @@ -3,4 +3,55 @@ Стандартное форматирование ========================== -ндааааааааааааааа +По умолчанию в ``Argenta`` используется библиотека ``rich`` для вывода текстовых сообщений с расширенным форматированием в консоли. ``rich`` позволяет применять цвета, стили (жирный, курсив, подчеркнутый), составлять таблицы, выделять синтаксис кода и многое другое, что значительно улучшает визуальное восприятие текста. + +Вывод системных сообщений производится с помощью метода ``print`` объекта ``Console`` из библиотеки ``rich``, который обладает интерфейсом, совместимым со встроенной функцией ``print``. + +------ + +Управление стандартным форматированием +-------------------------------------- + +При создании экземпляра класса ``App`` предусмотрен параметр ``overridesystemmessages`` типа ``bool`` (по умолчанию ``False``), который позволяет включать или отключать стандартное форматирование системных сообщений. + +Если установить этот флаг в ``True``, стандартное форматирование, применяемое по умолчанию (например, стилизация текста и ASCII-арт), будет отключено, и системные сообщения будут выводиться в "сыром" виде, без дополнительных стилей. + +Приветственное и прощальное сообщения +-------------------------------------- + +Приветственное (``initialmessage``) и прощальное (``farewellmessage``) сообщения по умолчанию формируются как ASCII-графика с помощью библиотеки ``art``. В частности, используется функция ``text2art``, которая преобразует обычный текст в стилизованное ASCII-арт изображение. + +.. warning:: + Библиотека ``art`` ориентирована на работу с ASCII-символами и **не поддерживает корректный вывод кириллицы**. Это приводит к искажению или некорректному отображению символов русского и других кириллических алфавитов. Если ваше приветственное сообщение содержит кириллицу, рекомендуется отключить стандартное форматирование с помощью ``overridesystemmessages=True`` или использовать только латинские символы. + +Кастомизация вывода +------------------- + +Для полной замены логики вывода сообщений в конструкторе ``App`` доступен параметр ``printfunc``. + +* **printfunc**: ``Printer`` (Callable) + Этот параметр позволяет передать любую вызываемую сущность (например, функцию), которая будет использоваться для вывода всех системных сообщений. По умолчанию это обертка вокруг ``rich.console.Console().print``. Вы можете передать сюда свою функцию, чтобы, например, логировать вывод в файл или отправлять его по сети. + +Пример использования +-------------------- + +.. code-block:: python + + from argenta import App + + def custom_print_function(text: str) -> None: + """Простая пользовательская функция вывода с префиксом.""" + print(f"MOЙ ВЫВОД: {text}") + + # Инициализация приложения с отключенным форматированием по умолчанию + # и собственной функцией вывода. + app = App( + initialmessage="Moe Prilojenie", + overridesystemmessages=True, + printfunc=custom_print_function, + ) + + # При запуске `initialmessage` будет выведено через `custom_print_function` + # без преобразования в ASCII-арт и без стилей `rich`. + # app.run() +