naro-cli 0.20.0 → 0.21.0

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/README.md CHANGED
@@ -211,6 +211,13 @@ naro storage mv naro://docs/a.pdf naro://docs/old/a.pdf Inside one bucke
211
211
  naro storage rm naro://avatars/u1/old.png [--recursive] (asks first)
212
212
  naro storage rm naro://avatars/u1/ --recursive Everything under u1/; written u1, an object u1 too
213
213
 
214
+ naro realtime [status] Naro Realtime: on or not, published tables, connections now
215
+ naro realtime enable Turn Realtime on: the project's hub, bound to its backend
216
+ naro realtime tables [list] The tables whose Data API writes reach subscribers
217
+ naro realtime tables add <table>… Publish tables' changes (within about 10 seconds)
218
+ naro realtime tables remove <table>… [--yes]
219
+ Stop publishing tables' changes (asks first)
220
+
214
221
  naro promote <deployment-id> [--to <environment>] Publish a build to production, or to an environment (0.20.0); says rebuild or reupload first, then asks
215
222
  naro rollback [deployment-id] Back to the previous production build
216
223
  ```
@@ -846,6 +853,60 @@ An `--update-check` you give replaces the default: without
846
853
 
847
854
  ## Release notes
848
855
 
856
+ ### 0.21.0
857
+
858
+ 0.20.0 went out on 2026-10-26 without these.
859
+
860
+ - `naro realtime` turns on Naro Realtime for the project and chooses the
861
+ tables whose changes reach subscribers (Realtime 3-2d). Five commands:
862
+ `naro realtime [status]`, `naro realtime enable`,
863
+ `naro realtime tables [list]`, `naro realtime tables add <table>…` and
864
+ `naro realtime tables remove <table>… [--yes]`.
865
+ - `naro realtime` prints `Realtime: on (public channels: off)`, the
866
+ published tables (`Published tables: messages, gone (dropped)`, or
867
+ `Published tables: none — naro realtime tables add <table>`) and
868
+ `Connections now: 12 · channels 30 · presences 8`. When the hub does not
869
+ answer it says
870
+ `Connections now: not known — the backend is off or not ready, or the hub did not answer`.
871
+ Before Realtime is on it prints `Realtime: not enabled` and
872
+ ``Run `naro realtime enable` to turn it on (the project's backend must be on first).``
873
+ - `naro realtime enable` needs the backend on, and is safe to run again: it
874
+ picks up an upload that stopped. It prints
875
+ `✅ Realtime is on. Publish a table with naro realtime tables add <table>.`
876
+ and the state. An upload that does not answer within 2 minutes stops
877
+ with `TIMEOUT`
878
+ ``Turning Realtime on did not answer within 2 minutes. `naro realtime` shows where it got to, and `naro realtime enable` again picks up where it stopped.``
879
+ - `naro realtime tables add messages rooms` sends one request a table, in
880
+ order, and stops at the first refusal (`404 TABLE_NOT_FOUND`
881
+ `Table nope was not found.`): the tables before it stay published. Each
882
+ prints `✅ messages now publishes its changes (within about 10 seconds).`
883
+ and the control plane's warnings as `⚠ <warning>` — for a table with no
884
+ select policy,
885
+ `⚠ messages has no select policy: only service-key connections receive its changes.`
886
+ The command ends with
887
+ `⚠ Changes made through the Data API are published; writes your app makes with env.DB are not.`
888
+ once.
889
+ - `naro realtime tables remove` asks once for all the tables —
890
+ `Stop publishing messages, rooms? Subscribers stop receiving their changes within about 10 seconds.`
891
+ — and with `--json` or without a terminal only `--yes` answers it
892
+ (`CONFIRMATION_REQUIRED`). A table that is not published stops it with
893
+ `404 TABLE_NOT_PUBLISHED` `Table nope does not publish its changes.`
894
+ - A table name no URL can carry fails before its request with
895
+ `INVALID_PATH` `The table name is not valid.`, and a command with no
896
+ table with `VALIDATION_FAILED` and its usage line.
897
+ - Until Naro Realtime is switched on for the control plane, `naro realtime enable`,
898
+ `tables add` and `tables remove` answer `503 REALTIME_DISABLED`
899
+ `Naro Realtime is not enabled on this control plane yet.` (`naro realtime`
900
+ still prints `Realtime: not enabled`). The tables commands on a project
901
+ whose Realtime is not on answer `409 REALTIME_NOT_ENABLED`
902
+ ``Realtime is not enabled for this project. Run `naro realtime enable` first.``
903
+ - There is no command that turns Realtime alone off yet:
904
+ `naro backend disable` stops it with the rest of the backend.
905
+ - It goes out with naro-js 0.6.0, whose `naro.channel()` is the client side
906
+ of Realtime (row changes, broadcast and presence, as supabase-js's
907
+ `channel()`). naro-js 0.6.0 is also the first published version with
908
+ Storage's `move()` and `copy()` (3-1i).
909
+
849
910
  ### 0.20.0
850
911
 
851
912
  0.19.1 went out on 2026-10-24 without these.