From efc94d35270867abb52b8db7b74d0b1c5932f3e3 Mon Sep 17 00:00:00 2001 From: Jonas Alves Date: Tue, 24 Mar 2026 13:38:50 +0000 Subject: [PATCH 1/3] docs: add system attributes documentation for JavaScript SDK Document the includeSystemAttributes context option that allows sending sdk_name, sdk_version, application, environment, and app_version as automatic attributes in publish payloads. --- .../Advanced/context-attributes.mdx | 5 +++ .../system-attributes/_system-attributes.mdx | 40 +++++++++++++++++++ .../system-attributes/js/systemAttributes.js | 3 ++ 3 files changed, 48 insertions(+) create mode 100644 docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx create mode 100644 docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/js/systemAttributes.js diff --git a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes.mdx b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes.mdx index dac7a9bd..d82a58a3 100644 --- a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes.mdx +++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes.mdx @@ -3,7 +3,12 @@ sidebar_position: 4 --- import SettingContextAttributes from "./context-attributes/setting-context-attributes/_setting-context-attributes.mdx"; +import SystemAttributes from "./context-attributes/system-attributes/_system-attributes.mdx"; # Context Attributes + +## System Attributes + + diff --git a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx new file mode 100644 index 00000000..9d355ebf --- /dev/null +++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx @@ -0,0 +1,40 @@ +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import CodeBlock from "@theme/CodeBlock"; + +import JsSystemAttributes from "!!raw-loader!./js/systemAttributes.js"; + +You can opt-in to automatically include system attributes in every publish +payload. These attributes provide metadata about the SDK and environment that +generated the event, which can be useful for debugging and filtering in the Web +Console. + +To enable this, set the `includeSystemAttributes` option to `true` when creating +the context: + + + + + +{JsSystemAttributes} + + + + + +When enabled, the following attributes are automatically prepended before any +user-defined attributes in every publish payload: + +| Attribute | Description | +|:---|---| +| `sdk_name` | The SDK agent name (e.g. `"absmartly-javascript-sdk"`) | +| `sdk_version` | The SDK version (e.g. `"1.13.4"`) | +| `application` | The application name from the SDK configuration | +| `environment` | The environment from the SDK configuration | +| `app_version` | The application version, only included if greater than `0` | + +:::info +System attributes are disabled by default to avoid adding extra data to the +payload for existing integrations. You must explicitly opt-in by setting +`includeSystemAttributes: true`. +::: diff --git a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/js/systemAttributes.js b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/js/systemAttributes.js new file mode 100644 index 00000000..fdab4336 --- /dev/null +++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/js/systemAttributes.js @@ -0,0 +1,3 @@ +const context = sdk.createContext(request, { + includeSystemAttributes: true, +}); From e1fc35356937286f6d51bb7df098e48cf587b75f Mon Sep 17 00:00:00 2001 From: Jonas Alves Date: Tue, 24 Mar 2026 14:33:57 +0000 Subject: [PATCH 2/3] docs: document application object format with version Show how to pass application as { name, version } to track app version, both in the initialization example and system attributes section. --- .../system-attributes/_system-attributes.mdx | 16 ++++++++++++++++ .../import-and-initialize/js/import.js | 3 +++ 2 files changed, 19 insertions(+) diff --git a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx index 9d355ebf..baf3951a 100644 --- a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx +++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx @@ -33,6 +33,22 @@ user-defined attributes in every publish payload: | `environment` | The environment from the SDK configuration | | `app_version` | The application version, only included if greater than `0` | +:::note +The `app_version` attribute is derived from the `application` option passed +during SDK initialization. To set it, pass `application` as an object instead +of a string: + +```javascript +const sdk = new absmartly.SDK({ + // ... + application: { name: "your-app", version: 3 }, +}); +``` + +If `application` is passed as a plain string, the version defaults to `0` and +`app_version` will not be included. +::: + :::info System attributes are disabled by default to avoid adding extra data to the payload for existing integrations. You must explicitly opt-in by setting diff --git a/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js b/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js index c1ff79f7..a4b9f45d 100644 --- a/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js +++ b/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js @@ -10,3 +10,6 @@ const sdk = new absmartly.SDK({ environment: process.env.NODE_ENV, application: process.env.APPLICATION_NAME, }); + +// You can also pass application as an object to track the app version: +// application: { name: "your-app", version: 3 } From e85ae9061bc839a1204c8cc0f23d7ebc4966ee39 Mon Sep 17 00:00:00 2001 From: Jonas Alves Date: Tue, 24 Mar 2026 19:55:15 +0000 Subject: [PATCH 3/3] docs: update application version to support semver strings --- .../system-attributes/_system-attributes.mdx | 6 +++--- .../getting-started/import-and-initialize/js/import.js | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx index baf3951a..a66626fa 100644 --- a/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx +++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx @@ -31,17 +31,17 @@ user-defined attributes in every publish payload: | `sdk_version` | The SDK version (e.g. `"1.13.4"`) | | `application` | The application name from the SDK configuration | | `environment` | The environment from the SDK configuration | -| `app_version` | The application version, only included if greater than `0` | +| `app_version` | The application version, only included if set (number greater than `0` or non-empty string) | :::note The `app_version` attribute is derived from the `application` option passed during SDK initialization. To set it, pass `application` as an object instead -of a string: +of a string. The version can be a number or a semver string: ```javascript const sdk = new absmartly.SDK({ // ... - application: { name: "your-app", version: 3 }, + application: { name: "your-app", version: "1.2.3" }, }); ``` diff --git a/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js b/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js index a4b9f45d..301703fa 100644 --- a/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js +++ b/docs/APIs-and-SDKs/SDK-Documentation/getting-started/import-and-initialize/js/import.js @@ -11,5 +11,6 @@ const sdk = new absmartly.SDK({ application: process.env.APPLICATION_NAME, }); -// You can also pass application as an object to track the app version: -// application: { name: "your-app", version: 3 } +// You can also pass application as an object to track the app version. +// The version can be a number or a semver string: +// application: { name: "your-app", version: "1.2.3" }