Roles and grants
A workspace role sets the baseline. Grants narrow or extend it per resource. Every one of these commands takes the same three things in the same order: the team, the resource, then the level. The command words are fixed; everything in<angle brackets> is yours to fill in.
Swap
grant for revoke to take access away, with the same three arguments. The workspace role is clear rather than revoke, and it takes no level: workspace team access workspace clear <team-slug-or-id>.
So for a team whose slug is payments:
App levels apply to every version of that app.
App grants use the stable
APP_ID from fused-cli app list. This identifies the app across all its versions and distinguishes apps that share a name across types.Check before you plan
Preflight the owning team against every dependency, so a plan does not fail halfway through on a missing grant.build-access lists what is available to both you and the team — which is the set that will actually work.
Share with the whole workspace
When the audience really is everyone, a workspace-wide grant beats maintaining a grant per team.A workspace-wide app grant does not replace the runtime token. Callers still need a valid execution token.
Flags
workspace access list
team build-access
workspace team member add
workspace team create
When you are denied
Stop. Keep the config and plan you had prepared, and report the exact missing permission and resource. Do not self-grant, switch credentials, or retry with broader authority — a scopedservice.manage grant does not include the workspace-level workspace.update that applying activation needs, so guessing tends to produce a second confusing failure rather than a fix.
Store credentials in a bucket
Access decides who may select a bucket. The bucket decides what credentials they get to use without seeing.