addedInput schema / properties / capabilities
Added value: +{
+ "description": "What the page may do at run time. state.read and state.write give it JSON documents at window.bisque.state (get, patch, list, subscribe); viewer.identity tells it who is viewing (window.bisque.viewer); events.emit lets it record typed Events. Omit for a page that only shows things.",
+ "items": {
+ "enum": [
+ "state.read",
+ "state.write",
+ "events.emit",
+ "viewer.identity"
+ ],
+ "type": "string"
+ },
+ "type": "array",
+ "uniqueItems": true
+}
addedInput schema / properties / state
Added value: +{
+ "additionalProperties": false,
+ "description": "Who may read and write which paths of the page's data, by the minimum role: viewer (can open), contributor (a data grant, separate from editing the page), owner. Absent means: everyone who can open reads, contributors and the owner write. Example poll: [{path:'votes',read:'viewer',write:'owner'},{path:'votes/{self}',write:'viewer'}].",
+ "properties": {
+ "rules": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "path": {
+ "description": "A slash path the rule covers, and everything below it; '' is the root. A trailing {self} names each person's own document under the prefix.",
+ "type": "string"
+ },
+ "read": {
+ "enum": [
+ "anyone",
+ "viewer",
+ "contributor",
+ "owner"
+ ],
+ "type": "string"
+ },
+ "write": {
+ "enum": [
+ "viewer",
+ "contributor",
+ "owner"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+}