You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: reposition around ICP, use cases, and delivery guarantees (#59)
* docs: reposition around ICP, use cases, and delivery guarantees
Align the docs with the current anycable.io positioning (multi-language
realtime server with delivery guarantees) instead of the older Rails +
Action Cable framing.
- Front door: new overview, quick start (stack picker), capabilities hub
- Use-case guides: AI streaming, live dashboards, GPS dispatch, telehealth
- Python / any-backend guide and an Editions page (OSS / Pro / AnyCable+)
- Restructure sidebar/IA; update site metadata for Python + delivery guarantees
- getting_started becomes a Quick Start pointer with a 301; fix broken links
- Note Valkey alongside Redis on key pages
- Fix pro.md (title, OCPP typo, dead link) and add demo app links
All new pages were verified against a running anycable-go 1.6.7.
* docs: add complete anycable-go server options reference
Generated from `anycable-go --help` (84 options across 22 sections, each with
its env var and default). Linked from Configuration and the sidebar. Helps
humans find flags and prevents agents from hallucinating options.
* docs: fix lint (forspell/markdownlint) and complete options reference
- forspell.dict: add realtime, healthtech, fintech, telehealth, replayable,
leaderboards, analytics, httpx, cron, redisx, nats, statsd, subprotocols, Disconnector
- markdownlint: drop trailing '?' in overview H1 (MD026); join adjacent
blockquotes in pro/broadcasting/broadcast_adapters (MD028); inline AI-streaming
Python example; reword air-gapped
- options reference: regenerate from current OSS v1.6.14 (97 options, was 84 from
1.6.7) and add a Pro-only options section (admin, GraphQL, long polling, OCPP,
netpoll, slow drain, adaptive RPC) from a Pro build
* docs: fix --broadast_key typo -> --broadcast_key (release notes)
Found via the flag audit cross-checking documented flags against
`anycable-go --help`. The adjacent ANYCABLE_BROADCAST_KEY confirms the fix.
* docs: fix pre-existing typos found during fact-check
- architecture.md: miminalize -> minimize
- release_notes.md: nonderterministic -> nondeterministic, dowstreamed ->
downstreamed, paramter -> parameter, peforming -> performing
- forspell.dict: add Hatchbox, fastlane, downstreamed (legit terms)
Found by running forspell across the full docs tree.
* docs: fix OCPP typos (OCCP -> OCPP, hearbeat -> heartbeat)
- ocpp.md: OCCPChannel -> OCPPChannel (the binary default is OCPPChannel)
- options.md: --ocpp_heartbeat_interval / ANYCABLE_OCPP_HEARTBEAT_INTERVAL
(corrected spelling; the Pro binary typo is being fixed upstream)
* docs(landing): refresh homepage to reflect new positioning
- Tagline now matches the site positioning (delivery guarantees, multi-language)
- 'Get Started' points to the new Quick Start; add 'What is AnyCable?' link
- Stack cards: add Python and Any backend (HTTP API); relabel Node.js/TS
- New 'Explore' section: Capabilities, Build by use case, Editions
* docs: address PR review (use-case correctness fixes)
- live-dashboards: define BROADCAST_URL (was undefined NameError); scope the
benchmark figure to the broadcast-throughput test; name --public_streams
- ai-streaming: promote --public into the runnable dev command (step 3 uses an
unsigned stream)
- gps-dispatch, telehealth: make Python broadcast examples self-contained
(define publish + BROADCAST_URL); OCPP described as alpha, drop vague claim
- telehealth: on-premise prose links to Docker/Kubernetes, not Heroku
- _redirects: drop forced 301 on /getting_started so the pointer page shows
* docs: add --public to dev commands in dashboards/gps/telehealth
Second-pass review: the unsigned-streamFrom-without---public issue fixed in
ai-streaming was systemic. These three pages ran the server without --public but
their client examples subscribe to unsigned streams, so a copy-paste reader hit
rejected subscriptions. Matched the ai-streaming pattern with a local-dev-only
caveat pointing to signed streams + JWT for production.
* docs: fix JWT param env var and enats default; show secret export
Third-pass review:
- jwt_identification.md used ANYCABLE_ID_PARAM, but the binary honors
ANYCABLE_JWT_PARAM (verified: ANYCABLE_ID_PARAM is ignored, param stays 'jid';
ANYCABLE_JWT_PARAM=token sets it). options.md was already correct.
- options.md --enats_max_payload Default cell had a --help parsing artifact
('1048576 = 1MB) (default: 0'); real default is 0.
- quickstart + python: show 'export ANYCABLE_SECRET=...' so the var isn't empty
when copy-pasted.
* docs: address 4th review (OCPP caveat, redirect dedup, explicit WS URLs)
- options.md: inline caveat on --ocpp_heartbeat_interval noting current Pro
builds spell it --ocpp_hearbeat_interval (typo) until the fix ships
- _redirects: drop the no-op /getting_started 301 (the pointer page renders);
keep /anycable-go/getting_started -> /quickstart
- use-case JS examples: pass explicit ws://localhost:8080/cable to createCable,
so standalone Node/Python readers (no action-cable-url meta tag) can copy-paste
* docs: move use-case guides to a separate PR
Per review feedback, the 'Build by use case' guides (AI streaming, live
dashboards, GPS dispatch, telehealth + index) ship in their own PR. Removes the
pages, the sidebar group, and the landing-page card here; the rest of the
repositioning (front door, by-backend, capabilities, editions, options
reference, fixes) stays.
> Enable via `--broadcast_adapter=redis` (or `ANYCABLE_BROADCAST_ADAPTER=redis`).
67
+
>
68
+
> [Valkey](https://valkey.io), the open-source Redis fork, works as a drop-in alternative for this and the Redis X adapter below.
67
69
68
70
This broadcaster uses Redis [Pub/Sub](https://redis.io/topics/pubsub) feature under the hood, and, thus, publications are delivered to all subscribed AnyCable servers simultaneously.
Copy file name to clipboardExpand all lines: docs/anycable-go/configuration.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,7 @@
1
1
# AnyCable server configuration
2
2
3
+
> Looking for a specific flag? See the [complete server options reference](./options.md) for every option and environment variable.
4
+
3
5
You can configure AnyCable server via CLI options, e.g.:
4
6
5
7
```sh
@@ -109,6 +111,8 @@ You can specify on which port to receive broadcasting requests (NOTE: it could b
109
111
110
112
## Redis configuration
111
113
114
+
> [Valkey](https://valkey.io), the open-source fork of Redis, works as a drop-in alternative everywhere AnyCable uses Redis. Some features require recent versions: Redis-backed presence needs **Redis 7.4+** or **Valkey 9.0+**.
115
+
112
116
**--redis_url** (`ANYCABLE_REDIS_URL` or `REDIS_URL`)
113
117
114
118
Redis URL to connect to (default: `"redis://localhost:6379/5"`). Used by the corresponding pub/sub, broadcasting, and broker adapters.
Copy file name to clipboardExpand all lines: docs/anycable-go/jwt_identification.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ By default, the `--secret` configuration parameter is used as a JWT secret key.
18
18
19
19
Other configuration options are:
20
20
21
-
- (_Optional_) **--jwt_param** (`ANYCABLE_ID_PARAM`, default: "jid"): the name of a query string param or an HTTP header, which carries a token. The header name is prefixed with `X-`.
21
+
- (_Optional_) **--jwt_param** (`ANYCABLE_JWT_PARAM`, default: "jid"): the name of a query string param or an HTTP header, which carries a token. The header name is prefixed with `X-`.
22
22
- (_Optional_) **--enforce_jwt** (`ANYCABLE_ENFORCE_JWT`, default: false): whether to require all connection requests to contain a token. Connections without a token would be rejected right away. If not set, the servers fallbacks to the RPC call (if RPC is configured) or would be accepted if authentication is disabled (`--noauth`).
23
23
24
24
A client must provide an identification token either via a query param or via an HTTP header (if possible). For example:
Copy file name to clipboardExpand all lines: docs/anycable-go/ocpp.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,9 +14,9 @@ AnyCable-Go Pro supports OCPP and allows you to _connect_ your charging stations
14
14
- The station sends a `BootNotification` request to initialize the connection
15
15
- AnyCable transforms this request into several AnyCable RPC calls to match the Action Cable interface:
16
16
1)`Authenticate -> Connection#connect` to authenticate the station.
17
-
2)`Command{subscribe} -> OCCPChannel#subscribed` to initialize a channel entity to association with this station.
18
-
3)`Command{perform} -> OCCPChannel#boot_notification` to handle the `BootNotification` request.
19
-
- Subsequent requests from the station are converted into `OCCPChannel` action calls (e.g., `Authorize -> OCCPChannel#authorize`, `StartTransaction -> OCCPChannel#start_transaction`).
17
+
2)`Command{subscribe} -> OCPPChannel#subscribed` to initialize a channel entity to association with this station.
18
+
3)`Command{perform} -> OCPPChannel#boot_notification` to handle the `BootNotification` request.
19
+
- Subsequent requests from the station are converted into `OCPPChannel` action calls (e.g., `Authorize -> OCPPChannel#authorize`, `StartTransaction -> OCPPChannel#start_transaction`).
20
20
21
21
AnyCable also takes care of heartbeats and acknowledgment messages (unless you send them manually, see below).
22
22
@@ -120,7 +120,7 @@ end
120
120
121
121
### Single-action variant
122
122
123
-
It's possible to handle all OCCP commands with a single `#receive` method at the channel class. For that, you must configure `anycable-go` to not use granular actions for OCPP:
123
+
It's possible to handle all OCPP commands with a single `#receive` method at the channel class. For that, you must configure `anycable-go` to not use granular actions for OCPP:
124
124
125
125
```sh
126
126
anycable-go --ocpp_granular_actions=false
@@ -152,7 +152,7 @@ end
152
152
You can send remote commands to stations via Action Cable broadcasts:
0 commit comments