@xemahq/xema 0.17.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/README.md +32 -4
  2. package/dist/appliance-owner.d.ts +1 -1
  3. package/dist/appliance-owner.d.ts.map +1 -1
  4. package/dist/appliance-owner.js +1 -1
  5. package/dist/appliance-owner.js.map +1 -1
  6. package/dist/assets/appliance-base/distribution.lock.json +460 -457
  7. package/dist/assets/appliance-base/images.lock.json +365 -317
  8. package/dist/assets/appliance-lean/distribution.lock.json +250 -322
  9. package/dist/assets/appliance-lean/images.lock.json +261 -233
  10. package/dist/assets/boot-graph.json +6 -18
  11. package/dist/assets/cloud/distribution.lock.json +468 -483
  12. package/dist/assets/cloud/images.lock.json +381 -330
  13. package/dist/assets/core/distribution.lock.json +181 -381
  14. package/dist/assets/core/images.lock.json +277 -289
  15. package/dist/assets/distribution-assets.manifest.json +33 -32
  16. package/dist/assets/minimal/distribution.lock.json +157 -306
  17. package/dist/assets/minimal/images.lock.json +233 -232
  18. package/dist/assets/oss/distribution.lock.json +460 -457
  19. package/dist/assets/oss/images.lock.json +366 -318
  20. package/dist/assets/starter/distribution.lock.json +274 -384
  21. package/dist/assets/starter/images.lock.json +286 -275
  22. package/dist/cli.d.ts.map +1 -1
  23. package/dist/cli.js +2 -0
  24. package/dist/cli.js.map +1 -1
  25. package/dist/commands/biome.d.ts +27 -0
  26. package/dist/commands/biome.d.ts.map +1 -1
  27. package/dist/commands/biome.js +20 -3
  28. package/dist/commands/biome.js.map +1 -1
  29. package/dist/commands/dist.js +1 -1
  30. package/dist/commands/dist.js.map +1 -1
  31. package/dist/commands/installation.d.ts.map +1 -1
  32. package/dist/commands/installation.js +160 -27
  33. package/dist/commands/installation.js.map +1 -1
  34. package/dist/commands/onboard.d.ts +3 -0
  35. package/dist/commands/onboard.d.ts.map +1 -0
  36. package/dist/commands/onboard.js +110 -0
  37. package/dist/commands/onboard.js.map +1 -0
  38. package/dist/dev/env-defaults.d.ts +1 -1
  39. package/dist/dev/env-defaults.d.ts.map +1 -1
  40. package/dist/dev/env-defaults.js +0 -3
  41. package/dist/dev/env-defaults.js.map +1 -1
  42. package/dist/lib/control-plane.d.ts +1 -1
  43. package/dist/lib/control-plane.d.ts.map +1 -1
  44. package/dist/lib/control-plane.js +1 -1
  45. package/dist/lib/control-plane.js.map +1 -1
  46. package/dist/lib/plan-format.d.ts +1 -1
  47. package/dist/lib/plan-format.d.ts.map +1 -1
  48. package/dist/lib/plan-format.js +1 -1
  49. package/dist/lib/plan-format.js.map +1 -1
  50. package/dist/runtime/asset-provenance.d.ts +1 -1
  51. package/dist/runtime/asset-provenance.d.ts.map +1 -1
  52. package/dist/runtime/asset-provenance.js.map +1 -1
  53. package/dist/runtime/backing-registration.d.ts +1 -1
  54. package/dist/runtime/backing-registration.d.ts.map +1 -1
  55. package/dist/runtime/backing-registration.js +1 -1
  56. package/dist/runtime/backing-registration.js.map +1 -1
  57. package/dist/runtime/biome-dev.js +1 -1
  58. package/dist/runtime/biome-dev.js.map +1 -1
  59. package/dist/runtime/biome-local-install.d.ts +1 -1
  60. package/dist/runtime/biome-local-install.d.ts.map +1 -1
  61. package/dist/runtime/biome-publish.d.ts +1 -1
  62. package/dist/runtime/biome-publish.d.ts.map +1 -1
  63. package/dist/runtime/biome-publish.js +1 -1
  64. package/dist/runtime/biome-publish.js.map +1 -1
  65. package/dist/runtime/biome-scaffold-manifest.d.ts +1 -1
  66. package/dist/runtime/biome-scaffold-manifest.d.ts.map +1 -1
  67. package/dist/runtime/biome-scaffold-manifest.js +4 -6
  68. package/dist/runtime/biome-scaffold-manifest.js.map +1 -1
  69. package/dist/runtime/biome-scaffold.d.ts +1 -1
  70. package/dist/runtime/biome-scaffold.d.ts.map +1 -1
  71. package/dist/runtime/biome-scaffold.js +1 -1
  72. package/dist/runtime/biome-scaffold.js.map +1 -1
  73. package/dist/runtime/biome-validate.d.ts +1 -1
  74. package/dist/runtime/biome-validate.d.ts.map +1 -1
  75. package/dist/runtime/biome-validate.js +39 -18
  76. package/dist/runtime/biome-validate.js.map +1 -1
  77. package/dist/runtime/capability-invoke.d.ts +1 -1
  78. package/dist/runtime/capability-invoke.d.ts.map +1 -1
  79. package/dist/runtime/capability-invoke.js +1 -1
  80. package/dist/runtime/capability-invoke.js.map +1 -1
  81. package/dist/runtime/config/init-presets.d.ts.map +1 -1
  82. package/dist/runtime/config/init-presets.js +1 -12
  83. package/dist/runtime/config/init-presets.js.map +1 -1
  84. package/dist/runtime/config/schema.d.ts +0 -11
  85. package/dist/runtime/config/schema.d.ts.map +1 -1
  86. package/dist/runtime/config/schema.js +0 -2
  87. package/dist/runtime/config/schema.js.map +1 -1
  88. package/dist/runtime/distribution/available-biome.d.ts +1 -1
  89. package/dist/runtime/distribution/available-biome.d.ts.map +1 -1
  90. package/dist/runtime/distribution/available-biome.js +2 -2
  91. package/dist/runtime/distribution/available-biome.js.map +1 -1
  92. package/dist/runtime/distribution/compose.d.ts +1 -1
  93. package/dist/runtime/distribution/compose.d.ts.map +1 -1
  94. package/dist/runtime/distribution/compose.js +1 -1
  95. package/dist/runtime/distribution/compose.js.map +1 -1
  96. package/dist/runtime/env-seeder.d.ts.map +1 -1
  97. package/dist/runtime/env-seeder.js +1 -4
  98. package/dist/runtime/env-seeder.js.map +1 -1
  99. package/dist/runtime/infra/infra-catalog.d.ts.map +1 -1
  100. package/dist/runtime/infra/infra-catalog.js +0 -18
  101. package/dist/runtime/infra/infra-catalog.js.map +1 -1
  102. package/dist/runtime/infra/infra-environment.d.ts.map +1 -1
  103. package/dist/runtime/infra/infra-environment.js +0 -1
  104. package/dist/runtime/infra/infra-environment.js.map +1 -1
  105. package/dist/runtime/installation/compiler.d.ts +3 -4
  106. package/dist/runtime/installation/compiler.d.ts.map +1 -1
  107. package/dist/runtime/installation/compiler.js +10 -13
  108. package/dist/runtime/installation/compiler.js.map +1 -1
  109. package/dist/runtime/installation/contract.d.ts +4 -10
  110. package/dist/runtime/installation/contract.d.ts.map +1 -1
  111. package/dist/runtime/installation/contract.js +9 -12
  112. package/dist/runtime/installation/contract.js.map +1 -1
  113. package/dist/runtime/installation/current-launcher-renderer.d.ts.map +1 -1
  114. package/dist/runtime/installation/current-launcher-renderer.js +0 -5
  115. package/dist/runtime/installation/current-launcher-renderer.js.map +1 -1
  116. package/dist/runtime/installation/deployment-root.d.ts +53 -0
  117. package/dist/runtime/installation/deployment-root.d.ts.map +1 -0
  118. package/dist/runtime/installation/deployment-root.js +510 -0
  119. package/dist/runtime/installation/deployment-root.js.map +1 -0
  120. package/dist/runtime/installation/engine-verbs.d.ts +36 -0
  121. package/dist/runtime/installation/engine-verbs.d.ts.map +1 -0
  122. package/dist/runtime/installation/engine-verbs.js +164 -0
  123. package/dist/runtime/installation/engine-verbs.js.map +1 -0
  124. package/dist/runtime/installation/engine.d.ts +87 -0
  125. package/dist/runtime/installation/engine.d.ts.map +1 -0
  126. package/dist/runtime/installation/engine.js +218 -0
  127. package/dist/runtime/installation/engine.js.map +1 -0
  128. package/dist/runtime/installation/helm-release.d.ts.map +1 -1
  129. package/dist/runtime/installation/helm-release.js +0 -1
  130. package/dist/runtime/installation/helm-release.js.map +1 -1
  131. package/dist/runtime/installation/index.d.ts +3 -0
  132. package/dist/runtime/installation/index.d.ts.map +1 -1
  133. package/dist/runtime/installation/index.js +3 -0
  134. package/dist/runtime/installation/index.js.map +1 -1
  135. package/dist/runtime/installation/json-schema.d.ts +1 -1
  136. package/dist/runtime/installation/json-schema.d.ts.map +1 -1
  137. package/dist/runtime/installation/json-schema.js +1 -1
  138. package/dist/runtime/installation/json-schema.js.map +1 -1
  139. package/dist/runtime/installation/lifecycle.js.map +1 -1
  140. package/dist/runtime/installation/setup-profile.d.ts +7 -2
  141. package/dist/runtime/installation/setup-profile.d.ts.map +1 -1
  142. package/dist/runtime/installation/setup-profile.js +2 -1
  143. package/dist/runtime/installation/setup-profile.js.map +1 -1
  144. package/dist/runtime/installation/validators/operational.d.ts.map +1 -1
  145. package/dist/runtime/installation/validators/operational.js +0 -8
  146. package/dist/runtime/installation/validators/operational.js.map +1 -1
  147. package/dist/runtime/launch.d.ts.map +1 -1
  148. package/dist/runtime/launch.js +1 -3
  149. package/dist/runtime/launch.js.map +1 -1
  150. package/dist/runtime/license/installation-identity.d.ts +11 -0
  151. package/dist/runtime/license/installation-identity.d.ts.map +1 -0
  152. package/dist/runtime/license/installation-identity.js +66 -0
  153. package/dist/runtime/license/installation-identity.js.map +1 -0
  154. package/dist/runtime/license/license-report.d.ts.map +1 -1
  155. package/dist/runtime/license/license-report.js +5 -2
  156. package/dist/runtime/license/license-report.js.map +1 -1
  157. package/dist/runtime/license/resolve-license.d.ts +3 -1
  158. package/dist/runtime/license/resolve-license.d.ts.map +1 -1
  159. package/dist/runtime/license/resolve-license.js +23 -0
  160. package/dist/runtime/license/resolve-license.js.map +1 -1
  161. package/dist/runtime/lock-loader.d.ts +1 -1
  162. package/dist/runtime/lock-loader.d.ts.map +1 -1
  163. package/dist/runtime/lock-loader.js +1 -1
  164. package/dist/runtime/lock-loader.js.map +1 -1
  165. package/dist/runtime/onboard/plan.d.ts +52 -0
  166. package/dist/runtime/onboard/plan.d.ts.map +1 -0
  167. package/dist/runtime/onboard/plan.js +210 -0
  168. package/dist/runtime/onboard/plan.js.map +1 -0
  169. package/dist/runtime/roster.d.ts +1 -1
  170. package/dist/runtime/roster.d.ts.map +1 -1
  171. package/dist/runtime/roster.js +1 -1
  172. package/dist/runtime/roster.js.map +1 -1
  173. package/dist/runtime/runner/container-preflight.d.ts +1 -1
  174. package/dist/runtime/runner/container-preflight.d.ts.map +1 -1
  175. package/dist/runtime/runner/host-platform.d.ts +1 -1
  176. package/dist/runtime/runner/host-platform.d.ts.map +1 -1
  177. package/dist/runtime/secrets/generated-platform-secrets.js +0 -6
  178. package/dist/runtime/secrets/generated-platform-secrets.js.map +1 -1
  179. package/dist/runtime/sources/kinds/git.d.ts +4 -0
  180. package/dist/runtime/sources/kinds/git.d.ts.map +1 -1
  181. package/dist/runtime/sources/kinds/git.js +19 -12
  182. package/dist/runtime/sources/kinds/git.js.map +1 -1
  183. package/dist/runtime/sources/manifest-walk.d.ts +1 -1
  184. package/dist/runtime/sources/manifest-walk.d.ts.map +1 -1
  185. package/dist/runtime/sources/manifest-walk.js +1 -1
  186. package/dist/runtime/sources/manifest-walk.js.map +1 -1
  187. package/dist/runtime/waves.js +1 -1
  188. package/dist/runtime/waves.js.map +1 -1
  189. package/examples/02-local-container-full.yaml +0 -1
  190. package/examples/03-byo-infra.yaml +0 -1
  191. package/examples/04-subset-knowledge.yaml +0 -1
  192. package/package.json +16 -15
  193. package/xema.config.example.yaml +0 -1
  194. package/dist/dev/opa-policies.d.ts +0 -3
  195. package/dist/dev/opa-policies.d.ts.map +0 -1
  196. package/dist/dev/opa-policies.js +0 -64
  197. package/dist/dev/opa-policies.js.map +0 -1
@@ -19,7 +19,6 @@ infra:
19
19
  { mode: external, url: https://s3.corp.internal, bucketPrefix: xema- }
20
20
  redis: { mode: managed }
21
21
  etcd: { mode: managed }
22
- search: { mode: managed }
23
22
  temporal: { mode: disabled } # this install doesn't use durable workflows
24
23
  secrets:
25
24
  corp-postgres-password: { from: env, env: XEMA_POSTGRES_PASSWORD }
@@ -14,4 +14,3 @@ infra:
14
14
  etcd: { mode: managed }
15
15
  keycloak: { mode: managed }
16
16
  objectStore: { mode: managed }
17
- search: { mode: managed }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/xema",
3
- "version": "0.17.0",
3
+ "version": "0.18.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/xema-dev/xema-cli.git",
@@ -35,21 +35,21 @@
35
35
  "access": "public"
36
36
  },
37
37
  "dependencies": {
38
- "@nestjs/common": "11.1.18",
39
- "@nestjs/core": "11.1.18",
40
- "@nestjs/platform-express": "11.1.28",
41
- "@xemahq/biome-sdk": "^13.6.0",
38
+ "@nestjs/common": "^11.1.18",
39
+ "@nestjs/core": "^11.1.18",
40
+ "@nestjs/platform-express": "^11.1.28",
41
+ "@xemahq/biome-sdk": "^16.0.0",
42
42
  "@xemahq/biome-supply-chain": "^0.3.0",
43
- "@xemahq/distribution-resolver": "^0.2.0",
44
- "@xemahq/dsl": "0.12.0",
45
- "@xemahq/identity-client": "0.9.6",
46
- "@xemahq/kernel-contracts": "^34.2.0",
47
- "@xemahq/kernel-state-runtime": "^0.4.0",
48
- "@xemahq/license-verifier": "^0.1.1",
49
- "@xemahq/service-registry-nest": "^0.8.6",
43
+ "@xemahq/distribution-resolver": "^0.4.1",
44
+ "@xemahq/dsl": "^0.20.0",
45
+ "@xemahq/identity-client": "^0.9.6",
46
+ "@xemahq/contracts": "^0.16.0",
47
+ "@xemahq/kernel-state-runtime": "^0.6.1",
48
+ "@xemahq/license-verifier": "^0.2.0",
49
+ "@xemahq/service-registry-nest": "^0.11.2",
50
50
  "commander": "^12.1.0",
51
- "reflect-metadata": "0.2.2",
52
- "rxjs": "7.8.2",
51
+ "reflect-metadata": "^0.2.2",
52
+ "rxjs": "^7.8.2",
53
53
  "tsx": "^4.19.2",
54
54
  "yaml": "^2.6.1",
55
55
  "zod": "^4.3.6"
@@ -57,7 +57,8 @@
57
57
  "devDependencies": {
58
58
  "@types/jest": "^30.0.0",
59
59
  "@types/node": "25.2.3",
60
- "@xemahq/eslint-config": "0.2.0",
60
+ "@xemahq/biome-host-api-client": "^0.3.29",
61
+ "@xemahq/eslint-config": "^0.5.0",
61
62
  "eslint": "^9.39.4",
62
63
  "jest": "^30.3.0",
63
64
  "prettier": "3.6.2",
@@ -16,7 +16,6 @@ infra:
16
16
  etcd: { mode: managed } # mandatory (service discovery)
17
17
  keycloak: { mode: managed } # mandatory (identity)
18
18
  objectStore: { mode: managed } # mandatory (blobs/artifacts)
19
- search: { mode: managed } # optional (full-text / vectors)
20
19
  fga: { mode: managed } # optional (authorization ReBAC)
21
20
  git: { mode: disabled } # optional (SCM integration)
22
21
  temporal: { mode: managed } # optional (durable workflows)
@@ -1,3 +0,0 @@
1
- import type { RosterEntry } from '../runtime/roster';
2
- export declare function ensureOpaPolicies(roster: readonly RosterEntry[], monorepoRoot: string, log: (message: string) => void): Promise<void>;
3
- //# sourceMappingURL=opa-policies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opa-policies.d.ts","sourceRoot":"","sources":["../../src/dev/opa-policies.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAmBrD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,WAAW,EAAE,EAC9B,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ensureOpaPolicies = ensureOpaPolicies;
4
- const node_child_process_1 = require("node:child_process");
5
- const node_fs_1 = require("node:fs");
6
- const node_path_1 = require("node:path");
7
- const OPA_IMAGE = 'openpolicyagent/opa:latest';
8
- const POLICY_ENTRYPOINT = 'xema/policy/decision';
9
- async function ensureOpaPolicies(roster, monorepoRoot, log) {
10
- const authz = roster.find((entry) => entry.name === 'authorization-api');
11
- if (authz?.servicePath === undefined || authz.sourceRoot !== undefined) {
12
- return;
13
- }
14
- const policiesDir = (0, node_path_1.join)(monorepoRoot, authz.servicePath, 'policies');
15
- const rego = (0, node_path_1.join)(policiesDir, 'xema.rego');
16
- const distDir = (0, node_path_1.join)(policiesDir, 'dist');
17
- const wasm = (0, node_path_1.join)(distDir, 'policy.wasm');
18
- if ((0, node_fs_1.existsSync)(wasm) || !(0, node_fs_1.existsSync)(rego)) {
19
- return;
20
- }
21
- log('opa : building authorization-api policy.wasm (embedded mode) …');
22
- try {
23
- (0, node_fs_1.mkdirSync)(distDir, { recursive: true });
24
- await run('docker', [
25
- 'run',
26
- '--rm',
27
- '-v',
28
- `${policiesDir}:/w`,
29
- '-w',
30
- '/w',
31
- OPA_IMAGE,
32
- 'build',
33
- '-t',
34
- 'wasm',
35
- '-e',
36
- POLICY_ENTRYPOINT,
37
- 'xema.rego',
38
- '-o',
39
- '/w/dist/bundle.tar.gz',
40
- ]);
41
- await run('tar', ['-xzf', (0, node_path_1.join)(distDir, 'bundle.tar.gz'), '-C', distDir]);
42
- if (!(0, node_fs_1.existsSync)(wasm)) {
43
- throw new Error('opa build did not produce policy.wasm');
44
- }
45
- log('opa : policy.wasm built.');
46
- }
47
- catch (err) {
48
- log(`opa : WARN could not build policy.wasm (${err instanceof Error ? err.message : String(err)}) — authorization-api embedded OPA will fail; the rest of the roster boots.`);
49
- }
50
- }
51
- function run(cmd, args) {
52
- return new Promise((resolve, reject) => {
53
- const child = (0, node_child_process_1.spawn)(cmd, args, { stdio: 'ignore' });
54
- child.once('error', reject);
55
- child.once('exit', (code) => {
56
- if (code === 0) {
57
- resolve();
58
- return;
59
- }
60
- reject(new Error(`${cmd} exited with code ${String(code)}`));
61
- });
62
- });
63
- }
64
- //# sourceMappingURL=opa-policies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opa-policies.js","sourceRoot":"","sources":["../../src/dev/opa-policies.ts"],"names":[],"mappings":"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"}