Skip to content

[LR/TTD] Update meta.json structure to include audienceId, destinationConfigId and mappingId#3638

Open
sayan-das-in wants to merge 1 commit intomainfrom
int-obc-obs
Open

[LR/TTD] Update meta.json structure to include audienceId, destinationConfigId and mappingId#3638
sayan-das-in wants to merge 1 commit intomainfrom
int-obc-obs

Conversation

@sayan-das-in
Copy link
Contributor

@sayan-das-in sayan-das-in commented Feb 27, 2026

This PR modified the meta.json structure to include the following during Monoservice to Outbound Controller handoff.

  • audienceId
  • destinationConfigId
  • subscriptionId

Also addresses a field called TTDAuthToken which was incorrectly written as TDDAuthToken.
To fix the typo, this change includes an additional duplicate field TTDAuthToken along with the old TDDAuthToken in meta.json. Once Outbound controller starts using the new value, this old value will be cleaned up.

Testing

Tested successfully in stage.

meta.json for The TradeDesk

image

meta.json for Liveramp

image
  • Added unit tests for new functionality
  • Tested end-to-end using the local server
  • [If destination is already live] Tested for backward compatibility of destination. Note: New required fields are a breaking change.
  • [Segmenters] Tested in the staging environment
  • [Segmenters] [If applicable for this change] Tested for regression with Hadron.

Security Review

Please ensure sensitive data is properly protected in your integration.

  • Reviewed all field definitions for sensitive data (API keys, tokens, passwords, client secrets) and confirmed they use type: 'password'

New Destination Checklist

  • Extracted all action API versions to verioning-info.ts file. example

@codecov
Copy link

codecov bot commented Feb 27, 2026

Codecov Report

❌ Patch coverage is 92.30769% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 80.44%. Comparing base (1512cfc) to head (05836e4).

Files with missing lines Patch % Lines
...tinations/the-trade-desk-crm/syncAudience/index.ts 75.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3638      +/-   ##
==========================================
+ Coverage   80.24%   80.44%   +0.20%     
==========================================
  Files        1342     1316      -26     
  Lines       25481    24373    -1108     
  Branches     5268     4980     -288     
==========================================
- Hits        20447    19607     -840     
+ Misses       4112     3860     -252     
+ Partials      922      906      -16     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

This comment was marked as outdated.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Comment on lines +17 to +21
segmentInternal: {
audienceId?: string
destinationConfigId?: string
subscriptionId?: string
}
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR title mentions "mappingId" as the third new field, but the code and PR description both use "subscriptionId". These should be consistent — if the field being added is named subscriptionId in code and described as subscriptionId in the PR description, the PR title should be updated to reflect that. This creates ambiguity about what subscriptionId refers to in the context of this integration.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mappingId == subscriptionId

Comment on lines +509 to +515
RequeueCount: 0,
segmentInternal: expect.objectContaining({
audienceId: expect.any(String),
destinationConfigId: expect.any(String),
subscriptionId: expect.any(String)
})
})
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test at line 510-514 only asserts audienceId: expect.any(String), which allows an empty string. Since rawData is never passed in any of these new test cases, the actual extraction of audienceId from rawData[0].context?.personas?.computation_id is not being tested at all. To improve coverage, a test case should pass rawData containing a specific computation_id and assert that audienceId equals that value.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants