always_execute, require_approval, or disabled. After you provision a project per customer, each navigator instance starts with default permissions. This recipe copies the exact policy you’ve configured on a model project onto the matching navigators in your other projects.
The recipe reads the model instance’s policy as a tool_id → mode map and applies the same mode to the matching tools on each target instance. This assumes both projects have the same servers connected (which the provisioning recipe guarantees); any tool that doesn’t exist on the target is simply skipped.
Endpoints used
The permission
mode is one of:
The procedure
1
Locate the model navigator instance
GET /navigator-instances?project_id={model_project_id} and pick the instance for the navigator you want to copy (match on navigator_id or navigator_name).2
Read the model policy
GET /navigator-instances/{model_instance_id}/tool-permissions and build a tool_id → mode map.3
For each target project, find the matching instance
GET /navigator-instances?project_id={target_project_id} and locate the instance with the same navigator_id.4
Apply the policy
Read the target instance’s permissions to know which
tool_ids it actually has, then PUT those tool ids with the mode from the model map. Tools absent on the target are skipped.Full copy script
This copies one navigator’s policy from a model project to a list of target projects. Run it after provisioning, or whenever you change the model policy and want to roll it out. The Python and TypeScript tabs run the whole loop; the cURL tab shows the individual calls.- Python
- TypeScript
- cURL
copy_tool_permissions.py
List endpoints return up to 100 items per call. If a project has more than 100 navigators, follow
meta.next_cursor from the response (passing it back as the cursor query parameter) until meta.has_next is false.If a navigator’s projects might have different servers connected, match on
(server_name, tool_name) instead of tool_id to be safe — read both instances’ permission lists (which include server_name and tool_name) and build the target update from tools that match by name. With identical server sets, matching on tool_id as shown above is simplest and exact.Next steps
Provision customer projects
Create the projects and connect the servers/navigators this recipe configures.
Tool suggestions
How the navigator discovers and selects tools at runtime.
REST API Reference
Full request/response schemas for the tool-permission endpoints.
Platform Authentication
Create and manage the platform access token these recipes use.