FurniOpsDocs

Members and roles

The five built-in roles and exactly what each may do, inviting people, changing roles, removing members, seats, and how a change reaches tokens already issued.

Every member of an organisation has one role. The role decides what they may do in the dashboard, and caps what any credential acting for them can do: an OAuth token, the CLI, or a key they make.

Roles

RoleIn short
OwnerEverything, including organisation settings and billing.
AdminEverything but organisation settings, paying and the owner role.
DeveloperRuns the integration: sources, runs, webhooks, exports, API keys and OAuth apps. Reads everything but billing, the audit log and single sign-on.
AnalystReads the catalogue and its activity (sources, runs, webhooks, the change feed), and makes exports.
ViewerReads the catalogue.

What each role holds on each resource, from the policy FurniOps enforces on every request:

ResourceOwnerAdminDeveloperAnalystViewer
productsProducts (master records)Read, writeRead, writeReadReadRead
variantsVariants of productsRead, writeRead, writeReadReadRead
offersVendor prices and stockRead, writeRead, writeReadReadRead
sourcesVendor connectionsRead, writeRead, writeRead, writeReadNone
runsIngestion runs and their snapshotsRead, writeRead, writeRead, writeReadNone
webhooksWebhook endpoints and deliveriesRead, writeRead, writeRead, writeReadNone
eventsThe change feedReadReadReadReadNone
exportsBulk exports of the catalogue; making one also needs products:readRead, writeRead, writeRead, writeRead, writeNone
freshnessDemand hints and on-demand checks of variantsWriteWriteWriteNoneNone
api_keysAPI keysRead, writeRead, writeRead, writeNoneNone
oauth_appsOAuth apps the organisation registers for its users to sign in toRead, writeRead, writeRead, writeNoneNone
membersMembers and invitationsRead, writeRead, writeReadNoneNone
orgOrganisation settingsRead, writeReadReadNoneNone
billingPlan, invoices and payment methodsRead, writeReadNoneNoneNone
usageMetered usage and quotasReadReadReadNoneNone
auditThe audit log; writing undoes a change it recordsRead, writeRead, writeNoneNoneNone
request_logsThe organisation's API request logs: who called what, and the answerReadReadReadNoneNone
ssoSingle sign-on: verified domains and identity-provider connectionsRead, writeRead, writeNoneNoneNone
agentThe AI agent's configurationRead, writeRead, writeReadNoneNone
agreementsThe vendor data agreement: reading it, and accepting it for the organisationRead, writeRead, writeReadNoneNone
analyticsA vendor's aggregate analytics: retailers reached, views, freshnessReadReadReadReadNone
brandA vendor's brand profile, and its claims to speak for a brand; writing binds the organisationRead, writeRead, writeReadNoneNone
publishingPublishing a vendor's catalogue to the network, withdrawing it, and hiding products (VN3)Read, writeRead, writeReadReadNone
assistant_memoriesThe organisation's notes for FurniOps AI, which every member's assistant reads; a person's own notes need noneWriteWriteNoneNoneNone

The same permission strings are the scopes of keys and OAuth apps. A credential acting for a member holds what its scopes allow and the member's role allows, never more.

Owners

  • Only an owner can grant the owner role, change an owner's role, or remove an owner.
  • An organisation always keeps at least one owner. The last owner can neither leave nor be demoted.
  • Owners are exempt from required single sign-on, so an owner can always get back in when the identity provider breaks.

Invite someone

Under Settings › Members, owners and admins (members:write) choose Invite someone: an email address and a role. FurniOps emails a link to join the organisation as that role.

  • The link works for 7 days, once.
  • Only an account whose verified email is the invited address can accept it. Someone without an account signs up first, with that address.
  • Inviting the same address again replaces its open invitation (at most once a minute).
  • An address that is already a member is refused, and so is a 101st open invitation.
  • Only an owner can invite someone as an owner.
  • Open invitations are listed under Invitations, expired ones included, and can be revoked: the link stops working at once.

People on a domain your organisation verified for single sign-on can also join at their first sign-in through it, with the role the connection gives, without an invitation.

Seats

Members and open invitations count against the plan's seats. With none free, inviting answers 403 plan_limit_reached: remove a member or revoke an invitation, or change the plan.

Change a role

Choose the member, then Change role. The new role applies to their next request, in every session and token they hold for this organisation: their tokens carry a membership version, and a change moves it, so a token from before the change is refused and replaced.

Remove a member

Remove member ends their access to this organisation at once, in every session and token. Their account, and any other organisations they belong to, stay as they are. API keys they made keep working until you revoke them: keys belong to the organisation. Review API keys when someone leaves.

Who can see members

Every role but Analyst and Viewer can list members (members:read). Changing members needs members:write, held by owners and admins. Neither an API key nor an OAuth app can manage members.

On this page