Skip to content

Metacore Kernel

Metacore Kernel

The Metacore runtime — secure WASM, dynamic CRUD, and a declarative permission model in a single Go library.

The Metacore Kernel is the Go library you embed in your app. It owns the database schema, the dynamic CRUD surface, the permission gates, the addon lifecycle, the WebSocket hub, the metrics endpoint, the WASM sandbox, and the manifest installer. You bring a Fiber router and a Postgres handle; the kernel mounts everything else and keeps it consistent across reloads.

Subsystems

SubsystemResponsibility
runtime/wasmwazero-backed WASM sandbox; per-addon module instances with capability-scoped imports.
wsWebSocket hub — fan-out by user, org, channel; auto-reconnect contract with the SDK provider.
securityCompiled Capabilities policy; egress SSRF guard; addon-level enforcer.
installerHot-loads .mcbundles — runs migrations, registers metadata, mounts handlers, signs in.
lifecycleInstall / enable / disable / upgrade / uninstall transitions for addons.
hosthost.Host and host.App — the public surface every embedding app composes against.
eventsPub/sub event bus addons emit on; in-process today, pluggable.
eventlogAppend-only audit log of CRUD ops, permission decisions, and addon lifecycle events.
navigationSidebar / route tree built from manifests; respects capability gates per user.
metadataMaterialized table/modal/options schemas served to <DynamicTable> clients.
manifestmanifest.json parser and validator; canonical types shared with the SDK.
dynamicGeneric CRUD service + handler — list, get, create, update, delete on any registered model.
permissionUser-level role/capability service + Fiber middleware.
notificationsPer-user notification queue, fan-out into ws and durable storage.
webhooksOutbound HMAC-signed webhooks — list, create, deliver, retry, test/replay.
queryFilter / sort / paginate parser shared by dynamic and host handlers.

Repository

Source, issues and releases live at asteby/metacore-kernel. The kernel is Apache-2.0.

Pair with the SDK

The kernel exposes the metadata, permission and CRUD contract the Metacore SDK consumes from the React side. The two ship independently — kernel version vX.Y.Z and SDK version vA.B.C are compatible whenever they agree on the JSON shapes documented in Dynamic API.

Metacore is open-source. Apache-2.0.