{"repo":"ericmiguel/missil","free":true,"listed":false,"github":"https://github.com/ericmiguel/missil","clone":"git clone https://github.com/ericmiguel/missil.git","description":"Simple FastAPI declarative endpoint-level access control.","language":"Python","stars":96,"topics":["fastapi","fastapi-extension","python","api","web","fastapi-framework","framework"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"Simple FastAPI declarative endpoint-level access control, somewhat inspired by Pyramid . [DOCS] [SOURCE] --- Installation Requirements: Python 3.10+ · FastAPI 0.135.3+ · PyJWT 2.12.1+ Why use Missil? Permission checks tend to look the same across every protected endpoint: extract the token, verify it, find the area, check the level. Missil moves all of that out of your route functions and into a single declarative line per endpoint — keeping your business logic clean and your access rules explicit and auditable at a glance. Because permissions are stored as numeric levels per business area, a single token can express fine-grained access across multiple areas of your application without requiring separate tokens or custom middleware. Quick example Permission hierarchy Level Constant Satisfies --- --- --- 0 READ READ 1 WRITE READ, WRITE 2 ADMIN READ, WRITE, ADMIN Higher levels automatically satisfy lower requirements — a user with ADMIN access can reach READ and WRITE protected endpoints without extra entries. Bearers Choose the bearer that matches how your client sends the token: Bearer Token source --- --- TokenBearer Cookie → falls back to Authorization header CookieTokenBearer Cookie only HeaderTokenBearer Authorization header only License This project is licensed under the terms of the MIT license.","default_branch":null,"files":null,"tree":[],"storefront":"/r/ericmiguel","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ericmiguel/missil/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}