mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-31 06:04:11 +01:00
fix(cloud): persist configuration and load release-image packages (#18335)
Land the approved Cloud configuration and release-image package stack.
Includes the separately reviewed adapter settings (#18335), external adapters (#18333), bundled plugins (#18336), startup configuration (#18339), and migration/package checks (#18341).
Includes the final image-owned loader and linked-dependency inventory corrections.
Verified stack head: 462716170d.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
36f4422389
commit
8f822bfcf7
57 files changed
+3670
-250
No files matched your search
@@ -34,6 +34,42 @@ Current limitations to keep in mind:
|
||||
|
||||
In practice, that means the current implementation is a good fit for local development and self-hosted persistent deployments, but not yet for multi-instance cloud plugin distribution.
|
||||
|
||||
### Managed image packages
|
||||
|
||||
Managed Cloud provisions only plugins selected from the current release image
|
||||
catalog. A Cloud tenant token or managed configuration keeps this image-only
|
||||
policy active. Without an explicit selected package list, Cloud selects no
|
||||
packages and cannot fall back to local installs. An explicit operator-managed
|
||||
list also keeps this policy active outside Cloud. The database registration's
|
||||
plugin key, package name, version and
|
||||
approved manifest identify that package. Its legacy `packagePath` remains for
|
||||
local/self-hosted compatibility; Cloud never uses that path to locate code.
|
||||
Workers, plugin migrations and UI files resolve through the same current-image
|
||||
package resolver. Cloud does not install npm dependencies, build packages, use
|
||||
the development UI proxy, or fall back to a server home directory.
|
||||
|
||||
Prebuilt workers use the current release's baked CLI `tsx` loader for the SDK's
|
||||
workspace TypeScript dependencies. The loader is located from the owning server
|
||||
package in both regular and bundled server layouts. Missing loaders and loader
|
||||
links outside the release's CLI or root `node_modules` fail activation. This
|
||||
loads image-supplied code without installing dependencies or building packages.
|
||||
|
||||
Equivalent packages at different image roots reuse the existing registration,
|
||||
configuration, approval status and company scopes without rewriting its stored
|
||||
path. Concurrent first registration of the same package retains one plugin ID.
|
||||
Conflicting package identities fail explicitly. Normal maintenance boot retains
|
||||
the existing bundled manifest/version reconciliation and approval gates.
|
||||
|
||||
`createBundledPluginPackageResolver(...).inspect(registration, verifiedManifest)`
|
||||
is a read-only qualification hook. Resolve the current image path, load its
|
||||
manifest with the validated plugin loader, and inspect the registration before
|
||||
normal boot reconciliation. Missing manifest evidence and incompatible packages
|
||||
produce explicit blockers. Distribution packages retain their catalog digest
|
||||
verification; built-in packages trust the immutable release image and must bump
|
||||
their version when their code changes. Qualification supports identical package
|
||||
sets only. This package-resolution boundary does not coordinate workers,
|
||||
background jobs, or deployment overlap between servers.
|
||||
|
||||
## 1. Scope
|
||||
|
||||
This spec covers:
|
||||
|
||||
Reference in new issue
Block a user