Однажды на просторах интернета я нашел интересную концепцию — Capability-based Security. Это подход, при котором разрешения управляют доступом к функциям или ресурсам. Я решил не распыляться на изучение концепции целиком и сразу, а разобрать для начала конкретное понятие — интенты. 

Интенты (декларация намерений) — это декларативное объявление ресурсов, то есть указание того, какие именно возможности или права понадобятся функции или модулю для работы. Я загорелся идеей попробовать реализовать такую функциональность в Python через собственную библиотеку. Моя идея заключается в том, чтобы с помощью декоратора функция декларировала необходимые ресурсы, а библиотека блокировала вызовы неразрешенных функций.

Идея звучит жизнеспособно и отлично подходит для создания систем плагинов, проектирования AI-агентов или фреймворков для тестирования. В этой статье я расскажу о capability-based security и мы попробуем решить дилемму: как дать функции только те привилегии, которые ей необходимы, и ничего лишнего.

Читать далее