Hi @planningintelligence - welcome to the forum.
Yea this question has come up many times. This issue would be a good one to read through:
And here is another forum topic where it came up:
To summarize: it depends on what level of “separation” you want. farmOS is designed as a farm management dashboard for a “single” farm, and does not provide any concept of “separate farms” within it’s database, and therefore there is no way to filter by farm or restrict access to records by farm within its UI. You can create multiple “Property” land assets within it, and create logins for different farms, but everyone would be able to see and edit everything. This might be OK in some situations, but not in others.
Adding that kind of “separation” is essentially a matter of creating a concept of “farms” within a single instance (this module shows one way to do that: GitHub - mstenta/farm_multifarm: Manage multiple farms in farmOS. PROOF OF CONCEPT - DO NOT USE WITH REAL DATA), and building walls with access control logic to separate things within the UI. This is a large development effort, however. No one has invested in that development yet, because there is already an existing solution to the problem: hosting multiple instances, one per farm. This already provides all the “access control walls” that are necessary, and is much simpler from a code complexity and maintenance standpoint.
Shameless plug: I provide “partner hosting” through Farmier.com for organizations that want to host multiple instances of farmOS on behalf of farms they work with. If that’s of interest, feel free to send me a DM!