Frequently Asked Questions
Sorted by audience. If your question isn't here, search the rest of the Knowledge Base or open a discussion in Community.
For administrators
How many seats does Honeyframe license?
Seats are licensed per type (admin, builder, analyst, viewer) and bought separately. Each type has independent capacity. See Seat types vs. group permissions for the model and Bulk import users from CSV for assigning them in bulk.
Can a user have more than one seat type?
No — exactly one. To change a user's seat type, edit them under Admin → Users and pick the new type. The change takes effect immediately on their next request.
What happens when an LDAP-mapped group's DN changes in AD?
The Honeyframe-side group goes orphan: existing members keep their cached membership, but new sync runs no longer find the group. Update the group's ldap_dn field in Admin → Groups → Edit to match the new DN. See Permission denied after LDAP sync.
How long are audit logs retained?
Default is 90 days. Configure under Admin → Audit → Retention. Lengthening retention requires a database with sufficient storage; the audit table grows roughly 1 KB per logged action.
Can I export the full user list?
Admin → Users → Export → CSV. Includes email, full_name, role, seat_type, all group memberships, and last-login timestamp. Useful for periodic access reviews.
Is there a sandbox/staging environment?
Self-hosted: spin up a second Honeyframe instance from the same release tarball, point it at a separate database, and you have a sandbox. Cloud-hosted: contact your account manager — sandbox tenants are a paid add-on.
For builders
How do I version-control my flows?
Each flow has an Export → JSON action that emits a deterministic spec. Commit those JSON files to a git repo. To restore, Import → JSON in any project. There's no native git integration in the flow editor — the export/commit/import loop is the supported pattern.
Can I run a flow only when something changes upstream?
Yes — flow trigger types include scheduled (cron), manual (API/click), and upstream-changed (poll a connection or dataset for changes since last run, fire if there's a delta). Configure under flow → Triggers.
Why does my recipe sometimes return different rows on each run with the same input?
Likely a non-deterministic operation: random(), now(), an unordered subquery used in a join. Honeyframe doesn't pin orderings unless you explicitly ORDER BY; in some recipe types this means downstream LIMIT calls return different rows. Add an ORDER BY (with a unique tiebreaker like row ID) wherever a recipe LIMITs.
How do I share a recipe across projects?
Publish it to the Project library under recipe → ⋯ → Publish. Other projects can then import it under New recipe → From library. Library recipes are by-reference — updating the published version updates importers (with a notification).
Can I write Python in a recipe and call it like a function from another?
Yes, via Function recipes (still in beta). Define a Python function with typed inputs/outputs in one recipe; other recipes can call it via the recipe library. See Plugins for the more general extension surface.
For developers
Where's the API base URL?
Same as your Honeyframe instance: https://platform.hubstudio.id/api/... for the platform tier (or whichever subdomain hosts your Honeyframe). All endpoints sit under /api.
How do I authenticate API calls?
Bearer token in the Authorization header. Get a token from Settings → API tokens → Create token. Tokens carry the creating user's permissions; rotate by deleting and recreating. See Authentication.
Is there an OpenAPI spec?
Not yet exposed publicly. The Developer property's API Reference is hand-maintained until the backend ships an OpenAPI generator (planned, no committed date).
Are there client SDKs?
Python SDK in alpha. JavaScript/TypeScript planned post-v1.0. See SDK for status and install instructions.
Can I subscribe to webhooks?
Yes — configure outbound webhooks under Admin → Integrations → Webhooks. See Webhooks for the payload format, retry policy, and signature verification.
For evaluators
What does Honeyframe replace?
For most customers, a combination of Tableau/Looker (dashboards) + Airbyte/Fivetran (ingestion) + dbt (transformations) + a custom RBAC layer. Whether replacing all four makes sense depends on your scale; for orgs in the 5–50-analyst range, the integration story usually wins out.
How does pricing work?
Per-seat per-month, with seat tiers as described above. Volume discounts beyond 50 seats. Self-hosted is a flat license + maintenance; cloud-hosted is fully managed. Contact sales for current rates.
Can I run Honeyframe entirely on-premises?
Yes. Honeyframe runs as a set of Python services + a Postgres metadata DB. See Installation → Custom for deployment patterns including reverse proxy, TLS, LDAP, and systemd unit configs.
Does Honeyframe phone home?
Self-hosted instances send anonymized usage telemetry by default (active user count, error rates, no data content). Disable under Admin → Privacy → Telemetry. Cloud-hosted instances necessarily talk to Honeyframe servers since that's where they run.
What's the data residency situation?
Self-hosted: wherever you put the server. Cloud-hosted: Singapore (ap-southeast-1) and Jakarta (ap-southeast-3) regions; talk to your account manager about EU/US options.
See also
- Knowledge home — the full Knowledge index
- Documentation overview — when you want reference, not Q&A
- Permissions Reference — for everything authz-related