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 - 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 with a new advanced queries mode, added REST API endpoints for queries, added timestamp conditions to Decisions, and significantly expanded C-Core SDK logging documentation including v6 and v7 migration guides.
On the SDK side, we published a major Unreal Engine SDK 2.0.0 update introducing multiple PubNub contexts, synchronous API variants, and a new migration guide. We also removed the Functions v1 documentation following the completion of all customer migrations to Functions v2.
On the platform side, we continued the Admin Portal roles update from February, clarified Access Manager regex syntax across all SDK references, and reorganized the Admin API reference navigation. We also added an interactive JSONPath validator to the Events & Actions editor, continued MCP Server documentation with Codex Desktop support, and added deprecation notices to the legacy Chat SDK documentation.
General 🛠️
Admin Portal roles update
Type: Enhancement
Continuing the Admin Portal roles update from February, we updated the Admin Portal roles 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 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: 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 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. |
| 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. |
Events & Actions 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 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, 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 for the current equivalents.
SDKs 📦
Unreal Engine SDK 2.0.0
Type: Enhancement
We updated the Unreal Engine SDK documentation to cover Unreal SDK 2.0.0 and published a new Unreal Engine 2.0.0 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.
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.
C-Core SDK logging
Type: Enhancement
We significantly expanded the C-Core SDK logging documentation, adding comprehensive coverage of the logging architecture introduced in C-Core SDK v7.0.0.
C-Core SDK v7.0.0 and later
The updated documentation covers:
- Two-tier logger system — a built-in
stdiologger for POSIX and Windows (with separate defaults for FreeRTOS and Microchip Harmony), plus support for custom loggers via thepubnub_logger_interfacevtable. - 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_LEVELat 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:
Client-side event processing throttling control
Type: Enhancement
We added a note to all 16 SDK 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.
JavaScript subscription loop migration
Type: Enhancement
We added a subscription loop migration guide to the JavaScript SDK 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, covering channels, messages, users, moderation, push notifications, and integrations. If you are building a new chat application, use the current Chat SDK documentation instead.
Events & Actions ⚡
Interactive JSONPath validator
Type: Enhancement
We added an interactive JSONPath validator to the Events & 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
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 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:
-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.
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, we added 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.
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 section to the Decisions 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, we expanded the MCP Server setup documentation in two ways.
Codex Desktop setup
We added a new setup tab for Codex Desktop. 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 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.