Skip to content

feat(pieces): add Proxycurl piece#12149

Merged
AhmadTash merged 5 commits intoactivepieces:mainfrom
Harmatta:feat/add-proxycurl-piece
May 3, 2026
Merged

feat(pieces): add Proxycurl piece#12149
AhmadTash merged 5 commits intoactivepieces:mainfrom
Harmatta:feat/add-proxycurl-piece

Conversation

@Harmatta
Copy link
Copy Markdown
Contributor

@Harmatta Harmatta commented Mar 25, 2026

What does this PR do?

Adds a new community piece for Proxycurl with:

  • Get Person Profile
  • Get Company Profile
  • Search People
  • Lookup Person Email
  • Custom API Call

Closes #12148.

Auth / API notes

  • Base URL: https://nubela.co/proxycurl/api
  • Auth is PieceAuth.SecretText
  • Requests use Authorization: Bearer <API_KEY>
  • Bearer auth was verified against the Pipedream Proxycurl reference implementation (components/proxycurl/proxycurl.app.mjs), which injects Authorization: Bearer ${api_key} for Proxycurl requests

Follow-up fix pushed after review

  • search_people now calls GET /v2/search/person
  • summary_keywords is now sent with the correct query key
  • country and headline are now optional filters instead of required inputs
  • package metadata aligned with newer community-piece conventions (version: 0.1.0, type: commonjs)

Local validation

  • npx turbo run lint --filter=@activepieces/piece-proxycurl
  • npx turbo run build --filter=@activepieces/piece-proxycurl

Convention notes

  • This piece intentionally follows the newer lightweight community-piece shape with no project.json
  • In this shape, repo-native Turbo validation is the reliable path; direct isolated tsc --noEmit in the piece directory is misleading because workspace package resolution is handled at the repo level

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Mar 25, 2026

Confidence Score: 5/5

Safe to merge — all previously flagged P1 issues are resolved and no new defects were found.

All P1 findings from the prior review cycle (wrong query param key, required filter fields, missing at-least-one guard) have been fixed. The one remaining artefact (the unreachable if (response.status >= 400) block in client.ts) is dead-but-harmless code already covered in a prior thread. No new logic bugs, security issues, or type-safety problems were found.

No files require special attention.

Important Files Changed

Filename Overview
packages/pieces/community/proxycurl/src/lib/common/client.ts Core API client with error handling; contains unreachable if (response.status >= 400) guard (already discussed in prior review thread) since Axios throws before that block executes — functionally harmless dead code.
packages/pieces/community/proxycurl/src/lib/actions/search-people.ts Search People action; all fields optional, at-least-one guard added, correct endpoint /v2/search/person, summary_keywords key is now correct.
packages/pieces/community/proxycurl/src/lib/actions/get-person-profile.ts Get Person Profile action using correct /v2/linkedin endpoint with url query param; auth access via context.auth.secret_text is correct for PieceAuth.SecretText.
packages/pieces/community/proxycurl/src/lib/actions/get-company-profile.ts Get Company Profile action using correct /linkedin/company endpoint; straightforward and correct.
packages/pieces/community/proxycurl/src/lib/actions/lookup-person-email.ts Lookup Person Email using correct /linkedin/profile/email endpoint; optional callback_url correctly filtered out when undefined by the client utility.
packages/pieces/community/proxycurl/src/lib/actions/custom-api-call.ts Custom API Call using createCustomApiCallAction; authMapping correctly accesses auth.secret_text which is valid for SecretTextConnectionValue.
packages/pieces/community/proxycurl/src/index.ts Piece registration with correct PieceAuth.SecretText, logo URL, category, and all five actions wired up.
packages/pieces/community/proxycurl/package.json Package metadata follows current community-piece conventions (version: 0.1.0, type: commonjs, minimal dependencies).
tsconfig.base.json Path alias for @activepieces/piece-proxycurl correctly appended to the workspace paths map.

Reviews (6): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile

Comment thread packages/pieces/community/proxycurl/src/lib/actions/search-people.ts Outdated
Comment thread packages/pieces/community/proxycurl/src/lib/common/client.ts
Comment thread packages/pieces/community/proxycurl/src/lib/common/client.ts
@Harmatta Harmatta closed this Mar 25, 2026
@Harmatta Harmatta reopened this Apr 4, 2026
@Harmatta
Copy link
Copy Markdown
Contributor Author

Harmatta commented Apr 4, 2026

Hi team — friendly ping on this one. The Proxycurl piece has been open for a little while (it was accidentally closed and reopened). Greptile's automated review gave it 5/5 confidence and all flagged issues have been resolved. Would really appreciate a human review whenever the team has bandwidth. Thanks!

@AhmadTash AhmadTash self-requested a review April 12, 2026 11:39
@AhmadTash AhmadTash assigned AhmadTash and unassigned AhmadTash Apr 13, 2026
@AhmadTash AhmadTash removed their request for review April 13, 2026 11:21
@Harmatta
Copy link
Copy Markdown
Contributor Author

Harmatta commented May 3, 2026

Quick current-state check on this PR: I rechecked the latest head and it is still open, non-draft, mergeable, and waiting on review. The visible checks are green where applicable (CLA, GitGuardian, Greptile, mergefreeze, and label check), and I only see this one open Proxycurl piece PR in the repo.

Greptile has the current implementation at 5/5 with only non-runtime P2 style notes remaining. If maintainers still want anything adjusted before review, I’m happy to turn it around quickly.

@AhmadTash AhmadTash self-assigned this May 3, 2026
@AhmadTash
Copy link
Copy Markdown
Collaborator

Hey @Harmatta, sorry for the delay, we are reviewing your PR right now 🙏🏻

@AhmadTash AhmadTash self-requested a review May 3, 2026 10:53
@AhmadTash AhmadTash merged commit dee7830 into activepieces:main May 3, 2026
14 checks passed
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.

Add ProxyCurl LinkedIn data piece

3 participants