Skip to content

Project Overview

What is MetaOne?

MetaOne is a composable business operations platform built on Java and Spring Boot. It provides a structured runtime for hosting extensions (PF4J plugins) that deliver CRM, chat, and other business capabilities — all accessible through a unified API, with tenant data isolated per workspace.

Think of MetaOne as a platform kernel: it handles the hard parts (authentication, multi-tenancy, plugin lifecycle, event routing, UI integration) so that each extension can focus purely on its domain logic.

Purpose

Traditional business software is monolithic — adding a new feature means changing the core application. MetaOne inverts this: the core platform is frozen, and all business capabilities arrive as independently deployed extensions. The platform provides the wiring; extensions provide the intelligence.

This enables:

  • Rapid feature delivery — a new capability can be installed into a workspace without any platform code change or restart
  • Tenant isolation — each workspace gets its own database, its own extension configuration, and its own capability registry
  • Loose coupling — extensions communicate through events; they do not import each other's code

Scope

MetaOne manages the following on behalf of extensions:

ConcernHow MetaOne Handles It
Extension lifecycleInstall, enable, disable, update, uninstall via API
Capability routingRegistry-driven dispatch to in-process or remote handlers
Event dispatchWorkspace-scoped pub/sub with async in-process and HTTP delivery
UI integrationNav, route, and widget mounts served to the frontend shell at runtime
AuthenticationJWT-based auth with platform roles and workspace-level access control
ConfigurationPer-workspace config with encrypted secrets, validated before enabling
Database provisioningEach workspace gets its own schema/database for extension data
Audit loggingEvery lifecycle action is recorded in ext_audit_log

Out of scope for the platform:

  • Business logic (owned by extensions)
  • Frontend application shell (consumes the UI Mount API)
  • Chatwoot, third-party CRM systems, or other external services (integrated via extensions)

Target Audience

AudienceWhat they use
Extension developersSDK (metaone-sdk), Capability SDK, Event SDK, Webhook SDK, Manifest reference
Platform operatorsInstallation guide, Configuration reference, API (admin endpoints)
Frontend developersUI Mount API, Authentication API
Product/API consumersREST API reference, Capability invocation, Event publishing

Key Concepts

Workspace

The top-level tenancy unit. All installations, capabilities, events, and UI mounts are scoped to a workspace. A single platform deployment can host many workspaces.

Extension

A packaged unit of business capability. Extensions are either:

  • In-process — PF4J plugin JARs loaded into the host JVM
  • External services — Remote HTTP services registered with the platform

Capability

A named, invocable operation exposed by an extension (e.g. crm.product.search). Capabilities are invoked via the platform API and routed to the correct extension handler.

Event

A workspace-scoped broadcast message (e.g. crm.deal.closed). Extensions publish events when something noteworthy happens. Other extensions subscribe to events they care about — without knowing who publishes them.

Manifest

A structured declaration (the ExtensionManifest record) that describes everything the platform needs to know about an extension at install time: runtime type, capabilities, UI mounts, event subscriptions, permissions, and configuration schema.

Technology Foundation

ComponentTechnology
Platform hostJava 25, Spring Boot 4.x
Plugin runtimePF4J (Plugin Framework for Java)
AuthenticationJWT (HMAC-SHA256), Spring Security, OAuth2 (Google)
DatabasePostgreSQL (production), H2 (tests)
ORMSpring Data JPA / Hibernate
BuildMaven 3.9+ (multi-module reactor)
CacheCaffeine

MetaOne Platform Documentation