Documentation Release Notes - August 2025

In August, we made our docs more reliable to build with and easier to use day‑to‑day.

We clarified wildcard subscribe behavior and presence limits, reorganized encryption into first‑class SDK pages, and added connection management guidance for Chat SDKs.

Events & Actions gained a cleaner pagination model, a message‑types catalog, and clearer route input guidance. Unreal and PHP SDK docs now pull examples straight from GitHub, and BizOps adds an Auto Moderated messages review surface plus a clear path to choose between managed Auto Moderation and a self‑managed Functions route.

Finally, every docs page now has a machine‑friendly Markdown version (with quick buttons to copy or open) to make search, automation, and AI integrations smoother.

General 🛠️

Push notifications docs refinements

Type: Enhancement

We updated the iOS (APNS) and Android (FCM) docs to show how to exclude the sender from receiving a push for their own message (APNS: excluded_devices, FCM: pn_exceptions).

We also clarified that mobile push registration targets individual channels (not channel groups), and added a new HTTP 400 troubleshooting note with common causes.

SDKs 📦

Wildcard subscribe behavior and Presence constraints

Type: Enhancement

We clarified two areas in SDK and API docs.

First, calling subscribe() opens the connection but you still need event listeners to receive messages. For wildcard subscriptions, message objects include the sender in publisher, the actual channel in channel, and the wildcard match in subscription.

Second, Presence documentation now explicitly notes that wildcards aren’t supported for channel groups—use exact group names.

Encryption documentation reorganization and updates

Type: Enhancement

We moved Encryption to a first‑class API reference page in each SDK and refreshed the content so it’s easier to find and apply (for example, see JavaScript SDK).

The new pages cover configuring the SDK crypto module, the legacy 128‑bit vs. recommended 256‑bit AES‑CBC options, deprecation notes for method‑level cipher key parameters, and up‑to‑date encrypt/decrypt examples (including partial encryption where applicable).

We also added version compatibility warnings so older clients are handled correctly.

Connection management in Kotlin and JavaScript Chat SDKs

Type: Enhancement

We added connection management docs to the Kotlin and JavaScript Chat SDKs. They introduce a connection status listener (ONLINE/OFFLINE/ERROR) and methods to disconnect and reconnect subscriptions, with code samples and a recommended workflow for handling errors and restoring connectivity.

Updated logging and subscribe retry info in Dart SDK docs

Type: Enhancement

We documented logging and subscribe retry in the Dart SDK so you can see what’s happening and recover gracefully.

You can enable structured logs at the instance level or for specific code paths and adjust verbosity at runtime.

For resilience, configure the subscribe retry policy on the networking module—exponential by default, with linear or none available. Non‑subscribe requests don’t retry.

SDK‑sourced examples in PHP and Unreal SDK docs

Type: Enhancement

We kept rolling out repository‑sourced, always‑current examples and standardized rendering across SDKs.

Both PHP and Unreal SDK docs now pull examples directly from our GitHub repos, keeping snippets up to date, tested, and aligned with the SDK repositories.

Events & Actions ⚡

API documentation updates

Type: Enhancement

We updated the Events & Actions API reference with a standardized pagination model (page/size plus paging metadata), a new message types catalog (GET /v2/messages/message-types with filters), and clearer route input guidance using messageTypeName and version instead of messageTypeId.

We also added optional subkey and account_id parameters where relevant and refreshed examples and formatting across the docs.

Availability

The Events & Actions API isn’t publicly available. To request access, contact PubNub Support.

BizOps Workspace 🏢

Review auto‑moderated messages in Channel Monitor

Type: New feature

If you use Auto Moderation, Channel Monitor now has an Auto Moderated Messages section for reviewing content that was automatically blocked as spam, published with masked words, or reported for review.

Review auto moderated messages

You can filter by type (Blocked, Reported, Words masked) and mark items as Not spam to provide us with feedback for improving detection.

Filter auto moderated messages

Auto Moderation: managed vs self‑managed

Type: New feature

Moderating user‑generated content on channels is now straightforward under one umbrella: Auto Moderation.

If you don’t already run a Before Publish or Fire Function on those channels and want a quick path, enable BizOps‑managed Auto Moderation to provision a dedicated moderation Function (of the Before Publish or Fire type) for you. This Function applies your spam detection and word masking policies, and sends outcomes to Channel Monitor for review—no code required.

If you already have a Before Publish or Fire Function running on the channel, follow an alternative path to create the moderation configuration in Auto Moderation and embed it inside your existing Function.

The second, "self‑managed" route (called Generate code for Functions in the Auto Moderation UI) uses the same moderation backend and your Auto Moderation configuration (configId) as the managed one, so results remain consistent and visible in Channel Monitor.

Because you can have only one Before Publish or Fire Function per channel, choose the self‑managed option when a managed Function would conflict.

The Auto Moderation docs walk through prerequisites, setup, where moderation outcomes appear (Channel Monitor), and how to move from managed simplicity to self‑managed control when your app requires it.

Illuminate 💡

Customize embedded Illuminate UI

Type: Enhancement

If you embed Illuminate UI on an external site, you can now theme it to align with your brand. The docs include a complete iframe example and explicit theming options.

You can pass six hexadecimal color parameters in the embed URL: primaryColor, secondaryColor, backgroundColor, surfaceColor, textPrimaryColor, and textSecondaryColor.

<iframe src="https://oem.pubnub.com/embed/dashboards?embed=true&token=<token>&primaryColor=d02129&secondaryColor=007594&backgroundColor=ffffff&surfaceColor=f8f9fa&textPrimaryColor=212529&textSecondaryColor=6c757d" />

Other 🌟

Markdown (.md) versions for every docs page

Type: Improvement

Large language models work best with clean, predictable content. Markdown gives us structured headings, lists, tables, code fences, and admonitions that are easy to split into chunks for embeddings and retrieval. It also reduces page “noise,” keeps anchors stable, and produces deterministic diffs that automation can trust.

Why the shift toward Markdown for machines/AI:

  • Clean, structured text is easier to chunk for embeddings/RAG and remains stable across builds.
  • Less noise than HTML (fewer scripts/DOM artifacts) and more predictable anchors/links improve retrieval accuracy.
  • Deterministic, diff‑friendly outputs improve automated ingestion, QA, and syncing with source repos.
  • Fewer custom widgets means fewer parsing failures and more usable content for AI tools and site search.

To support this, we now publish a machine‑readable Markdown version of every docs page at the same URL with a .md suffix. For example, you can now access the Markdown content of https://www.pubnub.com/docs/general/basics/set-up-your-account under https://www.pubnub.com/docs/general/basics/set-up-your-account.md.

Access is simple. Two buttons now appear at the top of each page:

  1. Copy Markdown — copies the page’s .md source to your clipboard
  2. Open as Markdown — opens the .md variant of the current page

Markdown versions of docs pages - buttons

You can also append .md to any docs URL to load the Markdown version directly.

Last updated on