Zernio
Schedule and publish social media posts from Bijection with Zernio: durable submission, reactive per-post status, and signed webhook updates.
git clone https://github.com/bijectionhq/zernio.git
cd zernio
git checkout dea80a4e92bd361c856293fcf6b5de127f7a300cBijection repository access is required. Request access.
Description
Schedule and publish social media posts from Bijection with Zernio: durable submission, reactive per-post status, and signed webhook updates.
Explore the package README for API concepts, configuration, and examples. Check the Bijection source for adaptation-specific setup.
Review the source and its dependencies before adopting this package. Source availability does not establish npm publication or runtime qualification.
Getting started
- Get the source at the revision above and read its package documentation.
- Check the required Bijection SDK version, dependencies, and external service credentials.
- Follow the package setup instructions and the guide to using components.
- Exercise the component in your deployment according to your project’s verification rules.
Open source
Maintained source: bijectionhq/zernio. Based on zernio-dev/convex-zernio. License: Apache-2.0. Consult the repository for license terms, notices, and contributor attribution.
From the upstream publisher
Schedule and publish social media posts from Convex with Zernio: durable submission, reactive per-post status, and signed webhook updates.
Explore the demo ↗Upstream package FAQ
Does @zernio/convex publish posts immediately when schedulePost is called?
No. By default testMode is true, which means every post is created in Zernio as a draft. Nothing is published until you explicitly set testMode to false in the Zernio constructor options. The schedulePost call itself returns as soon as the row is written to Convex; actual submission to the Zernio API happens asynchronously in a durable workpool.
What environment variables does the @zernio/convex component require?
The component reads four variables from process.env on every call: ZERNIO_API_KEY for bearer auth, ZERNIO_WEBHOOK_SECRET for HMAC verification of incoming webhooks, ZERNIO_PROFILE_ID for single-tenant mode, and ZERNIO_BASE_URL to override the API host. Only ZERNIO_API_KEY and ZERNIO_WEBHOOK_SECRET are required for all apps; ZERNIO_PROFILE_ID is only needed in single-tenant deployments.
How does @zernio/convex handle multi-tenant apps where each user has their own social accounts?
Supply a getUserInfo function to the Zernio constructor that returns a userId and optional email from ctx.auth. The component maintains a table mapping each userId to a Zernio profile id and creates the profile on the first connectAccountUrl or syncAccounts call using an idempotency key, so a retry never creates a duplicate profile. Idempotency keys and account rows are scoped per profile so tenants are isolated.
What retry behavior does @zernio/convex use when Zernio's API is temporarily unavailable?
The component submits posts through a workpool that attempts up to five deliveries on 408, 429, 5xx, and network errors, backing off at 1, 4, 16, and 64 minutes. This covers Zernio's escalating account cooldown windows of 10, 20, 40, and 80 minutes. Permanent 4xx errors are not retried and mark the post as failed. Before any retry re-submits, the component queries GET /v1/posts to adopt a post a previous attempt may have already created.
Which Zernio API key permissions are needed for the @zernio/convex component?
The component requires the publishing resource group for schedulePost and cancelPost, and the accounts resource group for syncAccounts and connectAccountUrl. The webhooks resource group is only needed if you manage webhook subscriptions programmatically via the request escape hatch rather than through the Zernio dashboard. A legacy full-access Zernio key already includes all three groups.
Use with agents and CLI
Give your coding agent the component’s source identity and setup guidance.
Help me integrate Zernio with Bijection.
Read: https://bijection.com/components/zernio/SKILL.md
Check SDK compatibility and dependency availability.
Follow this project's execution and verification rules.Upstream README.md
View repository ↗Documentation from zernio-dev/convex-zernio at its recorded upstream revision. APIs and setup may differ in the Bijection adaptation.
Loading package documentation…