Skip to main content
Version: 0.2.x

Introduction​

LinaPro's component design centers on one principle: stable foundation, extend on demand. Platform-level capabilities are built into the core framework; business capabilities are delivered as self-contained components; components collaborate through explicit contracts with no hidden coupling.

This approach yields several key characteristics:

Clear boundaries, independently replaceable. The frontend workspace, backend core framework, and plugin system each have a well-defined scope of responsibility. The workspace depends only on the core framework's public API; plugins depend only on the stable extension interfaces the core framework publishes. Any layer can be upgraded or replaced without breaking the others.

Self-contained capabilities, opt-in delivery. Each business component (plugin) encapsulates its own API routes, database resources, frontend pages, menu permissions, language packs, and scheduled tasks — installed and uninstalled through the plugin lifecycle without touching core framework code. Official capabilities ship as independent plugins, so unused features never enter the deployment artifact.

Platform capabilities out of the box. Authentication, RBAC, multi-tenancy, scheduling, i18n, cluster coordination, and API documentation are all built into the core framework. Business plugins consume these directly without reimplementing them.

Dual-mode plugins balance flexibility and performance. Long-lived business modules use source plugins compiled into the core framework for native Go performance. When hot-loading or commercial binary distribution is required, WASM dynamic plugins fill that role — both modes share a single governance surface.

đŸ“„ī¸Core Host

This architecture-level overview explains LinaPro core framework service lina-core: its responsibility boundaries, runtime request flow, startup and loading sequence, built-in platform capability matrix, plugin extension surfaces, and collaboration with the admin workspace, source plugins, WASM dynamic plugins, PostgreSQL, and Redis. It helps developers build a system-level map before reading deeper pages on configuration, permissions, API documentation, scheduled tasks, internationalization, multi-tenancy, the plugin system, and distributed architecture.

đŸ“„ī¸Permission

This article covers the permission management strategy of the LinaPro core framework service, including the issuance, parsing, and revocation of dual JWTs (Access Token and Refresh Token), lifecycle management of both token types, online session management via hot-state storage, the design of the RBAC role-permission model (three-tier relationship: role → menu → permission), token-scoped access context caching with revision-based invalidation, declarative API permission management via g.Meta struct tags and the Permission middleware enforcement flow, and menu permission management (menu types, role-menu associations, permission trees, and data scope control) — giving developers a complete understanding of the authentication and authorization system.

đŸ“„ī¸Static Assets

This page explains LinaPro static asset management: how the core framework packages runtime resources and admin workspace build output with Go Embed, how plugins explicitly publish public static resources through public_assets, and how the /admin workspace entry, /x plugin API namespace, /x-assets public plugin asset namespace, source-plugin custom routes, and dynamic-plugin frontend resources stay separated. It helps developers design plugin pages, public assets, and cache/version policies correctly.