From 4b6c1299f792a2ed600a6bc8101159f29c15860f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 04:37:46 +0000 Subject: [PATCH] chore: version packages --- .changeset/action-script-executable-guard.md | 19 --- .changeset/adr-0015-external-columnmap.md | 12 -- .changeset/adr-0015-federation-read-path.md | 16 --- .../adr-0057-d10-nav-capability-gate.md | 14 --- .changeset/adr-0057-d11-drop-bu-kind-team.md | 13 -- .../adr-0057-d12-primary-business-unit.md | 19 --- .changeset/adr-0057-erp-authz.md | 28 ----- .changeset/adr-0058-expression-compiler.md | 16 --- .../analytics-measure-currency-chain.md | 11 -- .changeset/bu-rename-guard-test.md | 4 - .changeset/bu-rename-i18n.md | 11 -- .changeset/conformance-ledger-helper.md | 10 -- .changeset/dashboard-report-drill.md | 5 - .changeset/dataset-measure-currency.md | 12 -- .changeset/dev-app-default-profile.md | 21 ---- .changeset/dev-datasource-visibility.md | 9 -- .changeset/execution-context-currency.md | 16 --- .changeset/expand-where-propagation.md | 10 -- .changeset/fix-d10-envelope-unwrap.md | 13 -- .changeset/gantt-config-passthrough.md | 15 --- .changeset/me-localization-endpoint.md | 12 -- .changeset/rename-data-chat-to-ask.md | 5 - .changeset/rls-using-to-cel.md | 14 --- .changeset/spec-define-x-factories.md | 22 ---- .changeset/sys-user-manager-hierarchy.md | 7 -- .changeset/verify-skip-external-readonly.md | 13 -- examples/app-crm/CHANGELOG.md | 17 +++ examples/app-crm/package.json | 2 +- examples/app-showcase/CHANGELOG.md | 22 ++++ examples/app-showcase/package.json | 4 +- examples/app-todo/CHANGELOG.md | 25 ++++ examples/app-todo/package.json | 2 +- packages/adapters/express/CHANGELOG.md | 9 ++ packages/adapters/express/package.json | 2 +- packages/adapters/fastify/CHANGELOG.md | 9 ++ packages/adapters/fastify/package.json | 2 +- packages/adapters/hono/CHANGELOG.md | 12 ++ packages/adapters/hono/package.json | 2 +- packages/adapters/nestjs/CHANGELOG.md | 9 ++ packages/adapters/nestjs/package.json | 2 +- packages/adapters/nextjs/CHANGELOG.md | 9 ++ packages/adapters/nextjs/package.json | 2 +- packages/adapters/nuxt/CHANGELOG.md | 9 ++ packages/adapters/nuxt/package.json | 2 +- packages/adapters/sveltekit/CHANGELOG.md | 9 ++ packages/adapters/sveltekit/package.json | 2 +- packages/apps/account/CHANGELOG.md | 21 ++++ packages/apps/account/package.json | 2 +- packages/apps/setup/CHANGELOG.md | 21 ++++ packages/apps/setup/package.json | 2 +- packages/apps/studio/CHANGELOG.md | 21 ++++ packages/apps/studio/package.json | 2 +- packages/cli/CHANGELOG.md | 76 ++++++++++++ packages/cli/package.json | 2 +- packages/client-react/CHANGELOG.md | 18 +++ packages/client-react/package.json | 2 +- packages/client/CHANGELOG.md | 17 +++ packages/client/package.json | 2 +- packages/cloud-connection/CHANGELOG.md | 20 +++ packages/cloud-connection/package.json | 2 +- .../connectors/connector-mcp/CHANGELOG.md | 17 +++ .../connectors/connector-mcp/package.json | 2 +- .../connectors/connector-openapi/CHANGELOG.md | 17 +++ .../connectors/connector-openapi/package.json | 2 +- .../connectors/connector-rest/CHANGELOG.md | 17 +++ .../connectors/connector-rest/package.json | 2 +- .../connectors/connector-slack/CHANGELOG.md | 17 +++ .../connectors/connector-slack/package.json | 2 +- packages/console/CHANGELOG.md | 2 + packages/console/package.json | 2 +- packages/core/CHANGELOG.md | 21 ++++ packages/core/package.json | 2 +- packages/create-objectstack/CHANGELOG.md | 2 + packages/create-objectstack/package.json | 2 +- packages/dogfood/CHANGELOG.md | 23 ++++ packages/dogfood/package.json | 2 +- packages/downstream-contract/CHANGELOG.md | 16 +++ packages/downstream-contract/package.json | 2 +- packages/formula/CHANGELOG.md | 28 +++++ packages/formula/package.json | 2 +- packages/mcp/CHANGELOG.md | 18 +++ packages/mcp/package.json | 2 +- packages/metadata-core/CHANGELOG.md | 15 +++ packages/metadata-core/package.json | 2 +- packages/metadata-fs/CHANGELOG.md | 6 + packages/metadata-fs/package.json | 2 +- packages/metadata/CHANGELOG.md | 26 ++++ packages/metadata/package.json | 2 +- packages/objectql/CHANGELOG.md | 59 +++++++++ packages/objectql/package.json | 2 +- packages/observability/CHANGELOG.md | 15 +++ packages/observability/package.json | 2 +- packages/platform-objects/CHANGELOG.md | 86 +++++++++++++ packages/platform-objects/package.json | 2 +- packages/plugins/driver-memory/CHANGELOG.md | 17 +++ packages/plugins/driver-memory/package.json | 2 +- packages/plugins/driver-mongodb/CHANGELOG.md | 17 +++ packages/plugins/driver-mongodb/package.json | 2 +- packages/plugins/driver-sql/CHANGELOG.md | 37 ++++++ packages/plugins/driver-sql/package.json | 2 +- .../plugins/driver-sqlite-wasm/CHANGELOG.md | 19 +++ .../plugins/driver-sqlite-wasm/package.json | 2 +- packages/plugins/embedder-openai/CHANGELOG.md | 15 +++ packages/plugins/embedder-openai/package.json | 2 +- .../plugins/knowledge-memory/CHANGELOG.md | 18 +++ .../plugins/knowledge-memory/package.json | 2 +- .../plugins/knowledge-ragflow/CHANGELOG.md | 18 +++ .../plugins/knowledge-ragflow/package.json | 2 +- .../plugins/plugin-approvals/CHANGELOG.md | 45 +++++++ .../plugins/plugin-approvals/package.json | 2 +- packages/plugins/plugin-audit/CHANGELOG.md | 23 ++++ packages/plugins/plugin-audit/package.json | 2 +- packages/plugins/plugin-auth/CHANGELOG.md | 24 ++++ packages/plugins/plugin-auth/package.json | 2 +- packages/plugins/plugin-dev/CHANGELOG.md | 35 ++++++ packages/plugins/plugin-dev/package.json | 2 +- packages/plugins/plugin-email/CHANGELOG.md | 25 ++++ packages/plugins/plugin-email/package.json | 2 +- .../plugins/plugin-hono-server/CHANGELOG.md | 29 +++++ .../plugins/plugin-hono-server/package.json | 2 +- packages/plugins/plugin-msw/CHANGELOG.md | 21 ++++ packages/plugins/plugin-msw/package.json | 2 +- .../plugins/plugin-org-scoping/CHANGELOG.md | 23 ++++ .../plugins/plugin-org-scoping/package.json | 2 +- packages/plugins/plugin-reports/CHANGELOG.md | 23 ++++ packages/plugins/plugin-reports/package.json | 2 +- packages/plugins/plugin-security/CHANGELOG.md | 66 ++++++++++ packages/plugins/plugin-security/package.json | 4 +- packages/plugins/plugin-sharing/CHANGELOG.md | 75 +++++++++++ packages/plugins/plugin-sharing/package.json | 4 +- packages/plugins/plugin-webhooks/CHANGELOG.md | 18 +++ packages/plugins/plugin-webhooks/package.json | 2 +- packages/rest/CHANGELOG.md | 51 ++++++++ packages/rest/package.json | 2 +- packages/runtime/CHANGELOG.md | 85 +++++++++++++ packages/runtime/package.json | 2 +- packages/services/service-ai/CHANGELOG.md | 24 ++++ packages/services/service-ai/package.json | 2 +- .../services/service-analytics/CHANGELOG.md | 36 ++++++ .../services/service-analytics/package.json | 2 +- .../services/service-automation/CHANGELOG.md | 19 +++ .../services/service-automation/package.json | 2 +- packages/services/service-cache/CHANGELOG.md | 18 +++ packages/services/service-cache/package.json | 2 +- .../service-cluster-redis/CHANGELOG.md | 16 +++ .../service-cluster-redis/package.json | 2 +- .../services/service-cluster/CHANGELOG.md | 17 +++ .../services/service-cluster/package.json | 2 +- .../services/service-datasource/CHANGELOG.md | 17 +++ .../services/service-datasource/package.json | 2 +- packages/services/service-i18n/CHANGELOG.md | 17 +++ packages/services/service-i18n/package.json | 2 +- packages/services/service-job/CHANGELOG.md | 23 ++++ packages/services/service-job/package.json | 2 +- .../services/service-knowledge/CHANGELOG.md | 17 +++ .../services/service-knowledge/package.json | 2 +- .../services/service-messaging/CHANGELOG.md | 17 +++ .../services/service-messaging/package.json | 2 +- .../services/service-package/CHANGELOG.md | 17 +++ .../services/service-package/package.json | 2 +- packages/services/service-queue/CHANGELOG.md | 23 ++++ packages/services/service-queue/package.json | 2 +- .../services/service-realtime/CHANGELOG.md | 23 ++++ .../services/service-realtime/package.json | 2 +- .../services/service-settings/CHANGELOG.md | 24 ++++ .../services/service-settings/package.json | 2 +- .../services/service-storage/CHANGELOG.md | 24 ++++ .../services/service-storage/package.json | 2 +- packages/spec/CHANGELOG.md | 117 ++++++++++++++++++ packages/spec/package.json | 2 +- packages/triggers/trigger-api/CHANGELOG.md | 17 +++ packages/triggers/trigger-api/package.json | 2 +- .../trigger-record-change/CHANGELOG.md | 17 +++ .../trigger-record-change/package.json | 2 +- .../triggers/trigger-schedule/CHANGELOG.md | 17 +++ .../triggers/trigger-schedule/package.json | 2 +- packages/types/CHANGELOG.md | 15 +++ packages/types/package.json | 2 +- packages/verify/CHANGELOG.md | 56 +++++++++ packages/verify/package.json | 2 +- packages/vscode-objectstack/CHANGELOG.md | 2 + packages/vscode-objectstack/package.json | 2 +- 182 files changed, 2047 insertions(+), 428 deletions(-) delete mode 100644 .changeset/action-script-executable-guard.md delete mode 100644 .changeset/adr-0015-external-columnmap.md delete mode 100644 .changeset/adr-0015-federation-read-path.md delete mode 100644 .changeset/adr-0057-d10-nav-capability-gate.md delete mode 100644 .changeset/adr-0057-d11-drop-bu-kind-team.md delete mode 100644 .changeset/adr-0057-d12-primary-business-unit.md delete mode 100644 .changeset/adr-0057-erp-authz.md delete mode 100644 .changeset/adr-0058-expression-compiler.md delete mode 100644 .changeset/analytics-measure-currency-chain.md delete mode 100644 .changeset/bu-rename-guard-test.md delete mode 100644 .changeset/bu-rename-i18n.md delete mode 100644 .changeset/conformance-ledger-helper.md delete mode 100644 .changeset/dashboard-report-drill.md delete mode 100644 .changeset/dataset-measure-currency.md delete mode 100644 .changeset/dev-app-default-profile.md delete mode 100644 .changeset/dev-datasource-visibility.md delete mode 100644 .changeset/execution-context-currency.md delete mode 100644 .changeset/expand-where-propagation.md delete mode 100644 .changeset/fix-d10-envelope-unwrap.md delete mode 100644 .changeset/gantt-config-passthrough.md delete mode 100644 .changeset/me-localization-endpoint.md delete mode 100644 .changeset/rename-data-chat-to-ask.md delete mode 100644 .changeset/rls-using-to-cel.md delete mode 100644 .changeset/spec-define-x-factories.md delete mode 100644 .changeset/sys-user-manager-hierarchy.md delete mode 100644 .changeset/verify-skip-external-readonly.md create mode 100644 packages/downstream-contract/CHANGELOG.md diff --git a/.changeset/action-script-executable-guard.md b/.changeset/action-script-executable-guard.md deleted file mode 100644 index e61f538109..0000000000 --- a/.changeset/action-script-executable-guard.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -"@objectstack/spec": minor ---- - -spec(action): a `script` action must declare an executable binding — reject at -author/compile time when it has neither an inline `body` nor a `target`. - -A `type: 'script'` action with no `body` and no `target` registers no runtime -handler: `AppPlugin` skips it, and invoking it falls through to the wildcard -lookup and fails with `Action '' on object '*' not found` (the #2169 -"Mark Done" bug). The shape was schema-valid and passed coverage tests, so the -break only surfaced when a user clicked the button. - -`ActionSchema` now enforces the invariant via `superRefine`: `script` requires -`body || target` (mirroring the existing "non-script types require `target`" -rule). `body`-bound actions are auto-registered by the runtime; `target`-bound -actions name a function wired imperatively (e.g. via `onEnable`). This only -rejects configurations that were already non-functional at runtime — verified -against the full monorepo build (every shipped bundle still compiles). diff --git a/.changeset/adr-0015-external-columnmap.md b/.changeset/adr-0015-external-columnmap.md deleted file mode 100644 index 68258ef45c..0000000000 --- a/.changeset/adr-0015-external-columnmap.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"@objectstack/driver-sql": patch ---- - -feat(driver-sql): honor `external.columnMap` on federated (external) objects (ADR-0015). - -When a federated object declares `external.columnMap` ({ remoteColumn -> localField }), -the SQL driver now translates queries to the physical remote columns: WHERE and -ORDER BY map local fields to remote columns (value coercion stays keyed by the local -field), `formatOutput` renames remote-column keys back to local field names on read, -and write payloads are key-remapped. Managed objects and external objects without a -columnMap are unchanged (the resolver falls back to the existing per-site behavior). diff --git a/.changeset/adr-0015-federation-read-path.md b/.changeset/adr-0015-federation-read-path.md deleted file mode 100644 index bfd02e6e43..0000000000 --- a/.changeset/adr-0015-federation-read-path.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -"@objectstack/driver-sql": patch -"@objectstack/objectql": patch -"@objectstack/spec": patch ---- - -fix(ADR-0015): honor `external.remoteName` / `external.remoteSchema` on the federation read path. - -The query path previously resolved an external object's physical table from the -object name, ignoring its `external` binding — so a federated object bound to a -differently-named remote table failed with `no such table`, and ADR-0015's own -`wh_order` → `mart.fact_orders` example was unqueryable. The SQL driver now -resolves the remote table (`remoteName`, plus `remoteSchema` via `.withSchema()` -on pg/mysql) and registers external objects' read-coercion metadata without DDL -(`SqlDriver.registerExternalObject`, routed from the engine/plugin schema-sync). -The managed path is unchanged. See ADR-0015 §18. diff --git a/.changeset/adr-0057-d10-nav-capability-gate.md b/.changeset/adr-0057-d10-nav-capability-gate.md deleted file mode 100644 index 2141f2c145..0000000000 --- a/.changeset/adr-0057-d10-nav-capability-gate.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@objectstack/rest": minor -"@objectstack/platform-objects": minor ---- - -Setup nav: gate Organizations/Invitations on multi-org; enforce `requiresService` server-side (ADR-0057 addendum D10). - -`rest-server`'s `filterAppForUser` now honours `NavigationItem.requiresService` — entries -whose named kernel service isn't registered are dropped from the served app metadata -(fail-open when the kernel can't be probed; previously the field was a frontend-only hint). -Applies `requiresService: 'org-scoping'` to the Setup app's Organizations and Invitations -entries, so they surface only in multi-org (multi-tenant) deployments and disappear in -single-tenant. Business Units is intentionally left ungated — it is open per the open/paid -seam + D12 ("pick people by BU"); only the hierarchy rollup capability is enterprise. diff --git a/.changeset/adr-0057-d11-drop-bu-kind-team.md b/.changeset/adr-0057-d11-drop-bu-kind-team.md deleted file mode 100644 index 34638d04e0..0000000000 --- a/.changeset/adr-0057-d11-drop-bu-kind-team.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@objectstack/platform-objects": minor ---- - -Drop the unused `team` value from `sys_business_unit.kind` (ADR-0057 addendum D11). - -The `team` kind collided head-on with the first-class `sys_team` object: a -`kind='team'` business unit walks the hierarchical `BusinessUnitGraphService`, -while `sys_team` is the flat better-auth collaboration grouping served by -`TeamGraphService`. `kind` is a display-only categorisation hint (it does not -change graph semantics) and had **zero** usages anywhere in the repo, so this is a -safe narrowing with no data migration. New enum: -`company | division | department | office | cost_center`. diff --git a/.changeset/adr-0057-d12-primary-business-unit.md b/.changeset/adr-0057-d12-primary-business-unit.md deleted file mode 100644 index 904164df44..0000000000 --- a/.changeset/adr-0057-d12-primary-business-unit.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -"@objectstack/platform-objects": minor -"@objectstack/plugin-sharing": minor ---- - -Add `sys_user.primary_business_unit_id` projection (ADR-0057 addendum D12). - -Adds a denormalised `primary_business_unit_id` lookup to `sys_user`, maintained -by plugin-sharing as a projection of `sys_business_unit_member.is_primary` -(insert/update/delete hooks + a boot-time backfill). This makes "pick people by -business unit" — the Dataverse *filtered lookup* / ServiceNow *reference -qualifier* interaction — expressible as a plain `where: { primary_business_unit_id: X }` -(and thus as a `lookupFilters` picker filter) with **zero** query-engine change, -without traversing the membership junction. `sys_business_unit_member` remains -the effective-dated, matrix-friendly source of truth; the new column is a -maintained projection, not a second source. Home is plugin-sharing (always -loaded, owns the BU graph) rather than plugin-org-scoping, so the projection -works in single-tenant deployments too. Picker filtering by BU is therefore an -**open** (non-enterprise) capability — only hierarchy *rollup* stays paid. diff --git a/.changeset/adr-0057-erp-authz.md b/.changeset/adr-0057-erp-authz.md deleted file mode 100644 index c060e297f3..0000000000 --- a/.changeset/adr-0057-erp-authz.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -"@objectstack/platform-objects": major -"@objectstack/plugin-sharing": major -"@objectstack/spec": minor -"@objectstack/plugin-security": minor -"@objectstack/runtime": minor -"@objectstack/objectql": minor -"@objectstack/plugin-approvals": patch ---- - -**BREAKING:** the system object `sys_department` is renamed to `sys_business_unit` -— object + member table (`sys_department_member` → `sys_business_unit_member`), -fields, and i18n — with **no compatibility alias**. Any deployment holding -`sys_department` rows, or metadata that references the object by name (lookups, -list views, queries, sharing/approval scopes), must migrate to `sys_business_unit`. -A renamed shipped system object is a breaking change to the platform's public -data surface, so this lands as a **major**. Verified per ADR-0059's pre-publish -hotcrm gate: no published downstream consumer references the old name. - -ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH -(`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department` -→ `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned -`sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into -`sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are -delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to -owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also -fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads -`where`) — normalized `filter`→`where` in the engine. diff --git a/.changeset/adr-0058-expression-compiler.md b/.changeset/adr-0058-expression-compiler.md deleted file mode 100644 index ec7aaff812..0000000000 --- a/.changeset/adr-0058-expression-compiler.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -"@objectstack/formula": minor -"@objectstack/plugin-security": minor -"@objectstack/plugin-sharing": minor ---- - -ADR-0058 — expression & predicate surface unification. Adds the canonical -CEL→FilterCondition pushdown compiler in `@objectstack/formula` -(`compileCelToFilter`, `isPushdownableCel`, `lowerCelAst`) plus an in-memory -`matchesFilterCondition` backend (one AST, three backends). `plugin-security` -(RLS `using`, via a SQL bridge) and `plugin-sharing` (`celToFilter`) cut over to -it, retiring the bespoke regex/field-equality front-ends. Compound sharing -conditions now compile and enforce end-to-end (closes #1887). The RLS `check` -clause is now enforced on the write post-image (insert/by-id update), fail-closed. -Non-pushdownable predicates (arithmetic, functions, subqueries, cross-object) are -an authoring compile error, never silently dropped (ADR-0049/0055). diff --git a/.changeset/analytics-measure-currency-chain.md b/.changeset/analytics-measure-currency-chain.md deleted file mode 100644 index e4078ff125..0000000000 --- a/.changeset/analytics-measure-currency-chain.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@objectstack/service-analytics": minor ---- - -Resolve a monetary measure's display currency via the field→tenant chain. - -A dataset measure-currency now resolves through: explicit measure `currency` → -source-field `currencyConfig.defaultCurrency` → tenant default (`ctx.currency`). -A measure is monetary iff it declares a currency or aggregates a `currency`-type -field, so count/avg-of-number measures never receive a code. Wires a -`measureCurrency` field-metadata resolver from the data engine's object schema. diff --git a/.changeset/bu-rename-guard-test.md b/.changeset/bu-rename-guard-test.md deleted file mode 100644 index d84e25eaa4..0000000000 --- a/.changeset/bu-rename-guard-test.md +++ /dev/null @@ -1,4 +0,0 @@ ---- ---- - -test-only: regression guard asserting the ADR-0057 BU rename did not half-land — `sys_business_unit` / `sys_business_unit_member` object + field labels carry no stale "department" term across en/zh/ja/es. No runtime change. diff --git a/.changeset/bu-rename-i18n.md b/.changeset/bu-rename-i18n.md deleted file mode 100644 index 5078e83619..0000000000 --- a/.changeset/bu-rename-i18n.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@objectstack/platform-objects": patch ---- - -Complete the ADR-0057 `sys_department` → `sys_business_unit` rename in the Setup app and across the object's i18n (en / zh / ja / es). - -- Setup nav entry "Departments" → "Business Units" (`nav_departments` → `nav_business_units`). -- `sys_business_unit` / `sys_business_unit_member` field **labels and descriptions** in the object definitions now read "business unit" instead of "department" (the generated `en` labels had been hand-updated ahead of the def; the def was the stale source). -- All four locales' generated object translations aligned to 业务单元 / ビジネスユニット / Unidad de negocio. - -Intentionally preserved: the `kind` enum value `department` (a business unit can be *of kind* department) and the multi-concept node descriptions that list kinds. diff --git a/.changeset/conformance-ledger-helper.md b/.changeset/conformance-ledger-helper.md deleted file mode 100644 index 34fd836afb..0000000000 --- a/.changeset/conformance-ledger-helper.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@objectstack/verify": minor ---- - -ADR-0060 P1 — add the reusable conformance-ledger helper. `@objectstack/verify` -now exports `checkLedger(rows, opts)` + `ConformanceRow`: the static complement to -its runtime harness, encoding the shared invariants the platform had hand-written -twice (unique ids / valid state / enforced-has-site / experimental·removed-has-note -/ proof-file-exists / high-risk-has-proof / exactly-one-cover / discover ratchet). -The ADR-0056 authz and ADR-0058 expression ledgers are refactored onto it. diff --git a/.changeset/dashboard-report-drill.md b/.changeset/dashboard-report-drill.md deleted file mode 100644 index dd04a2faad..0000000000 --- a/.changeset/dashboard-report-drill.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@objectstack/service-analytics": minor ---- - -Dataset analytics enrich **dimension** result fields with their display label (so report/dashboard table headers read "Status" instead of the raw field name) and expose drill-through metadata on the dataset query result: the base `object`, a drillable dimension→field map, and a parallel `drillRawRows` array of each row's raw grouped values (captured before label resolution). This lets a host drill a grouped bucket back to its underlying records with an exact-match filter built from the stored value, not the display label. Date dimensions are excluded (a humanized bucket can't be exact-matched). diff --git a/.changeset/dataset-measure-currency.md b/.changeset/dataset-measure-currency.md deleted file mode 100644 index 06d9d7516d..0000000000 --- a/.changeset/dataset-measure-currency.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"@objectstack/spec": minor -"@objectstack/service-analytics": minor ---- - -Propagate a dataset measure's declared currency to the analytics result field. - -Adds an optional `DatasetMeasure.currency` (ISO 4217) on the semantic layer and -carries it onto each measure result field alongside `label`/`format`, so a -currency-aware client (Intl symbol) can render `¥1,234` / `$616,000` from a real -currency code instead of a plain number or a `$` baked into `format`. Additive -and optional — existing datasets are unaffected. diff --git a/.changeset/dev-app-default-profile.md b/.changeset/dev-app-default-profile.md deleted file mode 100644 index e21f8f9691..0000000000 --- a/.changeset/dev-app-default-profile.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -"@objectstack/runtime": patch ---- - -Fix: the artifact-serve path now honors an app-declared default permission-set -profile (`isProfile: true, isDefault: true`) under `objectstack dev`/`serve`/`start`. - -`createStandaloneStack` (the boot path used when serving a compiled -`dist/objectstack.json` with no host `objectstack.config.ts`) surfaced -`objects`/`requires`/`manifest` from the artifact bundle but dropped -`permissions[]` and `roles[]`. As a result the CLI's -`appDefaultProfileName(config.permissions)` saw `undefined` and the SecurityPlugin -fell back to the built-in owner-only `member_default` — so an app whose default -profile carries e.g. `readScope: 'unit_and_below'` (ADR-0056 D7 / ADR-0057 D1) -was silently ignored. The config-load path was unaffected because the app's -`permissions` survived via the original stack object. - -`createStandaloneStack` now surfaces `permissions[]` and `roles[]` from the -artifact bundle, mirroring the existing `objects`/`requires`/`manifest` handling, -so the artifact-serve path applies the app default profile exactly like the -config-load path. diff --git a/.changeset/dev-datasource-visibility.md b/.changeset/dev-datasource-visibility.md deleted file mode 100644 index ebb5f30ec6..0000000000 --- a/.changeset/dev-datasource-visibility.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@objectstack/core": patch ---- - -fix(runtime): surface code-defined datasources at `GET /api/v1/datasources` and `GET /api/v1/meta/datasource` on the standalone / host-config boot path (ADR-0015 §18, follow-up to #2111). - -A datasource declared in `defineStack({ datasources: [...] })` (e.g. the showcase's `showcase_external`) is stamped `origin: 'code'` and registered by `AppPlugin` via `metadata.registerInMemory('datasource', …)` — gated on `typeof metadata.registerInMemory === 'function'`. On the standalone / host-config path (`os dev`/`serve` for a config whose `plugins` are already instantiated — `isHostConfig` true — so no `MetadataPlugin` loads) the `metadata` service is an in-memory fallback that implemented `register`/`list`/`get` but **not** `registerInMemory`. The guard was therefore false, AppPlugin silently skipped the registration, and the datasource was absent from both REST surfaces (and Setup → Integrations → Datasources) even though the boot banner counted it and its federated objects were queryable. - -Both in-memory `metadata` fallbacks (`@objectstack/core`'s `createMemoryMetadata` and `@objectstack/plugin-dev`'s dev stub) now implement `registerInMemory` (synchronous, no persistence — identical to `register` for these in-memory stores, matching `MetadataManager`'s signature). The read paths (`metadata.list`, datasource-admin `listDatasources`, and `protocol.getMetaItems` which merges `metadata.list`) were already correct; this restores the write-side registration they depend on. It also makes stack-declared security metadata (`roles`/`permissions`/`sharingRules`/`policies`, registered through the same guard) listable on this path. diff --git a/.changeset/execution-context-currency.md b/.changeset/execution-context-currency.md deleted file mode 100644 index 55c815b719..0000000000 --- a/.changeset/execution-context-currency.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -"@objectstack/spec": minor -"@objectstack/runtime": minor -"@objectstack/rest": minor ---- - -Resolve the tenant default currency onto ExecutionContext. - -Adds `ExecutionContext.currency` (ISO 4217) and resolves it from the -`localization.currency` setting alongside `timezone`/`locale` — in both the -runtime `resolveExecutionContext` and the REST mirror. This is the foundation -for the documented "applied when a currency field omits its own" fallback: the -tenant default is now carried on every request context, so analytics enrichment, -formatters, and renderers can resolve a measure/field currency down to the org -default instead of hard-coding it. Undefined when no tenant default is -configured (consumers then render a plain number). diff --git a/.changeset/expand-where-propagation.md b/.changeset/expand-where-propagation.md deleted file mode 100644 index 4ae588af27..0000000000 --- a/.changeset/expand-where-propagation.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@objectstack/objectql": patch -"@objectstack/spec": patch ---- - -Honor a nested `where` filter inside `expand` on lookup/master_detail expansion. - -The expand post-processor batch-loads related records with an `id $in [...]` query but never merged the nested QueryAST `where`, so a documented `expand: { rel: { where: {...} } }` filter was silently ignored and every related record came back. The nested filter is now AND-merged into the batch query via an explicit `$and` group (`{ $and: [{ id: { $in } }, nestedAST.where] }`) — robust against a nested filter that itself keys `id` or uses a top-level `$or`/`$and`, where a shallow spread would clobber or reorder the constraint. - -`limit`/`offset`/`orderBy` remain intentionally not honored on the expand path: it batch-loads every parent's related records in one `$in` query and re-keys them per parent by foreign key, so a per-parent page size or ordering can't be expressed there. Docs and the schema `describe()` are updated to match, with a guard test asserting `limit`/`offset` are not pushed into the expand query. diff --git a/.changeset/fix-d10-envelope-unwrap.md b/.changeset/fix-d10-envelope-unwrap.md deleted file mode 100644 index df2fa8d1da..0000000000 --- a/.changeset/fix-d10-envelope-unwrap.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@objectstack/rest": patch ---- - -Fix: the Setup-nav capability gate (`requiresService`, ADR-0057 D10) was a no-op on the single-item app-meta path. - -`GET /meta/app/:name` returns a metadata envelope `{ type, name, item: , ... }`, but -`filterAppForUser` was applied to the envelope — whose `.navigation` is undefined — so it -returned it untouched, silently bypassing BOTH the `requiredPermissions` gate and the D10 -`requiresService` gate. Organizations/Invitations therefore still appeared in the Setup app -even in single-tenant deployments. `filterAppForUser` and `resolveRegisteredServices` now -unwrap the envelope (the list path already passed the raw app). Verified against a live -`os dev`: single-tenant hides Organizations/Invitations; multi-tenant shows them. diff --git a/.changeset/gantt-config-passthrough.md b/.changeset/gantt-config-passthrough.md deleted file mode 100644 index 3959f029a6..0000000000 --- a/.changeset/gantt-config-passthrough.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"@objectstack/spec": patch ---- - -fix(spec): make `GanttConfigSchema` forward-compatible via `.passthrough()`. - -The gantt renderer (objectui plugin-gantt) keeps adding view-config knobs -(e.g. `lockField`, `defaultCollapsedDepth`) ahead of this schema. Without -passthrough, the console — which validates the view config against a bundled -copy of this schema before handing it to the renderer — strips any field not -declared here, so every new renderer knob needs a spec release + console -rebuild before it can take effect. Adding `.passthrough()` lets unknown fields -flow through to the renderer, decoupling renderer releases from spec releases. -Known fields keep their validation; the renderer still only reads what it -understands. diff --git a/.changeset/me-localization-endpoint.md b/.changeset/me-localization-endpoint.md deleted file mode 100644 index 2a4784f36c..0000000000 --- a/.changeset/me-localization-endpoint.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"@objectstack/plugin-hono-server": minor ---- - -Expose resolved regional defaults to every authenticated user. - -Adds `GET /api/v1/auth/me/localization` returning the request tenant's resolved -`{ currency, locale, timezone }` from the ExecutionContext (ADR-0053). The -`localization` SETTINGS are gated to `setup.access`, but the resolved defaults -are needed by every renderer to format currency/dates/numbers — so they are -surfaced here without that gate. Enables a client to format a currency field -in the tenant's default currency when the field omits its own. diff --git a/.changeset/rename-data-chat-to-ask.md b/.changeset/rename-data-chat-to-ask.md deleted file mode 100644 index a20a05c1bd..0000000000 --- a/.changeset/rename-data-chat-to-ask.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@objectstack/service-ai": minor ---- - -Rename the built-in data agent `data_chat` → `ask` (Path A: friendly console URL == real id). Back-compat preserved via a new process-wide alias registry: `AgentRuntime.loadAgent` normalizes legacy names, so `/agents/data_chat/chat` and persisted `agent_id='data_chat'` keep resolving. `registerAgentAlias()` is exported so other packages register their own renames (cloud AI Studio: `metadata_assistant`→`build`). The plugin prunes the stale legacy agent record on upgrade so the catalog isn't doubled. diff --git a/.changeset/rls-using-to-cel.md b/.changeset/rls-using-to-cel.md deleted file mode 100644 index a6e3890632..0000000000 --- a/.changeset/rls-using-to-cel.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@objectstack/spec": minor -"@objectstack/plugin-security": minor ---- - -ADR-0058 D1 follow-through — RLS predicates are now canonical CEL. Migrated every -seeded RLS `using`/`check` (default permission sets, showcase, and the -`RLS.ownerPolicy`/`tenantPolicy`/`allowAllPolicy` helper factories) from the -legacy SQL-ish form (`=`, `IN (...)`) to pure CEL (`==`, `in`), so authors and AI -learn ONE expression language. The `sqlPredicateToCel` bridge is retained as a -DEPRECATED transitional shim: a stored SQL-style predicate still compiles (no -silent deny on legacy data) but emits a deprecation warn; canonical CEL passes -through as a no-op. No runtime behavior change — CEL and the old SQL form compile -to the identical FilterCondition. diff --git a/.changeset/spec-define-x-factories.md b/.changeset/spec-define-x-factories.md deleted file mode 100644 index febe9cab57..0000000000 --- a/.changeset/spec-define-x-factories.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -"@objectstack/spec": minor ---- - -spec: add `defineX` factories for the remaining 16 writable domains and the 6 -missing `XInput` aliases — one consistent, type-safe authoring entry per domain -(#2035). - -New factories: `defineDatasource`, `defineConnector`, `definePolicy`, -`defineSharingRule`, `defineRole`, `definePermissionSet`, -`defineEmailTemplateDefinition`, `defineReport`, `defineWebhook`, -`defineObjectExtension`, `defineCube`, `defineMapping`, `defineTheme`, -`defineTranslationBundle`, `definePage`, `defineAction`. Each mirrors the 19 -existing factories (`XSchema.parse(z.input<…>)`): input-shape ergonomics + -authoring-time validation. Because a factory is a *value* import, a broken -import hard-errors instead of silently degrading to `any` (the #2023 failure -mode), and errors surface at `.parse()` time with field-level messages. - -Also adds the previously-missing input aliases `PolicyInput`, `CubeInput`, -`MappingInput`, `ThemeInput`, `TranslationBundleInput`, `PageInput`. - -Purely additive: no existing exports change. diff --git a/.changeset/sys-user-manager-hierarchy.md b/.changeset/sys-user-manager-hierarchy.md deleted file mode 100644 index 1178263faa..0000000000 --- a/.changeset/sys-user-manager-hierarchy.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@objectstack/platform-objects": minor ---- - -Add `manager_id` (self-lookup) to `sys_user` — the reporting chain that the ADR-0057 `own_and_reports` hierarchy scope walks. - -The `own_and_reports` scope was implemented in the resolver but **unbacked**: nothing on `sys_user` modelled a manager, so it always degraded to owner-only. This adds the field (+ en/zh/ja/es labels) and extends the scope-depth dogfood to prove the scope end-to-end — a user now sees their own records plus everyone down their `manager_id` chain. diff --git a/.changeset/verify-skip-external-readonly.md b/.changeset/verify-skip-external-readonly.md deleted file mode 100644 index 8206c9da60..0000000000 --- a/.changeset/verify-skip-external-readonly.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@objectstack/verify": patch ---- - -fix(verify): skip read-only federated (external) objects in CRUD verification. - -`objectstack verify` probe-inserts a record into every object. A federated object -on an external datasource is read-only unless BOTH the datasource and the object -opt into writes (ADR-0015 write gate), so that insert is correctly rejected — -which `verify` was reporting as a `create-failed` runtime failure. `deriveCrudCases` -now marks such objects `blocked` (skipped), matching the write gate's double -opt-in rule, so the dogfood gate stays honest while supporting external datasource -example apps. diff --git a/examples/app-crm/CHANGELOG.md b/examples/app-crm/CHANGELOG.md index c81fcd3565..822d14cf0b 100644 --- a/examples/app-crm/CHANGELOG.md +++ b/examples/app-crm/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/example-crm +## 4.0.55 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/runtime@10.0.0 + ## 4.0.54 ### Patch Changes diff --git a/examples/app-crm/package.json b/examples/app-crm/package.json index 8c69539c15..eeeb79505d 100644 --- a/examples/app-crm/package.json +++ b/examples/app-crm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-crm", - "version": "4.0.54", + "version": "4.0.55", "description": "Minimal CRM example — a smoke-test workspace that exercises the metadata loading pipeline (objects → views → app → dashboard → hook → flow → seed). For a full-featured enterprise CRM see https://github.com/objectstack-ai/hotcrm.", "license": "Apache-2.0", "private": true, diff --git a/examples/app-showcase/CHANGELOG.md b/examples/app-showcase/CHANGELOG.md index 7b4164d2ec..f0c180ec58 100644 --- a/examples/app-showcase/CHANGELOG.md +++ b/examples/app-showcase/CHANGELOG.md @@ -1,5 +1,27 @@ # @objectstack/example-showcase +## 0.2.1 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [92db3e5] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/driver-sql@10.0.0 + - @objectstack/runtime@10.0.0 + - @objectstack/cloud-connection@10.0.0 + - @objectstack/connector-rest@10.0.0 + - @objectstack/connector-slack@10.0.0 + ## 0.2.0 ### Minor Changes diff --git a/examples/app-showcase/package.json b/examples/app-showcase/package.json index 0d96c70c4b..380caf9f84 100644 --- a/examples/app-showcase/package.json +++ b/examples/app-showcase/package.json @@ -1,7 +1,7 @@ { "name": "@objectstack/example-showcase", - "version": "0.2.0", - "description": "Kitchen-sink showcase workspace \u2014 exercises every metadata type, every view type, every chart type, and the major end-to-end capability chains (security, automation, AI). Built for demonstration, debugging, and coverage-driven verification.", + "version": "0.2.1", + "description": "Kitchen-sink showcase workspace — exercises every metadata type, every view type, every chart type, and the major end-to-end capability chains (security, automation, AI). Built for demonstration, debugging, and coverage-driven verification.", "license": "Apache-2.0", "private": true, "main": "./objectstack.config.ts", diff --git a/examples/app-todo/CHANGELOG.md b/examples/app-todo/CHANGELOG.md index 73aa8afb03..d5d4fdda69 100644 --- a/examples/app-todo/CHANGELOG.md +++ b/examples/app-todo/CHANGELOG.md @@ -1,5 +1,30 @@ # @objectstack/example-todo +## 4.0.55 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [be07ce7] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/objectql@10.0.0 + - @objectstack/runtime@10.0.0 + - @objectstack/service-ai@10.0.0 + - @objectstack/client@10.0.0 + - @objectstack/metadata@10.0.0 + - @objectstack/driver-sqlite-wasm@10.0.0 + - @objectstack/knowledge-memory@10.0.0 + - @objectstack/service-knowledge@10.0.0 + ## 4.0.54 ### Patch Changes diff --git a/examples/app-todo/package.json b/examples/app-todo/package.json index 77af964c55..931c645672 100644 --- a/examples/app-todo/package.json +++ b/examples/app-todo/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-todo", - "version": "4.0.54", + "version": "4.0.55", "description": "Example Todo App using ObjectStack Protocol", "license": "Apache-2.0", "private": true, diff --git a/packages/adapters/express/CHANGELOG.md b/packages/adapters/express/CHANGELOG.md index 9839ba4119..c82fa95e1d 100644 --- a/packages/adapters/express/CHANGELOG.md +++ b/packages/adapters/express/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/express +## 10.0.0 + +### Patch Changes + +- Updated dependencies [e16f2a8] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] + - @objectstack/runtime@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/adapters/express/package.json b/packages/adapters/express/package.json index e529f0aa7c..b303d137fb 100644 --- a/packages/adapters/express/package.json +++ b/packages/adapters/express/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/express", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/fastify/CHANGELOG.md b/packages/adapters/fastify/CHANGELOG.md index 78c6fb3f10..caf340d918 100644 --- a/packages/adapters/fastify/CHANGELOG.md +++ b/packages/adapters/fastify/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/fastify +## 10.0.0 + +### Patch Changes + +- Updated dependencies [e16f2a8] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] + - @objectstack/runtime@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/adapters/fastify/package.json b/packages/adapters/fastify/package.json index e6ee7be009..e0b55775d8 100644 --- a/packages/adapters/fastify/package.json +++ b/packages/adapters/fastify/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/fastify", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/hono/CHANGELOG.md b/packages/adapters/hono/CHANGELOG.md index b643888b03..d070a10ded 100644 --- a/packages/adapters/hono/CHANGELOG.md +++ b/packages/adapters/hono/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/hono +## 10.0.0 + +### Patch Changes + +- Updated dependencies [e16f2a8] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] +- Updated dependencies [00c32f2] + - @objectstack/runtime@10.0.0 + - @objectstack/plugin-hono-server@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/adapters/hono/package.json b/packages/adapters/hono/package.json index 390405d500..856919c9df 100644 --- a/packages/adapters/hono/package.json +++ b/packages/adapters/hono/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/hono", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nestjs/CHANGELOG.md b/packages/adapters/nestjs/CHANGELOG.md index d6a368ad2d..1984e199cf 100644 --- a/packages/adapters/nestjs/CHANGELOG.md +++ b/packages/adapters/nestjs/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/nestjs +## 10.0.0 + +### Patch Changes + +- Updated dependencies [e16f2a8] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] + - @objectstack/runtime@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/adapters/nestjs/package.json b/packages/adapters/nestjs/package.json index e9e1ea25d4..1c42fa6847 100644 --- a/packages/adapters/nestjs/package.json +++ b/packages/adapters/nestjs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nestjs", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nextjs/CHANGELOG.md b/packages/adapters/nextjs/CHANGELOG.md index 64af6fd945..68b291bb7e 100644 --- a/packages/adapters/nextjs/CHANGELOG.md +++ b/packages/adapters/nextjs/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/nextjs +## 10.0.0 + +### Patch Changes + +- Updated dependencies [e16f2a8] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] + - @objectstack/runtime@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/adapters/nextjs/package.json b/packages/adapters/nextjs/package.json index 08047006a0..b451d16a49 100644 --- a/packages/adapters/nextjs/package.json +++ b/packages/adapters/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nextjs", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nuxt/CHANGELOG.md b/packages/adapters/nuxt/CHANGELOG.md index 6534c99f0e..9af96e05cb 100644 --- a/packages/adapters/nuxt/CHANGELOG.md +++ b/packages/adapters/nuxt/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/nuxt +## 10.0.0 + +### Patch Changes + +- Updated dependencies [e16f2a8] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] + - @objectstack/runtime@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/adapters/nuxt/package.json b/packages/adapters/nuxt/package.json index b61dc2c44b..ea3b7e6a6c 100644 --- a/packages/adapters/nuxt/package.json +++ b/packages/adapters/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nuxt", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/sveltekit/CHANGELOG.md b/packages/adapters/sveltekit/CHANGELOG.md index 6d8abd7cf5..24219291fb 100644 --- a/packages/adapters/sveltekit/CHANGELOG.md +++ b/packages/adapters/sveltekit/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/sveltekit +## 10.0.0 + +### Patch Changes + +- Updated dependencies [e16f2a8] +- Updated dependencies [47d978a] +- Updated dependencies [220ce5b] + - @objectstack/runtime@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/adapters/sveltekit/package.json b/packages/adapters/sveltekit/package.json index 5e88d40d40..fd89de647e 100644 --- a/packages/adapters/sveltekit/package.json +++ b/packages/adapters/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/sveltekit", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/apps/account/CHANGELOG.md b/packages/apps/account/CHANGELOG.md index 04a56aebec..593a42b973 100644 --- a/packages/apps/account/CHANGELOG.md +++ b/packages/apps/account/CHANGELOG.md @@ -1,5 +1,26 @@ # @objectstack/account +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/apps/account/package.json b/packages/apps/account/package.json index 1b67208d96..271a55e053 100644 --- a/packages/apps/account/package.json +++ b/packages/apps/account/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/account", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "ObjectStack Account — the end-user account/self-service console app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/apps/setup/CHANGELOG.md b/packages/apps/setup/CHANGELOG.md index dc3342aea6..39bd92e575 100644 --- a/packages/apps/setup/CHANGELOG.md +++ b/packages/apps/setup/CHANGELOG.md @@ -1,5 +1,26 @@ # @objectstack/setup +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/apps/setup/package.json b/packages/apps/setup/package.json index 61ef337c5c..74e830dce2 100644 --- a/packages/apps/setup/package.json +++ b/packages/apps/setup/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/setup", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "ObjectStack Setup — the platform administration app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/apps/studio/CHANGELOG.md b/packages/apps/studio/CHANGELOG.md index 3b0d39ab0b..76c65094b4 100644 --- a/packages/apps/studio/CHANGELOG.md +++ b/packages/apps/studio/CHANGELOG.md @@ -1,5 +1,26 @@ # @objectstack/studio +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/apps/studio/package.json b/packages/apps/studio/package.json index 9344cd92d5..be2af75946 100644 --- a/packages/apps/studio/package.json +++ b/packages/apps/studio/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/studio", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "ObjectStack Studio — the metadata builder app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index ae7574d775..2a75973126 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,81 @@ # @objectstack/cli +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [92db3e5] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [70609af] +- Updated dependencies [61ed5c7] +- Updated dependencies [ee86099] +- Updated dependencies [3187952] +- Updated dependencies [a581385] +- Updated dependencies [47d978a] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [3754f80] +- Updated dependencies [feead7e] +- Updated dependencies [00c32f2] +- Updated dependencies [be07ce7] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] +- Updated dependencies [0feea92] + - @objectstack/spec@10.0.0 + - @objectstack/driver-sql@10.0.0 + - @objectstack/objectql@10.0.0 + - @objectstack/rest@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/plugin-sharing@10.0.0 + - @objectstack/plugin-security@10.0.0 + - @objectstack/runtime@10.0.0 + - @objectstack/plugin-approvals@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/service-analytics@10.0.0 + - @objectstack/verify@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/plugin-hono-server@10.0.0 + - @objectstack/service-ai@10.0.0 + - @objectstack/account@10.0.0 + - @objectstack/setup@10.0.0 + - @objectstack/studio@10.0.0 + - @objectstack/client@10.0.0 + - @objectstack/cloud-connection@10.0.0 + - @objectstack/mcp@10.0.0 + - @objectstack/observability@10.0.0 + - @objectstack/driver-memory@10.0.0 + - @objectstack/driver-mongodb@10.0.0 + - @objectstack/driver-sqlite-wasm@10.0.0 + - @objectstack/plugin-audit@10.0.0 + - @objectstack/plugin-auth@10.0.0 + - @objectstack/plugin-email@10.0.0 + - @objectstack/plugin-org-scoping@10.0.0 + - @objectstack/plugin-reports@10.0.0 + - @objectstack/plugin-webhooks@10.0.0 + - @objectstack/service-automation@10.0.0 + - @objectstack/service-cache@10.0.0 + - @objectstack/service-datasource@10.0.0 + - @objectstack/service-job@10.0.0 + - @objectstack/service-messaging@10.0.0 + - @objectstack/service-package@10.0.0 + - @objectstack/service-queue@10.0.0 + - @objectstack/service-realtime@10.0.0 + - @objectstack/service-settings@10.0.0 + - @objectstack/service-storage@10.0.0 + - @objectstack/trigger-api@10.0.0 + - @objectstack/trigger-record-change@10.0.0 + - @objectstack/trigger-schedule@10.0.0 + - @objectstack/types@10.0.0 + - @objectstack/console@10.0.0 + ## 9.11.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 253b3b8750..d6a05fbd42 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cli", - "version": "9.11.0", + "version": "10.0.0", "description": "Command Line Interface for ObjectStack Protocol", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/client-react/CHANGELOG.md b/packages/client-react/CHANGELOG.md index 9fcfd308a3..f09e294b0c 100644 --- a/packages/client-react/CHANGELOG.md +++ b/packages/client-react/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/client-react +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/client@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/client-react/package.json b/packages/client-react/package.json index 1fefbaa107..e11895e082 100644 --- a/packages/client-react/package.json +++ b/packages/client-react/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client-react", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "React hooks for ObjectStack Client SDK", "main": "dist/index.js", diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index fca8771262..63e47e643b 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/client +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/client/package.json b/packages/client/package.json index b3f459fc05..f75bf96d57 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Official Client SDK for ObjectStack Protocol", "main": "dist/index.js", diff --git a/packages/cloud-connection/CHANGELOG.md b/packages/cloud-connection/CHANGELOG.md index ab052474c6..a7513218d1 100644 --- a/packages/cloud-connection/CHANGELOG.md +++ b/packages/cloud-connection/CHANGELOG.md @@ -1,5 +1,25 @@ # @objectstack/cloud-connection +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [47d978a] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/runtime@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/cloud-connection/package.json b/packages/cloud-connection/package.json index 592ff1d3fd..2255a572f1 100644 --- a/packages/cloud-connection/package.json +++ b/packages/cloud-connection/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cloud-connection", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Runtime-side client for an ObjectStack cloud control plane — marketplace browse proxy, install-local, device-code binding, org catalog and installed views, and the /api/v1/runtime/config discovery endpoint. Open mechanism (ADR-0008): the hub service, plan policy, and entitlements stay server-side.", "type": "module", diff --git a/packages/connectors/connector-mcp/CHANGELOG.md b/packages/connectors/connector-mcp/CHANGELOG.md index 6ed8963aff..469fdeeeb8 100644 --- a/packages/connectors/connector-mcp/CHANGELOG.md +++ b/packages/connectors/connector-mcp/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/connector-mcp +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/connectors/connector-mcp/package.json b/packages/connectors/connector-mcp/package.json index c98dda423b..24dc2ba8dd 100644 --- a/packages/connectors/connector-mcp/package.json +++ b/packages/connectors/connector-mcp/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-mcp", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Model Context Protocol (MCP) connector for ObjectStack — a generic adapter that turns any MCP server's tools into a connector's actions on the automation engine's connector registry (ADR-0024).", "main": "dist/index.js", diff --git a/packages/connectors/connector-openapi/CHANGELOG.md b/packages/connectors/connector-openapi/CHANGELOG.md index 96412a5ee9..896ebe2f11 100644 --- a/packages/connectors/connector-openapi/CHANGELOG.md +++ b/packages/connectors/connector-openapi/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/connector-openapi +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/connectors/connector-openapi/package.json b/packages/connectors/connector-openapi/package.json index fac134fde4..149120fed4 100644 --- a/packages/connectors/connector-openapi/package.json +++ b/packages/connectors/connector-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-openapi", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "OpenAPI 3.x connector generator for ObjectStack — turns a declarative OpenAPI document into connector actions on the automation engine's registry, with a self-contained static-auth HTTP transport (ADR-0023).", "main": "dist/index.js", diff --git a/packages/connectors/connector-rest/CHANGELOG.md b/packages/connectors/connector-rest/CHANGELOG.md index ea3d9688b2..74a0e2fc33 100644 --- a/packages/connectors/connector-rest/CHANGELOG.md +++ b/packages/connectors/connector-rest/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/connector-rest +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/connectors/connector-rest/package.json b/packages/connectors/connector-rest/package.json index 1985fee0ce..74dd3d18b8 100644 --- a/packages/connectors/connector-rest/package.json +++ b/packages/connectors/connector-rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-rest", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Generic REST connector for ObjectStack — the reference concrete connector that registers a `request` action on the automation engine's connector registry (ADR-0018 §Addendum).", "main": "dist/index.js", diff --git a/packages/connectors/connector-slack/CHANGELOG.md b/packages/connectors/connector-slack/CHANGELOG.md index a8f9d4ae4c..6355892914 100644 --- a/packages/connectors/connector-slack/CHANGELOG.md +++ b/packages/connectors/connector-slack/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/connector-slack +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/connectors/connector-slack/package.json b/packages/connectors/connector-slack/package.json index 911a96ecb1..113db56a9b 100644 --- a/packages/connectors/connector-slack/package.json +++ b/packages/connectors/connector-slack/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-slack", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Slack Web API connector for ObjectStack — registers `chat.postMessage` / `chat.update` / `call` actions on the automation engine's connector registry (ADR-0018 §Addendum, ADR-0022).", "main": "dist/index.js", diff --git a/packages/console/CHANGELOG.md b/packages/console/CHANGELOG.md index f4cacd76df..b1e9c52898 100644 --- a/packages/console/CHANGELOG.md +++ b/packages/console/CHANGELOG.md @@ -1,5 +1,7 @@ # @objectstack/console +## 10.0.0 + ## 9.11.0 ## 9.10.0 diff --git a/packages/console/package.json b/packages/console/package.json index ad199b17d1..71f489c021 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/console", - "version": "9.11.0", + "version": "10.0.0", "description": "Prebuilt Console SPA pinned to this @objectstack/framework release. Source of truth: @object-ui/console (https://github.com/objectstack-ai/objectui).", "license": "Apache-2.0", "homepage": "https://github.com/objectstack-ai/framework/tree/main/packages/console", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 377d7ec405..12400fbe86 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,26 @@ # @objectstack/core +## 10.0.0 + +### Patch Changes + +- d5f6d29: fix(runtime): surface code-defined datasources at `GET /api/v1/datasources` and `GET /api/v1/meta/datasource` on the standalone / host-config boot path (ADR-0015 §18, follow-up to #2111). + + A datasource declared in `defineStack({ datasources: [...] })` (e.g. the showcase's `showcase_external`) is stamped `origin: 'code'` and registered by `AppPlugin` via `metadata.registerInMemory('datasource', …)` — gated on `typeof metadata.registerInMemory === 'function'`. On the standalone / host-config path (`os dev`/`serve` for a config whose `plugins` are already instantiated — `isHostConfig` true — so no `MetadataPlugin` loads) the `metadata` service is an in-memory fallback that implemented `register`/`list`/`get` but **not** `registerInMemory`. The guard was therefore false, AppPlugin silently skipped the registration, and the datasource was absent from both REST surfaces (and Setup → Integrations → Datasources) even though the boot banner counted it and its federated objects were queryable. + + Both in-memory `metadata` fallbacks (`@objectstack/core`'s `createMemoryMetadata` and `@objectstack/plugin-dev`'s dev stub) now implement `registerInMemory` (synchronous, no persistence — identical to `register` for these in-memory stores, matching `MetadataManager`'s signature). The read paths (`metadata.list`, datasource-admin `listDatasources`, and `protocol.getMetaItems` which merges `metadata.list`) were already correct; this restores the write-side registration they depend on. It also makes stack-declared security metadata (`roles`/`permissions`/`sharingRules`/`policies`, registered through the same guard) listable on this path. + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 40c7279a25..d0cf2d439d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/core", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Microkernel Core for ObjectStack", "type": "module", diff --git a/packages/create-objectstack/CHANGELOG.md b/packages/create-objectstack/CHANGELOG.md index 7d706f5dfb..275c87acd6 100644 --- a/packages/create-objectstack/CHANGELOG.md +++ b/packages/create-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # create-objectstack +## 10.0.0 + ## 9.11.0 ## 9.10.0 diff --git a/packages/create-objectstack/package.json b/packages/create-objectstack/package.json index 2b58f3b5ea..2d4380186d 100644 --- a/packages/create-objectstack/package.json +++ b/packages/create-objectstack/package.json @@ -1,6 +1,6 @@ { "name": "create-objectstack", - "version": "9.11.0", + "version": "10.0.0", "description": "Create a new ObjectStack project — npx create-objectstack", "bin": { "create-objectstack": "./bin/create-objectstack.js" diff --git a/packages/dogfood/CHANGELOG.md b/packages/dogfood/CHANGELOG.md index 0b7551d1f7..8eb645f38f 100644 --- a/packages/dogfood/CHANGELOG.md +++ b/packages/dogfood/CHANGELOG.md @@ -1,5 +1,28 @@ # @objectstack/dogfood +## 0.0.3 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [ee86099] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [0feea92] + - @objectstack/spec@10.0.0 + - @objectstack/objectql@10.0.0 + - @objectstack/plugin-security@10.0.0 + - @objectstack/verify@10.0.0 + - @objectstack/example-crm@4.0.55 + - @objectstack/example-showcase@0.2.1 + ## 0.0.2 ### Patch Changes diff --git a/packages/dogfood/package.json b/packages/dogfood/package.json index 49ffb0d9f0..7fe190cf43 100644 --- a/packages/dogfood/package.json +++ b/packages/dogfood/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/dogfood", - "version": "0.0.2", + "version": "0.0.3", "private": true, "license": "Apache-2.0", "description": "Dogfood regression gate — hand-written golden tests that boot real example apps through @objectstack/verify's in-process HTTP stack, pinning historical runtime regressions (#2018 timezone bucketing, #1994 cross-owner RLS, #2004 field fidelity) that static checks miss.", diff --git a/packages/downstream-contract/CHANGELOG.md b/packages/downstream-contract/CHANGELOG.md new file mode 100644 index 0000000000..1b4c7be98f --- /dev/null +++ b/packages/downstream-contract/CHANGELOG.md @@ -0,0 +1,16 @@ +# @objectstack/downstream-contract + +## 0.0.1 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 diff --git a/packages/downstream-contract/package.json b/packages/downstream-contract/package.json index eeefcaa674..3d0111f766 100644 --- a/packages/downstream-contract/package.json +++ b/packages/downstream-contract/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/downstream-contract", - "version": "0.0.0", + "version": "0.0.1", "description": "Frozen third-party consumer fixture — a backward-compatibility gate for @objectstack/spec. Authored the way an external project on a published release authors metadata; if a spec change breaks it, that change is breaking (#2035).", "license": "Apache-2.0", "private": true, diff --git a/packages/formula/CHANGELOG.md b/packages/formula/CHANGELOG.md index d1afcb87d6..0849fe3598 100644 --- a/packages/formula/CHANGELOG.md +++ b/packages/formula/CHANGELOG.md @@ -1,5 +1,33 @@ # @objectstack/formula +## 10.0.0 + +### Minor Changes + +- cfd86ce: ADR-0058 — expression & predicate surface unification. Adds the canonical + CEL→FilterCondition pushdown compiler in `@objectstack/formula` + (`compileCelToFilter`, `isPushdownableCel`, `lowerCelAst`) plus an in-memory + `matchesFilterCondition` backend (one AST, three backends). `plugin-security` + (RLS `using`, via a SQL bridge) and `plugin-sharing` (`celToFilter`) cut over to + it, retiring the bespoke regex/field-equality front-ends. Compound sharing + conditions now compile and enforce end-to-end (closes #1887). The RLS `check` + clause is now enforced on the write post-image (insert/by-id update), fail-closed. + Non-pushdownable predicates (arithmetic, functions, subqueries, cross-object) are + an authoring compile error, never silently dropped (ADR-0049/0055). + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/formula/package.json b/packages/formula/package.json index eed28407af..44346285ec 100644 --- a/packages/formula/package.json +++ b/packages/formula/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/formula", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "ObjectStack canonical expression engine — CEL (cel-js) + ObjectStack stdlib + dialect registry", "main": "dist/index.js", diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index 80c4d1d954..fc259e3703 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/plugin-mcp-server +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index f89b04f179..5783298fb9 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/mcp", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "ObjectStack as an MCP server — exposes your app's objects (and AI tools) over the Model Context Protocol (stdio + Streamable HTTP)", "type": "module", diff --git a/packages/metadata-core/CHANGELOG.md b/packages/metadata-core/CHANGELOG.md index 3e1a9f8323..9a336fe76d 100644 --- a/packages/metadata-core/CHANGELOG.md +++ b/packages/metadata-core/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/metadata-core +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/metadata-core/package.json b/packages/metadata-core/package.json index 71352530ec..37e6e3f3dc 100644 --- a/packages/metadata-core/package.json +++ b/packages/metadata-core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-core", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Metadata Repository contracts: types, canonicalization, errors, interface (ADR-0008).", "type": "module", diff --git a/packages/metadata-fs/CHANGELOG.md b/packages/metadata-fs/CHANGELOG.md index e8fd51cbbd..d9d6c58e94 100644 --- a/packages/metadata-fs/CHANGELOG.md +++ b/packages/metadata-fs/CHANGELOG.md @@ -1,5 +1,11 @@ # @objectstack/metadata-fs +## 10.0.0 + +### Patch Changes + +- @objectstack/metadata-core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/metadata-fs/package.json b/packages/metadata-fs/package.json index 3c3e9f20e4..1f7cd25211 100644 --- a/packages/metadata-fs/package.json +++ b/packages/metadata-fs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-fs", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "FileSystemRepository: Node-only Repository implementation backed by JSON files and a JSONL change log (ADR-0008).", "type": "module", diff --git a/packages/metadata/CHANGELOG.md b/packages/metadata/CHANGELOG.md index b8f406cdd6..b0c00b678f 100644 --- a/packages/metadata/CHANGELOG.md +++ b/packages/metadata/CHANGELOG.md @@ -1,5 +1,31 @@ # @objectstack/metadata +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/metadata-core@10.0.0 + - @objectstack/types@10.0.0 + - @objectstack/metadata-fs@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 9040c77d46..a32288f868 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Metadata loading, saving, and persistence for ObjectStack", "type": "module", diff --git a/packages/objectql/CHANGELOG.md b/packages/objectql/CHANGELOG.md index 7fa0428541..d155137aae 100644 --- a/packages/objectql/CHANGELOG.md +++ b/packages/objectql/CHANGELOG.md @@ -1,5 +1,64 @@ # @objectstack/objectql +## 10.0.0 + +### Minor Changes + +- e16f2a8: **BREAKING:** the system object `sys_department` is renamed to `sys_business_unit` + — object + member table (`sys_department_member` → `sys_business_unit_member`), + fields, and i18n — with **no compatibility alias**. Any deployment holding + `sys_department` rows, or metadata that references the object by name (lookups, + list views, queries, sharing/approval scopes), must migrate to `sys_business_unit`. + A renamed shipped system object is a breaking change to the platform's public + data surface, so this lands as a **major**. Verified per ADR-0059's pre-publish + hotcrm gate: no published downstream consumer references the old name. + + ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH + (`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department` + → `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned + `sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into + `sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are + delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to + owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also + fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads + `where`) — normalized `filter`→`where` in the engine. + +### Patch Changes + +- 2a1b16b: fix(ADR-0015): honor `external.remoteName` / `external.remoteSchema` on the federation read path. + + The query path previously resolved an external object's physical table from the + object name, ignoring its `external` binding — so a federated object bound to a + differently-named remote table failed with `no such table`, and ADR-0015's own + `wh_order` → `mart.fact_orders` example was unqueryable. The SQL driver now + resolves the remote table (`remoteName`, plus `remoteSchema` via `.withSchema()` + on pg/mysql) and registers external objects' read-coercion metadata without DDL + (`SqlDriver.registerExternalObject`, routed from the engine/plugin schema-sync). + The managed path is unchanged. See ADR-0015 §18. + +- 3efe334: Honor a nested `where` filter inside `expand` on lookup/master_detail expansion. + + The expand post-processor batch-loads related records with an `id $in [...]` query but never merged the nested QueryAST `where`, so a documented `expand: { rel: { where: {...} } }` filter was silently ignored and every related record came back. The nested filter is now AND-merged into the batch query via an explicit `$and` group (`{ $and: [{ id: { $in } }, nestedAST.where] }`) — robust against a nested filter that itself keys `id` or uses a top-level `$or`/`$and`, where a shallow spread would clobber or reorder the constraint. + + `limit`/`offset`/`orderBy` remain intentionally not honored on the expand path: it batch-loads every parent's related records in one `$in` query and re-keys them per parent by foreign key, so a per-parent page size or ordering can't be expressed there. Docs and the schema `describe()` are updated to match, with a guard test asserting `limit`/`offset` are not pushed into the expand query. + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/metadata-core@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Minor Changes diff --git a/packages/objectql/package.json b/packages/objectql/package.json index 27ca8438b2..7f6fef4b2a 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/objectql", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Isomorphic ObjectQL Engine for ObjectStack", "main": "dist/index.js", diff --git a/packages/observability/CHANGELOG.md b/packages/observability/CHANGELOG.md index 11c3a22f4a..76cd157763 100644 --- a/packages/observability/CHANGELOG.md +++ b/packages/observability/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/observability +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/observability/package.json b/packages/observability/package.json index 0211ca97f9..25667b411c 100644 --- a/packages/observability/package.json +++ b/packages/observability/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/observability", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Observability contracts and exporters for ObjectStack — MetricsRegistry, ErrorReporter, Logger plus noop/console/OTLP-HTTP exporters. Deployment-target neutral; runtime and services depend on this so the same instrumentation works on Cloudflare Workers, Node, and self-hosted Kubernetes.", "type": "module", diff --git a/packages/platform-objects/CHANGELOG.md b/packages/platform-objects/CHANGELOG.md index 2709eb1ac8..c4d825f235 100644 --- a/packages/platform-objects/CHANGELOG.md +++ b/packages/platform-objects/CHANGELOG.md @@ -1,5 +1,91 @@ # @objectstack/platform-objects +## 10.0.0 + +### Major Changes + +- e16f2a8: **BREAKING:** the system object `sys_department` is renamed to `sys_business_unit` + — object + member table (`sys_department_member` → `sys_business_unit_member`), + fields, and i18n — with **no compatibility alias**. Any deployment holding + `sys_department` rows, or metadata that references the object by name (lookups, + list views, queries, sharing/approval scopes), must migrate to `sys_business_unit`. + A renamed shipped system object is a breaking change to the platform's public + data surface, so this lands as a **major**. Verified per ADR-0059's pre-publish + hotcrm gate: no published downstream consumer references the old name. + + ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH + (`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department` + → `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned + `sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into + `sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are + delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to + owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also + fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads + `where`) — normalized `filter`→`where` in the engine. + +### Minor Changes + +- 2256e93: Setup nav: gate Organizations/Invitations on multi-org; enforce `requiresService` server-side (ADR-0057 addendum D10). + + `rest-server`'s `filterAppForUser` now honours `NavigationItem.requiresService` — entries + whose named kernel service isn't registered are dropped from the served app metadata + (fail-open when the kernel can't be probed; previously the field was a frontend-only hint). + Applies `requiresService: 'org-scoping'` to the Setup app's Organizations and Invitations + entries, so they surface only in multi-org (multi-tenant) deployments and disappear in + single-tenant. Business Units is intentionally left ungated — it is open per the open/paid + seam + D12 ("pick people by BU"); only the hierarchy rollup capability is enterprise. + +- 7108ff3: Drop the unused `team` value from `sys_business_unit.kind` (ADR-0057 addendum D11). + + The `team` kind collided head-on with the first-class `sys_team` object: a + `kind='team'` business unit walks the hierarchical `BusinessUnitGraphService`, + while `sys_team` is the flat better-auth collaboration grouping served by + `TeamGraphService`. `kind` is a display-only categorisation hint (it does not + change graph semantics) and had **zero** usages anywhere in the repo, so this is a + safe narrowing with no data migration. New enum: + `company | division | department | office | cost_center`. + +- 30c0313: Add `sys_user.primary_business_unit_id` projection (ADR-0057 addendum D12). + + Adds a denormalised `primary_business_unit_id` lookup to `sys_user`, maintained + by plugin-sharing as a projection of `sys_business_unit_member.is_primary` + (insert/update/delete hooks + a boot-time backfill). This makes "pick people by + business unit" — the Dataverse _filtered lookup_ / ServiceNow _reference + qualifier_ interaction — expressible as a plain `where: { primary_business_unit_id: X }` + (and thus as a `lookupFilters` picker filter) with **zero** query-engine change, + without traversing the membership junction. `sys_business_unit_member` remains + the effective-dated, matrix-friendly source of truth; the new column is a + maintained projection, not a second source. Home is plugin-sharing (always + loaded, owns the BU graph) rather than plugin-org-scoping, so the projection + works in single-tenant deployments too. Picker filtering by BU is therefore an + **open** (non-enterprise) capability — only hierarchy _rollup_ stays paid. + +- 47d978a: Add `manager_id` (self-lookup) to `sys_user` — the reporting chain that the ADR-0057 `own_and_reports` hierarchy scope walks. + + The `own_and_reports` scope was implemented in the resolver but **unbacked**: nothing on `sys_user` modelled a manager, so it always degraded to owner-only. This adds the field (+ en/zh/ja/es labels) and extends the scope-depth dogfood to prove the scope end-to-end — a user now sees their own records plus everyone down their `manager_id` chain. + +### Patch Changes + +- 61ed5c7: Complete the ADR-0057 `sys_department` → `sys_business_unit` rename in the Setup app and across the object's i18n (en / zh / ja / es). + + - Setup nav entry "Departments" → "Business Units" (`nav_departments` → `nav_business_units`). + - `sys_business_unit` / `sys_business_unit_member` field **labels and descriptions** in the object definitions now read "business unit" instead of "department" (the generated `en` labels had been hand-updated ahead of the def; the def was the stale source). + - All four locales' generated object translations aligned to 业务单元 / ビジネスユニット / Unidad de negocio. + + Intentionally preserved: the `kind` enum value `department` (a business unit can be _of kind_ department) and the multi-concept node descriptions that list kinds. + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/metadata-core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/platform-objects/package.json b/packages/platform-objects/package.json index 8e0b818acd..60b4cb9cb6 100644 --- a/packages/platform-objects/package.json +++ b/packages/platform-objects/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/platform-objects", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Core platform object schemas for ObjectStack — identity, security, audit, tenant, and metadata objects", "main": "dist/index.js", diff --git a/packages/plugins/driver-memory/CHANGELOG.md b/packages/plugins/driver-memory/CHANGELOG.md index 683d9be7bc..1ff396c0aa 100644 --- a/packages/plugins/driver-memory/CHANGELOG.md +++ b/packages/plugins/driver-memory/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/driver-memory +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/driver-memory/package.json b/packages/plugins/driver-memory/package.json index 599819ead0..32797f24dd 100644 --- a/packages/plugins/driver-memory/package.json +++ b/packages/plugins/driver-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-memory", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "In-Memory Driver for ObjectStack (Reference Implementation)", "main": "dist/index.js", diff --git a/packages/plugins/driver-mongodb/CHANGELOG.md b/packages/plugins/driver-mongodb/CHANGELOG.md index c7927a4e34..a5b834a196 100644 --- a/packages/plugins/driver-mongodb/CHANGELOG.md +++ b/packages/plugins/driver-mongodb/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/driver-mongodb +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/driver-mongodb/package.json b/packages/plugins/driver-mongodb/package.json index 6297ecd230..9b8d31fbb6 100644 --- a/packages/plugins/driver-mongodb/package.json +++ b/packages/plugins/driver-mongodb/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-mongodb", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "MongoDB Driver for ObjectStack - Native document database driver via official mongodb client", "main": "dist/index.js", diff --git a/packages/plugins/driver-sql/CHANGELOG.md b/packages/plugins/driver-sql/CHANGELOG.md index 3b8b986a96..9ded066d91 100644 --- a/packages/plugins/driver-sql/CHANGELOG.md +++ b/packages/plugins/driver-sql/CHANGELOG.md @@ -1,5 +1,42 @@ # @objectstack/driver-sql +## 10.0.0 + +### Patch Changes + +- 92db3e5: feat(driver-sql): honor `external.columnMap` on federated (external) objects (ADR-0015). + + When a federated object declares `external.columnMap` ({ remoteColumn -> localField }), + the SQL driver now translates queries to the physical remote columns: WHERE and + ORDER BY map local fields to remote columns (value coercion stays keyed by the local + field), `formatOutput` renames remote-column keys back to local field names on read, + and write payloads are key-remapped. Managed objects and external objects without a + columnMap are unchanged (the resolver falls back to the existing per-site behavior). + +- 2a1b16b: fix(ADR-0015): honor `external.remoteName` / `external.remoteSchema` on the federation read path. + + The query path previously resolved an external object's physical table from the + object name, ignoring its `external` binding — so a federated object bound to a + differently-named remote table failed with `no such table`, and ADR-0015's own + `wh_order` → `mart.fact_orders` example was unqueryable. The SQL driver now + resolves the remote table (`remoteName`, plus `remoteSchema` via `.withSchema()` + on pg/mysql) and registers external objects' read-coercion metadata without DDL + (`SqlDriver.registerExternalObject`, routed from the engine/plugin schema-sync). + The managed path is unchanged. See ADR-0015 §18. + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Minor Changes diff --git a/packages/plugins/driver-sql/package.json b/packages/plugins/driver-sql/package.json index 5b989d7d65..ad0384cf65 100644 --- a/packages/plugins/driver-sql/package.json +++ b/packages/plugins/driver-sql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sql", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "SQL Driver for ObjectStack - Supports PostgreSQL, MySQL, SQLite via Knex", "main": "dist/index.js", diff --git a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md index c0da7a2b26..b6292bbc78 100644 --- a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md +++ b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md @@ -1,5 +1,24 @@ # @objectstack/driver-sqlite-wasm +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [92db3e5] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/driver-sql@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/driver-sqlite-wasm/package.json b/packages/plugins/driver-sqlite-wasm/package.json index 00b5f7f77a..dc8d381c68 100644 --- a/packages/plugins/driver-sqlite-wasm/package.json +++ b/packages/plugins/driver-sqlite-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sqlite-wasm", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "WASM SQLite Driver for ObjectStack — runs in browser/WebContainer (StackBlitz) without native bindings", "keywords": [ diff --git a/packages/plugins/embedder-openai/CHANGELOG.md b/packages/plugins/embedder-openai/CHANGELOG.md index 4f1dc10fb6..3b932c82f9 100644 --- a/packages/plugins/embedder-openai/CHANGELOG.md +++ b/packages/plugins/embedder-openai/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/embedder-openai +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/embedder-openai/package.json b/packages/plugins/embedder-openai/package.json index 07326a319a..7aec2a8b52 100644 --- a/packages/plugins/embedder-openai/package.json +++ b/packages/plugins/embedder-openai/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/embedder-openai", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "OpenAI-compatible embedder for ObjectStack — works against OpenAI, 阿里通义 DashScope, 智谱 BigModel, 硅基流动 SiliconFlow, 火山引擎 Doubao, MiniMax, Ollama, and any drop-in OpenAI-shape endpoint.", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-memory/CHANGELOG.md b/packages/plugins/knowledge-memory/CHANGELOG.md index f2831907db..57e310f47c 100644 --- a/packages/plugins/knowledge-memory/CHANGELOG.md +++ b/packages/plugins/knowledge-memory/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/knowledge-memory +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/service-knowledge@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/knowledge-memory/package.json b/packages/plugins/knowledge-memory/package.json index b2580d548f..6cddedc279 100644 --- a/packages/plugins/knowledge-memory/package.json +++ b/packages/plugins/knowledge-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-memory", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "In-memory knowledge adapter for ObjectStack (dev / test reference implementation).", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-ragflow/CHANGELOG.md b/packages/plugins/knowledge-ragflow/CHANGELOG.md index abeef91414..a9d649041f 100644 --- a/packages/plugins/knowledge-ragflow/CHANGELOG.md +++ b/packages/plugins/knowledge-ragflow/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/knowledge-ragflow +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/service-knowledge@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/knowledge-ragflow/package.json b/packages/plugins/knowledge-ragflow/package.json index d5758c8bcb..8590295b3b 100644 --- a/packages/plugins/knowledge-ragflow/package.json +++ b/packages/plugins/knowledge-ragflow/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-ragflow", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "RAGFlow knowledge adapter for ObjectStack — production-grade RAG via the Apache 2.0 RAGFlow REST API.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-approvals/CHANGELOG.md b/packages/plugins/plugin-approvals/CHANGELOG.md index 71068a9a16..32f7287659 100644 --- a/packages/plugins/plugin-approvals/CHANGELOG.md +++ b/packages/plugins/plugin-approvals/CHANGELOG.md @@ -1,5 +1,50 @@ # @objectstack/plugin-approvals +## 10.0.0 + +### Patch Changes + +- e16f2a8: **BREAKING:** the system object `sys_department` is renamed to `sys_business_unit` + — object + member table (`sys_department_member` → `sys_business_unit_member`), + fields, and i18n — with **no compatibility alias**. Any deployment holding + `sys_department` rows, or metadata that references the object by name (lookups, + list views, queries, sharing/approval scopes), must migrate to `sys_business_unit`. + A renamed shipped system object is a breaking change to the platform's public + data surface, so this lands as a **major**. Verified per ADR-0059's pre-publish + hotcrm gate: no published downstream consumer references the old name. + + ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH + (`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department` + → `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned + `sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into + `sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are + delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to + owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also + fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads + `where`) — normalized `filter`→`where` in the engine. + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/metadata-core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-approvals/package.json b/packages/plugins/plugin-approvals/package.json index 9bc8e638b7..ca34198ab9 100644 --- a/packages/plugins/plugin-approvals/package.json +++ b/packages/plugins/plugin-approvals/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-approvals", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Multi-step approval engine for ObjectStack — sys_approval_process + sys_approval_request + sys_approval_action + IApprovalService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-audit/CHANGELOG.md b/packages/plugins/plugin-audit/CHANGELOG.md index 161ceaed0f..5f09b48a08 100644 --- a/packages/plugins/plugin-audit/CHANGELOG.md +++ b/packages/plugins/plugin-audit/CHANGELOG.md @@ -1,5 +1,28 @@ # @objectstack/plugin-audit +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-audit/package.json b/packages/plugins/plugin-audit/package.json index 01d046eb09..598ce0e8e2 100644 --- a/packages/plugins/plugin-audit/package.json +++ b/packages/plugins/plugin-audit/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-audit", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Audit Plugin for ObjectStack — System audit log object and audit trail", "main": "dist/index.js", diff --git a/packages/plugins/plugin-auth/CHANGELOG.md b/packages/plugins/plugin-auth/CHANGELOG.md index a8a90abf44..f23e37eb86 100644 --- a/packages/plugins/plugin-auth/CHANGELOG.md +++ b/packages/plugins/plugin-auth/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-auth/package.json b/packages/plugins/plugin-auth/package.json index 5c92e51837..f40b23e1ff 100644 --- a/packages/plugins/plugin-auth/package.json +++ b/packages/plugins/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-auth", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Authentication & Identity Plugin for ObjectStack", "main": "dist/index.js", diff --git a/packages/plugins/plugin-dev/CHANGELOG.md b/packages/plugins/plugin-dev/CHANGELOG.md index 3756de1715..2d647c02f2 100644 --- a/packages/plugins/plugin-dev/CHANGELOG.md +++ b/packages/plugins/plugin-dev/CHANGELOG.md @@ -1,5 +1,40 @@ # @objectstack/plugin-dev +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [a581385] +- Updated dependencies [47d978a] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [3754f80] +- Updated dependencies [feead7e] +- Updated dependencies [00c32f2] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/objectql@10.0.0 + - @objectstack/rest@10.0.0 + - @objectstack/plugin-security@10.0.0 + - @objectstack/runtime@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/plugin-hono-server@10.0.0 + - @objectstack/account@10.0.0 + - @objectstack/setup@10.0.0 + - @objectstack/studio@10.0.0 + - @objectstack/driver-memory@10.0.0 + - @objectstack/plugin-auth@10.0.0 + - @objectstack/plugin-org-scoping@10.0.0 + - @objectstack/service-i18n@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-dev/package.json b/packages/plugins/plugin-dev/package.json index b7212adfde..a71b0f1de4 100644 --- a/packages/plugins/plugin-dev/package.json +++ b/packages/plugins/plugin-dev/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-dev", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Development Mode Plugin for ObjectStack — auto-enables all services with in-memory implementations", "main": "dist/index.js", diff --git a/packages/plugins/plugin-email/CHANGELOG.md b/packages/plugins/plugin-email/CHANGELOG.md index df4cae2870..2d303bd388 100644 --- a/packages/plugins/plugin-email/CHANGELOG.md +++ b/packages/plugins/plugin-email/CHANGELOG.md @@ -1,5 +1,30 @@ # @objectstack/plugin-email +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-email/package.json b/packages/plugins/plugin-email/package.json index db1d404283..2cff557036 100644 --- a/packages/plugins/plugin-email/package.json +++ b/packages/plugins/plugin-email/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-email", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Email service plugin for ObjectStack — IEmailService + transport-pluggable outbound delivery with sys_email persistence.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-hono-server/CHANGELOG.md b/packages/plugins/plugin-hono-server/CHANGELOG.md index 332b549e07..23a4d1df9c 100644 --- a/packages/plugins/plugin-hono-server/CHANGELOG.md +++ b/packages/plugins/plugin-hono-server/CHANGELOG.md @@ -1,5 +1,34 @@ # @objectstack/plugin-hono-server +## 10.0.0 + +### Minor Changes + +- 00c32f2: Expose resolved regional defaults to every authenticated user. + + Adds `GET /api/v1/auth/me/localization` returning the request tenant's resolved + `{ currency, locale, timezone }` from the ExecutionContext (ADR-0053). The + `localization` SETTINGS are gated to `setup.access`, but the resolved defaults + are needed by every renderer to format currency/dates/numbers — so they are + surfaced here without that gate. Enables a client to format a currency field + in the tenant's default currency when the field omits its own. + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-hono-server/package.json b/packages/plugins/plugin-hono-server/package.json index 720b2c0362..4787c49fa5 100644 --- a/packages/plugins/plugin-hono-server/package.json +++ b/packages/plugins/plugin-hono-server/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-hono-server", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Standard Hono Server Adapter for ObjectStack Runtime", "main": "dist/index.js", diff --git a/packages/plugins/plugin-msw/CHANGELOG.md b/packages/plugins/plugin-msw/CHANGELOG.md index a47de04505..9c62518d02 100644 --- a/packages/plugins/plugin-msw/CHANGELOG.md +++ b/packages/plugins/plugin-msw/CHANGELOG.md @@ -1,5 +1,26 @@ # @objectstack/plugin-msw +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [47d978a] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/objectql@10.0.0 + - @objectstack/runtime@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-msw/package.json b/packages/plugins/plugin-msw/package.json index a8c18fa020..566745d11b 100644 --- a/packages/plugins/plugin-msw/package.json +++ b/packages/plugins/plugin-msw/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-msw", - "version": "9.11.0", + "version": "10.0.0", "description": "MSW (Mock Service Worker) Plugin for ObjectStack Runtime", "license": "Apache-2.0", "main": "dist/index.js", diff --git a/packages/plugins/plugin-org-scoping/CHANGELOG.md b/packages/plugins/plugin-org-scoping/CHANGELOG.md index acfc6229c8..4c29c32634 100644 --- a/packages/plugins/plugin-org-scoping/CHANGELOG.md +++ b/packages/plugins/plugin-org-scoping/CHANGELOG.md @@ -1,5 +1,28 @@ # @objectstack/plugin-org-scoping +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-org-scoping/package.json b/packages/plugins/plugin-org-scoping/package.json index fb7653326d..1b4016f741 100644 --- a/packages/plugins/plugin-org-scoping/package.json +++ b/packages/plugins/plugin-org-scoping/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-org-scoping", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Organization-Scoping Plugin for ObjectStack — row-level Organization isolation, per-org seed replay, default-org bootstrap", "main": "dist/index.js", diff --git a/packages/plugins/plugin-reports/CHANGELOG.md b/packages/plugins/plugin-reports/CHANGELOG.md index 612f7627c9..41d59916f2 100644 --- a/packages/plugins/plugin-reports/CHANGELOG.md +++ b/packages/plugins/plugin-reports/CHANGELOG.md @@ -1,5 +1,28 @@ # @objectstack/plugin-reports +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-reports/package.json b/packages/plugins/plugin-reports/package.json index e1588c4e95..9db0285c69 100644 --- a/packages/plugins/plugin-reports/package.json +++ b/packages/plugins/plugin-reports/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-reports", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Saved reports + scheduled email digests for ObjectStack — sys_saved_report + sys_report_schedule + IReportService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-security/CHANGELOG.md b/packages/plugins/plugin-security/CHANGELOG.md index 04013b01ca..fa19a9dd1c 100644 --- a/packages/plugins/plugin-security/CHANGELOG.md +++ b/packages/plugins/plugin-security/CHANGELOG.md @@ -1,5 +1,71 @@ # @objectstack/plugin-security +## 10.0.0 + +### Minor Changes + +- e16f2a8: **BREAKING:** the system object `sys_department` is renamed to `sys_business_unit` + — object + member table (`sys_department_member` → `sys_business_unit_member`), + fields, and i18n — with **no compatibility alias**. Any deployment holding + `sys_department` rows, or metadata that references the object by name (lookups, + list views, queries, sharing/approval scopes), must migrate to `sys_business_unit`. + A renamed shipped system object is a breaking change to the platform's public + data surface, so this lands as a **major**. Verified per ADR-0059's pre-publish + hotcrm gate: no published downstream consumer references the old name. + + ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH + (`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department` + → `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned + `sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into + `sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are + delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to + owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also + fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads + `where`) — normalized `filter`→`where` in the engine. + +- cfd86ce: ADR-0058 — expression & predicate surface unification. Adds the canonical + CEL→FilterCondition pushdown compiler in `@objectstack/formula` + (`compileCelToFilter`, `isPushdownableCel`, `lowerCelAst`) plus an in-memory + `matchesFilterCondition` backend (one AST, three backends). `plugin-security` + (RLS `using`, via a SQL bridge) and `plugin-sharing` (`celToFilter`) cut over to + it, retiring the bespoke regex/field-equality front-ends. Compound sharing + conditions now compile and enforce end-to-end (closes #1887). The RLS `check` + clause is now enforced on the write post-image (insert/by-id update), fail-closed. + Non-pushdownable predicates (arithmetic, functions, subqueries, cross-object) are + an authoring compile error, never silently dropped (ADR-0049/0055). +- 6ca20b3: ADR-0058 D1 follow-through — RLS predicates are now canonical CEL. Migrated every + seeded RLS `using`/`check` (default permission sets, showcase, and the + `RLS.ownerPolicy`/`tenantPolicy`/`allowAllPolicy` helper factories) from the + legacy SQL-ish form (`=`, `IN (...)`) to pure CEL (`==`, `in`), so authors and AI + learn ONE expression language. The `sqlPredicateToCel` bridge is retained as a + DEPRECATED transitional shim: a stored SQL-style predicate still compiles (no + silent deny on legacy data) but emits a deprecation warn; canonical CEL passes + through as a no-op. No runtime behavior change — CEL and the old SQL form compile + to the identical FilterCondition. + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Minor Changes diff --git a/packages/plugins/plugin-security/package.json b/packages/plugins/plugin-security/package.json index fa22142fdd..93fc1d43a1 100644 --- a/packages/plugins/plugin-security/package.json +++ b/packages/plugins/plugin-security/package.json @@ -1,8 +1,8 @@ { "name": "@objectstack/plugin-security", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", - "description": "Security Plugin for ObjectStack \u2014 RBAC, RLS, and Field-Level Security Runtime", + "description": "Security Plugin for ObjectStack — RBAC, RLS, and Field-Level Security Runtime", "main": "dist/index.js", "types": "dist/index.d.ts", "exports": { diff --git a/packages/plugins/plugin-sharing/CHANGELOG.md b/packages/plugins/plugin-sharing/CHANGELOG.md index 696c4889ce..323b5d9184 100644 --- a/packages/plugins/plugin-sharing/CHANGELOG.md +++ b/packages/plugins/plugin-sharing/CHANGELOG.md @@ -1,5 +1,80 @@ # @objectstack/plugin-sharing +## 10.0.0 + +### Major Changes + +- e16f2a8: **BREAKING:** the system object `sys_department` is renamed to `sys_business_unit` + — object + member table (`sys_department_member` → `sys_business_unit_member`), + fields, and i18n — with **no compatibility alias**. Any deployment holding + `sys_department` rows, or metadata that references the object by name (lookups, + list views, queries, sharing/approval scopes), must migrate to `sys_business_unit`. + A renamed shipped system object is a breaking change to the platform's public + data surface, so this lands as a **major**. Verified per ADR-0059's pre-publish + hotcrm gate: no published downstream consumer references the old name. + + ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH + (`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department` + → `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned + `sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into + `sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are + delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to + owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also + fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads + `where`) — normalized `filter`→`where` in the engine. + +### Minor Changes + +- 30c0313: Add `sys_user.primary_business_unit_id` projection (ADR-0057 addendum D12). + + Adds a denormalised `primary_business_unit_id` lookup to `sys_user`, maintained + by plugin-sharing as a projection of `sys_business_unit_member.is_primary` + (insert/update/delete hooks + a boot-time backfill). This makes "pick people by + business unit" — the Dataverse _filtered lookup_ / ServiceNow _reference + qualifier_ interaction — expressible as a plain `where: { primary_business_unit_id: X }` + (and thus as a `lookupFilters` picker filter) with **zero** query-engine change, + without traversing the membership junction. `sys_business_unit_member` remains + the effective-dated, matrix-friendly source of truth; the new column is a + maintained projection, not a second source. Home is plugin-sharing (always + loaded, owns the BU graph) rather than plugin-org-scoping, so the projection + works in single-tenant deployments too. Picker filtering by BU is therefore an + **open** (non-enterprise) capability — only hierarchy _rollup_ stays paid. + +- cfd86ce: ADR-0058 — expression & predicate surface unification. Adds the canonical + CEL→FilterCondition pushdown compiler in `@objectstack/formula` + (`compileCelToFilter`, `isPushdownableCel`, `lowerCelAst`) plus an in-memory + `matchesFilterCondition` backend (one AST, three backends). `plugin-security` + (RLS `using`, via a SQL bridge) and `plugin-sharing` (`celToFilter`) cut over to + it, retiring the bespoke regex/field-equality front-ends. Compound sharing + conditions now compile and enforce end-to-end (closes #1887). The RLS `check` + clause is now enforced on the write post-image (insert/by-id update), fail-closed. + Non-pushdownable predicates (arithmetic, functions, subqueries, cross-object) are + an authoring compile error, never silently dropped (ADR-0049/0055). + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/objectql@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Minor Changes diff --git a/packages/plugins/plugin-sharing/package.json b/packages/plugins/plugin-sharing/package.json index c0bd9b6c1b..65e9f2508b 100644 --- a/packages/plugins/plugin-sharing/package.json +++ b/packages/plugins/plugin-sharing/package.json @@ -1,8 +1,8 @@ { "name": "@objectstack/plugin-sharing", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", - "description": "Record-level sharing for ObjectStack \u2014 sys_record_share + middleware that enforces sharingModel + ISharingService.", + "description": "Record-level sharing for ObjectStack — sys_record_share + middleware that enforces sharingModel + ISharingService.", "main": "dist/index.js", "types": "dist/index.d.ts", "exports": { diff --git a/packages/plugins/plugin-webhooks/CHANGELOG.md b/packages/plugins/plugin-webhooks/CHANGELOG.md index f9d0f9c31b..69a2cb19fc 100644 --- a/packages/plugins/plugin-webhooks/CHANGELOG.md +++ b/packages/plugins/plugin-webhooks/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/plugin-webhooks +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/service-messaging@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/plugins/plugin-webhooks/package.json b/packages/plugins/plugin-webhooks/package.json index 999cf7cfe3..c9b46e399f 100644 --- a/packages/plugins/plugin-webhooks/package.json +++ b/packages/plugins/plugin-webhooks/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-webhooks", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Persistent, cluster-aware webhook dispatcher. Durable outbox + per-partition cluster.lock for exactly-once-ish delivery across nodes. See content/docs/concepts/webhook-delivery.mdx.", "type": "module", diff --git a/packages/rest/CHANGELOG.md b/packages/rest/CHANGELOG.md index 08977b9477..2461f4617c 100644 --- a/packages/rest/CHANGELOG.md +++ b/packages/rest/CHANGELOG.md @@ -1,5 +1,56 @@ # @objectstack/rest +## 10.0.0 + +### Minor Changes + +- 2256e93: Setup nav: gate Organizations/Invitations on multi-org; enforce `requiresService` server-side (ADR-0057 addendum D10). + + `rest-server`'s `filterAppForUser` now honours `NavigationItem.requiresService` — entries + whose named kernel service isn't registered are dropped from the served app metadata + (fail-open when the kernel can't be probed; previously the field was a frontend-only hint). + Applies `requiresService: 'org-scoping'` to the Setup app's Organizations and Invitations + entries, so they surface only in multi-org (multi-tenant) deployments and disappear in + single-tenant. Business Units is intentionally left ungated — it is open per the open/paid + seam + D12 ("pick people by BU"); only the hierarchy rollup capability is enterprise. + +- 220ce5b: Resolve the tenant default currency onto ExecutionContext. + + Adds `ExecutionContext.currency` (ISO 4217) and resolves it from the + `localization.currency` setting alongside `timezone`/`locale` — in both the + runtime `resolveExecutionContext` and the REST mirror. This is the foundation + for the documented "applied when a currency field omits its own" fallback: the + tenant default is now carried on every request context, so analytics enrichment, + formatters, and renderers can resolve a measure/field currency down to the org + default instead of hard-coding it. Undefined when no tenant default is + configured (consumers then render a plain number). + +### Patch Changes + +- 3754f80: Fix: the Setup-nav capability gate (`requiresService`, ADR-0057 D10) was a no-op on the single-item app-meta path. + + `GET /meta/app/:name` returns a metadata envelope `{ type, name, item: , ... }`, but + `filterAppForUser` was applied to the envelope — whose `.navigation` is undefined — so it + returned it untouched, silently bypassing BOTH the `requiredPermissions` gate and the D10 + `requiresService` gate. Organizations/Invitations therefore still appeared in the Setup app + even in single-tenant deployments. `filterAppForUser` and `resolveRegisteredServices` now + unwrap the envelope (the list path already passed the raw app). Verified against a live + `os dev`: single-tenant hides Organizations/Invitations; multi-tenant shows them. + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/service-package@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/rest/package.json b/packages/rest/package.json index 80ddca526c..4f94a006a2 100644 --- a/packages/rest/package.json +++ b/packages/rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/rest", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "ObjectStack REST API Server - automatic REST endpoint generation from protocol", "type": "module", diff --git a/packages/runtime/CHANGELOG.md b/packages/runtime/CHANGELOG.md index 322dfc26f5..653c650767 100644 --- a/packages/runtime/CHANGELOG.md +++ b/packages/runtime/CHANGELOG.md @@ -1,5 +1,90 @@ # @objectstack/runtime +## 10.0.0 + +### Minor Changes + +- e16f2a8: **BREAKING:** the system object `sys_department` is renamed to `sys_business_unit` + — object + member table (`sys_department_member` → `sys_business_unit_member`), + fields, and i18n — with **no compatibility alias**. Any deployment holding + `sys_department` rows, or metadata that references the object by name (lookups, + list views, queries, sharing/approval scopes), must migrate to `sys_business_unit`. + A renamed shipped system object is a breaking change to the platform's public + data surface, so this lands as a **major**. Verified per ADR-0059's pre-publish + hotcrm gate: no published downstream consumer references the old name. + + ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH + (`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department` + → `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned + `sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into + `sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are + delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to + owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also + fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads + `where`) — normalized `filter`→`where` in the engine. + +- 220ce5b: Resolve the tenant default currency onto ExecutionContext. + + Adds `ExecutionContext.currency` (ISO 4217) and resolves it from the + `localization.currency` setting alongside `timezone`/`locale` — in both the + runtime `resolveExecutionContext` and the REST mirror. This is the foundation + for the documented "applied when a currency field omits its own" fallback: the + tenant default is now carried on every request context, so analytics enrichment, + formatters, and renderers can resolve a measure/field currency down to the org + default instead of hard-coding it. Undefined when no tenant default is + configured (consumers then render a plain number). + +### Patch Changes + +- 47d978a: Fix: the artifact-serve path now honors an app-declared default permission-set + profile (`isProfile: true, isDefault: true`) under `objectstack dev`/`serve`/`start`. + + `createStandaloneStack` (the boot path used when serving a compiled + `dist/objectstack.json` with no host `objectstack.config.ts`) surfaced + `objects`/`requires`/`manifest` from the artifact bundle but dropped + `permissions[]` and `roles[]`. As a result the CLI's + `appDefaultProfileName(config.permissions)` saw `undefined` and the SecurityPlugin + fell back to the built-in owner-only `member_default` — so an app whose default + profile carries e.g. `readScope: 'unit_and_below'` (ADR-0056 D7 / ADR-0057 D1) + was silently ignored. The config-load path was unaffected because the app's + `permissions` survived via the original stack object. + + `createStandaloneStack` now surfaces `permissions[]` and `roles[]` from the + artifact bundle, mirroring the existing `objects`/`requires`/`manifest` handling, + so the artifact-serve path applies the app default profile exactly like the + config-load path. + +- Updated dependencies [d7ff626] +- Updated dependencies [92db3e5] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [3754f80] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/driver-sql@10.0.0 + - @objectstack/objectql@10.0.0 + - @objectstack/rest@10.0.0 + - @objectstack/plugin-security@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/metadata@10.0.0 + - @objectstack/observability@10.0.0 + - @objectstack/driver-memory@10.0.0 + - @objectstack/driver-sqlite-wasm@10.0.0 + - @objectstack/plugin-auth@10.0.0 + - @objectstack/plugin-org-scoping@10.0.0 + - @objectstack/service-cluster@10.0.0 + - @objectstack/service-i18n@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/runtime/package.json b/packages/runtime/package.json index c84c991b51..956ffa975f 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/runtime", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "ObjectStack Core Runtime & Query Engine", "type": "module", diff --git a/packages/services/service-ai/CHANGELOG.md b/packages/services/service-ai/CHANGELOG.md index b4ed7a074b..893a5a9f71 100644 --- a/packages/services/service-ai/CHANGELOG.md +++ b/packages/services/service-ai/CHANGELOG.md @@ -1,5 +1,29 @@ # @objectstack/service-ai +## 10.0.0 + +### Minor Changes + +- be07ce7: Rename the built-in data agent `data_chat` → `ask` (Path A: friendly console URL == real id). Back-compat preserved via a new process-wide alias registry: `AgentRuntime.loadAgent` normalizes legacy names, so `/agents/data_chat/chat` and persisted `agent_id='data_chat'` keep resolving. `registerAgentAlias()` is exported so other packages register their own renames (cloud AI Studio: `metadata_assistant`→`build`). The plugin prunes the stale legacy agent record on upgrade so the catalog isn't doubled. + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-ai/package.json b/packages/services/service-ai/package.json index a42c43658d..616a89a6cf 100644 --- a/packages/services/service-ai/package.json +++ b/packages/services/service-ai/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-ai", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "AI Service for ObjectStack — implements IAIService with LLM adapter layer, conversation management, tool registry, and REST/SSE routes", "type": "module", diff --git a/packages/services/service-analytics/CHANGELOG.md b/packages/services/service-analytics/CHANGELOG.md index 32b1171136..d2aeebecaf 100644 --- a/packages/services/service-analytics/CHANGELOG.md +++ b/packages/services/service-analytics/CHANGELOG.md @@ -1,5 +1,41 @@ # Changelog — @objectstack/service-analytics +## 10.0.0 + +### Minor Changes + +- 70609af: Resolve a monetary measure's display currency via the field→tenant chain. + + A dataset measure-currency now resolves through: explicit measure `currency` → + source-field `currencyConfig.defaultCurrency` → tenant default (`ctx.currency`). + A measure is monetary iff it declares a currency or aggregates a `currency`-type + field, so count/avg-of-number measures never receive a code. Wires a + `measureCurrency` field-metadata resolver from the data engine's object schema. + +- 3187952: Dataset analytics enrich **dimension** result fields with their display label (so report/dashboard table headers read "Status" instead of the raw field name) and expose drill-through metadata on the dataset query result: the base `object`, a drillable dimension→field map, and a parallel `drillRawRows` array of each row's raw grouped values (captured before label resolution). This lets a host drill a grouped bucket back to its underlying records with an exact-match filter built from the stored value, not the display label. Date dimensions are excluded (a humanized bucket can't be exact-matched). +- a581385: Propagate a dataset measure's declared currency to the analytics result field. + + Adds an optional `DatasetMeasure.currency` (ISO 4217) on the semantic layer and + carries it onto each measure result field alongside `label`/`format`, so a + currency-aware client (Intl symbol) can render `¥1,234` / `$616,000` from a real + currency code instead of a plain number or a `$` baked into `format`. Additive + and optional — existing datasets are unaffected. + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-analytics/package.json b/packages/services/service-analytics/package.json index 02a3c3c139..fbb912b484 100644 --- a/packages/services/service-analytics/package.json +++ b/packages/services/service-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-analytics", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Analytics Service for ObjectStack — implements IAnalyticsService with multi-driver strategy pattern (NativeSQL, ObjectQL, InMemory)", "type": "module", diff --git a/packages/services/service-automation/CHANGELOG.md b/packages/services/service-automation/CHANGELOG.md index ab53043a6f..413b283596 100644 --- a/packages/services/service-automation/CHANGELOG.md +++ b/packages/services/service-automation/CHANGELOG.md @@ -1,5 +1,24 @@ # @objectstack/service-automation +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/formula@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-automation/package.json b/packages/services/service-automation/package.json index 70f221c225..bd0b006220 100644 --- a/packages/services/service-automation/package.json +++ b/packages/services/service-automation/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-automation", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Automation Service for ObjectStack — implements IAutomationService with plugin-based DAG flow execution engine", "type": "module", diff --git a/packages/services/service-cache/CHANGELOG.md b/packages/services/service-cache/CHANGELOG.md index 3b30e52b81..151305a0cb 100644 --- a/packages/services/service-cache/CHANGELOG.md +++ b/packages/services/service-cache/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/service-cache +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/observability@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-cache/package.json b/packages/services/service-cache/package.json index 80ba1cb066..ae4a292cb8 100644 --- a/packages/services/service-cache/package.json +++ b/packages/services/service-cache/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cache", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Cache Service for ObjectStack — implements ICacheService with in-memory and Redis adapters", "type": "module", diff --git a/packages/services/service-cluster-redis/CHANGELOG.md b/packages/services/service-cluster-redis/CHANGELOG.md index 9c77a8cd5c..05f696dfc0 100644 --- a/packages/services/service-cluster-redis/CHANGELOG.md +++ b/packages/services/service-cluster-redis/CHANGELOG.md @@ -1,5 +1,21 @@ # @objectstack/service-cluster-redis +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/service-cluster@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-cluster-redis/package.json b/packages/services/service-cluster-redis/package.json index 5efa0aacba..dbaaa72a28 100644 --- a/packages/services/service-cluster-redis/package.json +++ b/packages/services/service-cluster-redis/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster-redis", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Redis cluster driver for ObjectStack — implements IPubSub/ILock/IKV/ICounter against Redis using ioredis.", "type": "module", diff --git a/packages/services/service-cluster/CHANGELOG.md b/packages/services/service-cluster/CHANGELOG.md index 85f5e1f9f2..6a58bf5cd9 100644 --- a/packages/services/service-cluster/CHANGELOG.md +++ b/packages/services/service-cluster/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/service-cluster +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-cluster/package.json b/packages/services/service-cluster/package.json index 8b29180a00..8580f237e2 100644 --- a/packages/services/service-cluster/package.json +++ b/packages/services/service-cluster/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Cluster Service for ObjectStack — pluggable PubSub/Lock/KV/Counter primitives. Memory driver included; postgres/redis drivers ship separately.", "type": "module", diff --git a/packages/services/service-datasource/CHANGELOG.md b/packages/services/service-datasource/CHANGELOG.md index 4f68d28f35..720893659b 100644 --- a/packages/services/service-datasource/CHANGELOG.md +++ b/packages/services/service-datasource/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/service-external-datasource +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-datasource/package.json b/packages/services/service-datasource/package.json index 9243eb9aba..29b8f8dad1 100644 --- a/packages/services/service-datasource/package.json +++ b/packages/services/service-datasource/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-datasource", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "The datasource service (ADR-0015): external-table federation (introspect/draft/import/validate) + runtime UI datasource lifecycle (list/test/create/update/remove + REST routes). Open-source mechanism; the tier line falls on which ICryptoProvider / driver factory a host injects.", "type": "module", diff --git a/packages/services/service-i18n/CHANGELOG.md b/packages/services/service-i18n/CHANGELOG.md index 991be25951..12d8336ace 100644 --- a/packages/services/service-i18n/CHANGELOG.md +++ b/packages/services/service-i18n/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/service-i18n +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-i18n/package.json b/packages/services/service-i18n/package.json index 8cd8953c24..fada925fdb 100644 --- a/packages/services/service-i18n/package.json +++ b/packages/services/service-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-i18n", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "I18n Service for ObjectStack — implements II18nService with file-based locale loading", "type": "module", diff --git a/packages/services/service-job/CHANGELOG.md b/packages/services/service-job/CHANGELOG.md index 40eb02aa3d..153aba5ed9 100644 --- a/packages/services/service-job/CHANGELOG.md +++ b/packages/services/service-job/CHANGELOG.md @@ -1,5 +1,28 @@ # @objectstack/service-job +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-job/package.json b/packages/services/service-job/package.json index aa5323ff70..d2f9e13864 100644 --- a/packages/services/service-job/package.json +++ b/packages/services/service-job/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-job", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Job Service for ObjectStack — implements IJobService with setInterval and cron scheduling", "type": "module", diff --git a/packages/services/service-knowledge/CHANGELOG.md b/packages/services/service-knowledge/CHANGELOG.md index 5b34f4531c..c65db906e9 100644 --- a/packages/services/service-knowledge/CHANGELOG.md +++ b/packages/services/service-knowledge/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/service-knowledge +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-knowledge/package.json b/packages/services/service-knowledge/package.json index ce58bccfa6..809c916ba8 100644 --- a/packages/services/service-knowledge/package.json +++ b/packages/services/service-knowledge/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-knowledge", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Knowledge Service for ObjectStack — orchestrator implementing IKnowledgeService over pluggable IKnowledgeAdapter backends (RAGFlow, LlamaIndex, Dify, in-memory).", "type": "module", diff --git a/packages/services/service-messaging/CHANGELOG.md b/packages/services/service-messaging/CHANGELOG.md index 3cdae0571f..74f74b2de6 100644 --- a/packages/services/service-messaging/CHANGELOG.md +++ b/packages/services/service-messaging/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/service-messaging +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-messaging/package.json b/packages/services/service-messaging/package.json index 563bbc5756..ae0468855f 100644 --- a/packages/services/service-messaging/package.json +++ b/packages/services/service-messaging/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-messaging", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Messaging Service for ObjectStack — outbound notification dispatch (ADR-0012). Ships the MessagingChannel registry, emit() fan-out, and the always-on inbox channel; other channels (email/webhook/push/IM) plug in.", "type": "module", diff --git a/packages/services/service-package/CHANGELOG.md b/packages/services/service-package/CHANGELOG.md index 90b8525fde..30e7993608 100644 --- a/packages/services/service-package/CHANGELOG.md +++ b/packages/services/service-package/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/service-package +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-package/package.json b/packages/services/service-package/package.json index ca4c375c54..ff10292bd6 100644 --- a/packages/services/service-package/package.json +++ b/packages/services/service-package/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-package", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Package management service for ObjectStack — publish, install, and manage packages", "type": "module", diff --git a/packages/services/service-queue/CHANGELOG.md b/packages/services/service-queue/CHANGELOG.md index 46bb87100c..aa276e0a5e 100644 --- a/packages/services/service-queue/CHANGELOG.md +++ b/packages/services/service-queue/CHANGELOG.md @@ -1,5 +1,28 @@ # @objectstack/service-queue +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-queue/package.json b/packages/services/service-queue/package.json index 1607c9fdad..49357a3314 100644 --- a/packages/services/service-queue/package.json +++ b/packages/services/service-queue/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-queue", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Queue Service for ObjectStack — implements IQueueService with in-memory and durable DB-backed (sys_job_queue) adapters", "type": "module", diff --git a/packages/services/service-realtime/CHANGELOG.md b/packages/services/service-realtime/CHANGELOG.md index 3d4852ca3d..355e0d20da 100644 --- a/packages/services/service-realtime/CHANGELOG.md +++ b/packages/services/service-realtime/CHANGELOG.md @@ -1,5 +1,28 @@ # @objectstack/service-realtime +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-realtime/package.json b/packages/services/service-realtime/package.json index c00b730f18..23ddcbfa71 100644 --- a/packages/services/service-realtime/package.json +++ b/packages/services/service-realtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-realtime", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Realtime Service for ObjectStack — implements IRealtimeService with WebSocket and in-memory pub/sub", "type": "module", diff --git a/packages/services/service-settings/CHANGELOG.md b/packages/services/service-settings/CHANGELOG.md index df01364275..71f6ad9040 100644 --- a/packages/services/service-settings/CHANGELOG.md +++ b/packages/services/service-settings/CHANGELOG.md @@ -1,5 +1,29 @@ # @objectstack/service-settings +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/types@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-settings/package.json b/packages/services/service-settings/package.json index 3fb7991327..a7a41f2632 100644 --- a/packages/services/service-settings/package.json +++ b/packages/services/service-settings/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-settings", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Settings service for ObjectStack — manifest registry + K/V resolver (OS_* env > Tenant > User > Default) + REST routes. See ADR-0007.", "type": "module", diff --git a/packages/services/service-storage/CHANGELOG.md b/packages/services/service-storage/CHANGELOG.md index cf6cf80e76..c01accd6c9 100644 --- a/packages/services/service-storage/CHANGELOG.md +++ b/packages/services/service-storage/CHANGELOG.md @@ -1,5 +1,29 @@ # @objectstack/service-storage +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [7108ff3] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [61ed5c7] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] +- Updated dependencies [47d978a] + - @objectstack/spec@10.0.0 + - @objectstack/platform-objects@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/observability@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/services/service-storage/package.json b/packages/services/service-storage/package.json index 966547c2d9..517a8dd4ba 100644 --- a/packages/services/service-storage/package.json +++ b/packages/services/service-storage/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-storage", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Storage Service for ObjectStack — implements IStorageService with local filesystem and S3 adapter skeleton", "type": "module", diff --git a/packages/spec/CHANGELOG.md b/packages/spec/CHANGELOG.md index cc63659a50..944dafd292 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -1,5 +1,122 @@ # @objectstack/spec +## 10.0.0 + +### Minor Changes + +- d7ff626: spec(action): a `script` action must declare an executable binding — reject at + author/compile time when it has neither an inline `body` nor a `target`. + + A `type: 'script'` action with no `body` and no `target` registers no runtime + handler: `AppPlugin` skips it, and invoking it falls through to the wildcard + lookup and fails with `Action '' on object '*' not found` (the #2169 + "Mark Done" bug). The shape was schema-valid and passed coverage tests, so the + break only surfaced when a user clicked the button. + + `ActionSchema` now enforces the invariant via `superRefine`: `script` requires + `body || target` (mirroring the existing "non-script types require `target`" + rule). `body`-bound actions are auto-registered by the runtime; `target`-bound + actions name a function wired imperatively (e.g. via `onEnable`). This only + rejects configurations that were already non-functional at runtime — verified + against the full monorepo build (every shipped bundle still compiles). + +- e16f2a8: **BREAKING:** the system object `sys_department` is renamed to `sys_business_unit` + — object + member table (`sys_department_member` → `sys_business_unit_member`), + fields, and i18n — with **no compatibility alias**. Any deployment holding + `sys_department` rows, or metadata that references the object by name (lookups, + list views, queries, sharing/approval scopes), must migrate to `sys_business_unit`. + A renamed shipped system object is a breaking change to the platform's public + data surface, so this lands as a **major**. Verified per ADR-0059's pre-publish + hotcrm gate: no published downstream consumer references the old name. + + ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH + (`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department` + → `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned + `sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into + `sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are + delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to + owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also + fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads + `where`) — normalized `filter`→`where` in the engine. + +- a581385: Propagate a dataset measure's declared currency to the analytics result field. + + Adds an optional `DatasetMeasure.currency` (ISO 4217) on the semantic layer and + carries it onto each measure result field alongside `label`/`format`, so a + currency-aware client (Intl symbol) can render `¥1,234` / `$616,000` from a real + currency code instead of a plain number or a `$` baked into `format`. Additive + and optional — existing datasets are unaffected. + +- 220ce5b: Resolve the tenant default currency onto ExecutionContext. + + Adds `ExecutionContext.currency` (ISO 4217) and resolves it from the + `localization.currency` setting alongside `timezone`/`locale` — in both the + runtime `resolveExecutionContext` and the REST mirror. This is the foundation + for the documented "applied when a currency field omits its own" fallback: the + tenant default is now carried on every request context, so analytics enrichment, + formatters, and renderers can resolve a measure/field currency down to the org + default instead of hard-coding it. Undefined when no tenant default is + configured (consumers then render a plain number). + +- 6ca20b3: ADR-0058 D1 follow-through — RLS predicates are now canonical CEL. Migrated every + seeded RLS `using`/`check` (default permission sets, showcase, and the + `RLS.ownerPolicy`/`tenantPolicy`/`allowAllPolicy` helper factories) from the + legacy SQL-ish form (`=`, `IN (...)`) to pure CEL (`==`, `in`), so authors and AI + learn ONE expression language. The `sqlPredicateToCel` bridge is retained as a + DEPRECATED transitional shim: a stored SQL-style predicate still compiles (no + silent deny on legacy data) but emits a deprecation warn; canonical CEL passes + through as a no-op. No runtime behavior change — CEL and the old SQL form compile + to the identical FilterCondition. +- 5f875fe: spec: add `defineX` factories for the remaining 16 writable domains and the 6 + missing `XInput` aliases — one consistent, type-safe authoring entry per domain + (#2035). + + New factories: `defineDatasource`, `defineConnector`, `definePolicy`, + `defineSharingRule`, `defineRole`, `definePermissionSet`, + `defineEmailTemplateDefinition`, `defineReport`, `defineWebhook`, + `defineObjectExtension`, `defineCube`, `defineMapping`, `defineTheme`, + `defineTranslationBundle`, `definePage`, `defineAction`. Each mirrors the 19 + existing factories (`XSchema.parse(z.input<…>)`): input-shape ergonomics + + authoring-time validation. Because a factory is a _value_ import, a broken + import hard-errors instead of silently degrading to `any` (the #2023 failure + mode), and errors surface at `.parse()` time with field-level messages. + + Also adds the previously-missing input aliases `PolicyInput`, `CubeInput`, + `MappingInput`, `ThemeInput`, `TranslationBundleInput`, `PageInput`. + + Purely additive: no existing exports change. + +### Patch Changes + +- 2a1b16b: fix(ADR-0015): honor `external.remoteName` / `external.remoteSchema` on the federation read path. + + The query path previously resolved an external object's physical table from the + object name, ignoring its `external` binding — so a federated object bound to a + differently-named remote table failed with `no such table`, and ADR-0015's own + `wh_order` → `mart.fact_orders` example was unqueryable. The SQL driver now + resolves the remote table (`remoteName`, plus `remoteSchema` via `.withSchema()` + on pg/mysql) and registers external objects' read-coercion metadata without DDL + (`SqlDriver.registerExternalObject`, routed from the engine/plugin schema-sync). + The managed path is unchanged. See ADR-0015 §18. + +- 3efe334: Honor a nested `where` filter inside `expand` on lookup/master_detail expansion. + + The expand post-processor batch-loads related records with an `id $in [...]` query but never merged the nested QueryAST `where`, so a documented `expand: { rel: { where: {...} } }` filter was silently ignored and every related record came back. The nested filter is now AND-merged into the batch query via an explicit `$and` group (`{ $and: [{ id: { $in } }, nestedAST.where] }`) — robust against a nested filter that itself keys `id` or uses a top-level `$or`/`$and`, where a shallow spread would clobber or reorder the constraint. + + `limit`/`offset`/`orderBy` remain intentionally not honored on the expand path: it batch-loads every parent's related records in one `$in` query and re-keys them per parent by foreign key, so a per-parent page size or ordering can't be expressed there. Docs and the schema `describe()` are updated to match, with a guard test asserting `limit`/`offset` are not pushed into the expand query. + +- feead7e: fix(spec): make `GanttConfigSchema` forward-compatible via `.passthrough()`. + + The gantt renderer (objectui plugin-gantt) keeps adding view-config knobs + (e.g. `lockField`, `defaultCollapsedDepth`) ahead of this schema. Without + passthrough, the console — which validates the view config against a bundled + copy of this schema before handing it to the renderer — strips any field not + declared here, so every new renderer knob needs a spec release + console + rebuild before it can take effect. Adding `.passthrough()` lets unknown fields + flow through to the renderer, decoupling renderer releases from spec releases. + Known fields keep their validation; the renderer still only reads what it + understands. + ## 9.11.0 ### Minor Changes diff --git a/packages/spec/package.json b/packages/spec/package.json index e310d8f7f0..2badad1836 100644 --- a/packages/spec/package.json +++ b/packages/spec/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/spec", - "version": "9.11.0", + "version": "10.0.0", "description": "ObjectStack Protocol & Specification - TypeScript Interfaces, JSON Schemas, and Convention Configurations", "license": "Apache-2.0", "main": "dist/index.js", diff --git a/packages/triggers/trigger-api/CHANGELOG.md b/packages/triggers/trigger-api/CHANGELOG.md index dd444390d7..91f567c02a 100644 --- a/packages/triggers/trigger-api/CHANGELOG.md +++ b/packages/triggers/trigger-api/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/trigger-api +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/triggers/trigger-api/package.json b/packages/triggers/trigger-api/package.json index d5eb5b640a..97022aeb80 100644 --- a/packages/triggers/trigger-api/package.json +++ b/packages/triggers/trigger-api/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-api", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Inbound HTTP/webhook flow trigger for ObjectStack — per-flow HMAC-verified endpoints with queue-backed ingestion (ADR-0041)", "main": "dist/index.js", diff --git a/packages/triggers/trigger-record-change/CHANGELOG.md b/packages/triggers/trigger-record-change/CHANGELOG.md index 3594dd1eed..a37baf3ed2 100644 --- a/packages/triggers/trigger-record-change/CHANGELOG.md +++ b/packages/triggers/trigger-record-change/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/plugin-trigger-record-change +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/triggers/trigger-record-change/package.json b/packages/triggers/trigger-record-change/package.json index a3698eb327..eadc63b46b 100644 --- a/packages/triggers/trigger-record-change/package.json +++ b/packages/triggers/trigger-record-change/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-record-change", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Record-change flow trigger for ObjectStack — auto-launches flows on object insert/update/delete via ObjectQL lifecycle hooks (ADR-0018)", "main": "dist/index.js", diff --git a/packages/triggers/trigger-schedule/CHANGELOG.md b/packages/triggers/trigger-schedule/CHANGELOG.md index 801974b3b3..d756374b3a 100644 --- a/packages/triggers/trigger-schedule/CHANGELOG.md +++ b/packages/triggers/trigger-schedule/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/plugin-trigger-schedule +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/core@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/triggers/trigger-schedule/package.json b/packages/triggers/trigger-schedule/package.json index bf3d8976b3..7d8688d279 100644 --- a/packages/triggers/trigger-schedule/package.json +++ b/packages/triggers/trigger-schedule/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-schedule", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Schedule flow trigger for ObjectStack — auto-launches flows on a cron/interval/once schedule via the IJobService (ADR-0018)", "main": "dist/index.js", diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index f28bf481e6..665fb31063 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/types +## 10.0.0 + +### Patch Changes + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [e16f2a8] +- Updated dependencies [a581385] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [feead7e] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + ## 9.11.0 ### Patch Changes diff --git a/packages/types/package.json b/packages/types/package.json index 92ec854657..ebd5323362 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/types", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Shared interfaces describing the ObjectStack Runtime environment", "main": "dist/index.js", diff --git a/packages/verify/CHANGELOG.md b/packages/verify/CHANGELOG.md index e05bbdad4d..4b69ddaaff 100644 --- a/packages/verify/CHANGELOG.md +++ b/packages/verify/CHANGELOG.md @@ -1,5 +1,61 @@ # @objectstack/verify +## 10.0.0 + +### Minor Changes + +- ee86099: ADR-0060 P1 — add the reusable conformance-ledger helper. `@objectstack/verify` + now exports `checkLedger(rows, opts)` + `ConformanceRow`: the static complement to + its runtime harness, encoding the shared invariants the platform had hand-written + twice (unique ids / valid state / enforced-has-site / experimental·removed-has-note + / proof-file-exists / high-risk-has-proof / exactly-one-cover / discover ratchet). + The ADR-0056 authz and ADR-0058 expression ledgers are refactored onto it. + +### Patch Changes + +- 0feea92: fix(verify): skip read-only federated (external) objects in CRUD verification. + + `objectstack verify` probe-inserts a record into every object. A federated object + on an external datasource is read-only unless BOTH the datasource and the object + opt into writes (ADR-0015 write gate), so that insert is correctly rejected — + which `verify` was reporting as a `create-failed` runtime failure. `deriveCrudCases` + now marks such objects `blocked` (skipped), matching the write gate's double + opt-in rule, so the dogfood gate stays honest while supporting external datasource + example apps. + +- Updated dependencies [d7ff626] +- Updated dependencies [2a1b16b] +- Updated dependencies [2256e93] +- Updated dependencies [30c0313] +- Updated dependencies [e16f2a8] +- Updated dependencies [cfd86ce] +- Updated dependencies [70609af] +- Updated dependencies [3187952] +- Updated dependencies [a581385] +- Updated dependencies [47d978a] +- Updated dependencies [d5f6d29] +- Updated dependencies [220ce5b] +- Updated dependencies [3efe334] +- Updated dependencies [3754f80] +- Updated dependencies [feead7e] +- Updated dependencies [00c32f2] +- Updated dependencies [6ca20b3] +- Updated dependencies [5f875fe] + - @objectstack/spec@10.0.0 + - @objectstack/objectql@10.0.0 + - @objectstack/rest@10.0.0 + - @objectstack/plugin-sharing@10.0.0 + - @objectstack/plugin-security@10.0.0 + - @objectstack/runtime@10.0.0 + - @objectstack/service-analytics@10.0.0 + - @objectstack/core@10.0.0 + - @objectstack/plugin-hono-server@10.0.0 + - @objectstack/driver-sqlite-wasm@10.0.0 + - @objectstack/plugin-auth@10.0.0 + - @objectstack/plugin-org-scoping@10.0.0 + - @objectstack/service-automation@10.0.0 + - @objectstack/service-settings@10.0.0 + ## 9.11.0 ### Minor Changes diff --git a/packages/verify/package.json b/packages/verify/package.json index 0e7308ca9e..0014133f61 100644 --- a/packages/verify/package.json +++ b/packages/verify/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/verify", - "version": "9.11.0", + "version": "10.0.0", "license": "Apache-2.0", "description": "Boot any ObjectStack app in-process and verify it through the real HTTP stack — auto-derived CRUD round-trip fidelity plus the cross-owner RLS invariant. Catches runtime regressions that static checks miss.", "type": "module", diff --git a/packages/vscode-objectstack/CHANGELOG.md b/packages/vscode-objectstack/CHANGELOG.md index ead6c5446d..820445a151 100644 --- a/packages/vscode-objectstack/CHANGELOG.md +++ b/packages/vscode-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # objectstack-vscode +## 10.0.0 + ## 9.11.0 ## 9.10.0 diff --git a/packages/vscode-objectstack/package.json b/packages/vscode-objectstack/package.json index 269708068d..f499091d6d 100644 --- a/packages/vscode-objectstack/package.json +++ b/packages/vscode-objectstack/package.json @@ -2,7 +2,7 @@ "name": "objectstack-vscode", "displayName": "ObjectStack", "description": "ObjectStack Protocol — Autocomplete, validation, and inline diagnostics for .object.ts, .view.ts, and objectstack.config.ts files", - "version": "9.11.0", + "version": "10.0.0", "publisher": "objectstack", "license": "Apache-2.0", "repository": {