Real-world example for Data Rules
Data model and data rules file
<?xml version="1.0" encoding="UTF-8"?>
<data-model>
<model name="user" label="User">
<field name="name" label="Name" type="text:name"/>
<field name="role" label="Role" type="single-choice">
<option key="normal">Normal User</option>
<option key="regional_admin">Regional Admin</option>
<option key="global_admin">Global Admin</option>
</field>
<!-- Normal users and regional admins belong to a region -->
<belongs-to model="region" />
<display>{name}</display>
</model>
<model name="region" label="Region">
<field name="name" label="Name" type="text:name"/>
<!-- Explicit relationships which we'll need to define our data buckets -->
<has-many model="user" name="users" />
<has-many model="client" name="clients" />
<has-many model="pricing_template" name="pricing_templates" />
<has-many model="pricing_item" name="pricing_items" />
<display>{name}</display>
</model>
<model name="client" label="Client">
<field name="name" label="Name" type="text:name"/>
<belongs-to model="region" />
<display>{name}</display>
</model>
<model name="pricing_template" label="Setting: Pricing Template">
<field name="version" label="Version" type="text" />
<belongs-to model="region" />
<has-many model="pricing_item" name="pricing_items" />
<display>{version}</display>
</model>
<model name="pricing_item" label="Setting: Pricing Item">
<field name="key" label="Key" type="text" />
<field name="value" label="Value" type="number" />
<belongs-to model="pricing_template" />
<!-- Explicit relationship added between pricing_item and region which we'll need to define our data buckets -->
<belongs-to model="region" />
<display>{key} : {value}</display>
</model>
<!-- ... -->
</data-model>Define the data buckets
Define what data is synced for each user role
Define what read & write access each user role has
Last updated