Skip to content

fix(chat-whatsapp): require clean graph api origin#811

Merged
ralyodio merged 1 commit into
profullstack:masterfrom
aiirvizionz:clientkit/whatsapp-graph-base-url
Jul 22, 2026
Merged

fix(chat-whatsapp): require clean graph api origin#811
ralyodio merged 1 commit into
profullstack:masterfrom
aiirvizionz:clientkit/whatsapp-graph-base-url

Conversation

@aiirvizionz

Copy link
Copy Markdown
Contributor

Summary

  • require chat-whatsapp graphApiBaseUrl to be a clean HTTPS origin
  • reject base URLs with credentials, path, query, or hash before endpoint construction
  • keep the default Graph API endpoint behavior unchanged

Verification

  • vitest run packages/targets/chat-whatsapp/src/index.test.ts (10 passed)
  • tsc -p packages/targets/chat-whatsapp/tsconfig.json --noEmit
  • git diff --check

Note: running through pnpm in this workspace currently triggers an unrelated lockfile policy failure for @profullstack/autoblog@0.4.0 missing tarball integrity, so I ran the local Vitest and TypeScript binaries directly.

Copilot AI review requested due to automatic review settings July 21, 2026 22:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Tightens validation for the chat-whatsapp target’s graphApiBaseUrl configuration to ensure it is a clean HTTPS origin before Graph API endpoint URLs are constructed, reducing the risk of malformed requests or accidental query/credential leakage.

Changes:

  • Enforce that graphApiBaseUrl is a clean HTTPS origin (no credentials, path, query, or hash).
  • Normalize the base URL by returning URL.origin instead of trimming trailing slashes.
  • Add a test case asserting rejection of a base URL containing a query string.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
packages/targets/chat-whatsapp/src/index.ts Strengthens graphApiBaseUrl validation to require a clean HTTPS origin and returns parsed.origin.
packages/targets/chat-whatsapp/src/index.test.ts Adds coverage for rejecting a non-origin graphApiBaseUrl containing a query string.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 92 to 101
await expect(adapter.build(fakeBuildContext() as any, {
...baseConfig,
graphApiBaseUrl: 'http://graph.facebook.com',
})).rejects.toThrow('graphApiBaseUrl must use HTTPS');

await expect(adapter.build(fakeBuildContext() as any, {
...baseConfig,
graphApiBaseUrl: 'https://graph.facebook.com/api?token=leak',
})).rejects.toThrow('graphApiBaseUrl must be an HTTPS origin');
});
@github-actions

Copy link
Copy Markdown

🤖 Auto-rebase: The branch was rebased successfully locally but could not be pushed to the fork. Please enable 'Allow edits from maintainers' in the PR settings, or rebase manually: git fetch upstream master && git rebase upstream/master.

@ralyodio
ralyodio merged commit 0aa6364 into profullstack:master Jul 22, 2026
4 checks passed
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.

3 participants