Skip to content

Architecture Overview ​

The SDK is one Composer package, laravelui5/sdk, built on Core. Its PHP namespace LaravelUi5\Sdk\ spans 24 domains, grouped into seven pillars. The package also ships three apps: the Launchpad, Partners and Settings.

The seven pillars ​

PillarDomainsStability
Identity, security & platformSecurity · Platform · PartnersStable
Runtime & dataSync · OData scoping and the #[Read] gate · Settings · Parameters (per-actor values)Stable
Interaction & dispatchAction · Intent · Impersonation · HttpStable
Shell & UI compositionShell (the LeanShell) · Weave · the Ui5 bases for dialogs and value helps · LaunchpadStable
Integration pointsLogin · Tenancy · Address · Export · CustomizingStable
Content & toolingHelp · CommandsStable
Testingthe scenario DSLOpen by design

The 24th domain, Scaffolding — the generator behind Core's ui5:action when the SDK is installed — is internal and not part of the contract.

Stable means soft-freeze: validated in our own production applications, with every change additive and announced. Open by design means public, but deliberately reserved to evolve.

Integration points: bring your own provider ​

Each seam is a contract you bind; the SDK never forces a third-party dependency on you.

SeamContractWhat ships
LoginLoginProviderInterfacean Eloquent provider on your users table
TenancyTenantResolverInterfacea neutral placeholder operator for single-tenant installations
AddressAddressProviderInterfacenothing — you bind the validator you license
ExportExportWriterInterfaceCSV built in; xlsx and other formats are pluggable
Customizingcode-owned catalogssynced by ui5:sync like every other declaration

Dependency direction ​

The SDK depends on Core, never the reverse. Every SDK service sits behind an interface bound in the SDK's service provider, so a host can replace it through the container.

Code declares, the database decides ​

Core's Ui5Registry knows what exists; the SDK's SdkRegistry extends it with the SDK's metadata — roles, abilities, concepts, value helps. ui5:sync projects that into the sdk_* catalog, and runtime authorization reads the database. See Sync Pipeline and The Core Seam.