Docs
Browse the docs

Using Alara Code

Members and permissions

Who can see a project, who can run, approve or stop a step, and how organization roles decide it.

Two separate questions decide what you can do with a project. Visibility decides whether you can open it at all: you created it, you are on a team attached to it, or you are an organization administrator. Permissions decide what you can do once it is open, such as run a step, approve a document, stop a run, bind the agent or push to a repository. Permissions come from your role in PolyX. This page covers both, the Members tab, and what you see when a permission is missing.

Two layers: visibility and permissions

Drawing diagram…
  • Visibility is worked out from the project's creator, its attached teams and your organization role. Being able to see a project never gives you any action on it.
  • Permissions are PolyX module grants on your role. Having a grant never lets you see a project that visibility hides from you.
  • Everything is scoped to the organization you are signed in to. A project that belongs to another organization looks exactly like one that does not exist.

Who can see a project

You can open a project in your current organization if any of these is true:

You are…How it is decided
Its creatorYou created the project.
An organization administratorAdministrators see every project in their organization.
On an attached team (Whole team)The team is attached with Whole team access and you are on that team's current roster.
Picked from an attached team (Selected)The team is attached with Pick members access and you are one of the people picked.
Head of a departmentYou head a department that owns one of the project's attached teams.

A project with no teams attached can be opened only by its creator and by organization administrators.

A Whole team attachment follows the team's live roster. When someone joins the team in PolyX, they can see the project after the next organization sync. When someone leaves, they lose it. A Pick members attachment lists specific people and does not change when the team does.

If you open a link to a project you cannot see, the page shows Project not found with "The project may have been deleted or you do not have access." The same page appears for a project that really was deleted, and for a project in another organization.

The Members tab

The project's Members tab lists the people who can open the project through its teams:

  • A count badge, such as "5 people · 2 teams". A person on two attached teams is counted once.
  • A Created by line with the creator's name and email.
  • One card per attached team, labelled Whole team or Selected, listing each member's name and email. The creator carries a Creator badge.
  • No teams attached, when the project has none. It explains that only the creator and org admins can open the project.
  • "No members resolved for this team (it may have no synced roster yet)." appears for a team whose roster has not synced yet.

The Members tab is read-only. You cannot attach, change or detach teams there. The bridge has endpoints that do these things, and they need the Members grant (see the table below). Organization administrators are not listed on the tab, even though they can open the project.

Permissions: what each action needs

Alara Code checks six PolyX modules. Each one has its own grants. A grant on one module gives nothing on another, so Projects with every action does not include Projects › Run.

Module (as the UI names it)What it covers
ProjectsThe project and everything you read in it (documents, artifacts, run history, cost, the board), plus creating, deleting, moving tickets and re-syncing the board
Projects › RunStarting steps, requesting changes, approving, the project chat, uploading the RFP, and viewing runs and their live output
Projects › AbortStopping a running step
Projects › BindingSeeing, binding, checking and removing the project's Alara agent, and listing the organization's agents
MembersListing and changing a project's team attachments
IntegrationsGitHub and Azure DevOps: connect, create or pick a repository, push documents, disconnect

Each module has the actions create, read, update and delete. manage grants all four on that one module.

Action reference

What you doWhere in the appModule › action needed
See your projects list and dashboard statsDashboardProjects › read
Open a project, read its documents and artifacts, download themProject, Artifacts tabProjects › read
See Run History and costsRun History tabProjects › read
See the board and a ticket's linked requirements and testsBoard tabProjects › read
Create a projectNew projectProjects › create
Change the project's inputsProject inputsProjects › update
Publish the board to Alara Plan, or re-sync an unlinked boardPublish to Alara Plan, Sync from manifestProjects › update
Link a project to Alara PlanBoard › Link to Alara Plan, or Settings › Alara PlanProjects › update
Connect, verify, sync or disconnect Alara Plan for the organization (the service key and the Alara Plan organization id beside it)Settings › Alara PlanIntegrations › update (Integrations › delete to disconnect)
Delete a projectSettings › Delete projectProjects › delete
Delete all your projectsAccount settings › Delete all projectsProjects › delete
Start a stepSDLC Studio step railProjects › Run › create
Request changes to a documentRequest changesProjects › Run › create
Approve a documentApproveProjects › Run › create
Upload or replace the RFPUpload RFP / Replace RFPProjects › Run › create
Send a chat message to the agentSDLC Studio composerProjects › Run › create
Read the chat history and watch a reply streamSDLC StudioProjects › Run › read
See step states, approvals, runs and a run's outputSDLC Studio, Runs pageProjects › Run › read
Stop a running stepStopProjects › Abort › create
See the bound agent, list the organization's agentsSettings › AgentProjects › Binding › read
Check the agent's skill filesCheck agentProjects › Binding › read
Bind or change the agentBind agent / Change agentProjects › Binding › update
Remove the agentRemoveProjects › Binding › delete
List a project's teamsMembers tabMembers › read
Attach teamsAPIMembers › create
Change a team's access mode or picked membersAPIMembers › update
Detach a teamAPIMembers › delete
See repository connection statusRepository tabIntegrations › read
Connect GitHub or Azure DevOps, create or pick a repositoryRepository tabIntegrations › create
Push documents to the repositoryPush docs to GitHub, or the Azure DevOps pushIntegrations › update
Disconnect the repositoryRepository tabIntegrations › delete

A few things are worth knowing:

  • Approving is the same grant as running. Approving moves the pipeline forward, so it needs Projects › Run › create, like starting a step.
  • Creating a project is not enough to run it. The creator has no automatic rights. Whoever creates a project still needs Run, Abort, Binding and Integrations to drive it.
  • Deleting all projects removes only the projects you created in the current organization. Neither delete works while a command is running.
  • Your own profile and account settings need no module grant.

Organization administrators

Alara Code treats you as an organization administrator when your PolyX permission is named as one, for example "Organisation Administrator", "Organization Admin", "Admin" or "Owner". An administrator:

  • sees every project in the organization;
  • is the only person who can force an organization sync;
  • gets no extra actions from being an administrator. To run, approve, stop, bind or push, the administrator's role must hold the same module grants as everyone else's.

When you lack a permission

The app disables a control before you click it when your role lacks the grant. Hover over the disabled control to see why. The tooltip reads Needs followed by the module and action, for example "Needs Projects › Run › create" or "Needs Integrations › update".

Where a whole area is blocked, the app says so in place:

  • SDLC Studio. When you cannot run steps, the message box is replaced by a note and the step rail's run buttons are disabled with the same reason. The note's title is the missing grant, followed by: "Your role does not include Projects › Run › create. Ask an organization administrator to add it to your role in PolyX." Approve and Request changes are disabled with the same reason. Stop is disabled when you lack Projects › Abort.
  • No agent bound. If you have the grant but the project has no agent, the note reads "No Alara agent bound" and "Bind one of the organization's agents in Project Settings › Agent before running a step.", with an Open Project Settings link. A missing grant is reported before a missing agent.
  • Repository tab. When you cannot read the integration, the tab shows "Repository settings are not available to you" and names the missing grant.

If the app could not work out your grants before you clicked, the bridge still refuses the request. You then see a toast titled Permission required with the same sentence: "Your role does not include module › action. Ask an organization administrator to add it to your role in PolyX."

The fix is always in PolyX. An organization administrator adds the module and action to your role there. Changes can take a minute to reach Alara Code, because both the bridge and the app cache your grants briefly.

Under the hood

  • Every protected bridge route is mapped to one module and action in bridge/src/config/access-control.ts. The action comes from the HTTP method (GET is read, POST is create, PUT and PATCH are update, DELETE is delete) unless the route overrides it. A refusal is 403 PERMISSION_DENIED with { module, action } in the error details.
  • Enforcement follows the deployment's ACCESS_CONTROL_MODE: off checks nothing, audit logs what it would refuse without refusing, and enforce refuses. The app disables controls only when the bridge reports enforce. In the other modes, anyone who can see a project can use every control on it.
  • A protected route with no mapping is refused with ROUTE_NOT_MAPPED under enforce. It is never silently allowed.
  • Visibility is one predicate (bridge/src/lib/projectScope.ts) that every project read and write loads through, always within the request's organization.

For how sign-in and the organization header reach the bridge, see Authentication and tenancy. For each endpoint's permission, see the API reference.