create-syncular-app 0.15.20 → 0.15.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-syncular-app",
3
- "version": "0.15.20",
3
+ "version": "0.15.21",
4
4
  "description": "Scaffold a new Syncular app: `create-syncular-app`",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Benjamin Kniffler",
@@ -49,6 +49,6 @@
49
49
  "!dist/**/*.test.d.ts"
50
50
  ],
51
51
  "devDependencies": {
52
- "@syncular/typegen": "0.15.20"
52
+ "@syncular/typegen": "0.15.21"
53
53
  }
54
54
  }
@@ -32,7 +32,10 @@ bun run clients # terminal 2 — prints "✓ converged"
32
32
  1. **`src/server.ts` → `resolveScopes`** — the whole authorization story. It
33
33
  runs in your backend next to your auth. The starter returns `['*']` (see
34
34
  everything); a real one returns the scope values the authenticated actor may
35
- see.
35
+ see. Multiple variables are independent, not correlated parent/child tuples:
36
+ test isolation with at least two parents and child IDs, and carry the parent
37
+ scope on every child table before using a child wildcard. See
38
+ [Scopes & authorization](https://syncular.dev/concepts-scopes/).
36
39
  2. **`src/server.ts` → `authenticate`** — plug in your real session/token
37
40
  check; return `{ actorId, partition }` or `null` for a 401.
38
41
  3. **`migrations/` + `syncular.json`** — append migrations and add tables or
@@ -77,7 +77,11 @@ On desktop, the plugin owns the database path and the transport — see
77
77
 
78
78
  1. **`src/server.ts` → `resolveScopes`** — the whole authorization story. The
79
79
  starter returns `['*']`; a real one returns the scope values the
80
- authenticated actor may see.
80
+ authenticated actor may see. Multiple variables are independent, not
81
+ correlated parent/child tuples: test isolation with at least two parents and
82
+ child IDs, and carry the parent scope on every child table before using a
83
+ child wildcard. See
84
+ [Scopes & authorization](https://syncular.dev/concepts-scopes/).
81
85
  2. **`src/server.ts` → `authenticate`** — plug in your real session/token
82
86
  check; return `{ actorId, partition }` or `null` for a 401.
83
87
  3. **`src-tauri/src/lib.rs` → `base_url`** — point the native core at your
@@ -21,7 +21,7 @@ tauri = { version = "2", features = [] }
21
21
  # The syncular plugin from crates.io. `native-transport` gives the core its
22
22
  # real HTTP + WebSocket transport (ureq + tungstenite) inside the host
23
23
  # process — the webview never talks to the sync server directly.
24
- tauri-plugin-syncular = { version = "0.15.20", features = ["native-transport"] }
24
+ tauri-plugin-syncular = { version = "0.15.21", features = ["native-transport"] }
25
25
 
26
26
  [features]
27
27
  default = []
@@ -42,7 +42,11 @@ covered by `tsc`).
42
42
 
43
43
  1. **`src/server.ts` → `resolveScopes`** — the whole authorization story. It
44
44
  runs in your backend next to your auth. The starter returns `['*']`; a real
45
- one returns the scope values the authenticated actor may see.
45
+ one returns the scope values the authenticated actor may see. Multiple
46
+ variables are independent, not correlated parent/child tuples: test
47
+ isolation with at least two parents and child IDs, and carry the parent scope
48
+ on every child table before using a child wildcard. See
49
+ [Scopes & authorization](https://syncular.dev/concepts-scopes/).
46
50
  2. **`src/server.ts` → `authenticate`** — plug in your real session/token
47
51
  check; return `{ actorId, partition }` or `null` for a 401.
48
52
  3. **`src/frontend/main.ts`** — the UI. It queries and mutates through the