Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .changeset/28697-refused-registration-leaves-nothing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
"@objectstack/objectql": patch
---

Clause-②: yes (widening) — `SchemaRegistry.uninstallPackage` gains an optional `options` parameter
Metadata-protocol: none

fix(objectql): a package refused while it registers leaves nothing of itself registered

When `ObjectQL.registerApp` refuses a package, the package is no longer left partly registered. Before, the package record, its objects and its apps could stay in the running system until restart. What is refused, and every refusal's code, status and words, is unchanged.

- **A first install that is refused** (a fresh package id) leaves no package record, object, extension, app, item, picklist extension, navigation contribution, contributed kind, datasource definition or nested-plugin namespace behind. The same id can then be installed again once the package is fixed. A persisted "disabled" state for that id still applies to its next install.
- **A refused upgrade of an installed package** whose body alone is at fault (for example an item that names another package as its owner) leaves the installed version serving, untouched.
- `SchemaRegistry.uninstallPackage(id, options?)` takes an optional `{ keepBootSeed: true }`. The engine passes it when it withdraws a refused first install. An operator's uninstall omits it and behaves as before.

A body with more than one defect may now be refused for a different one of them than before, because refusals that depend only on the body are now checked before the others.
Loading
Loading