---
source_url: https://www.pubnub.com/docs/release-notes/2026/march
title: Documentation Release Notes - March 2026
updated_at: 2026-05-19T11:08:20.790Z
---

> Documentation Index
> For a curated overview of PubNub documentation, see: https://www.pubnub.com/docs/llms.txt
> For the full list of all documentation pages, see: https://www.pubnub.com/docs/llms-full.txt


# Documentation Release Notes - March 2026

March brought significant Illuminate updates, expanded SDK coverage, and continued improvements to the Admin Portal and developer tooling.

The largest update this month was a breaking change to the [Illuminate REST API authentication model](#illuminate-rest-api-authentication-update) - session tokens have been replaced by Admin API key authentication and the base URL has changed. We also continued the [Query Builder work from January 2026](#query-builder-advanced-queries) with a new advanced queries mode, added [REST API endpoints for queries](#illuminate-rest-api-query-endpoints), added [timestamp conditions to Decisions](#decisions-timestamp-conditions), and significantly expanded [C-Core SDK logging documentation](#c-core-sdk-logging) including v6 and v7 migration guides.

On the SDK side, we published a major [Unreal Engine SDK 2.0.0](#unreal-engine-sdk-200) update introducing multiple PubNub contexts, synchronous API variants, and a new migration guide. We also removed the [Functions v1 documentation](#functions-v1-documentation-removed) following the completion of all customer migrations to Functions v2.

On the platform side, we continued the [Admin Portal roles update from February](#admin-portal-roles-update), clarified [Access Manager regex syntax](#access-manager-regex-clarification) across all SDK references, and reorganized the [Admin API reference navigation](#admin-api-reference-navigation). We also added an [interactive JSONPath validator](#interactive-jsonpath-validator) to the Events & Actions editor, continued [MCP Server documentation](#mcp-server-updates) with Codex Desktop support, and added [deprecation notices](#legacy-chat-sdk-deprecation) to the legacy Chat SDK documentation.

## General 🛠️

### Admin Portal roles update

**Type**: Enhancement

Continuing the [Admin Portal roles update from February](https://www.pubnub.com/docs/release-notes/2026/february#admin-portal-roles-update), we updated the [Admin Portal roles](https://www.pubnub.com/docs/portal/my-account) documentation to explicitly list Functions Deployments permissions for App and Key roles.

App and Key roles inherit Functions roles and now list the corresponding Functions Deployments permissions directly in the role table:

| Role | Functions Deployments permissions |
| --- | --- |
| **App Viewer** | View Functions Deployments at app level |
| **App Admin** | Create, view, and edit Functions Deployments at app level |
| **Key Viewer** | View Functions Deployments at keyset level |
| **Key Admin** | Create, view, and edit Functions Deployments at keyset level |

Functions access is part of these roles and does not require a separate Functions-specific role assignment.

### Access Manager regex clarification

**Type**: Enhancement

We added a clarification to the [Access Manager](https://www.pubnub.com/docs/general/security/access-control) documentation and all SDK Access Manager API references explaining which regex flavor is used for `patterns`-based resource grants.

Pattern matching for `patterns` is evaluated on the PubNub server, not by the SDK. Supported syntax is based on [RE2](https://github.com/google/re2/wiki/Syntax): backreferences and lookaround assertions are not supported.

The clarification is now consistent across the main Access Manager page and all 21 SDK Access Manager API reference pages.

### Message storage options

**Type**: Enhancement

We added a **Message storage options** section to the [Message Persistence](https://www.pubnub.com/docs/general/storage) documentation to help you choose the right storage architecture for your application:

| Approach | When to use it |
| --- | --- |
| Store in PubNub | You want built-in history, message counts, and actions without managing your own storage infrastructure. |
| Store externally | You have an existing data store, need custom querying, or run analytics pipelines that require data from other systems. For more information, refer to [Events & Actions](https://www.pubnub.com/docs/serverless/events-and-actions/overview). |
| Store in both | You want PubNub history for real-time retrieval and also forward data to an external system for analytics or long-term archiving. For more information, refer to [Events & Actions](https://www.pubnub.com/docs/serverless/events-and-actions/overview). |

[Events & Actions](https://www.pubnub.com/docs/serverless/events-and-actions/overview) is the recommended no-code way to forward published messages to external targets (webhooks, Amazon SQS, Amazon Kinesis, or S3) without writing any code.

### Admin API reference navigation

**Type**: Enhancement

We reorganized the [Admin API reference](https://www.pubnub.com/docs/admin-api) sidebar to group related endpoints together.

* **Functions** endpoints are now grouped under a dedicated **Functions** section.
* **Illuminate** endpoints are now grouped under a dedicated **Illuminate** section.

Previously, all endpoints were listed as a flat tag-based list. The new grouping makes it easier to locate endpoints relevant to your current task without scrolling through the full reference.

### Functions v1 documentation removed

**Type**: Deprecation

All Functions v1 documentation has been removed. All PubNub customers have been migrated to [Functions v2](https://www.pubnub.com/docs/serverless/functions/overview), which is now the only supported version.

If you are still referencing v1 module APIs (KV store, vault, XHR, crypto, codec, PubNub module, or utilities), refer to the [Functions v2 documentation](https://www.pubnub.com/docs/serverless/functions/overview) for the current equivalents.

## SDKs 📦

### Unreal Engine SDK 2.0.0

**Type**: Enhancement

We updated the [Unreal Engine SDK documentation](https://www.pubnub.com/docs/sdks/unreal) to cover Unreal SDK 2.0.0 and published a new [Unreal Engine 2.0.0 migration guide](https://www.pubnub.com/docs/sdks/unreal/migration-guides/unreal-v2-migration-guide).

The main change in 2.0.0 is the introduction of `UPubnubClient` as the primary API entry point. `UPubnubSubsystem` now acts as a factory that creates and manages `UPubnubClient` instances, enabling multiple independent PubNub contexts — each with its own keys, user ID, and subscriptions. The release also adds synchronous method variants, structured result types, a new pagination struct, dedicated App Context input structs, and a configurable logging interface.

:::warning Unreal SDK 1.x.x support
Unreal SDK 1.x.x continues to work but receives only critical security fixes. Migrating to 2.0.0 is recommended.
:::

For a full list of breaking changes and migration steps, refer to the [Unreal Engine 2.0.0 migration guide](https://www.pubnub.com/docs/sdks/unreal/migration-guides/unreal-v2-migration-guide).

### C-Core SDK logging

**Type**: Enhancement

We significantly expanded the [C-Core SDK logging documentation](https://www.pubnub.com/docs/sdks/c-core/logging), adding comprehensive coverage of the logging architecture introduced in C-Core SDK v7.0.0.

:::note C-Core SDK v7.0.0 and later
This documentation applies to C-Core SDK v7.0.0 and later. If you are upgrading from an older version, refer to the [C-Core v6](https://www.pubnub.com/docs/sdks/c-core/migration-guides/c-core-v6-migration-guide) or [C-Core v7](https://www.pubnub.com/docs/sdks/c-core/migration-guides/c-core-v7-migration-guide) migration guide.
:::

The updated documentation covers:

* **Two-tier logger system** — a built-in `stdio` logger for POSIX and Windows (with separate defaults for FreeRTOS and Microchip Harmony), plus support for custom loggers via the `pubnub_logger_interface` vtable.
* **Multiple logger support** — register multiple loggers on a single PubNub context; all registered loggers receive the same log entries.
* **Structured log entries** — each entry includes an instance identifier, timestamp, log level, call site location, and typed content.
* **Compile-time log stripping** — set `PUBNUB_LOG_MIN_LEVEL` at build time to remove calls below a given level from the binary, reducing code size on constrained platforms.

The log levels are:

| Level | Enum value | Purpose |
| --- | --- | --- |
| `TRACE` | `PUBNUB_LOG_LEVEL_TRACE` | Internal operations: function calls, full payloads, state-machine transitions. |
| `DEBUG` | `PUBNUB_LOG_LEVEL_DEBUG` | Inputs and outputs of public methods, network requests and responses. |
| `INFO` | `PUBNUB_LOG_LEVEL_INFO` | Significant events: initialization, connection established, entity creation. |
| `WARNING` | `PUBNUB_LOG_LEVEL_WARNING` | Non-fatal events: deprecation notices, request retries. |
| `ERROR` | `PUBNUB_LOG_LEVEL_ERROR` | Exceptions, HTTP failures, invalid states. |
| `NONE` | `PUBNUB_LOG_LEVEL_NONE` | Logging disabled. |

We also added two migration guides for developers upgrading from older C-Core versions:

* [C-Core v6 migration guide](https://www.pubnub.com/docs/sdks/c-core/migration-guides/c-core-v6-migration-guide)
* [C-Core v7 migration guide](https://www.pubnub.com/docs/sdks/c-core/migration-guides/c-core-v7-migration-guide)

### Client-side event processing throttling control

**Type**: Enhancement

We added a note to all 16 SDK [publish and subscribe](https://www.pubnub.com/docs/sdks/javascript/api-reference/publish-and-subscribe) API reference pages that you should use a throttle or debounce utility in your application if you want to control event processing rate client-side. To reduce messages at the source, use [Subscribe Filters](https://www.pubnub.com/docs/general/channels/subscribe-filters).

### JavaScript subscription loop migration

**Type**: Enhancement

We added a [subscription loop migration guide](https://www.pubnub.com/docs/sdks/javascript/status-events#migrating-to-the-new-subscription-loop) to the JavaScript SDK [status events](https://www.pubnub.com/docs/sdks/javascript/status-events) page for developers who have not yet enabled `enableEventEngine: true`.

The guide explains that the only user-facing change when enabling the new subscription loop is how status categories are emitted:

| Before (legacy) | After (new subscription loop) |
| --- | --- |
| `PNConnectedCategory` fired on every subscription change (adding or removing channels or channel groups). | `PNConnectedCategory` is emitted **only when the subscription is started**. Subsequent channel mix changes emit `PNSubscriptionChangedCategory` instead. |

New statuses introduced with the new subscription loop:

| Status | Description |
| --- | --- |
| `PNSubscriptionChangedCategory` | Fires when channels or channel groups are added or removed after the initial subscription. Returns arrays of all currently subscribed channels and groups. |
| `PNDisconnectedUnexpectedlyCategory` | The client lost its real-time connection unexpectedly. Inspect the `error` field for root-cause details. |
| `PNConnectionErrorCategory` | The client was unable to establish or re-establish the real-time connection. The `error` field contains specifics (for example, 403, timeout, or network failure). |

### Legacy Chat SDK deprecation

**Type**: Deprecation

We added deprecation notices to legacy [Chat SDK documentation](https://www.pubnub.com/docs/chat/sdks/overview), covering channels, messages, users, moderation, push notifications, and integrations. If you are building a new chat application, use the current [Chat SDK documentation](https://www.pubnub.com/docs/chat/overview) instead.

## Events & Actions ⚡

### Interactive JSONPath validator

**Type**: Enhancement

We added an interactive JSONPath validator to the [Events & Actions events](https://www.pubnub.com/docs/serverless/events-and-actions/events) page. You can now enter a JSONPath expression and test it directly in the documentation against example event payloads, before configuring your event listeners in the Admin Portal.

We also expanded the expressions table with four new patterns:

| Pattern | Expression |
| --- | --- |
| Sender ID | `$.[?(@.uuid == 'thomas_anderson')]` |
| Exclude specific channels | `$.[?(@.channel nin ['internal', 'debug'])]` |
| Either condition (OR) | `$.[?(@.meta.sensor == 'warn' || @.meta.sensor == 'alert')]` |
| Combination of fields (AND) | `$.[?(@.channel =~ /.*some_suffix/i && @.meta.sensor_reading > 25 && @.message.status != 'error')]` |

## Illuminate 💡

### Illuminate REST API authentication update

**Type**: Enhancement

:::warning Breaking change for Illuminate REST API users
The Illuminate REST API has migrated from session-based authentication to **Admin API key authentication**. If you use the Illuminate REST API directly, you must update your requests.
:::

We rewrote the [Illuminate REST API](https://www.pubnub.com/docs/illuminate/illuminate-rest-api) documentation to reflect the new authentication model and base URL.

#### Authentication

Session-based authentication using `X-Session-Token` is no longer used. Authenticate using an **Admin API key** with the following required headers on every request:

```bash
-H "Authorization: YOUR_API_KEY_HERE"
-H "PubNub-Version: CURRENT_ADMIN_API_VERSION"
-H "Content-Type: application/json"
```

#### Base URL

The base path for all Illuminate API endpoints has changed:

| Before | After |
| --- | --- |
| `https://admin.pubnub.com/api/illuminate/v1/accounts/{accountId}/` | `https://admin-api.pubnub.com/v2/illuminate/` |

The account ID path parameter is no longer required. For full details on obtaining and managing your Admin API key, see the [Admin API documentation](https://www.pubnub.com/docs/admin-api/illuminate-introduction).

We also clarified two API behaviors in this update: activating a business object (`isActive: true`) requires at least one subscribe key in `subkeys`; and when creating a metric, `measureId` must be omitted when `function` is `COUNT` and included for all other aggregate functions (`AVG`, `MAX`, `MIN`, `SUM`, `COUNT_DISTINCT`).

### Query Builder advanced queries

**Type**: Enhancement

Continuing the [Query Builder work from January 2026](https://www.pubnub.com/docs/release-notes/2026/january#query-builder-improvements), we added [Advanced queries](https://www.pubnub.com/docs/illuminate/business-objects/query-builder#advanced-queries) to the Query Builder documentation.

Advanced queries give you full control over how your data is queried and transformed. Instead of starting from a predefined template, you build the query from scratch by choosing a data source, setting limits, and adding query operations.

To create an advanced query, click **Business Object** and then **Create advanced query**. You can configure:

* **Period** — How far back in time the query looks (default: 1 hour, maximum: 1 day).
* **Maximum rows** — The maximum number of rows returned (default and maximum: 500).

You can then add one or more **query operations** to shape the results:

| Query Operation | Description |
| --- | --- |
| **Aggregation** | Calculates a summary value: average, count, count distinct, sum, minimum, or maximum. |
| **Filter** | Narrows results to rows matching specific criteria. |
| **Group By** | Groups rows that share the same value in a chosen field, so aggregations are calculated per group. |
| **Sort By** | Orders results by a chosen field in ascending or descending order. |
| **Selection** | Chooses which specific fields to include in the results. |

Use an advanced query when the predefined templates don't cover your use case or when you need more granular control over the results.

### Illuminate REST API query endpoints

**Type**: Enhancement

Completing the Query Builder work this month, we added a full **Queries** section to the [Illuminate REST API reference](https://www.pubnub.com/docs/illuminate/illuminate-rest-api#queries).

Queries define how captured data is selected, filtered, transformed, and returned. They provide a flexible way to shape data beyond fixed metric aggregations and can be used as the data source for decisions.

The new endpoints are:

| Operation | Method | Endpoint |
| --- | --- | --- |
| Execute ad-hoc query | POST | `/queries/execute` |
| Create query | POST | `/queries` |
| List queries | GET | `/queries` |
| Get query | GET | `/queries/{id}` |
| Update query | PUT | `/queries/{id}` |
| Delete query | DELETE | `/queries/{id}` |
| Execute saved query | POST | `/queries/{id}/execute` |
| Get query fields | GET | `/queries/{id}/fields` |
| Create predefined decision from query | POST | `/queries/{id}/predefined-decisions` |

The reference includes a full DTO reference for `QueryRequestDto`, `PipelineDto`, `SourceDto`, `TimeRangeDto`, `FieldDto`, and `TransformDto`.

### Decisions timestamp conditions

**Type**: Enhancement

We added a [Timestamp conditions](https://www.pubnub.com/docs/illuminate/decisions/basics#timestamp-conditions) section to the [Decisions](https://www.pubnub.com/docs/illuminate/decisions/basics) documentation.

Timestamp conditions apply to timestamp data fields and use the same operators as numeric conditions, but first convert the timestamp to a duration using **Time Since** or **Time Until**:

* **Time Since** — Calculates how much time has passed since the timestamp when the decision runs.
* **Time Until** — Calculates how much time remains until the timestamp when the decision runs.

The resulting duration is then compared using operators such as `equals`, `less than`, `greater than`, `inclusive between`, and their counterparts. Each operator is available in both Time Since and Time Until variants.

For example, use timestamp conditions to trigger a decision shortly before a scheduled appointment (Time Until) or to follow up after a deadline has passed (Time Since).

## AI 🤖

### MCP Server updates

**Type**: Enhancement

Continuing the [PubNub MCP Server updates from February 2026](https://www.pubnub.com/docs/release-notes/2026/february#pubnub-mcp-usage-tool-documentation), we expanded the [MCP Server setup documentation](https://www.pubnub.com/docs/ai/pubnub-mcp-server) in two ways.

#### Codex Desktop setup

We added a new setup tab for [Codex Desktop](https://developers.openai.com/codex). The PubNub MCP Server now documents setup instructions for:

* Visual Studio Code
* Cursor IDE
* Claude Code
* Claude Desktop
* Codex (CLI)
* **Codex Desktop** (new)
* Gemini CLI

#### Permission notes

We added a permission note at the start of each setup flow directing users to the [Authentication variables](https://www.pubnub.com/docs/ai/pubnub-mcp-server#authentication-variables) section for details on the required API key permissions. This note was added to all six existing setup flows in addition to the new Codex Desktop flow.