Security

Security for STYD with Odoo comes from several layers: STYD is read-only, it reads only a fixed list of Odoo models, Odoo or the Bridge module limits what a connection can see, and STYD narrows it again for each member.

STYD is read-only

STYD answers Odoo questions by reading data. The Bridge accepts four operations: list the models, list their fields, read records and compute grouped totals. STYD never creates, changes or deletes an Odoo record, and a request to do so is declined. STYD explains and recommends; it does not execute changes.

What STYD reads and how

  • Only a fixed list of Odoo models is read: contacts, products, sales, invoices and payments, purchases and stock. Users, access rules, settings, attachments, messages and HR data are never served. See what STYD reads today.
  • Fields that look like a password, token or secret are refused.
  • Each request is small: up to 200 records at a time (80 by default), up to 25 filters, 2 grouping fields and 5 totals.
  • The Odoo address must be public HTTPS. Local and private network addresses are refused. The connection token is stored encrypted and sent only to your Odoo.

Whose access is used

Odoo API key
Odoo itself runs every read as the key's user, so that user's access rights and record rules apply. Everyone in the workspace shares that one identity. Create the key for a dedicated Odoo user that has only the rights you want to share.
STYD Bridge
The module reads Odoo with its own access, limited to the companies of the user who generated the token. It does not apply each Odoo user's access rights or record rules. STYD adds the per-member limits described below. Generate the token from a user whose companies are only the ones you want STYD to reach.
Direct database
STYD reads with the permissions of the database user you give it, and does not know which Odoo user is asking. Use a read-only database user.

What STYD adds for each member (Bridge)

  • A member must be mapped to an Odoo user. A member who is not mapped gets no Odoo data. See User mapping.
  • The mapped user's Odoo groups decide which areas the member can ask about: Accounting, Sales, Purchase and Inventory. Contacts and products are open to every mapped member.
  • The mapped user's companies are added as a filter to every read of a model that has a company. If the user has no company, the question is refused. See Company access.
  • These limits come from the last sync, so a change in Odoo applies after you re-sync the connection.
This is a coarse subset of what Odoo enforces: four areas and the companies. Odoo record rules, such as “a salesperson sees only their own orders”, are not reproduced on a Bridge connection. See Record rules.

Table hiding is for databases

STYD table hiding applies to the tables of a SQL connection. A Bridge or API-key connection reads Odoo models, not tables, so table hiding does not apply to it: rights, companies and the API key's user are the controls. See Odoo rights vs STYD table hiding.

No absolute guarantees

No setup is perfectly secure. Keep access scoped and read-only, and check sensitive answers. The Security section covers STYD's general security model in more depth.