Skip to content

feat(activepieces): Zenrows piece for Activepieces, as a code host - #12

Open
imoital wants to merge 3 commits into
feat/shared-descriptionfrom
feat/activepieces-piece
Open

imoital wants to merge 3 commits into
feat/shared-descriptionfrom
feat/activepieces-piece

Conversation

@imoital

@imoital imoital commented Nov 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

The Zenrows piece for Activepieces, the repo's first code host: platforms/activepieces/ renders to dist/activepieces/, the piece exactly as it would sit in their packages/pieces/community/zenrows. Stacked on #11, which has the host-owned scripts/ folder and the shared error wording; GitHub retargets it to main when #11 merges.

Four actions behind an API-key connection: Scrape URL (Markdown, HTML, text or a screenshot; 5 options, Adaptive Stealth Mode on by default), Extract Structured Data (CSS selectors or Automatic, which returns the parsed data), Get Account Usage, and Activepieces' standard Custom API Call for everything else.

Kept lean on purpose. The API validates option combinations and explains every error, so the piece doesn't repeat that. Error messages carry the API's code and reason, plus a hint for the two credit codes, whose wording comes from shared/text/ (the same facts the skills state).

Checked three ways:

  • scripts/check.sh, run by CI: their lint and TypeScript build, inside an Activepieces checkout pinned in vars.yaml.
  • scripts/smoke.sh, run by hand with an API key: every action against the live API, plus a wrong key and a protected page that must be rejected with their code. 10 of 10 on 12 Nov. It found two bugs that are fixed here.
  • npm run render -- --check, npm run validate, npm test.

Not in this PR: publishing. Activepieces has paused outside PRs since July, so the channel (our own npm package, or their repo once they agree) is GTM's call, tracked on the Linear ticket. The logo is served from this repo until they host it. A manual pass in their UI (AP_DEV_PIECES=zenrows) is the last step before publishing. The api: declaration for #10's spec check comes with the next merge of main.

Scrape URL, Extract Structured Data, Get Account Usage and Custom API Call, rendered from platforms/activepieces/ into dist/activepieces/, the piece as it sits in activepieces' packages/pieces/community/zenrows. Its error hints quote the shared/text/ facts the skills use.
… repo

scripts/check.sh copies dist/activepieces/ into an activepieces checkout pinned in vars.yaml and runs their lint, build and test for the piece; a path-filtered workflow runs it.
smoke.sh asks for the API key, builds the piece in the activepieces checkout and runs smoke.ts: the four actions on real pages, plus a wrong key and a protected page that must be rejected with their code. Not in CI; it spends credits.

This branch has not been deployed

No deployments
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