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..a66626fa --- /dev/null +++ b/docs/APIs-and-SDKs/SDK-Documentation/Advanced/context-attributes/system-attributes/_system-attributes.mdx @@ -0,0 +1,56 @@ +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 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. The version can be a number or a semver string: + +```javascript +const sdk = new absmartly.SDK({ + // ... + application: { name: "your-app", version: "1.2.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 +`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, +}); 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..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 @@ -10,3 +10,7 @@ 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. +// The version can be a number or a semver string: +// application: { name: "your-app", version: "1.2.3" }