mirror of
https://github.com/vercel/flags.git
synced 2026-09-19 03:49:23 +08:00
aec3c03430
* @flags-sdk/posthog: upgrade posthog-node * @flags-sdk/posthog: make local vs remote evaluation explicit The default adapter passed POSTHOG_PERSONAL_API_KEY into the runtime posthog-node client, which enabled local evaluation and started a feature-flag poller in every warm process. On serverless this produced large, traffic-independent PostHog feature flag request volume. Local evaluation is now opt-in via POSTHOG_SECRET_KEY; without it the adapter evaluates remotely. POSTHOG_PERSONAL_API_KEY is used only by getProviderData (Flags Explorer) and no longer affects runtime evaluation. Drops the forced 10s poll interval in favor of the v5 default. Updates docs, README, and tests. * remove unused @vercel/edge-config dependency * add remote vs local tradeoffs * rm edge config tag * modernize * rm trimKey * lockfile * update * fixes * reword changeset * merge changesets * reword changelog
2.2 KiB
2.2 KiB
Flags SDK — PostHog Adapter
The PostHog adapter for Flags SDK supports dynamic server side feature flags powered by PostHog.
Setup
Install the adapter
pnpm i @flags-sdk/posthog
Example Usage
import { flag } from "flags/next";
import { postHogAdapter } from "@flags-sdk/posthog";
export const marketingGate = flag<boolean>({
// The key in PostHog
key: "my_posthog_flag_key_here",
adapter: postHogAdapter,
});
Environment variables
Always required, read by postHogAdapter:
# Regional API host, determines where your data lives
POSTHOG_HOST=https://us.i.posthog.com # or https://eu.i.posthog.com
# Settings > Project > Project API Key
POSTHOG_PROJECT_API_KEY=phc_...
Optional, opts postHogAdapter into local evaluation:
# Settings > Project > Feature flags secret key
POSTHOG_SECRET_KEY=phs_...
For the Flags Explorer, read by getProviderData only:
# Settings > User > Personal API keys
POSTHOG_PERSONAL_API_KEY=phx_...
# Settings > Project > Project ID
POSTHOG_PROJECT_ID=521742
Evaluation modes
- Remote (default): with only
POSTHOG_PROJECT_API_KEYandPOSTHOG_HOSTset, each evaluation calls PostHog. No background polling; request volume scales with traffic. Recommended for serverless. - Local: set
POSTHOG_SECRET_KEY(phs_...) to opt in.posthog-nodepolls flag definitions (~30s) and evaluates in-process for lower latency. Polling runs per warm server process and counts against your PostHog feature flag request quota regardless of user traffic.
POSTHOG_PERSONAL_API_KEY is used only by the Flags Explorer (getProviderData) and
does not enable local evaluation.
Runtimes
| Runtime | Supported |
|---|---|
| Node | ✅ |
| Edge Runtime | ❌ |
Note: posthog-node does not support the Edge Runtime.
To use with Routing Middleware and precompute, read more: Middleware now supports Node.js
Documentation
View more PostHog documentation at posthog.com.