Gabriel L. Manor
07/07/2025, 2:19 PMOr Weis
07/15/2025, 11:33 PMOr Weis
07/17/2025, 4:58 PMOr Weis
07/23/2025, 11:38 AMpermit_fastmcp
Check it out on FastMCP’s official site: https://gofastmcp.com/integrations/permit
As well as the OSS repo itself - https://github.com/permitio/permit-fastmcp
Install
# Using UV
uv add permit-fastmcp
# Using pip
pip install permit-fastmcp
Add the Permit-FastMCP middleware
mcp = FastMCP("My MCP Server")
# Add <http://Permit.io|Permit.io> authorization middleware
mcp.add_middleware(PermitMcpMiddleware(
permit_pdp_url="<http://localhost:7766>",
permit_api_key="your-permit-api-key"
))
@mcp.tool
def my_tool(data: str) -> str:
return f"Processed: {data}"
Easily add policies with Permit s always (Policy Editor UI, API, SDK, Terraform, Rego) .Or Weis
08/21/2025, 9:24 PMDan
09/15/2025, 11:53 AMpermitio/pdp-v2:0.9.6
We recommend upgrading to stay up to date.
Full changelog: https://github.com/permitio/PDP/releases/tag/0.9.6Or Weis
10/01/2025, 5:53 AMDan
10/22/2025, 1:57 PMOPAL_V0_COMPAT=true set by default. In OPAL v0.10.0, this flag will be disabled. We recommend following the OPA Version Migration Guide for a smooth transition.
✨ New Features
• ♻️ Inline OPA upgraded to v1
• ⚙️ OPA v0 compatible config enabled by default
• 🐳 New EOPA OPAL Client Docker images
• 🐧 Added Alpine variants for Docker builds
📖 Full changelog → https://github.com/permitio/opal/releases/tag/0.9.0Omer Zuarets
12/17/2025, 7:33 PM<http://cloudpdp.api.permit.io|cloudpdp.api.permit.io> / <http://cloud-pdp.api.permit.io|cloud-pdp.api.permit.io>) packed with powerful new features and enhanced support for higher scale! 🎉
✅ This version is 100% backward compatible with the current Cloud PDP, so everything will continue to work seamlessly on your end.
📚 Curious about what’s new? Check out the updated docs here.
permiticon As always, if you have any questions or feedback, feel free to reach out - we’re here to help!Gabriel L. Manor
03/09/2026, 7:00 AMpermitio_user data source and implemented import support for roles and ABAC rules, making it easier for teams to migrate existing policies into Terraform without rebuilding them from scratch.
These improvements enable stronger policy-as-code workflows, better drift detection for key resources, and smoother Terraform adoption for teams managing authorization at scale.
Huge thanks to Nikola and the Uptick team for contributing these enhancements and helping make the Permit ecosystem stronger.Gabriel L. Manor
03/18/2026, 8:30 AMZe'ev Manilovich
03/23/2026, 1:30 PMZe'ev Manilovich
03/23/2026, 2:01 PMZe'ev Manilovich
03/23/2026, 2:01 PMZe'ev Manilovich
03/23/2026, 2:01 PMZe'ev Manilovich
03/23/2026, 2:01 PMZe'ev Manilovich
03/23/2026, 2:02 PMZe'ev Manilovich
03/23/2026, 5:00 PMZe'ev Manilovich
03/24/2026, 7:55 PMOr Weis
03/31/2026, 11:00 PMZe'ev Manilovich
05/29/2026, 10:29 PMZe'ev Manilovich
05/29/2026, 10:55 PMZe'ev Manilovich
05/29/2026, 10:56 PMZe'ev Manilovich
06/05/2026, 4:59 PMOr Weis
09/17/2026, 2:12 PMOr Weis
09/17/2026, 2:12 PMOr Weis
09/17/2026, 2:14 PMZe'ev Manilovich
09/24/2026, 2:59 PMZe'ev Manilovich
09/28/2026, 4:32 PMbulk_check() and filter_objects() now pass your context through. Context-based checks used to be evaluated against an empty context
• Sync client: the permit.api.* methods no longer raise an error after the write already went through
• authorized_users(), get_user_permissions() and filter_objects() work on permit.sync.Permit
• authorized_users() works on pydantic 2
• A wrong API key now shows the real 403 instead of “cannot connect to the PDP container”
• first_name and last_name are no longer dropped from checks
New
• Python 3.14 support
• Type information (py.typed): mypy and pyright now check your calls into permit
• Tested on Python 3.10 to 3.14, with both pydantic 1 and pydantic 2
Breaking changes
• Requires Python 3.10+
• httpx is no longer installed with permit, so add it yourself if your code uses it
• A few API changes, for example resource_relations.list() now returns a page, and the three sync-client methods above no longer need await. The migration guide lists every change with before/after examples
Let an agent do the upgrade
The permit-python-3-migration skill takes an AI agent such as Claude Code through the whole migration guide:
1. Download permit-python-3-migration.skill from the release and unzip it into .claude/skills/
2. Ask “upgrade permit to 3.0.0", or run /permit-python-3-migration
It checks your Python version first, then:
• scans your project
• updates your dependencies and applies the mechanical edits
• asks you about every judgement call
• runs your tests, type checker and linter at the end
Just want the list of changes? The scanner is read-only and runs on its own:
python3 .claude/skills/permit-python-3-migration/scripts/scan.py .
📚 Migration guide: github.com/permitio/permit-python/blob/…/MIGRATION.md
📝 Release notes: github.com/permitio/permit-python/…/v3.0.0
📦 pip install -U permitZe'ev Manilovich
10/13/2026, 10:08 AMgo get <http://github.com/permitio/permit-golang@v1.3.0|github.com/permitio/permit-golang@v1.3.0>
Read before upgrading
• Checks now use the resource instance. Check, BulkCheck, AllTenantsCheck and FilterObjects send the resource key (from WithID, WithKey or GetID()), so the PDP decides per instance instead of per resource type. If you use instance-level roles or relationships, decisions can change: make sure the IDs you pass match your resource instance keys in Permit. To keep a type-level check, leave the ID and key empty.
• A failed check returns an error, not a deny. If the PDP answers with a status the SDK doesn’t handle, such as a rate-limited 429, the check methods now return an error. Before, Check returned false with no error.
Fixes
• ConditionSets.List returns your condition sets; it always returned an empty list.
• ResourceActionGroups.Delete deletes the action group. Before, it deleted the resource action with the same key. If you called it, check your resources’ actions.
• AllTenantsCheck returns only the tenants where the action is allowed.
• Tenants.List and Tenants.ListByAttributes return request errors instead of an empty list.
• WaitForSync is safe to use concurrently and no longer affects other requests.
• Context errors keep the underlying cause and status, and point to client.Api.SetContext(ctx, project, environment).
• Several list methods return an empty list instead of nil or a panic; a short API URL or a nil logger no longer panics.
Dependencies
• The SDK no longer requires <http://golang.org/x/net|golang.org/x/net> or <http://golang.org/x/oauth2|golang.org/x/oauth2>, so your module stops inheriting their old minimum versions.
Questions or issues? Reply here or open an issue on github.com/permitio/permit-golang/issues>.