Core
Shared React host and native App runtime
Approved Apps share the Core host with native runtime and database contracts.
Core 0.7.0
Upgrade as one release set
- Adopt independently published Laravel SDK 0.8.2 and React SDK 0.8.0 plus the 27 updated App releases. Their PHP/frontend SDK minimums are ^0.8.0 and host minimum is ^0.7.0. Rebuild standalone App frontends; previous iframe artifacts are incompatible.
- Production keeps the Composer profile. Developers keeps the sandbox profile with no embedded business Apps. Only isolated App execution needs a separately provisioned Sandbox Manager, immutable runtime/build images, private operator connection and controlled networks. Composer production does not require that infrastructure.
Behavior
-
Approved pages, widgets, profile extensions and business forms share the Core React host. App-bound requests, guarded navigation/reauthentication, unique form IDs and draft preservation support multiple mounted Apps. Host reuse reduces duplicate runtimes; it is not a guaranteed widget capacity or frontend security isolation boundary.
-
Composer and sandbox share native v2 App contracts, scoped settings and versioned synchronous actions. App-owned asynchronous work uses platform authorization, retry and generation checks.
-
Database lifecycle separates provisioning, Core runtime/migration and App runtime/migration identities. Core owns additive reference grants. App-specific database operations and declared fixtures retain their authorization boundaries.
-
Party name filtering and sorting keep Core reads on the host connection when Apps use isolated database identities. Cross-connection label lookups use the same 10,000-entry limit as sandbox; exceeding it fails explicitly instead of returning partial matches.
-
Installation commits its disabled reservation before creating App database objects. Developer execution selection stays mutually exclusive with installation without holding a Central transaction across database provisioning.
-
Favorite filters read actor-owned favorites through Core before applying them to the App database. Cross-connection filtering happens before pagination and fails explicitly above 10,000 targets.
-
App deletion no longer queries Core media tables through the App database connection. Core media behavior is retained.
-
Party references are revalidated before the owning App transaction commits; changed selections roll back the App write. Party merge exclusion remains held through that commit, and reference checks no longer conflict with the App foreign-key locks.
-
Party predicate locks cover the final App commit and are released before after-commit callbacks, including retry and failure cleanup. HR profile edits can follow pending App foreign-key writes without waiting on their own locks.
-
Bundled App fixes keep procurement approval drafts and policy queries, inventory reference details, operational draft deletion and approval-draft updates on the owning App connection. A failed write rolls back its App changes.
-
App validation reads host users and legal entities through SDK directories so isolated runtimes do not require local copies of Core tables.
-
Reusing an issued App connection no longer repeats the installation query for every model access; tenant and request ownership checks remain in place.
-
Composer App distribution checks reuse a request-scoped result. Installation, publication and entitlement changes or transaction rollback invalidate it; actor permission checks remain live.
-
New People employment-change forms expose the authorized legal-entity target selector before a target is selected. Existing-record edit permission checks remain in place.
Operator sequence and limits
- Publish packages first; solve the Composer, sandbox Composer, frontend and sandbox runtime locks from immutable artifacts. Verify both clean release profiles. Do not use local source overlays or update dependencies on a server.
- Replace the obsolete frame build step. Stage an immutable release outside the live site; preserve its exact rollback source, shared storage and configuration. Server build, migrations, account preparation/enrollment, service restart and cutover require a separate deployment decision.
- New database migrations do not authorize moving existing App tables or resetting data. Review private provisioning credentials and any retained legacy accounts before migration. Do not treat source rollback as a database rollback.
- Existing observed checks and unverified business/import/recovery paths are recorded in
docs/decisions/shared-react-host-validation.md. Package publication does not establish production rollout.
The committed locks include the security maintenance updates required by Composer for Laravel, CommonMark and Flysystem.