@specific.dev/cli 0.1.102 → 0.1.104

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.
Files changed (68) hide show
  1. package/dist/admin/404/index.html +1 -1
  2. package/dist/admin/404.html +1 -1
  3. package/dist/admin/__next.!KGRlZmF1bHQp.__PAGE__.txt +1 -1
  4. package/dist/admin/__next.!KGRlZmF1bHQp.txt +1 -1
  5. package/dist/admin/__next._full.txt +1 -1
  6. package/dist/admin/__next._head.txt +1 -1
  7. package/dist/admin/__next._index.txt +1 -1
  8. package/dist/admin/__next._tree.txt +1 -1
  9. package/dist/admin/_not-found/__next._full.txt +1 -1
  10. package/dist/admin/_not-found/__next._head.txt +1 -1
  11. package/dist/admin/_not-found/__next._index.txt +1 -1
  12. package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +1 -1
  13. package/dist/admin/_not-found/__next._not-found.txt +1 -1
  14. package/dist/admin/_not-found/__next._tree.txt +1 -1
  15. package/dist/admin/_not-found/index.html +1 -1
  16. package/dist/admin/_not-found/index.txt +1 -1
  17. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.__PAGE__.txt +1 -1
  18. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.txt +1 -1
  19. package/dist/admin/databases/__next.!KGRlZmF1bHQp.txt +1 -1
  20. package/dist/admin/databases/__next._full.txt +1 -1
  21. package/dist/admin/databases/__next._head.txt +1 -1
  22. package/dist/admin/databases/__next._index.txt +1 -1
  23. package/dist/admin/databases/__next._tree.txt +1 -1
  24. package/dist/admin/databases/index.html +1 -1
  25. package/dist/admin/databases/index.txt +1 -1
  26. package/dist/admin/fullscreen/__next._full.txt +1 -1
  27. package/dist/admin/fullscreen/__next._head.txt +1 -1
  28. package/dist/admin/fullscreen/__next._index.txt +1 -1
  29. package/dist/admin/fullscreen/__next._tree.txt +1 -1
  30. package/dist/admin/fullscreen/__next.fullscreen.__PAGE__.txt +1 -1
  31. package/dist/admin/fullscreen/__next.fullscreen.txt +1 -1
  32. package/dist/admin/fullscreen/databases/__next._full.txt +1 -1
  33. package/dist/admin/fullscreen/databases/__next._head.txt +1 -1
  34. package/dist/admin/fullscreen/databases/__next._index.txt +1 -1
  35. package/dist/admin/fullscreen/databases/__next._tree.txt +1 -1
  36. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.__PAGE__.txt +1 -1
  37. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.txt +1 -1
  38. package/dist/admin/fullscreen/databases/__next.fullscreen.txt +1 -1
  39. package/dist/admin/fullscreen/databases/index.html +1 -1
  40. package/dist/admin/fullscreen/databases/index.txt +1 -1
  41. package/dist/admin/fullscreen/index.html +1 -1
  42. package/dist/admin/fullscreen/index.txt +1 -1
  43. package/dist/admin/index.html +1 -1
  44. package/dist/admin/index.txt +1 -1
  45. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.__PAGE__.txt +1 -1
  46. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.txt +1 -1
  47. package/dist/admin/mail/__next.!KGRlZmF1bHQp.txt +1 -1
  48. package/dist/admin/mail/__next._full.txt +1 -1
  49. package/dist/admin/mail/__next._head.txt +1 -1
  50. package/dist/admin/mail/__next._index.txt +1 -1
  51. package/dist/admin/mail/__next._tree.txt +1 -1
  52. package/dist/admin/mail/index.html +1 -1
  53. package/dist/admin/mail/index.txt +1 -1
  54. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.txt +1 -1
  55. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.__PAGE__.txt +1 -1
  56. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.txt +1 -1
  57. package/dist/admin/workflows/__next._full.txt +1 -1
  58. package/dist/admin/workflows/__next._head.txt +1 -1
  59. package/dist/admin/workflows/__next._index.txt +1 -1
  60. package/dist/admin/workflows/__next._tree.txt +1 -1
  61. package/dist/admin/workflows/index.html +1 -1
  62. package/dist/admin/workflows/index.txt +1 -1
  63. package/dist/cli.js +368 -362
  64. package/dist/docs/sync.md +38 -0
  65. package/package.json +1 -1
  66. /package/dist/admin/_next/static/{t6Nv9BcBf3NfJnds5W8MU → NS9gTLUjY9l1uwVSPIg1A}/_buildManifest.js +0 -0
  67. /package/dist/admin/_next/static/{t6Nv9BcBf3NfJnds5W8MU → NS9gTLUjY9l1uwVSPIg1A}/_clientMiddlewareManifest.json +0 -0
  68. /package/dist/admin/_next/static/{t6Nv9BcBf3NfJnds5W8MU → NS9gTLUjY9l1uwVSPIg1A}/_ssgManifest.js +0 -0
package/dist/docs/sync.md CHANGED
@@ -46,6 +46,44 @@ For implementation details, see the Electric documentation:
46
46
  - Authentication and proxying: https://electric-sql.com/docs/guides/auth
47
47
  - Shapes and client usage: https://electric-sql.com/docs/guides/shapes
48
48
  - Handling writes: https://electric-sql.com/docs/guides/writes
49
+ - Troubleshooting: https://electric-sql.com/docs/guides/troubleshooting
50
+
51
+ ## Proxy configuration
52
+
53
+ When proxying Electric requests from your backend, you must handle headers and query parameters correctly. Getting these wrong causes silent failures — browsers block responses or serve stale cached data without clear error messages.
54
+
55
+ ### Expose Electric response headers
56
+
57
+ Electric returns custom headers that the client SDK needs (`electric-handle`, `electric-offset`, `electric-schema`). Browsers block JavaScript from reading non-standard response headers unless they are listed in `Access-Control-Expose-Headers`:
58
+
59
+ ```
60
+ Access-Control-Expose-Headers: electric-handle, electric-offset, electric-schema
61
+ ```
62
+
63
+ ### Strip upstream headers
64
+
65
+ Electric's response includes its own CORS and caching headers. If your proxy copies these through and your CORS middleware also adds its own, the browser receives duplicate `Access-Control-Allow-Origin` values and rejects the response. Before setting your own headers, strip these from Electric's response:
66
+
67
+ - `Access-Control-Allow-Origin` and other `Access-Control-*` headers
68
+ - `Content-Encoding` and `Content-Length` (fetch decompresses the body but doesn't update these headers, which breaks browser decoding)
69
+ - `Cache-Control` (see below)
70
+
71
+ ### Override caching
72
+
73
+ Electric returns `Cache-Control` with `max-age` and `stale-age` for request collapsing at CDN level. During development, this can cause browsers to serve stale cached responses — for example, responses cached before CORS headers were configured correctly will keep failing even after the proxy is fixed. Override with `Cache-Control: no-store` on your proxy response to prevent this.
74
+
75
+ ### Control query parameters
76
+
77
+ Set these server-side — never pass them through from the client:
78
+
79
+ - `table` — letting clients specify the table allows access to any table
80
+ - `where` — this is your authorization filter
81
+ - `columns` — clients could request sensitive columns
82
+ - `secret` — never expose the API secret to clients
83
+
84
+ Only forward Electric protocol parameters from the client:
85
+
86
+ - `offset`, `handle`, `live`, `live_sse`, `replica`, `log`
49
87
 
50
88
  ## Using the Electric TypeScript SDK
51
89
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specific.dev/cli",
3
- "version": "0.1.102",
3
+ "version": "0.1.104",
4
4
  "description": "CLI for Specific infrastructure-as-code",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",