Permissions & Grants
Choose which of your apps can call each other, what they may do, and which environments answer.
Before one app can call another, you need to grant it access. All of these settings are on each
app's Settings → Cross-App tab. Your coding agent can change them over
MCP too: create_cross_app_grant and revoke_cross_app_grant for
grants, and update_cross_app_settings for the switches below, which shows you a preview first.
Allow all apps to call this project
The quickest option. Turn on Allow all apps to call this project in the app's Settings → Cross-App tab. Any app in the organization can then call this project's API without a specific grant.
Good for:
- Data services that any app might need (product catalog, pricing, configuration)
- Quick development and testing
- Apps that share data openly within the org
"Allow all apps" only permits reading data. If another app needs to create, update, or delete anything, you'll need an explicit grant.
Explicit grants
For more control, grant one app access to another. A grant has two parts:
- Which app can call this one
- What it can do: Read only (GET requests) or Full access (GET, POST, PUT, PATCH, and DELETE)
Grants are created from the calling app. Its Settings → Cross-App tab has an Outgoing calls section. The target app's Incoming calls section lists the grants that point at it, but you can't add one from there.
Managing Grants
Adding a Grant
- Open the calling app and go to Settings → Cross-App
- Under Outgoing calls, select the app you want to call
- Choose Read only or Full access
- Click Add
Changing or Removing a Grant
Use the access level menu on a grant to change it. Click the delete button next to any grant to remove it. Access is revoked immediately.
create_cross_app_grant takes a list of HTTP methods instead of an access level, so a grant your
agent made can allow, for example, GET and POST only.
Recent calls
The Recent calls section on the Cross-App tab lists recent cross-app calls. Each entry shows the time, the method and path called, the environment that answered, the status, and the duration.
This is useful for debugging when a cross-app integration isn't working as expected.
Settings
Allow all endpoints
Lets cross-app callers reach any API route. When it's off, only endpoints with a documented schema are callable. Off by default.
Allow agent access
Lets your organization's agents operate this app directly, reading and writing through its API on your behalf, independent of app-to-app grants. That covers Starcat and your coding agent connected over MCP. Off by default.
When it's on, you also choose which of this app's environments the agent may call (Production, Preview, Sandbox). See Agent Cross-App Calling for how the agent picks an environment and what it can do.
Environment routing
Sets which deployment answers incoming cross-app calls from each caller environment. Each of the Sandbox caller, Production caller, and Preview caller rows takes one of these:
- Same environment (the default): the call goes to the environment it came from
- Sandbox, Production, or Preview: the call goes to that environment instead
- Block: calls from that caller environment are refused
Developer-agent callable environments
Controls which of this app's environments Starcat Developer, in the app's Build tab, may make cross-app calls from. Check Sandbox, Production, or both. At least one stays checked. Both is the default.
This is the outbound counterpart to Allow agent access above, which controls what agents may call into this app. It doesn't affect your coding agent.
Next
Agent Cross-App Calling
Call your apps' APIs from your coding agent or Starcat