Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WEB-3950] Simplified docs routing, port page content from YAML to JSON #2383

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

jamiehenson
Copy link
Member

@jamiehenson jamiehenson commented Jan 15, 2025

There's a lot of file bluster in this PR but the purpose is quite simple. It does three things:

  1. take the remaining YAML page furniture (just the homepage) and port it to a JSON structure to resemble the nav data structures
  2. take all of the internal links inside the Textile files, and add a /docs prefix
  3. remove all conditional path prefixing logic

The result is a lot more simplicity around page routing - links are as they are, there's no more conditional "other" logic when comparing to the main site.

Review site: https://ably-docs-web-3950-norm-xg6o5u.herokuapp.com/docs

Word of bot

This pull request includes various updates to documentation links and configuration files. The main changes involve updating URLs to ensure consistency and accuracy, as well as removing redundant configurations.

Documentation Updates:

Configuration Changes:

  • Updated the node orb version in .circleci/config.yml from 5.2.0 to 5.3.0.
  • Removed redundant nginx rewrite rules for /docs in config/nginx.conf.erb.

Testing and Cleanup:

  • Removed the test for nginx /docs rewriting in the CircleCI configuration.

Summary by CodeRabbit

  • Documentation
    • Updated all documentation links to use a new “/docs” prefix.
    • Ensured a consistent and clear navigation structure across all help resources.
    • Enhanced the clarity of API, authentication, channels, pricing, push notifications, and other reference materials for end-users.

Copy link

coderabbitai bot commented Jan 15, 2025

Walkthrough

This pull request makes widespread documentation updates across numerous files. Nearly all URL references––whether in redirect paths, inline hyperlinks, or reference links––have been changed to include a /docs prefix for a consistent documentation structure. In addition, a few deprecated properties in a client options file were removed.

Changes

File(s) Change Summary
content/** (including files under account, api, asset‑tracking, auth, basics, channels, chat, connect, general, getting‑started, livesync, metadata‑stats, partials, platform, presence‑occupancy, pricing, protocols, pub‑sub, push, root, spaces) Updated hyperlinks, inline references, and redirect_from paths to include a /docs prefix, standardizing all documentation URLs to the new structure.
content/partials/types/_client_options.textile Removed deprecated properties (tls, idempotentRestPublishing, fallbackHosts, useBinaryProtocol) and updated associated documentation links accordingly.

Poem

Hop, hop, I’m the doc‐updating bunny,
Hopping through links and paths so sunny,
Every URL now proudly wears /docs on its tail,
Neatly aligned and never to fail,
I nibble on changes with a joyful heart,
Celebrating clear docs––a true work of art!


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@ably-ci ably-ci temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 15, 2025 17:13 Inactive
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from ed97940 to cc77806 Compare January 15, 2025 17:13
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 15, 2025 17:14 Inactive
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 15, 2025 17:31 Inactive
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from dfb96f0 to 481033c Compare January 15, 2025 17:38
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 15, 2025 17:38 Inactive
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from 481033c to a830666 Compare January 15, 2025 17:42
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 15, 2025 17:42 Inactive
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from a830666 to 0443772 Compare January 16, 2025 13:59
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 16, 2025 14:00 Inactive
@jamiehenson jamiehenson changed the title Web 3950 normalised docs routing [WEB-3950] Simplified docs routing, port page content from YAML to JSON Jan 16, 2025
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from 0443772 to 1478e0c Compare January 16, 2025 14:15
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 16, 2025 14:16 Inactive
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 16, 2025 14:29 Inactive
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from 1368333 to 497a41f Compare January 16, 2025 14:30
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-k6n8uf January 16, 2025 14:30 Inactive
@jamiehenson jamiehenson force-pushed the web-4082-docs-nav-redesign branch 2 times, most recently from bb08d1a to f3cf6b0 Compare January 16, 2025 15:10
@jamiehenson jamiehenson force-pushed the web-4082-docs-nav-redesign branch 5 times, most recently from d2aa49e to b386ccb Compare February 3, 2025 11:45
@kennethkalmer kennethkalmer force-pushed the web-3950-normalised-docs-routing branch from 497a41f to 5e9dd03 Compare February 6, 2025 15:58
@jamiehenson jamiehenson force-pushed the web-4082-docs-nav-redesign branch 3 times, most recently from 98236b7 to d37f16a Compare February 17, 2025 17:47
Base automatically changed from web-4082-docs-nav-redesign to main February 18, 2025 13:05
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from 5e9dd03 to f9ef027 Compare February 19, 2025 12:00
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from f9ef027 to 521a549 Compare February 19, 2025 17:32
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch 2 times, most recently from 3517baa to 7bb6914 Compare February 20, 2025 17:34
@jamiehenson jamiehenson marked this pull request as ready for review February 20, 2025 17:36
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-xg6o5u February 20, 2025 17:47 Inactive
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from 7bb6914 to d12ccd2 Compare February 20, 2025 17:59
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-xg6o5u February 20, 2025 17:59 Inactive
@jamiehenson jamiehenson force-pushed the web-3950-normalised-docs-routing branch from d12ccd2 to e40642b Compare February 20, 2025 18:05
@jamiehenson jamiehenson temporarily deployed to ably-docs-web-3950-norm-xg6o5u February 20, 2025 18:06 Inactive
@jamiehenson
Copy link
Member Author

@coderabbitai review

Copy link

coderabbitai bot commented Feb 21, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🔭 Outside diff range comments (1)
content/push/configure/web.textile (1)

231-231: ⚠️ Potential issue

Fix the malformed AMQP URL.

The URL contains an incorrect format with double slashes and an unexpected /docs segment.

Apply this diff to fix the URL format:

-const url = 'amqps:/docs//APPID.KEYID:[email protected]/shared'
+const url = 'amqps://APPID.KEYID:[email protected]/shared'
🧹 Nitpick comments (3)
content/channels/messages.textile (3)

102-130: Consider reducing code duplication.

The JavaScript and Node.js code examples are identical. Consider using a single code block with a combined language identifier to reduce duplication and maintenance overhead.

-  ```[javascript]
-  async function sendReaction(emoji) {
-    await channel.publish({
-      name: 'event_name',
-      data: emoji,
-      extras: {
-        ref: {
-          type: "com.ably.reaction",
-          timeserial: "1656424960320-1"
-        }
-      }
-    })
-  }
-  ```
-
-  ```[nodejs]
+  ```[javascript,nodejs]
   async function sendReaction(emoji) {
     await channel.publish({
       name: 'event_name',
       data: emoji,
       extras: {
         ref: {
           type: "com.ably.reaction",
           timeserial: "1656424960320-1"
         }
       }
     })
   }

---

`146-214`: **Consider consolidating identical code examples.**

Similar to the previous section, the JavaScript and Node.js code examples are identical. Consider using combined language identifiers to reduce duplication.

Example consolidation for one of the subscription examples:
```diff
-  ```[realtime_javascript]
-  await channel.subscribe({
-    refType: "com.ably.reaction"
-  }, onReaction);
-  ```
-
-  ```[realtime_nodejs]
+  ```[realtime_javascript,realtime_nodejs]
   await channel.subscribe({
     refType: "com.ably.reaction"
   }, onReaction);

---

`225-235`: **Consider consolidating unsubscribe examples.**

The unsubscribe examples also show identical code for JavaScript and Node.js.

```diff
-  ```[realtime_javascript]
-  channel.unsubscribe({
-    refType: 'com.ably.reaction'
-  });
-  ```
-
-  ```[realtime_nodejs]
+  ```[realtime_javascript,realtime_nodejs]
   channel.unsubscribe({
     refType: 'com.ably.reaction'
   });

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 08064b761fca532b714b8676247435f49fa3033c and e40642b305fa4395ec64aaeacd6938370e17baf8.

</details>

<details>
<summary>📒 Files selected for processing (185)</summary>

* `.circleci/config.yml` (1 hunks)
* `config/nginx.conf.erb` (0 hunks)
* `content/account/2fa.textile` (1 hunks)
* `content/account/app/api.textile` (2 hunks)
* `content/account/app/index.textile` (3 hunks)
* `content/account/app/notifications.textile` (3 hunks)
* `content/account/app/queues.textile` (2 hunks)
* `content/account/app/settings.textile` (2 hunks)
* `content/account/control-api.textile` (16 hunks)
* `content/account/index.textile` (5 hunks)
* `content/account/organizations.textile` (3 hunks)
* `content/account/sso.textile` (1 hunks)
* `content/account/users.textile` (1 hunks)
* `content/api/index.textile` (2 hunks)
* `content/api/realtime-sdk.textile` (7 hunks)
* `content/api/realtime-sdk/authentication.textile` (16 hunks)
* `content/api/realtime-sdk/channel-metadata.textile` (1 hunks)
* `content/api/realtime-sdk/channels.textile` (14 hunks)
* `content/api/realtime-sdk/connection.textile` (7 hunks)
* `content/api/realtime-sdk/encryption.textile` (4 hunks)
* `content/api/realtime-sdk/history.textile` (9 hunks)
* `content/api/realtime-sdk/messages.textile` (3 hunks)
* `content/api/realtime-sdk/presence.textile` (17 hunks)
* `content/api/realtime-sdk/push-admin.textile` (1 hunks)
* `content/api/realtime-sdk/push.textile` (1 hunks)
* `content/api/realtime-sdk/statistics.textile` (2 hunks)
* `content/api/realtime-sdk/types.textile` (1 hunks)
* `content/api/rest-api.textile` (17 hunks)
* `content/api/rest-sdk.textile` (6 hunks)
* `content/api/rest-sdk/authentication.textile` (12 hunks)
* `content/api/rest-sdk/channel-status.textile` (2 hunks)
* `content/api/rest-sdk/channels.textile` (10 hunks)
* `content/api/rest-sdk/encryption.textile` (5 hunks)
* `content/api/rest-sdk/history.textile` (8 hunks)
* `content/api/rest-sdk/messages.textile` (4 hunks)
* `content/api/rest-sdk/presence.textile` (7 hunks)
* `content/api/rest-sdk/push-admin.textile` (1 hunks)
* `content/api/rest-sdk/statistics.textile` (2 hunks)
* `content/api/rest-sdk/types.textile` (1 hunks)
* `content/api/sse.textile` (4 hunks)
* `content/api/token-request-spec.textile` (3 hunks)
* `content/asset-tracking/example-apps.textile` (1 hunks)
* `content/asset-tracking/index.textile` (1 hunks)
* `content/asset-tracking/using-the-sdks.textile` (7 hunks)
* `content/auth/basic.textile` (2 hunks)
* `content/auth/capabilities.textile` (8 hunks)
* `content/auth/identified-clients.textile` (2 hunks)
* `content/auth/index.textile` (3 hunks)
* `content/auth/revocation.textile` (2 hunks)
* `content/auth/token.textile` (5 hunks)
* `content/basics/index.textile` (2 hunks)
* `content/channels/index.textile` (6 hunks)
* `content/channels/messages.textile` (1 hunks)
* `content/channels/options/deltas.textile` (3 hunks)
* `content/channels/options/encryption.textile` (2 hunks)
* `content/channels/options/index.textile` (7 hunks)
* `content/channels/options/rewind.textile` (3 hunks)
* `content/channels/states.textile` (9 hunks)
* `content/chat/connect.textile` (2 hunks)
* `content/chat/index.textile` (1 hunks)
* `content/chat/rooms/history.textile` (1 hunks)
* `content/chat/rooms/index.textile` (3 hunks)
* `content/chat/rooms/messages.textile` (2 hunks)
* `content/chat/rooms/occupancy.textile` (3 hunks)
* `content/chat/rooms/presence.textile` (3 hunks)
* `content/chat/rooms/reactions.textile` (1 hunks)
* `content/chat/rooms/typing.textile` (2 hunks)
* `content/chat/setup.textile` (2 hunks)
* `content/connect/index.textile` (5 hunks)
* `content/connect/states.textile` (5 hunks)
* `content/general/aws-authentication.textile` (3 hunks)
* `content/general/firehose.textile` (5 hunks)
* `content/general/firehose/amqp-rule.textile` (2 hunks)
* `content/general/firehose/kafka-rule.textile` (2 hunks)
* `content/general/firehose/kinesis-rule.textile` (2 hunks)
* `content/general/firehose/pulsar-rule.textile` (3 hunks)
* `content/general/firehose/sqs-rule.textile` (2 hunks)
* `content/general/incoming-webhooks.textile` (4 hunks)
* `content/general/integrations.textile` (3 hunks)
* `content/general/kafka-connector.textile` (2 hunks)
* `content/general/queues.textile` (15 hunks)
* `content/general/webhooks.textile` (5 hunks)
* `content/general/webhooks/aws-lambda.textile` (1 hunks)
* `content/general/webhooks/azure.textile` (1 hunks)
* `content/general/webhooks/cloudflare.textile` (1 hunks)
* `content/general/webhooks/google-functions.textile` (1 hunks)
* `content/general/webhooks/ifttt.textile` (2 hunks)
* `content/general/webhooks/zapier.textile` (1 hunks)
* `content/getting-started/quickstart.textile` (6 hunks)
* `content/getting-started/react.textile` (9 hunks)
* `content/getting-started/setup.textile` (3 hunks)
* `content/livesync/index.textile` (1 hunks)
* `content/livesync/mongodb/index.textile` (7 hunks)
* `content/livesync/postgres/index.textile` (6 hunks)
* `content/livesync/postgres/models.textile` (6 hunks)
* `content/livesync/postgres/quickstart.textile` (6 hunks)
* `content/messages/batch.textile` (4 hunks)
* `content/messages/index.textile` (3 hunks)
* `content/metadata-stats/metadata/index.textile` (3 hunks)
* `content/metadata-stats/metadata/rest.textile` (3 hunks)
* `content/metadata-stats/metadata/subscribe.textile` (9 hunks)
* `content/metadata-stats/stats.textile` (2 hunks)
* `content/partials/core-features/_authentication_capabilities.textile` (1 hunks)
* `content/partials/core-features/_authentication_comparison.textile` (1 hunks)
* `content/partials/general/events/_batched_events.textile` (3 hunks)
* `content/partials/general/events/_enveloped_events.textile` (2 hunks)
* `content/partials/general/events/_non_enveloped_event_headers.textile` (1 hunks)
* `content/partials/general/events/_non_enveloped_events.textile` (2 hunks)
* `content/partials/realtime/_stats.textile` (2 hunks)
* `content/partials/rest/_request.textile` (2 hunks)
* `content/partials/rest/_stats.textile` (2 hunks)
* `content/partials/shared/_channel_enumeration.textile` (1 hunks)
* `content/partials/shared/_channel_metadata.textile` (2 hunks)
* `content/partials/shared/_channel_namespaces.textile` (1 hunks)
* `content/partials/shared/_token_auth_methods.textile` (1 hunks)
* `content/partials/types/_ably_exception.textile` (1 hunks)
* `content/partials/types/_auth_options.textile` (2 hunks)
* `content/partials/types/_channel_details.textile` (1 hunks)
* `content/partials/types/_channel_event.textile` (7 hunks)
* `content/partials/types/_channel_options.textile` (2 hunks)
* `content/partials/types/_channel_state.textile` (7 hunks)
* `content/partials/types/_channel_state_change.textile` (1 hunks)
* `content/partials/types/_channel_state_listener.textile` (1 hunks)
* `content/partials/types/_cipher_params.textile` (1 hunks)
* `content/partials/types/_client_options.textile` (1 hunks)
* `content/partials/types/_connection_event.textile` (7 hunks)
* `content/partials/types/_connection_state.textile` (7 hunks)
* `content/partials/types/_connection_state_change.textile` (1 hunks)
* `content/partials/types/_connection_state_listener.textile` (1 hunks)
* `content/partials/types/_device_details.textile` (2 hunks)
* `content/partials/types/_history_request_params.textile` (1 hunks)
* `content/partials/types/_http_paginated_response.textile` (3 hunks)
* `content/partials/types/_last_connection_details.textile` (1 hunks)
* `content/partials/types/_message.textile` (2 hunks)
* `content/partials/types/_message_listener.textile` (1 hunks)
* `content/partials/types/_paginated_result.textile` (5 hunks)
* `content/partials/types/_param.textile` (1 hunks)
* `content/partials/types/_presence_action.textile` (8 hunks)
* `content/partials/types/_presence_listener.textile` (1 hunks)
* `content/partials/types/_presence_message.textile` (2 hunks)
* `content/partials/types/_push_admin.textile` (17 hunks)
* `content/partials/types/_push_channel.textile` (6 hunks)
* `content/partials/types/_push_channel_subscription.textile` (4 hunks)
* `content/partials/types/_push_device.textile` (2 hunks)
* `content/partials/types/_realtime_client_options.textile` (1 hunks)
* `content/partials/types/_rest_client_options.textile` (1 hunks)
* `content/partials/types/_stats.textile` (2 hunks)
* `content/partials/types/_stats_granularity.textile` (2 hunks)
* `content/partials/types/_stats_request_params.textile` (1 hunks)
* `content/partials/types/_token_details.textile` (3 hunks)
* `content/partials/types/_token_params.textile` (1 hunks)
* `content/partials/types/_token_request.textile` (3 hunks)
* `content/platform/index.textile` (2 hunks)
* `content/presence-occupancy/index.textile` (1 hunks)
* `content/presence-occupancy/occupancy.textile` (4 hunks)
* `content/presence-occupancy/presence.textile` (11 hunks)
* `content/pricing/billing.textile` (2 hunks)
* `content/pricing/enterprise.textile` (1 hunks)
* `content/pricing/faqs.textile` (4 hunks)
* `content/pricing/free.textile` (2 hunks)
* `content/pricing/index.textile` (3 hunks)
* `content/pricing/limits.textile` (5 hunks)
* `content/pricing/pro.textile` (1 hunks)
* `content/pricing/standard.textile` (2 hunks)
* `content/protocols/index.textile` (2 hunks)
* `content/protocols/mqtt.textile` (7 hunks)
* `content/protocols/pubnub.textile` (3 hunks)
* `content/protocols/pusher.textile` (4 hunks)
* `content/protocols/sse.textile` (11 hunks)
* `content/pub-sub/advanced.textile` (9 hunks)
* `content/pub-sub/index.textile` (5 hunks)
* `content/push/configure/device.textile` (6 hunks)
* `content/push/configure/web.textile` (5 hunks)
* `content/push/index.textile` (3 hunks)
* `content/push/publish.textile` (2 hunks)
* `content/root/glossary.textile` (8 hunks)
* `content/root/ids-and-keys.textile` (1 hunks)
* `content/root/key-concepts.textile` (3 hunks)
* `content/root/platform-customization.textile` (2 hunks)
* `content/root/tools.textile` (1 hunks)
* `content/spaces/avatar.textile` (4 hunks)
* `content/spaces/cursors.textile` (6 hunks)
* `content/spaces/index.textile` (1 hunks)
* `content/spaces/locations.textile` (5 hunks)
* `content/spaces/locking.textile` (3 hunks)

</details>

<details>
<summary>💤 Files with no reviewable changes (1)</summary>

* config/nginx.conf.erb

</details>

<details>
<summary>✅ Files skipped from review due to trivial changes (161)</summary>

* content/partials/types/_connection_state_listener.textile
* content/partials/types/_channel_details.textile
* content/partials/types/_message_listener.textile
* content/account/2fa.textile
* content/partials/types/_history_request_params.textile
* content/chat/index.textile
* content/messages/batch.textile
* content/api/realtime-sdk/push.textile
* content/pricing/enterprise.textile
* content/root/tools.textile
* content/partials/types/_stats_request_params.textile
* content/partials/general/events/_non_enveloped_event_headers.textile
* content/auth/identified-clients.textile
* content/partials/types/_channel_state_change.textile
* content/account/sso.textile
* content/account/app/api.textile
* content/partials/types/_ably_exception.textile
* content/partials/shared/_channel_metadata.textile
* content/partials/types/_push_channel_subscription.textile
* content/partials/types/_channel_state_listener.textile
* content/root/ids-and-keys.textile
* content/chat/rooms/typing.textile
* content/partials/types/_http_paginated_response.textile
* content/account/app/queues.textile
* content/api/rest-sdk/presence.textile
* content/partials/types/_presence_listener.textile
* content/api/rest-sdk/push-admin.textile
* content/partials/types/_device_details.textile
* content/chat/rooms/reactions.textile
* content/auth/revocation.textile
* content/partials/shared/_token_auth_methods.textile
* content/pricing/billing.textile
* content/account/app/notifications.textile
* content/channels/states.textile
* content/partials/types/_token_params.textile
* content/general/integrations.textile
* content/partials/types/_connection_state_change.textile
* content/channels/options/index.textile
* content/basics/index.textile
* content/partials/types/_stats_granularity.textile
* content/chat/rooms/occupancy.textile
* content/connect/states.textile
* content/partials/general/events/_enveloped_events.textile
* content/api/realtime-sdk/push-admin.textile
* content/presence-occupancy/index.textile
* content/partials/types/_stats.textile
* content/partials/types/_connection_state.textile
* content/platform/index.textile
* content/account/app/settings.textile
* content/api/realtime-sdk/channel-metadata.textile
* content/asset-tracking/example-apps.textile
* content/channels/index.textile
* content/api/rest-sdk/authentication.textile
* content/partials/types/_param.textile
* content/partials/general/events/_non_enveloped_events.textile
* content/partials/shared/_channel_namespaces.textile
* content/general/firehose.textile
* content/presence-occupancy/occupancy.textile
* content/protocols/pubnub.textile
* content/account/organizations.textile
* content/push/index.textile
* content/pub-sub/index.textile
* content/chat/rooms/presence.textile
* content/partials/types/_token_details.textile
* content/general/webhooks.textile
* content/partials/realtime/_stats.textile
* content/chat/connect.textile
* content/partials/types/_paginated_result.textile
* content/protocols/pusher.textile
* content/api/rest-sdk.textile
* content/chat/rooms/messages.textile
* content/metadata-stats/stats.textile
* content/auth/token.textile
* content/pricing/pro.textile
* content/livesync/index.textile
* content/chat/setup.textile
* content/partials/core-features/_authentication_capabilities.textile
* content/connect/index.textile
* content/asset-tracking/using-the-sdks.textile
* content/pricing/free.textile
* content/partials/types/_last_connection_details.textile
* content/spaces/avatar.textile
* content/spaces/cursors.textile
* content/getting-started/quickstart.textile
* content/api/rest-sdk/types.textile
* content/partials/types/_cipher_params.textile
* content/pub-sub/advanced.textile
* content/partials/types/_token_request.textile
* content/api/rest-sdk/messages.textile
* content/root/glossary.textile
* content/api/realtime-sdk/messages.textile
* content/api/rest-sdk/encryption.textile
* content/partials/shared/_channel_enumeration.textile
* content/partials/types/_auth_options.textile
* content/api/rest-sdk/channels.textile
* content/partials/types/_rest_client_options.textile
* content/general/firehose/kafka-rule.textile
* content/api/realtime-sdk/types.textile
* content/general/webhooks/ifttt.textile
* content/partials/types/_presence_message.textile
* content/spaces/locations.textile
* content/partials/core-features/_authentication_comparison.textile
* content/pricing/limits.textile
* content/metadata-stats/metadata/subscribe.textile
* content/general/firehose/pulsar-rule.textile
* content/spaces/locking.textile
* content/api/realtime-sdk/statistics.textile
* content/partials/types/_channel_state.textile
* content/push/configure/device.textile
* content/pricing/index.textile
* content/partials/types/_realtime_client_options.textile
* content/protocols/mqtt.textile
* content/partials/general/events/_batched_events.textile
* content/partials/types/_channel_options.textile
* content/channels/options/rewind.textile
* content/api/token-request-spec.textile
* content/partials/types/_connection_event.textile
* content/partials/types/_presence_action.textile
* content/api/sse.textile
* content/partials/types/_push_channel.textile
* content/push/publish.textile
* content/general/incoming-webhooks.textile
* content/messages/index.textile
* content/general/webhooks/azure.textile
* content/livesync/postgres/models.textile
* content/metadata-stats/metadata/index.textile
* content/api/realtime-sdk/encryption.textile
* content/general/webhooks/zapier.textile
* content/protocols/sse.textile
* content/chat/rooms/index.textile
* content/partials/types/_push_device.textile
* content/general/webhooks/google-functions.textile
* content/account/users.textile
* content/metadata-stats/metadata/rest.textile
* content/partials/rest/_stats.textile
* content/auth/capabilities.textile
* content/api/rest-sdk/statistics.textile
* content/getting-started/setup.textile
* content/auth/index.textile
* content/asset-tracking/index.textile
* content/partials/types/_client_options.textile
* content/pricing/faqs.textile
* content/general/firehose/amqp-rule.textile
* content/channels/options/deltas.textile
* content/general/webhooks/cloudflare.textile
* content/account/control-api.textile
* content/api/index.textile
* content/api/realtime-sdk.textile
* content/chat/rooms/history.textile
* content/root/key-concepts.textile
* content/api/rest-sdk/history.textile
* content/api/realtime-sdk/connection.textile
* content/api/rest-api.textile
* content/account/app/index.textile
* content/api/realtime-sdk/channels.textile
* content/api/realtime-sdk/history.textile
* content/api/realtime-sdk/presence.textile
* content/api/realtime-sdk/authentication.textile
* content/partials/types/_push_admin.textile
* content/partials/rest/_request.textile
* content/presence-occupancy/presence.textile

</details>

<details>
<summary>🔇 Additional comments (70)</summary><blockquote>

<details>
<summary>content/api/rest-sdk/channel-status.textile (2)</summary>

`13-14`: **LGTM! Redirect paths updated correctly.**

The redirect paths have been properly updated to include the `/docs` prefix, aligning with the PR's objective to simplify documentation routing.

---

`31-31`: **LGTM! Documentation link updated consistently.**

The internal link to the channel's name documentation has been correctly updated to include the `/docs` prefix, maintaining consistency with the new documentation structure.

</details>
<details>
<summary>content/root/platform-customization.textile (2)</summary>

`60-60`: **LGTM! Documentation links updated correctly.**

The SDK documentation links have been properly updated to include the `/docs` prefix, aligning with the PR's objective to standardize documentation routing.

---

`73-73`: **LGTM! Documentation links updated correctly.**

The REST API and authentication documentation links have been properly updated to include the `/docs` prefix, maintaining consistency with the new documentation structure.

</details>
<details>
<summary>content/general/firehose/sqs-rule.textile (1)</summary>

`17-17`: **LGTM! Links correctly updated with `/docs` prefix.**

The changes align with the PR objectives to standardize documentation routing. All internal links have been properly updated to include the `/docs` prefix while maintaining correct Textile syntax.



Also applies to: 24-24, 63-63, 67-68

</details>
<details>
<summary>content/general/firehose/kinesis-rule.textile (1)</summary>

`17-17`: **LGTM! Links correctly updated with `/docs` prefix.**

The changes maintain consistency with the updates in sqs-rule.textile and align with the PR objectives. All internal links have been properly updated to include the `/docs` prefix while maintaining correct Textile syntax.



Also applies to: 24-24, 70-70, 74-75

</details>
<details>
<summary>content/general/kafka-connector.textile (3)</summary>

`20-20`: **LGTM! URL update aligns with new docs structure.**

The URL update to include the `/docs` prefix is consistent with the documentation restructuring effort.

---

`24-24`: **LGTM! URL update maintains documentation consistency.**

The URL update to include the `/docs` prefix maintains consistency with the new documentation structure.

---

`89-95`: **LGTM! Consistent URL updates in the reference section.**

All URLs in the tutorials and "See also" section have been consistently updated to include the `/docs` prefix, maintaining a uniform documentation structure.

</details>
<details>
<summary>content/general/aws-authentication.textile (3)</summary>

`16-16`: **LGTM! URL paths standardized correctly.**

The links to AWS Lambda and Firehose documentation have been properly updated to include the `/docs` prefix, maintaining consistent URL structure across the documentation.

---

`221-221`: **LGTM! App ID documentation link updated correctly.**

The link to the App ID documentation has been properly updated to include the `/docs` prefix, maintaining consistency while preserving the critical setup instructions for AWS role configuration.

---

`276-277`: **LGTM! Related documentation links updated appropriately.**

The "See also" section links have been properly updated to include the `/docs` prefix, maintaining consistent URL structure while preserving important resource references.

</details>
<details>
<summary>content/partials/types/_message.textile (4)</summary>

`13-13`: **LGTM! Documentation links updated correctly.**

The links for push, ref, and privileged objects have been properly updated to include the `/docs` prefix, maintaining consistency with the new documentation structure.

---

`15-15`: **LGTM! Idempotent publishing link updated correctly.**

The link to the idempotent publishing documentation has been properly updated to include the `/docs` prefix.

---

`34-34`: **LGTM! Message.fromEncoded documentation links updated correctly.**

All links in the Message.fromEncoded method documentation have been properly updated to include the `/docs` prefix, maintaining consistency with the new documentation structure.



Also applies to: 39-39, 43-43

---

`51-51`: **LGTM! Message.fromEncodedArray documentation links updated correctly.**

All links in the Message.fromEncodedArray method documentation have been properly updated to include the `/docs` prefix, maintaining consistency with the new documentation structure.



Also applies to: 56-56, 60-60

</details>
<details>
<summary>content/spaces/index.textile (3)</summary>

`16-16`: **LGTM! URL update aligns with documentation restructuring.**

The URL change to include the `/docs` prefix is consistent with the PR's objective of standardizing documentation routing.

---

`24-28`: **LGTM! Consistent URL updates for SDK features.**

The URL updates for all SDK features (Space, Avatar stack, Member locations, Live cursors, and Component locking) consistently follow the new `/docs` prefix pattern while maintaining accurate technical descriptions.

---

`32-33`: **LGTM! SDK integration links updated correctly.**

The URL updates for authentication and connection management documentation maintain consistency with the new routing structure while accurately describing the SDK's integration benefits.

</details>
<details>
<summary>content/pricing/standard.textile (4)</summary>

`31-31`: **LGTM! URL update follows new routing structure.**

The URL change from `/pricing/limits` to `/docs/pricing/limits` aligns with the PR objective of standardizing documentation routes.

---

`41-41`: **LGTM! Account owner URL updated correctly.**

The URL change from `/account/users` to `/docs/account/users` maintains consistency with the new documentation structure.

---

`45-45`: **LGTM! Pro package URL updated appropriately.**

The URL change from `/pricing/pro` to `/docs/pricing/pro` follows the standardized documentation routing.

---

`51-55`: **LGTM! Account owner and Free package URLs updated correctly.**

Both URL changes follow the new documentation structure:
- `/account/users` → `/docs/account/users`
- `/pricing/free` → `/docs/pricing/free`

</details>
<details>
<summary>content/account/index.textile (6)</summary>

`7-7`: **LGTM!**

The link update to include the `/docs` prefix is consistent with the PR objectives.

---

`17-17`: **LGTM!**

The link update to include the `/docs` prefix is consistent with the PR objectives.

---

`26-26`: **Same change as in line 17.**

---

`34-34`: **LGTM!**

The link update to include the `/docs` prefix is consistent with the PR objectives.

---

`49-49`: **LGTM!**

The link update to include the `/docs` prefix is consistent with the PR objectives.

---

`67-67`: **LGTM!**

The link update to include the `/docs` prefix is consistent with the PR objectives.

</details>
<details>
<summary>content/auth/basic.textile (2)</summary>

`18-18`: **LGTM!**

The link update to include the `/docs` prefix is consistent with the PR objectives.

---

`137-137`: **LGTM!**

The link update to include the `/docs` prefix is consistent with the PR objectives.

</details>
<details>
<summary>content/partials/types/_channel_event.textile (1)</summary>

`2-2`: **LGTM! Documentation links consistently updated.**

The changes to include the `/docs` prefix in the documentation links are consistent with the PR objectives to standardize the documentation routing.



Also applies to: 18-18, 33-33, 49-49, 103-103, 119-119

</details>
<details>
<summary>content/getting-started/react.textile (10)</summary>

`10-12`: **LGTM! Links updated correctly.**

The links to "channels" and "presence set" documentation have been correctly updated to include the `/docs` prefix, maintaining consistency with the PR's objective.

---

`25-25`: **LGTM! Subscription links updated correctly.**

The links to "subscribe" and "unsubscribe" documentation have been correctly updated to include the `/docs` prefix.

---

`41-43`: **LGTM! Authentication links updated correctly.**

The links to API keys, authentication methods, and Control API documentation have been correctly updated to include the `/docs` prefix.

---

`46-46`: **LGTM! Authentication warning links updated correctly.**

The links to basic and token authentication documentation in the warning message have been correctly updated to include the `/docs` prefix.

---

`98-116`: **LGTM! Channel provider links updated correctly.**

The links to channels, channel options, rewind, and subscription filters documentation have been correctly updated to include the `/docs` prefix.

---

`134-134`: **LGTM! useChannel link updated correctly.**

The link to subscribe documentation has been correctly updated to include the `/docs` prefix.

---

`164-164`: **LGTM! usePresence link updated correctly.**

The link to presence member data documentation has been correctly updated to include the `/docs` prefix.

---

`182-182`: **LGTM! usePresenceListener link updated correctly.**

The link to presence subscription documentation has been correctly updated to include the `/docs` prefix.

---

`197-197`: **LGTM! useConnectionStateListener link updated correctly.**

The link to connection states documentation has been correctly updated to include the `/docs` prefix.

---

`216-216`: **LGTM! useChannelStateListener link updated correctly.**

The link to channel states documentation has been correctly updated to include the `/docs` prefix.

</details>
<details>
<summary>content/protocols/index.textile (1)</summary>

`8-8`: **LGTM! URL updates are consistent.**

The changes to add the `/docs` prefix to all URLs are consistent with the PR objectives and maintain a uniform URL structure across the documentation.



Also applies to: 12-12, 31-31, 39-39, 45-45, 51-51, 59-59, 67-67

</details>
<details>
<summary>content/channels/options/encryption.textile (1)</summary>

`17-24`: **LGTM! Redirect paths are correctly updated.**

The changes to add the `/docs` prefix to all redirect paths are consistent with the PR objectives and maintain a uniform URL structure.

</details>
<details>
<summary>content/general/queues.textile (1)</summary>

`39-39`: **LGTM! URL updates are consistent.**

The changes to add the `/docs` prefix to all URLs are consistent with the PR objectives and maintain a uniform URL structure across the documentation.



Also applies to: 53-53, 85-85, 155-155, 201-201, 263-263, 337-337, 375-375, 421-421, 465-465, 466-466, 467-467, 469-469, 482-482, 488-488, 492-492, 493-493

</details>
<details>
<summary>.circleci/config.yml (1)</summary>

`3-5`: **Upgrade Node Orb Version**

The Node orb version has been updated from `circleci/[email protected]` to `circleci/[email protected]`. This upgrade is generally beneficial as it may include new features or bug fixes. Please verify that the new orb version is fully compatible with your existing pipeline steps and that no unexpected behavior is introduced.

</details>
<details>
<summary>content/livesync/postgres/index.textile (5)</summary>

`6-7`: **LGTM! Redirect paths updated correctly.**

The redirect paths have been properly updated to include the `/docs` prefix, maintaining consistency with the new documentation structure.

---

`40-40`: **LGTM! Control API link updated correctly.**

The Control API link has been properly updated to include the `/docs` prefix.

---

`114-114`: **LGTM! Channel documentation links updated correctly.**

The links to channels documentation and message properties have been properly updated to include the `/docs` prefix.



Also applies to: 119-120

---

`128-128`: **LGTM! Channel reference updated correctly.**

The channel reference in the table description has been properly updated to include the `/docs` prefix.

---

`121-121`: **LGTM! Frontend data models links updated correctly.**

The links to frontend data models documentation, optimistic updates, and Models SDK have been properly updated to include the `/docs` prefix.



Also applies to: 137-137, 186-186

</details>
<details>
<summary>content/livesync/postgres/quickstart.textile (5)</summary>

`54-54`: **LGTM: Database Connector documentation links updated consistently.**

The links to Database Connector hosting options have been updated to include the `/docs` prefix, maintaining consistency with the new URL structure.

---

`97-97`: **LGTM: Project structure documentation updated.**

The API routes path has been updated to include the `/docs` prefix, accurately reflecting the new directory structure.

---

`240-241`: **LGTM: Documentation links in "Next steps" updated consistently.**

The links to LiveSync Models and Database Connector documentation have been updated to include the `/docs` prefix, maintaining consistency with the new URL structure.

---

`128-128`: <details>
<summary>❓ Verification inconclusive</summary>

**Verify the updated API endpoint paths.**

The API endpoint paths in the code examples have been updated to include the `/docs` prefix. Ensure that the backend routes are configured to handle these new paths.




Also applies to: 134-134

---

🏁 Script executed:

```shell
#!/bin/bash
# Description: Check if the API routes exist at the new paths

# Search for API route definitions
rg -A 5 "export.*GET.*posts/\[id\]"

Length of output: 37


Action Required: Confirm Backend Route Updates

The code example in content/livesync/postgres/quickstart.textile now uses /docs/api/posts/${id}, but our initial search for corresponding backend route definitions returned no evidence of the updated paths. Please manually verify that the backend routing (e.g., in the API route definitions for GET requests) has been updated to work with the /docs prefix. Also, ensure that the change is consistently applied across all related code examples (including line 134) so that the front-end requests match the backend configuration.


21-21:

✅ Verification successful

Verify the updated authentication capabilities link.

The link to authentication capabilities has been updated to include the /docs prefix.


🌐 Web query:

Does the Ably documentation use /docs prefix in its URLs?

💡 Result:

Yes, Ably's documentation URLs use the /docs prefix as part of their structure. This is evident from:

  1. Redirect handling
    The documentation system automatically prepends /docs to redirect sources unless already specified in configuration files ([4]). For example:

    Redirect_from: /old-path → becomes /docs/old-path
    
  2. API reference URLs
    The primary documentation entry point for API references uses /docs/api in its URL structure ([5]):

    https://ably.com/docs/api
    
  3. Endpoint examples
    Documentation pages like authentication tutorials and REST API references consistently show endpoint paths starting with /docs in their examples ([6][7][10]).

This prefixing ensures consistent navigation and helps distinguish documentation resources from other website content.

Citations:


Authentication Capabilities Link Verified

The updated link in content/livesync/postgres/quickstart.textile now correctly uses the /docs prefix as required by Ably’s documentation structure. The change on line 21 is consistent with the current documentation URLs.

content/channels/messages.textile (5)

1-24: LGTM! Well-structured front matter with comprehensive redirects.

The front matter is well organized with clear metadata and proper redirect paths that align with the PR's objective of simplifying documentation routing.


26-44: LGTM! Clear introduction with comprehensive message properties documentation.

The section provides a clear introduction to messages and their properties, with properly formatted links that align with the new routing structure.


45-71: LGTM! Comprehensive overview of message interactions.

The section effectively explains message interactions, their use cases, and technical details, with proper language-specific notes and correctly formatted links.


131-238: LGTM! Comprehensive subscription documentation.

The section provides clear and thorough documentation for subscribing to and unsubscribing from message interactions, with well-structured examples and proper API references.


85-87:

✅ Verification successful

Verify the image path and accessibility.

The image path uses @content prefix. Please verify that:

  1. The image path resolves correctly in the documentation build.
  2. The image is accessible and loads properly.

🏁 Script executed:

#!/bin/bash
# Check if the image file exists
fd -t f "message-interactions.png" -E "node_modules"

# Check if there are any broken image references
rg -l "@content/docs/realtime/message-interactions\.png"

Length of output: 196


Image path verified with a minor caution.
The file message-interactions.png exists within the repository (located at src/images/content/realtime/message-interactions.png), and references in content/channels/messages.textile correctly point to @content/docs/realtime/message-interactions.png. Please ensure that the build system's alias mapping for @content properly resolves to the actual image location so that the image loads as expected in the final documentation.

content/livesync/mongodb/index.textile (3)

12-12: LGTM! Documentation links updated correctly.

The links have been properly updated to include the /docs prefix, maintaining consistency with the PR's objective of standardizing documentation links.


113-115: LGTM! Authentication documentation links updated correctly.

The authentication-related links have been properly updated to include the /docs prefix, maintaining consistency across the documentation.


246-246: LGTM! Resume token documentation link updated correctly.

The idempotent publishing link has been properly updated to include the /docs prefix.

content/general/webhooks/aws-lambda.textile (6)

15-15: LGTM!

The redirect path has been correctly updated to include the /docs prefix, aligning with the standardization of documentation routing.


18-18: LGTM!

The Webhooks documentation link has been correctly updated with the /docs prefix.


24-24: LGTM!

The AWS Lambda tutorial link has been correctly updated with the /docs prefix.


32-32: LGTM!

The AWS authentication documentation link has been correctly updated with the /docs prefix.


34-35: LGTM!

The source and channel filter documentation links have been correctly updated with the /docs prefix.


39-39: LGTM!

The webhooks feature documentation links have been correctly updated with the /docs prefix.

@jamiehenson
Copy link
Member Author

@coderabbitai review

Copy link

coderabbitai bot commented Feb 21, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@jamiehenson jamiehenson requested review from kennethkalmer and a team February 21, 2025 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants