Pre-alpha. No tagged release and no upgrade path between versions. Use for evaluation and development only, not production.
DevelopersPre-alpha

Security & access

security.xml, sys.access.csv and how groups gate menus and records.

Groups in security.xml

Define a module category and groups that imply base.group_user (and a manager that implies the user group):

security/security.xml
xml
<?xml version="1.0" encoding="utf-8"?><sumeru>    <data>        <record id="module_category_my_module" model="sys.module.category">            <field name="name">My Module</field>            <field name="sequence">100</field>        </record>        <record id="group_my_module_user" model="core.group">            <field name="name">User</field>            <field name="category_id" ref="module_category_my_module"/>            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>        </record>        <record id="group_my_module_manager" model="core.group">            <field name="name">Manager</field>            <field name="category_id" ref="module_category_my_module"/>            <field name="implied_ids" eval="[(4, ref('group_my_module_user'))]"/>        </record>    </data></sumeru>

sys.access.csv

ACL rows grant CRUD per group. Model column uses the dotted model name; group column uses the XML id from security.xml.

security/sys.access.csv
csv
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlinkaccess_my_module_user,my_module.user,my.module,group_my_module_user,1,0,0,0access_my_module_manager,my_module.manager,my.module,group_my_module_manager,1,1,1,1
ColumnMeaning
perm_readSearch / read
perm_writeUpdate
perm_createCreate
perm_unlinkDelete

Load order

List security/security.xml before security/sys.access.csv in the manifest so groups exist when ACL rows resolve.

Compile and run

Terminal
shell
go run . -- -c sumeru.conf -u my_module --stop-after-initmake run

What not to do

  • Do not leave manager-level write/unlink on every group "for convenience".
  • Do not point group_id:id at an id from another module without a depends entry.
  • Do not confuse multi-company record rules with multi-tenant SaaS isolation. See the Security guides.

Next step

Seed records with Data XML, or read Security overview.