6.13.2.29 OrganizationPredefinedRoleEnum
6.13.2.29.1 Purpose¶
The predefined roles of every Organization, each with a stable key that systems use instead of the role's name, and the explicit list of capabilities it holds. Organization roles carry the key; a capability enters a role only by a decision, never because a system published it.
Owner and Sync Client are system roles: Owner belongs to the Organization's owner alone, Sync Client to the service account of a farm sync client, and no operation changes either. Technician, Veterinarian and Advisor hold no admin capability, so they are the roles a farm can delegate.
6.13.2.29.2 Values¶
| Value | Description |
|---|---|
owner |
Owner, priority 1000. A system role: held only by the Person of Organization.owner, and never changed through an operation.Capabilities: moochat.moochat.access, farm.animals.read, farm.animals.update, farm.animal_groups.read, farm.animal_groups.manage_members, access.organization_delegations.manage, access.organization.update, access.members.read, access.members.manage, farm.ownerships.transfer, farm.animal_records.read, farm.animal_events.record, farm.animal_diagnoses.record, farm.official_submissions.submit, farm.animal_groups.manage, farm.sources.manage, farm.ingestion.read, access.cooperative_constraints.read, access.cooperative_constraints.manage, farm.animal_records.edit_own, farm.data_issues.read, farm.sync_clients.read, farm.sync_clients.manage, farm.models.use, access.webhooks.manage, farm.farm_configurations.manage, grant.checks.run, grant.documents.manage, moochat.connectors.manage, access.groups.read, access.groups.manage, access.organization.close, access.cooperative_links.manage, farm.erasure_requests.request, grant.call_actions.manage, access.cooperative_members.read.Every capability of OrganizationRoleCapabilityEnum a Person may hold; never farm.sync_runs.write. |
manager |
Manager, priority 900. The capabilities of Owner except access.organization.close; transferring the ownership stays the owner's. |
technician |
Technician, priority 500, the operator of the farm and the Field technician of a delegation. Capabilities: farm.animals.read, farm.animals.update, farm.animal_groups.read, farm.animal_groups.manage_members, farm.animal_records.read, farm.animal_records.edit_own, farm.animal_events.record, farm.data_issues.read, farm.ingestion.read, farm.sync_clients.read, farm.models.use, moochat.moochat.access, access.cooperative_constraints.read.Can be delegated. |
veterinarian |
Veterinarian, priority 400. Capabilities: farm.animals.read, farm.animal_groups.read, farm.animal_records.read, farm.animal_diagnoses.record, farm.models.use, moochat.moochat.access.Can be delegated. |
advisor |
Advisor, read only, priority 300. Capabilities: farm.animals.read, farm.animal_groups.read, farm.animal_records.read, farm.data_issues.read, farm.models.use, moochat.moochat.access.Can be delegated; the usual role a farm gives its cooperative. |
sync_client |
Sync Client, priority 10. A system role: given only to the ServiceAccount a farm sync client becomes at enrolment (SyncClient), never to a Person, a group, a join link or a delegation, and never changed through an operation. Capabilities: farm.sync_runs.write, farm.sync_clients.read.The farm system finds it by this key, never by its name. |
analyst |
Analyst, read only, priority 200: the role of an Insurer, for the farm data delegated to it. Capabilities: farm.animals.read, farm.animal_groups.read, farm.animal_records.read, farm.models.use, moochat.moochat.access.Can be delegated, to an Insurer only. |
6.13.2.29.3 Relationships¶
Used by
6.13.2.29.4 Rules & constraints¶
- The keys of the predefined Organization roles (
OrganizationRoleAccessControl.key), with their priority and capabilities. - Each role lists its capabilities explicitly: a capability a system adds to OrganizationRoleCapabilityEnum enters a role only by a decision.
- Quality reader waits for a resource scope of animal records (OrganizationRoleCapabilityEnum); until then a cooperative uses Advisor.
- Each type of Organization lists the roles it offers and those it receives by delegation (Organization), kept on each role in
OrganizationRoleAccessControl.organization_typesandOrganizationRoleAccessControl.delegatee_types.