Skip to content

feat: tiktok audience form builder v2#2375

Open
achettyiitr wants to merge 1 commit intodevelopfrom
feat.tiktok-audience-formbuilderv2
Open

feat: tiktok audience form builder v2#2375
achettyiitr wants to merge 1 commit intodevelopfrom
feat.tiktok-audience-formbuilderv2

Conversation

@achettyiitr
Copy link
Member

@achettyiitr achettyiitr commented Mar 4, 2026

🔒 Scanned for secrets using gitleaks 8.29.1

What are the changes introduced in this PR?

  • Migrating TikTok Audience to From Builder v2.

What is the related Linear task?

  • Resolves INT-5730

Summary by CodeRabbit

  • Refactor
    • Reorganized destination configuration into clear "Initial setup" and "Configuration settings" sections with improved labels, notes, icons and validation prereqs.
    • Migrated consent UI to a config-driven schema with provider selection, resolution strategy, and tag-based consent category input.
  • New Features
    • Exposed Audience ID as a default configuration field and standardized hashing toggle default.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 4, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8488c8ca-fd4d-499e-83f5-8615109eae26

📥 Commits

Reviewing files that changed from the base of the PR and between d2dc66f and 06d8e9e.

📒 Files selected for processing (2)
  • src/configurations/destinations/tiktok_audience/db-config.json
  • src/configurations/destinations/tiktok_audience/ui-config.json

📝 Walkthrough

Walkthrough

Replaces the flat TikTok Audience UI config with a templated uiConfig (baseTemplate + sdkTemplate), restructures consent settings to a configKey-driven schema, and moves audienceId from cloud fields into default destination config.

Changes

Cohort / File(s) Summary
TikTok Audience UI Configuration
src/configurations/destinations/tiktok_audience/ui-config.json
Replaces top-level uiConfig array with a structured object (baseTemplate, sdkTemplate). Adds multi-section templates (Initial setup, Connection settings, Connection mode, Configuration settings, Consent settings). Migrates fields to configKey bindings, adds default, note, regex, preRequisites, and introduces consentSettingsTemplate with provider options, resolutionStrategy, and a tagInput for consent categories.
TikTok Audience DB Configuration
src/configurations/destinations/tiktok_audience/db-config.json
Adds audienceId to destConfig.defaultConfig and removes audienceId from the destConfig.cloud array, changing where audienceId is treated in destination configuration semantics.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through JSON, tidy and spry,

Templates stacked neatly, audience moved nearby.
Consent tags lined up like carrots in rows,
Validation blooms where the config now grows. 🥕✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is incomplete. It lacks sections for objectives, reasoning for changes, dependencies, tests, and the developer/reviewer checklists required by the template. Expand the description to include all template sections: objectives details, explanation of changes to existing capabilities, dependencies, test changes, and complete both developer and reviewer checklists.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: migrating TikTok Audience to Form Builder v2, which aligns with the core objective of the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat.tiktok-audience-formbuilderv2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Mar 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (2f88f37) to head (06d8e9e).

Additional details and impacted files
@@            Coverage Diff            @@
##           develop     #2375   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            2         2           
  Lines           72        72           
  Branches         8         8           
=========================================
  Hits            72        72           

☔ 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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/configurations/destinations/tiktok_audience/ui-config.json (1)

118-141: ⚠️ Potential issue | 🟡 Minor

Minor: Inconsistent label capitalization.

The label "the required consent logic" starts with lowercase, while other labels in this file use Title Case (e.g., "Consent management provider", "Enter consent category IDs"). Consider updating for consistency.

Suggested fix
            {
              "type": "singleSelect",
-              "label": "the required consent logic",
+              "label": "Required consent logic",
              "configKey": "resolutionStrategy",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/configurations/destinations/tiktok_audience/ui-config.json` around lines
118 - 141, The label for the singleSelect field with configKey
"resolutionStrategy" is lowercased ("the required consent logic") and should be
Title Case to match other labels; update the label string for the field in the
UI config (the object containing "type": "singleSelect" and "configKey":
"resolutionStrategy") to a Title Case variant such as "Required Consent Logic"
so it matches the file's capitalization style.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@src/configurations/destinations/tiktok_audience/ui-config.json`:
- Around line 118-141: The label for the singleSelect field with configKey
"resolutionStrategy" is lowercased ("the required consent logic") and should be
Title Case to match other labels; update the label string for the field in the
UI config (the object containing "type": "singleSelect" and "configKey":
"resolutionStrategy") to a Title Case variant such as "Required Consent Logic"
so it matches the file's capitalization style.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 46130bb8-cceb-4b27-b251-39ef4d1ad6aa

📥 Commits

Reviewing files that changed from the base of the PR and between 2f88f37 and d2dc66f.

📒 Files selected for processing (1)
  • src/configurations/destinations/tiktok_audience/ui-config.json

🔒 Scanned for secrets using gitleaks 8.29.1
@achettyiitr achettyiitr force-pushed the feat.tiktok-audience-formbuilderv2 branch from d2dc66f to 06d8e9e Compare March 4, 2026 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant