@revenium/openai 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -1,35 +1,15 @@
1
- # OpenAI API Configuration
2
- OPENAI_API_KEY=sk-your-openai-api-key-here
3
-
4
- # Azure OpenAI Configuration (Optional)
5
- AZURE_OPENAI_API_KEY=your-azure-openai-api-key
6
- AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
7
- AZURE_OPENAI_API_VERSION=2024-02-15-preview
8
-
9
- # Revenium Metering Configuration
1
+ # Revenium Configuration (Required)
10
2
  REVENIUM_METERING_API_KEY=hak_your_revenium_api_key_here
11
3
  REVENIUM_METERING_BASE_URL=https://api.revenium.ai
12
4
 
13
- # Trace Visualization Fields (Optional)
14
- REVENIUM_ENVIRONMENT=production
15
- REVENIUM_REGION=us-east-1
16
- REVENIUM_CREDENTIAL_ALIAS=OpenAI Production Key
17
- REVENIUM_TRACE_TYPE=customer_support
18
- REVENIUM_TRACE_NAME=Support Ticket #12345
19
- REVENIUM_PARENT_TRANSACTION_ID=parent-txn-123
20
- REVENIUM_TRANSACTION_NAME=Answer Customer Question
21
- REVENIUM_RETRY_NUMBER=0
5
+ # OpenAI Configuration (Required for OpenAI native API)
6
+ OPENAI_API_KEY=sk-your_openai_api_key_here
22
7
 
23
- # Terminal Summary Output (Optional)
24
- # Enable to print cost/metrics summary to terminal after each API request
25
- # Values: 'true' or 'human' for human-readable output, 'json' for JSON output, 'false' to disable
26
- REVENIUM_PRINT_SUMMARY=false
27
- # Team ID required to display cost information in terminal summary
28
- # Find your team ID in the Revenium web application
29
- REVENIUM_TEAM_ID=your-team-id-here
8
+ # Azure OpenAI Configuration (Optional - for Azure OpenAI support)
9
+ AZURE_OPENAI_API_KEY=your_azure_openai_api_key
10
+ AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
11
+ AZURE_OPENAI_API_VERSION=your_azure_openai_api_version
30
12
 
31
13
  # Debug Configuration (Optional)
32
- REVENIUM_DEBUG=false
14
+ REVENIUM_DEBUG=false # Set to true to enable debug logging
33
15
 
34
- # AWS Region Detection (Optional - auto-detected if not set)
35
- AWS_REGION=us-east-1
package/CHANGELOG.md CHANGED
@@ -9,7 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Added
11
11
 
12
- - Comprehensive credential sanitization with support for:
12
+ - Prompt capture functionality with comprehensive credential sanitization
13
+ - Automatic redaction of sensitive credentials in captured prompts:
13
14
  - OpenAI keys (sk-_, sk-proj-_, sk-ant-\*)
14
15
  - Perplexity keys (pplx-\*)
15
16
  - AWS access keys (AKIA\*)
@@ -24,6 +25,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
24
25
  - Fixed password regex pattern to properly handle quoted values
25
26
  - Improved character class consistency across all patterns
26
27
 
28
+ ## [1.0.16] - 2026-01-12
29
+
30
+ ### Added
31
+
32
+ - **Trace Visualization Fields**: Full implementation of trace fields in payload builder
33
+ - `environment` - Deployment environment with fallback chain (REVENIUM_ENVIRONMENT → NODE_ENV → DEPLOYMENT_ENV)
34
+ - `region` - Cloud region with auto-detection from AWS/Azure/GCP and metadata service fallback
35
+ - `credentialAlias` - Human-readable credential name
36
+ - `traceType` - Categorical identifier with format validation (alphanumeric, hyphens, underscores, max 128 chars)
37
+ - `traceName` - Human-readable trace label with length validation (max 256 chars)
38
+ - `parentTransactionId` - Parent transaction reference for distributed tracing
39
+ - `transactionName` - Human-friendly operation label
40
+ - `retryNumber` - Retry attempt tracking (0 for first attempt, 1+ for retries)
41
+ - `operationSubtype` - Auto-detected operation details (e.g., function_call when tools are present)
42
+
43
+ ### Changed
44
+
45
+ - Updated `buildPayload()` function to async to support region detection
46
+ - Enhanced README with comprehensive trace visualization fields documentation
47
+ - Added trace fields to TypeScript interface `ReveniumPayload`
48
+
49
+ ### Documentation
50
+
51
+ - Added "Trace Visualization Fields" section to README with complete field descriptions
52
+ - Added example configuration for trace fields
53
+ - Updated documentation to match other middleware packages (anthropic-node, perplexity-node)
54
+
27
55
  ## [1.0.15] - 2025-12-09
28
56
 
29
57
  ### Added
package/README.md CHANGED
@@ -110,18 +110,18 @@ The middleware provides a Go-aligned API with the following main functions:
110
110
 
111
111
  The middleware supports the following optional metadata fields for tracking:
112
112
 
113
- | Field | Type | Description |
114
- | ----------------------- | ------ | ----------------------------------------------------------- |
115
- | `traceId` | string | Unique identifier for session or conversation tracking |
116
- | `taskType` | string | Type of AI task being performed (e.g., "chat", "embedding") |
117
- | `agent` | string | AI agent or bot identifier |
118
- | `organizationId` | string | Organization or company identifier |
119
- | `productId` | string | Your product or feature identifier |
120
- | `subscriptionId` | string | Subscription plan identifier |
121
- | `responseQualityScore` | number | Custom quality rating (0.0-1.0) |
122
- | `subscriber.id` | string | Unique user identifier |
123
- | `subscriber.email` | string | User email address |
124
- | `subscriber.credential` | object | Authentication credential (`name` and `value` fields) |
113
+ | Field | Type | Description |
114
+ | ----------------------- | ------ | ------------------------------------------------------------ |
115
+ | `traceId` | string | Unique identifier for session or conversation tracking |
116
+ | `taskType` | string | Type of AI task being performed (e.g., "chat", "embedding") |
117
+ | `agent` | string | AI agent or bot identifier |
118
+ | `organizationName` | string | Organization or company name (used for lookup/auto-creation) |
119
+ | `productName` | string | Your product or feature name (used for lookup/auto-creation) |
120
+ | `subscriptionId` | string | Subscription plan identifier |
121
+ | `responseQualityScore` | number | Custom quality rating (0.0-1.0) |
122
+ | `subscriber.id` | string | Unique user identifier |
123
+ | `subscriber.email` | string | User email address |
124
+ | `subscriber.credential` | object | Authentication credential (`name` and `value` fields) |
125
125
 
126
126
  **All metadata fields are optional.** For complete metadata documentation and usage examples, see:
127
127
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,qCAAqC;AACrC,2DAAyC;AAEzC,gCAAgC;AAChC,qDAAmC;AAoFnC;;;;;GAKG;AACH,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,0BAA0B;IAC1B,6BAAiB,CAAA;IACjB,2BAA2B;IAC3B,yCAA6B,CAAA;AAC/B,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,qCAAqC;AACrC,2DAAyC;AAEzC,gCAAgC;AAChC,qDAAmC;AAgGnC;;;;;GAKG;AACH,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,0BAA0B;IAC1B,6BAAiB,CAAA;IACjB,2BAA2B;IAC3B,yCAA6B,CAAA;AAC/B,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB"}
@@ -22,13 +22,14 @@ const METADATA_FIELD_MAP = [
22
22
  { source: "taskType" },
23
23
  { source: "agent" },
24
24
  { source: "organizationId" },
25
+ { source: "organizationName" },
25
26
  { source: "productId" },
26
- { source: "subscriber" }, // Pass through nested subscriber object directly
27
+ { source: "productName" },
28
+ { source: "subscriber" },
27
29
  { source: "subscriptionId" },
28
30
  {
29
31
  source: "responseQualityScore",
30
32
  transform: (value) => {
31
- // Ensure quality score is between 0.0 and 1.0 (API spec requirement)
32
33
  if (typeof value === "number")
33
34
  return Math.max(0, Math.min(1, value));
34
35
  return value;
@@ -42,6 +43,9 @@ const METADATA_FIELD_MAP = [
42
43
  * a clean, testable way to handle metadata transformation.
43
44
  * Subscriber object is passed through directly without transformation.
44
45
  *
46
+ * Implements field migration: organizationName/productName take priority over
47
+ * organizationId/productId for backward compatibility.
48
+ *
45
49
  * @param usageMetadata - Source metadata from request
46
50
  * @returns Clean metadata object for payload
47
51
  */
@@ -49,18 +53,26 @@ function buildMetadataFields(usageMetadata) {
49
53
  if (!usageMetadata)
50
54
  return {};
51
55
  const result = {};
52
- // Process all metadata fields including nested subscriber object
53
56
  for (const config of METADATA_FIELD_MAP) {
54
57
  const value = usageMetadata[config.source];
55
- // Skip undefined values (but allow null, empty strings, objects, etc.)
56
58
  if (value === undefined)
57
59
  continue;
58
- // Apply transformation if configured
60
+ // Skip deprecated fields - they'll be handled by migration logic below
61
+ if (config.source === "organizationId" || config.source === "productId") {
62
+ continue;
63
+ }
59
64
  const transformedValue = config.transform ? config.transform(value) : value;
60
- // Use target field name or default to source
61
65
  const targetField = config.target || config.source;
62
66
  result[targetField] = transformedValue;
63
67
  }
68
+ // Handle field migration: new names take priority
69
+ if (usageMetadata.organizationName || usageMetadata.organizationId) {
70
+ result.organizationName =
71
+ usageMetadata.organizationName || usageMetadata.organizationId;
72
+ }
73
+ if (usageMetadata.productName || usageMetadata.productId) {
74
+ result.productName = usageMetadata.productName || usageMetadata.productId;
75
+ }
64
76
  return result;
65
77
  }
66
78
  /**
@@ -151,9 +163,9 @@ function createLoggingContext(usageMetadata) {
151
163
  traceId: usageMetadata.traceId,
152
164
  taskType: usageMetadata.taskType,
153
165
  subscriberId: usageMetadata.subscriber?.id,
154
- subscriberEmail: sanitizedSubscriber?.email, // ← Now masked: us***@example.com
155
- organizationId: usageMetadata.organizationId,
156
- productId: usageMetadata.productId,
166
+ subscriberEmail: sanitizedSubscriber?.email,
167
+ organizationName: usageMetadata.organizationName || usageMetadata.organizationId,
168
+ productName: usageMetadata.productName || usageMetadata.productId,
157
169
  agent: usageMetadata.agent,
158
170
  };
159
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-builder.js","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata-builder.js","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AAEzC,gCAAgC;AAChC,cAAc,oBAAoB,CAAC;AAoFnC;;;;;GAKG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,0BAA0B;IAC1B,6BAAiB,CAAA;IACjB,2BAA2B;IAC3B,yCAA6B,CAAA;AAC/B,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AAEzC,gCAAgC;AAChC,cAAc,oBAAoB,CAAC;AAgGnC;;;;;GAKG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,0BAA0B;IAC1B,6BAAiB,CAAA;IACjB,2BAA2B;IAC3B,yCAA6B,CAAA;AAC/B,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB"}
@@ -14,13 +14,14 @@ const METADATA_FIELD_MAP = [
14
14
  { source: "taskType" },
15
15
  { source: "agent" },
16
16
  { source: "organizationId" },
17
+ { source: "organizationName" },
17
18
  { source: "productId" },
18
- { source: "subscriber" }, // Pass through nested subscriber object directly
19
+ { source: "productName" },
20
+ { source: "subscriber" },
19
21
  { source: "subscriptionId" },
20
22
  {
21
23
  source: "responseQualityScore",
22
24
  transform: (value) => {
23
- // Ensure quality score is between 0.0 and 1.0 (API spec requirement)
24
25
  if (typeof value === "number")
25
26
  return Math.max(0, Math.min(1, value));
26
27
  return value;
@@ -34,6 +35,9 @@ const METADATA_FIELD_MAP = [
34
35
  * a clean, testable way to handle metadata transformation.
35
36
  * Subscriber object is passed through directly without transformation.
36
37
  *
38
+ * Implements field migration: organizationName/productName take priority over
39
+ * organizationId/productId for backward compatibility.
40
+ *
37
41
  * @param usageMetadata - Source metadata from request
38
42
  * @returns Clean metadata object for payload
39
43
  */
@@ -41,18 +45,26 @@ export function buildMetadataFields(usageMetadata) {
41
45
  if (!usageMetadata)
42
46
  return {};
43
47
  const result = {};
44
- // Process all metadata fields including nested subscriber object
45
48
  for (const config of METADATA_FIELD_MAP) {
46
49
  const value = usageMetadata[config.source];
47
- // Skip undefined values (but allow null, empty strings, objects, etc.)
48
50
  if (value === undefined)
49
51
  continue;
50
- // Apply transformation if configured
52
+ // Skip deprecated fields - they'll be handled by migration logic below
53
+ if (config.source === "organizationId" || config.source === "productId") {
54
+ continue;
55
+ }
51
56
  const transformedValue = config.transform ? config.transform(value) : value;
52
- // Use target field name or default to source
53
57
  const targetField = config.target || config.source;
54
58
  result[targetField] = transformedValue;
55
59
  }
60
+ // Handle field migration: new names take priority
61
+ if (usageMetadata.organizationName || usageMetadata.organizationId) {
62
+ result.organizationName =
63
+ usageMetadata.organizationName || usageMetadata.organizationId;
64
+ }
65
+ if (usageMetadata.productName || usageMetadata.productId) {
66
+ result.productName = usageMetadata.productName || usageMetadata.productId;
67
+ }
56
68
  return result;
57
69
  }
58
70
  /**
@@ -143,9 +155,9 @@ export function createLoggingContext(usageMetadata) {
143
155
  traceId: usageMetadata.traceId,
144
156
  taskType: usageMetadata.taskType,
145
157
  subscriberId: usageMetadata.subscriber?.id,
146
- subscriberEmail: sanitizedSubscriber?.email, // ← Now masked: us***@example.com
147
- organizationId: usageMetadata.organizationId,
148
- productId: usageMetadata.productId,
158
+ subscriberEmail: sanitizedSubscriber?.email,
159
+ organizationName: usageMetadata.organizationName || usageMetadata.organizationId,
160
+ productName: usageMetadata.productName || usageMetadata.productId,
149
161
  agent: usageMetadata.agent,
150
162
  };
151
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-builder.js","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;;;GAIG;AACH,MAAM,kBAAkB,GAA0B;IAChD,EAAE,MAAM,EAAE,SAAS,EAAE;IACrB,EAAE,MAAM,EAAE,UAAU,EAAE;IACtB,EAAE,MAAM,EAAE,OAAO,EAAE;IACnB,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAC5B,EAAE,MAAM,EAAE,WAAW,EAAE;IACvB,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,iDAAiD;IAC3E,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAC5B;QACE,MAAM,EAAE,sBAAsB;QAC9B,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE;YAC5B,qEAAqE;YACrE,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;KACF;CACF,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,aAA6B;IAE7B,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,iEAAiE;IACjE,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE3C,uEAAuE;QACvE,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,qCAAqC;QACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE5E,6CAA6C;QAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QAEnD,MAAM,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,aAA6B,EAC7B,iBAA0C,EAAE;IAM5C,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,aAAa,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,cAA0B;YACzC,QAAQ,EAAE,CAAC,sBAAsB,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,wBAAwB;QACxB,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,0BAA0B;QAC1B,IAAI,aAAa,CAAC,oBAAoB,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,aAAa,CAAC,oBAAoB,CAAC;YACjD,4FAA4F;YAC5F,iCAAiC;YACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACxD,QAAQ,CAAC,IAAI,CACX,6DAA6D,CAC9D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IACE,aAAa,CAAC,UAAU,EAAE,KAAK;YAC/B,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC7C,CAAC;YACD,QAAQ,CAAC,IAAI,CACX,8DAA8D,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;QACnC,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAG,OAAsC;IAEzC,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,wDAAwD;IACxD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA6C;IAK7C,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC;IACjD,OAAO;QACL,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,WAAuC;KACrD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,aAA6B;IAE7B,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAE9B,uCAAuC;IACvC,MAAM,SAAS,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,SAAS,CAAC,UAIrC,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,YAAY,EAAE,aAAa,CAAC,UAAU,EAAE,EAAE;QAC1C,eAAe,EAAE,mBAAmB,EAAE,KAAK,EAAE,kCAAkC;QAC/E,cAAc,EAAE,aAAa,CAAC,cAAc;QAC5C,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,KAAK,EAAE,aAAa,CAAC,KAAK;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,aAA6B;IAE7B,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAE9B,oDAAoD;IACpD,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,aAAa,CAAC;IAEtD,MAAM,MAAM,GAA4B,EAAE,GAAG,YAAY,EAAE,CAAC;IAE5D,wCAAwC;IACxC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,mBAAmB,GAA4B,EAAE,CAAC;QAExD,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;YAClB,mBAAmB,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,gEAAgE;YAChE,mBAAmB,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAClD,iBAAiB,EACjB,SAAS,CACV,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,mBAAmB,CAAC,UAAU,GAAG;gBAC/B,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI;gBAChC,KAAK,EAAE,YAAY;aACpB,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,UAAU,GAAG,mBAAmB,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"metadata-builder.js","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"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"}
@@ -42,9 +42,19 @@ export interface Subscriber {
42
42
  export interface UsageMetadata {
43
43
  /** User identification information (nested structure for detailed tracking) */
44
44
  subscriber?: Subscriber;
45
- /** Organization or company identifier for multi-tenant applications */
45
+ /** Customer organization name for multi-tenant applications (used for lookup/auto-creation) */
46
+ organizationName?: string;
47
+ /**
48
+ * @deprecated Use organizationName instead. This field will be removed in a future version.
49
+ * Organization or company identifier for multi-tenant applications
50
+ */
46
51
  organizationId?: string;
47
- /** Product or application identifier for usage segmentation */
52
+ /** Product or feature name that is using AI services (used for lookup/auto-creation) */
53
+ productName?: string;
54
+ /**
55
+ * @deprecated Use productName instead. This field will be removed in a future version.
56
+ * Product or application identifier for usage segmentation
57
+ */
48
58
  productId?: string;
49
59
  /** Subscription identifier for billing and plan management */
50
60
  subscriptionId?: string;
@@ -197,8 +207,8 @@ export interface ReveniumPayload {
197
207
  traceId?: string;
198
208
  taskType?: string;
199
209
  agent?: string;
200
- organizationId?: string;
201
- productId?: string;
210
+ organizationName?: string;
211
+ productName?: string;
202
212
  subscriber?: Subscriber;
203
213
  subscriptionId?: string;
204
214
  responseQualityScore?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,9 @@ import { UsageMetadata } from "../types";
12
12
  * a clean, testable way to handle metadata transformation.
13
13
  * Subscriber object is passed through directly without transformation.
14
14
  *
15
+ * Implements field migration: organizationName/productName take priority over
16
+ * organizationId/productId for backward compatibility.
17
+ *
15
18
  * @param usageMetadata - Source metadata from request
16
19
  * @returns Clean metadata object for payload
17
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAuCzC;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,cAAc,GAAE,CAAC,MAAM,aAAa,CAAC,EAAO,GAC3C;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CA4CA;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,GAAG,OAAO,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,GACxC,aAAa,CAQf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,GAC5C;IACD,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;CACvC,CAMA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCzB"}
1
+ {"version":3,"file":"metadata-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAwCzC;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,cAAc,GAAE,CAAC,MAAM,aAAa,CAAC,EAAO,GAC3C;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CA4CA;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,GAAG,OAAO,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,GACxC,aAAa,CAQf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,GAC5C;IACD,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;CACvC,CAMA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBzB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCzB"}
@@ -120,8 +120,8 @@ npx tsx examples/openai/metadata.ts
120
120
  - `traceId` - Session or conversation tracking identifier
121
121
  - `taskType` - Type of AI task being performed
122
122
  - `agent` - AI agent or bot identifier
123
- - `organizationId` - Organization identifier
124
- - `productId` - Product or service identifier
123
+ - `organizationName` - Organization name (used for lookup/auto-creation)
124
+ - `productName` - Product or service name (used for lookup/auto-creation)
125
125
  - `subscriptionId` - Subscription tier identifier
126
126
  - `responseQualityScore` - Quality rating (0.0-1.0)
127
127
  - `subscriber` - Nested subscriber object with `id`, `email`, `credential` (with `name` and `value`)
@@ -14,8 +14,8 @@ async function main() {
14
14
 
15
15
  // Create a metadata
16
16
  const metadata: UsageMetadata = {
17
- organizationId: "org-azure-demo",
18
- productId: "prod-azure-integration",
17
+ organizationName: "org-azure-demo",
18
+ productName: "prod-azure-integration",
19
19
  taskType: "question-answering",
20
20
  agent: "azure-assistant",
21
21
  };
@@ -49,7 +49,7 @@ async function main() {
49
49
  max_completion_tokens: 2000, // Increased for reasoning models (gpt-5-mini uses reasoning tokens)
50
50
  // Note: Reasoning models like gpt-5-mini only support default temperature (1.0)
51
51
  },
52
- metadata
52
+ metadata,
53
53
  );
54
54
 
55
55
  // Display the response
@@ -18,8 +18,8 @@ async function main() {
18
18
 
19
19
  // Create a metadata
20
20
  const metadata: UsageMetadata = {
21
- organizationId: "org-azure-responses",
22
- productId: "prod-azure-responses",
21
+ organizationName: "org-azure-responses",
22
+ productName: "prod-azure-responses",
23
23
  };
24
24
 
25
25
  try {
@@ -28,7 +28,7 @@ async function main() {
28
28
  model: "gpt-5-mini-2", // Your Azure deployment name
29
29
  input: "What is the capital of France?",
30
30
  },
31
- metadata
31
+ metadata,
32
32
  );
33
33
 
34
34
  // Display response
@@ -37,7 +37,7 @@ async function main() {
37
37
  } catch (error) {
38
38
  console.error("Error:", (error as Error).message);
39
39
  console.log(
40
- "\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions"
40
+ "\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions",
41
41
  );
42
42
  }
43
43
  }
@@ -18,8 +18,8 @@ async function main() {
18
18
 
19
19
  // Create a metadata
20
20
  const metadata: UsageMetadata = {
21
- organizationId: "org-azure-responses-streaming-demo",
22
- productId: "prod-azure-responses",
21
+ organizationName: "org-azure-responses-streaming-demo",
22
+ productName: "prod-azure-responses",
23
23
  taskType: "creative-writing",
24
24
  };
25
25
 
@@ -31,7 +31,7 @@ async function main() {
31
31
  input: "Write a short poem about the ocean.",
32
32
  stream: true as const,
33
33
  },
34
- metadata
34
+ metadata,
35
35
  );
36
36
 
37
37
  // Process the stream
@@ -53,7 +53,7 @@ async function main() {
53
53
  } catch (error) {
54
54
  console.error("Error:", (error as Error).message);
55
55
  console.log(
56
- "\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions"
56
+ "\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions",
57
57
  );
58
58
  }
59
59
  }
@@ -14,8 +14,8 @@ async function main() {
14
14
 
15
15
  // Create a metadata
16
16
  const metadata: UsageMetadata = {
17
- organizationId: "org-azure-streaming",
18
- productId: "prod-azure-integration",
17
+ organizationName: "org-azure-streaming",
18
+ productName: "prod-azure-integration",
19
19
  taskType: "creative-writing",
20
20
  agent: "azure-poet",
21
21
  };
@@ -39,7 +39,7 @@ async function main() {
39
39
  max_completion_tokens: 2000,
40
40
  stream: true as const,
41
41
  },
42
- metadata
42
+ metadata,
43
43
  );
44
44
 
45
45
  // Process the stream
@@ -17,8 +17,8 @@ async function main() {
17
17
 
18
18
  // Create metadata
19
19
  const metadata = {
20
- organizationId: "org-getting-started-demo",
21
- productId: "prod-getting-started",
20
+ organizationName: "org-getting-started-demo",
21
+ productName: "prod-getting-started",
22
22
  };
23
23
 
24
24
  // Make request
@@ -12,8 +12,8 @@ async function main() {
12
12
  // Get client
13
13
  const client = GetClient();
14
14
  const metadata: UsageMetadata = {
15
- organizationId: "org-basic-demo",
16
- productId: "prod-openai-basic",
15
+ organizationName: "org-basic-demo",
16
+ productName: "prod-openai-basic",
17
17
  };
18
18
 
19
19
  // Create chat completion
@@ -32,7 +32,7 @@ async function main() {
32
32
  ],
33
33
  max_tokens: 1000,
34
34
  },
35
- metadata
35
+ metadata,
36
36
  );
37
37
 
38
38
  // Display response
@@ -15,11 +15,11 @@ async function main() {
15
15
  // Optional metadata for advanced reporting, lineage tracking, and cost allocation
16
16
  const metadata: UsageMetadata = {
17
17
  // Organization & billing
18
- organizationId: "org-metadata-demo",
18
+ organizationName: "org-metadata-demo",
19
19
  subscriptionId: "plan-premium-2025",
20
20
 
21
21
  // Product & task tracking
22
- productId: "ai-assistant",
22
+ productName: "ai-assistant",
23
23
  taskType: "explanation-request",
24
24
  agent: "openai-metadata-chat-node",
25
25
 
@@ -27,7 +27,7 @@ async function main() {
27
27
  traceId: "session-" + Date.now(),
28
28
 
29
29
  // Quality metrics
30
- responseQualityScore: 0.95, // 0.0-1.0 scale
30
+ responseQualityScore: 0.95,
31
31
 
32
32
  // User tracking
33
33
  subscriber: {
@@ -54,7 +54,7 @@ async function main() {
54
54
  ],
55
55
  max_tokens: 1000,
56
56
  },
57
- metadata
57
+ metadata,
58
58
  );
59
59
 
60
60
  // Display response
@@ -32,8 +32,8 @@ async function main() {
32
32
  },
33
33
  ],
34
34
  usageMetadata: {
35
- organizationId: "org-prompt-capture-demo",
36
- productId: "prod-openai-prompt-capture",
35
+ organizationName: "org-prompt-capture-demo",
36
+ productName: "prod-openai-prompt-capture",
37
37
  },
38
38
  });
39
39
 
@@ -42,7 +42,7 @@ async function main() {
42
42
  } catch (error) {
43
43
  console.error(
44
44
  "Error:",
45
- error instanceof Error ? error.message : String(error)
45
+ error instanceof Error ? error.message : String(error),
46
46
  );
47
47
  }
48
48
 
@@ -65,8 +65,8 @@ async function main() {
65
65
  },
66
66
  ],
67
67
  usageMetadata: {
68
- organizationId: "org-prompt-capture-demo",
69
- productId: "prod-openai-prompt-capture",
68
+ organizationName: "org-prompt-capture-demo",
69
+ productName: "prod-openai-prompt-capture",
70
70
  capturePrompts: false,
71
71
  },
72
72
  });
@@ -76,7 +76,7 @@ async function main() {
76
76
  } catch (error) {
77
77
  console.error(
78
78
  "Error:",
79
- error instanceof Error ? error.message : String(error)
79
+ error instanceof Error ? error.message : String(error),
80
80
  );
81
81
  }
82
82
 
@@ -17,8 +17,8 @@ async function main() {
17
17
 
18
18
  // Create with metadata
19
19
  const metadata: UsageMetadata = {
20
- organizationId: "org-responses-basic-demo",
21
- productId: "prod-openai-responses-basic",
20
+ organizationName: "org-responses-basic-demo",
21
+ productName: "prod-openai-responses-basic",
22
22
  };
23
23
 
24
24
  try {
@@ -27,7 +27,7 @@ async function main() {
27
27
  model: "gpt-4",
28
28
  input: "What is the capital of France?",
29
29
  },
30
- metadata
30
+ metadata,
31
31
  );
32
32
 
33
33
  // Display response
@@ -36,7 +36,7 @@ async function main() {
36
36
  } catch (error) {
37
37
  console.error("Error:", (error as Error).message);
38
38
  console.log(
39
- "\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions"
39
+ "\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions",
40
40
  );
41
41
  }
42
42
  }
@@ -13,8 +13,8 @@ async function main() {
13
13
 
14
14
  // Create with metadata
15
15
  const metadata: UsageMetadata = {
16
- organizationId: "org-responses-embed-demo",
17
- productId: "prod-openai-responses-embed",
16
+ organizationName: "org-responses-embed-demo",
17
+ productName: "prod-openai-responses-embed",
18
18
  };
19
19
 
20
20
  const embedding = await client.embeddings().create(
@@ -22,7 +22,7 @@ async function main() {
22
22
  model: "text-embedding-3-small",
23
23
  input: "Hello world",
24
24
  },
25
- metadata
25
+ metadata,
26
26
  );
27
27
 
28
28
  console.log("Model:", embedding.model);
@@ -18,8 +18,8 @@ async function main() {
18
18
 
19
19
  // Create a metadata
20
20
  const metadata: UsageMetadata = {
21
- organizationId: "org-responses-streaming-demo",
22
- productId: "prod-openai-responses",
21
+ organizationName: "org-responses-streaming-demo",
22
+ productName: "prod-openai-responses",
23
23
  taskType: "creative-writing",
24
24
  };
25
25
 
@@ -31,7 +31,7 @@ async function main() {
31
31
  input: "Write a short poem about the ocean.",
32
32
  stream: true as const,
33
33
  },
34
- metadata
34
+ metadata,
35
35
  );
36
36
 
37
37
  // Process the stream
@@ -55,7 +55,7 @@ async function main() {
55
55
  console.error("Error:", (error as Error).message);
56
56
  console.error("Stack:", (error as Error).stack);
57
57
  console.log(
58
- "\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions"
58
+ "\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions",
59
59
  );
60
60
  }
61
61
  }
@@ -15,8 +15,8 @@ async function main() {
15
15
 
16
16
  // Create a metadata
17
17
  const metadata: UsageMetadata = {
18
- organizationId: "org-streaming-demo",
19
- productId: "prod-openai-streaming",
18
+ organizationName: "org-streaming-demo",
19
+ productName: "prod-openai-streaming",
20
20
  taskType: "creative-writing",
21
21
  agent: "story-generator",
22
22
  };
@@ -41,7 +41,7 @@ async function main() {
41
41
  max_tokens: 1000,
42
42
  stream: true as const,
43
43
  },
44
- metadata
44
+ metadata,
45
45
  );
46
46
 
47
47
  // Process the stream
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revenium/openai",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Transparent TypeScript middleware for automatic Revenium usage tracking with OpenAI",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -25,13 +25,6 @@
25
25
  "dev": "tsc --watch",
26
26
  "clean": "node -e \"const fs = require('fs'); if (fs.existsSync('dist')) fs.rmSync('dist', {recursive: true, force: true})\"",
27
27
  "prepublishOnly": "npm run clean && npm run build",
28
- "test": "jest",
29
- "test:unit": "jest --testPathPatterns=tests/unit",
30
- "test:integration": "jest --testPathPatterns=tests/integration --passWithNoTests",
31
- "test:performance": "jest --testPathPatterns=tests/performance --passWithNoTests",
32
- "test:watch": "jest --watch",
33
- "test:coverage": "jest --coverage",
34
- "test:e2e": "jest --testPathPatterns=tests/integration/trace-fields.test.ts",
35
28
  "example:getting-started": "npm run build && npx tsx examples/getting_started.ts",
36
29
  "example:openai-basic": "npm run build && npx tsx examples/openai/basic.ts",
37
30
  "example:openai-metadata": "npm run build && npx tsx examples/openai/metadata.ts",
@@ -66,13 +59,9 @@
66
59
  "url": "https://github.com/revenium/revenium-middleware-openai-node/issues"
67
60
  },
68
61
  "devDependencies": {
69
- "@jest/globals": "^30.2.0",
70
- "@types/jest": "^30.0.0",
71
62
  "@types/node": "^20.0.0",
72
63
  "dotenv": "^16.5.0",
73
- "jest": "^30.2.0",
74
64
  "rimraf": "^6.0.1",
75
- "ts-jest": "^29.4.6",
76
65
  "ts-node": "^10.9.2",
77
66
  "tsx": "^4.20.6",
78
67
  "typescript": "^5.0.0"