Lewati ke konten utama
Versi: Saat ini

v0.1.8 — API Services, schema contracts, plugin recipe types

Released: 2026-06-14.

A focused feature release on top of the v0.1.7 omnibus. The headline is API Services — publish datasets, lookups, and ML models as key-gated REST endpoints. It also adds plugin-contributed custom recipe types, dataset schema contracts with drift detection, the process_map graph as a no-code webapp card, and the matching honeyframeapi 0.1.2 SDK.

API Services

An API Service groups several key-gated HTTP endpoints under one published asset (asset_type='api_service'), reusing the same published-assets and data-API-key machinery as published datasets — no new tables. It turns your data and models into callable REST endpoints.

Four endpoint kinds:

  • sql — a governed, parameterized query.
  • lookup — a filtered/joined row fetch that reuses the data-API query path verbatim, so filters, row-scoping, PII masking, and caching all apply.
  • model — online prediction against a saved model: inline rows in, predictions out, served through the ml_runner subprocess (sklearn never enters the compiled backend).
  • function — spec'd but deferred; it currently returns 501.

Endpoints are called as GET/POST /api/service/{key}/{endpoint} with an X-API-Key header. A key can be scoped to a subset of endpoints via allowed_endpoints (NULL = all). A JWT-authenticated Test pane provides a dry-run before you mint a key. The builder UI (project settings → API Services) creates a service, adds endpoints, publishes, and mints keys.

From code, honeyframeapi 0.1.2 ships an APIService handle with endpoint builders (sql_endpoint / lookup_endpoint / model_endpoint / function_endpoint), publish/unpublish, create_key(allowed_endpoints=), and call(endpoint, payload, api_key=). See the new API Services page and Developer → SDK.

The 2026-06-14_api_services.sql migration auto-applies on upgrade.

Dataset schema contracts + drift detection

Every dataset can now capture a baseline column schema — a versioned contract (one current per dataset). Drift detection diffs the live schema against the baseline and classifies each change as additive (safe) or breaking (a removed column or an incompatible type change). Previously Honeyframe read schema live and stored no baseline, so an upstream column rename or drop only surfaced later as a downstream dashboard-card 500.

The dataset's Schema tab shows a drift banner (ok / additive / breaking / no-contract) with a capture button. A new check_schema_drift scenario step (fail_on = breaking | any | none) fails a pipeline at build time instead of letting the breakage reach a dashboard — see Scheduler. The SDK adds Dataset.schema_contract() / capture_schema_contract() / schema_drift(). See Datasets.

Plugin-contributed custom recipe types

Plugins can now contribute a custom recipe type (curated and admin-gated — no arbitrary tenant code; sandboxed upload remains a later slice). A PluginManifest.recipe_types entry binds a recipe-type id to a module:func handler plus a parameter schema. GET /api/plugins/recipe-types lists the enabled plugins' types and schemas (which drives the Flow palette/form), the recipe runner's dispatcher falls through to the plugin registry before raising "unsupported recipe type", and the Flow's create_ai_recipe accepts a registered plugin recipe type gated on per-org enablement. A curated _demo.rowcount example ships as a reference. See Plugins.

Webapps — process_map as a no-code card

The process_map identity/relationship graph (a graph rendered from a governed SQL edge-list, shipped as a dashboard card type in v0.1.7) is now available as a no-code code-card in the webapp builder, using the same renderer as the dashboard. Webapp authors can drop a relationship graph onto any app page without writing code. See Webapps.

SDK — honeyframeapi 0.1.2

honeyframeapi 0.1.2 adds the API Services wrapper described above (client.create_api_service / project.create_api_service, the APIService handle, and the endpoint builders), completing the create → publish → mint-key → call round-trip from Python. See Developer → SDK.

Fixes

  • ml_runner script directory now resolves via install_dir() rather than __file__, so model training and online prediction work on the compiled backend.

Upgrade notes

  • The 2026-06-14_api_services.sql and the schema-contracts migrations auto-apply on first boot after honeyframe update; both are idempotent. Rollback remains honeyframe update --rollback.
  • API Services and schema contracts are additive — existing projects are unaffected until you create a service or capture a contract.