@betterportal/config-manager 10.1.64 → 10.1.65

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 (174) hide show
  1. package/lib/.bsb/clients/service-betterportal-config-manager.d.ts +1 -1
  2. package/lib/.bsb/clients/service-betterportal-config-manager.js +1 -1
  3. package/lib/bp-contracts/org.betterportal.config-manager.json +198 -14
  4. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.d.ts.map +1 -1
  5. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.js +9 -4
  6. package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.js.map +1 -1
  7. package/lib/plugins/service-betterportal-config-manager/adminApi.d.ts +13 -4
  8. package/lib/plugins/service-betterportal-config-manager/adminApi.d.ts.map +1 -1
  9. package/lib/plugins/service-betterportal-config-manager/adminApi.js +37 -31
  10. package/lib/plugins/service-betterportal-config-manager/adminApi.js.map +1 -1
  11. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/GET.d.ts +140 -3
  12. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/GET.d.ts.map +1 -1
  13. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/GET.js +103 -3
  14. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/GET.js.map +1 -1
  15. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/_renderer.bootstrap5/GET.d.ts +1 -1
  16. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/_renderer.bootstrap5/GET.d.ts.map +1 -1
  17. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/_renderer.bootstrap5/GET.js +4 -1
  18. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/_renderer.bootstrap5/GET.js.map +1 -1
  19. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/index.d.ts +1 -1
  20. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/index.d.ts.map +1 -1
  21. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/index.js +1 -1
  22. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/index.js.map +1 -1
  23. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/GET.d.ts +43 -3
  24. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/GET.d.ts.map +1 -1
  25. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/GET.js +67 -3
  26. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/GET.js.map +1 -1
  27. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/_renderer.bootstrap5/GET.d.ts +1 -1
  28. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/_renderer.bootstrap5/GET.d.ts.map +1 -1
  29. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/_renderer.embedded/GET.d.ts +1 -1
  30. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/_renderer.embedded/GET.d.ts.map +1 -1
  31. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/index.d.ts +1 -1
  32. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/index.d.ts.map +1 -1
  33. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/index.js +1 -1
  34. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/index.js.map +1 -1
  35. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/GET.d.ts +32 -3
  36. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/GET.d.ts.map +1 -1
  37. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/GET.js +31 -3
  38. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/GET.js.map +1 -1
  39. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/_renderer.bootstrap5/GET.d.ts +1 -1
  40. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/_renderer.bootstrap5/GET.d.ts.map +1 -1
  41. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/index.d.ts +1 -1
  42. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/index.d.ts.map +1 -1
  43. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/index.js +1 -1
  44. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/index.js.map +1 -1
  45. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/GET.d.ts +60 -3
  46. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/GET.d.ts.map +1 -1
  47. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/GET.js +47 -3
  48. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/GET.js.map +1 -1
  49. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/_renderer.bootstrap5/GET.d.ts +1 -1
  50. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/_renderer.bootstrap5/GET.d.ts.map +1 -1
  51. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/index.d.ts +1 -1
  52. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/index.d.ts.map +1 -1
  53. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/index.js +1 -1
  54. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/index.js.map +1 -1
  55. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/GET.d.ts +48 -3
  56. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/GET.d.ts.map +1 -1
  57. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/GET.js +39 -3
  58. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/GET.js.map +1 -1
  59. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/_renderer.bootstrap5/GET.d.ts +1 -1
  60. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/_renderer.bootstrap5/GET.d.ts.map +1 -1
  61. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/index.d.ts +1 -1
  62. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/index.d.ts.map +1 -1
  63. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/index.js +1 -1
  64. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/index.js.map +1 -1
  65. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/GET.d.ts +114 -3
  66. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/GET.d.ts.map +1 -1
  67. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/GET.js +75 -3
  68. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/GET.js.map +1 -1
  69. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.d.ts +1 -1
  70. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.d.ts.map +1 -1
  71. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.js +5 -3
  72. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.js.map +1 -1
  73. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/index.d.ts +1 -1
  74. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/index.d.ts.map +1 -1
  75. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/index.js +1 -1
  76. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/index.js.map +1 -1
  77. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.d.ts +176 -3
  78. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.d.ts.map +1 -1
  79. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.js +114 -3
  80. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.js.map +1 -1
  81. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/_renderer.bootstrap5/GET.d.ts +1 -1
  82. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/_renderer.bootstrap5/GET.d.ts.map +1 -1
  83. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/index.d.ts +1 -1
  84. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/index.d.ts.map +1 -1
  85. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/index.js +1 -1
  86. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/index.js.map +1 -1
  87. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/GET.d.ts +101 -3
  88. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/GET.d.ts.map +1 -1
  89. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/GET.js +92 -3
  90. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/GET.js.map +1 -1
  91. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/_renderer.bootstrap5/GET.d.ts +1 -1
  92. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/_renderer.bootstrap5/GET.d.ts.map +1 -1
  93. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/index.d.ts +1 -1
  94. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/index.d.ts.map +1 -1
  95. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/index.js +1 -1
  96. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/index.js.map +1 -1
  97. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/DELETE.d.ts +3 -3
  98. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/DELETE.d.ts.map +1 -1
  99. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/DELETE.js +3 -3
  100. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/DELETE.js.map +1 -1
  101. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/GET.d.ts +13 -4
  102. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/GET.d.ts.map +1 -1
  103. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/GET.js +6 -6
  104. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/GET.js.map +1 -1
  105. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/POST.d.ts +3 -3
  106. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/POST.d.ts.map +1 -1
  107. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/POST.js +3 -3
  108. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/POST.js.map +1 -1
  109. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/PUT.d.ts +3 -3
  110. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/PUT.d.ts.map +1 -1
  111. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/PUT.js +3 -3
  112. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/PUT.js.map +1 -1
  113. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/_renderer.bootstrap5/GET.d.ts +1 -1
  114. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/_renderer.bootstrap5/GET.d.ts.map +1 -1
  115. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/index.d.ts +1 -1
  116. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/index.d.ts.map +1 -1
  117. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/index.js +1 -1
  118. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/index.js.map +1 -1
  119. package/lib/plugins/service-betterportal-config-manager/fragmentsEditor.d.ts.map +1 -1
  120. package/lib/plugins/service-betterportal-config-manager/fragmentsEditor.js +1 -0
  121. package/lib/plugins/service-betterportal-config-manager/fragmentsEditor.js.map +1 -1
  122. package/lib/plugins/service-betterportal-config-manager/index.d.ts.map +1 -1
  123. package/lib/plugins/service-betterportal-config-manager/index.js +25 -4
  124. package/lib/plugins/service-betterportal-config-manager/index.js.map +1 -1
  125. package/lib/plugins/service-betterportal-config-manager/menuEditor.js +2 -2
  126. package/lib/plugins/service-betterportal-config-manager/menuEditor.js.map +1 -1
  127. package/lib/plugins/service-betterportal-config-manager/storage/core.d.ts.map +1 -1
  128. package/lib/plugins/service-betterportal-config-manager/storage/core.js +67 -2
  129. package/lib/plugins/service-betterportal-config-manager/storage/core.js.map +1 -1
  130. package/lib/plugins/service-betterportal-config-manager/syncApi.d.ts +22 -3
  131. package/lib/plugins/service-betterportal-config-manager/syncApi.d.ts.map +1 -1
  132. package/lib/plugins/service-betterportal-config-manager/syncApi.js +164 -22
  133. package/lib/plugins/service-betterportal-config-manager/syncApi.js.map +1 -1
  134. package/lib/plugins/service-betterportal-config-manager/{bp-routes/tenants/route.impl.d.ts → tenantManagement.d.ts} +5 -5
  135. package/lib/plugins/service-betterportal-config-manager/tenantManagement.d.ts.map +1 -0
  136. package/lib/plugins/service-betterportal-config-manager/{bp-routes/tenants/route.impl.js → tenantManagement.js} +8 -7
  137. package/lib/plugins/service-betterportal-config-manager/tenantManagement.js.map +1 -0
  138. package/lib/schemas/service-betterportal-config-manager.json +1 -1
  139. package/lib/schemas/service-betterportal-config-manager.plugin.json +1 -1
  140. package/package.json +5 -5
  141. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/route.impl.d.ts +0 -118
  142. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/route.impl.d.ts.map +0 -1
  143. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/route.impl.js +0 -91
  144. package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/route.impl.js.map +0 -1
  145. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/route.impl.d.ts +0 -43
  146. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/route.impl.d.ts.map +0 -1
  147. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/route.impl.js +0 -68
  148. package/lib/plugins/service-betterportal-config-manager/bp-routes/config/route.impl.js.map +0 -1
  149. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/route.impl.d.ts +0 -32
  150. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/route.impl.d.ts.map +0 -1
  151. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/route.impl.js +0 -32
  152. package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/route.impl.js.map +0 -1
  153. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/route.impl.d.ts +0 -60
  154. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/route.impl.d.ts.map +0 -1
  155. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/route.impl.js +0 -48
  156. package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/route.impl.js.map +0 -1
  157. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/route.impl.d.ts +0 -48
  158. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/route.impl.d.ts.map +0 -1
  159. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/route.impl.js +0 -40
  160. package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/route.impl.js.map +0 -1
  161. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/route.impl.d.ts +0 -104
  162. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/route.impl.d.ts.map +0 -1
  163. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/route.impl.js +0 -71
  164. package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/route.impl.js.map +0 -1
  165. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/route.impl.d.ts +0 -176
  166. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/route.impl.d.ts.map +0 -1
  167. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/route.impl.js +0 -115
  168. package/lib/plugins/service-betterportal-config-manager/bp-routes/services/route.impl.js.map +0 -1
  169. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/route.impl.d.ts +0 -89
  170. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/route.impl.d.ts.map +0 -1
  171. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/route.impl.js +0 -93
  172. package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/route.impl.js.map +0 -1
  173. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/route.impl.d.ts.map +0 -1
  174. package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/route.impl.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-config-manager/storage/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-config-manager/storage/core.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ConfigSchemaDescriptor, ApiContractDescriptor, AuthProviderRuntimeMetadata, BetterPortalH3App, BetterPortalRegistry, PlatformConfigStore, JsonValue, M2MRequestDescriptor, BetterPortalRouteChrome, BetterPortalConfig, DeveloperResource, ShellManifest, ViewDemoScenario, WebhookEventDescriptor } from "@betterportal/framework";
1
+ import type { ConfigSchemaDescriptor, ApiContractDescriptor, AppAuthConfig, AppAuthPermissionAction, AuthProviderRuntimeMetadata, BetterPortalH3App, BetterPortalRegistry, PlatformConfigStore, JsonValue, M2MRequestDescriptor, BetterPortalRouteChrome, BetterPortalRouteMount, BetterPortalConfig, DeveloperResource, ShellManifest, OperationDependency, RenderMode, ViewDemoScenario, WebhookEventDescriptor } from "@betterportal/framework";
2
2
  /**
3
3
  * Hot manifest cache per service. The same data is persisted in platform config
4
4
  * so app shell resolution remains deterministic after a control-plane restart.
@@ -17,6 +17,8 @@ export interface CachedManifestView {
17
17
  fragments: Array<{
18
18
  fragmentId: string;
19
19
  targetPath: string;
20
+ operationId: string;
21
+ method: CachedManifestOperation["method"];
20
22
  }>;
21
23
  }
22
24
  export interface CachedManifestOperation {
@@ -25,6 +27,7 @@ export interface CachedManifestOperation {
25
27
  title: string;
26
28
  description: string;
27
29
  renderers: string[];
30
+ renderModes: RenderMode[];
28
31
  role?: string;
29
32
  authRequired: boolean;
30
33
  sitemap?: {
@@ -39,12 +42,12 @@ export interface CachedManifestOperation {
39
42
  crawlDelaySeconds?: number;
40
43
  }>;
41
44
  chrome?: BetterPortalRouteChrome;
42
- dependencies: string[];
45
+ dependencies: OperationDependency[];
43
46
  /** Per-view permission requirements from the service's auth.permissions[]. */
44
47
  permissions: Array<{
45
48
  serviceId: string;
46
49
  viewId: string;
47
- permissions: string[];
50
+ permissions: AppAuthPermissionAction[];
48
51
  }>;
49
52
  /** True if any UI renderer exists (page/fragment/component). API-only views = false. */
50
53
  renderable: boolean;
@@ -57,6 +60,7 @@ export interface CachedManifestOperation {
57
60
  /** Example payloads advertised by the service route. */
58
61
  demoScenarios: ViewDemoScenario[];
59
62
  }
63
+ export declare function isPageOperation(operation: Pick<CachedManifestOperation, "method" | "renderModes">): boolean;
60
64
  export interface CachedManifest {
61
65
  serviceId: string;
62
66
  manifestVersion: string;
@@ -72,6 +76,21 @@ export interface CachedManifest {
72
76
  webhooks: WebhookEventDescriptor[];
73
77
  fetchedAt: number;
74
78
  }
79
+ export interface DerivedRolePermission {
80
+ roleId: string;
81
+ serviceId: string;
82
+ viewId: string;
83
+ permissions: AppAuthPermissionAction[];
84
+ requiredBy: Array<{
85
+ serviceId: string;
86
+ operationId: string;
87
+ method: CachedManifestOperation["method"];
88
+ }>;
89
+ }
90
+ export declare function deriveRolePermissions(auth: AppAuthConfig, routes: BetterPortalRouteMount[], resolveManifest: (serviceId: string) => CachedManifest | undefined): {
91
+ auth: AppAuthConfig;
92
+ derived: DerivedRolePermission[];
93
+ };
75
94
  /** Read-only accessor for the manifest cache. */
76
95
  export declare function getManifestCache(): ReadonlyMap<string, CachedManifest>;
77
96
  /** Resolve manifests for service instances, including shared-service activation aliases. */
@@ -1 +1 @@
1
- {"version":3,"file":"syncApi.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/syncApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncApi.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/syncApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,2BAA2B,EAC3B,iBAAiB,EAEjB,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EAEpB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAmBjC;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,SAAS,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC,CAAC;CAC9H;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;QACtD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;QAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,8EAA8E;IAC9E,WAAW,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,uBAAuB,EAAE,CAAA;KAAE,CAAC,CAAC;IAClG,wFAAwF;IACxF,UAAU,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,+EAA+E;IAC/E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,8CAA8C;IAC9C,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,wDAAwD;IACxD,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG,OAAO,CAE3G;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9C,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,UAAU,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC,CAAC;CAC1G;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,sBAAsB,EAAE,EAChC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,GACjE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAmF3D;AAID,iDAAiD;AACjD,wBAAgB,gBAAgB,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAEtE;AAED,4FAA4F;AAC5F,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,MAAM,EACzB,KAAK,GAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAiB,GACzD,cAAc,GAAG,SAAS,CAyB5B;AAqGD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,2BAA2B,CAAC;CACvC,GACL,OAAO,CAAC,cAAc,CAAC,CAqGzB;AA6DD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAsL7F"}
@@ -15,6 +15,94 @@ function validateServicePublicKey(publicKeyPem, keyId) {
15
15
  throw new Error("S2S keyId does not match the public key");
16
16
  return { publicKeyPem: normalized, keyId };
17
17
  }
18
+ export function isPageOperation(operation) {
19
+ return operation.method === "GET" && operation.renderModes.includes("page");
20
+ }
21
+ export function deriveRolePermissions(auth, routes, resolveManifest) {
22
+ const mounted = routes.flatMap((route) => {
23
+ if (!route.enabled)
24
+ return [];
25
+ const manifest = resolveManifest(route.serviceId);
26
+ const view = manifest?.viewIndex[route.viewId];
27
+ return manifest && view
28
+ ? view.operations
29
+ .filter((operation) => route.operations.includes(operation.operationId))
30
+ .map((operation) => ({ route, manifest, view, operation }))
31
+ : [];
32
+ });
33
+ const resolveDependency = (source, dependency) => {
34
+ const matches = mounted.filter((candidate) => candidate.operation.operationId === dependency.operationId
35
+ && candidate.operation.method === dependency.method
36
+ && (dependency.serviceId
37
+ ? candidate.manifest.serviceId === dependency.serviceId
38
+ : candidate.route.serviceId === source.route.serviceId));
39
+ return matches.length === 1 ? matches[0] : undefined;
40
+ };
41
+ const instanceId = (serviceId) => {
42
+ const ids = [...new Set(mounted.filter((candidate) => candidate.manifest.serviceId === serviceId).map((candidate) => candidate.route.serviceId))];
43
+ return ids.length === 1 ? ids[0] : undefined;
44
+ };
45
+ const derived = [];
46
+ const roles = auth.roles.map((role) => {
47
+ const permissions = role.permissions.map((grant) => ({ ...grant, permissions: [...grant.permissions] }));
48
+ const queued = mounted.filter((candidate) => candidate.operation.permissions.every((required) => {
49
+ const serviceId = required.serviceId === candidate.manifest.serviceId
50
+ ? candidate.route.serviceId
51
+ : instanceId(required.serviceId);
52
+ if (!serviceId)
53
+ return false;
54
+ const grant = permissions.find((value) => value.serviceId === serviceId && value.viewId === required.viewId);
55
+ return required.permissions.every((permission) => grant?.permissions.includes(permission));
56
+ }));
57
+ const seen = new Set();
58
+ while (queued.length > 0) {
59
+ const source = queued.shift();
60
+ const sourceKey = `${source.route.serviceId}:${source.operation.operationId}:${source.operation.method}`;
61
+ if (seen.has(sourceKey))
62
+ continue;
63
+ seen.add(sourceKey);
64
+ for (const requirement of source.operation.dependencies) {
65
+ const target = resolveDependency(source, requirement);
66
+ if (!target)
67
+ continue;
68
+ queued.push(target);
69
+ for (const required of target.operation.permissions) {
70
+ const serviceId = required.serviceId === target.manifest.serviceId
71
+ ? target.route.serviceId
72
+ : instanceId(required.serviceId);
73
+ if (!serviceId)
74
+ continue;
75
+ const grant = permissions.find((candidate) => candidate.serviceId === serviceId && candidate.viewId === required.viewId);
76
+ const additions = required.permissions.filter((permission) => !grant?.permissions.includes(permission));
77
+ if (grant)
78
+ grant.permissions = [...new Set([...grant.permissions, ...required.permissions])];
79
+ else if (required.permissions.length > 0)
80
+ permissions.push({ serviceId, viewId: required.viewId, permissions: [...required.permissions] });
81
+ if (additions.length > 0) {
82
+ const existing = derived.find((candidate) => candidate.roleId === role.id && candidate.serviceId === serviceId && candidate.viewId === required.viewId);
83
+ const requiredBy = {
84
+ serviceId: source.route.serviceId,
85
+ operationId: source.operation.operationId,
86
+ method: source.operation.method
87
+ };
88
+ if (existing) {
89
+ existing.permissions = [...new Set([...existing.permissions, ...additions])];
90
+ if (!existing.requiredBy.some((candidate) => candidate.serviceId === requiredBy.serviceId
91
+ && candidate.operationId === requiredBy.operationId
92
+ && candidate.method === requiredBy.method))
93
+ existing.requiredBy.push(requiredBy);
94
+ }
95
+ else {
96
+ derived.push({ roleId: role.id, serviceId, viewId: required.viewId, permissions: additions, requiredBy: [requiredBy] });
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ return { ...role, permissions };
103
+ });
104
+ return { auth: { ...auth, roles }, derived };
105
+ }
18
106
  const manifestCache = new Map();
19
107
  /** Read-only accessor for the manifest cache. */
20
108
  export function getManifestCache() {
@@ -80,13 +168,19 @@ function normalizeManifest(input) {
80
168
  operations: v.operations.map((operation) => ({
81
169
  ...operation,
82
170
  renderers: Array.isArray(operation.renderers) ? operation.renderers : [],
171
+ renderModes: Array.isArray(operation.renderModes) ? operation.renderModes : operation.renderable
172
+ ? [operation.method === "GET" ? "page" : "fragment"]
173
+ : [],
83
174
  robots: Array.isArray(operation.robots) ? operation.robots : [],
84
175
  dependencies: Array.isArray(operation.dependencies) ? operation.dependencies : [],
85
176
  permissions: Array.isArray(operation.permissions) ? operation.permissions : [],
86
177
  apiContracts: Array.isArray(operation.apiContracts) ? operation.apiContracts : [],
87
178
  demoScenarios: Array.isArray(operation.demoScenarios) ? operation.demoScenarios : []
88
179
  })),
89
- fragments: Array.isArray(v.fragments) ? v.fragments.filter((fragment) => typeof fragment?.fragmentId === "string" && typeof fragment?.targetPath === "string") : []
180
+ fragments: Array.isArray(v.fragments) ? v.fragments.filter((fragment) => typeof fragment?.fragmentId === "string"
181
+ && typeof fragment?.targetPath === "string"
182
+ && typeof fragment?.operationId === "string"
183
+ && typeof fragment?.method === "string") : []
90
184
  };
91
185
  }
92
186
  return {
@@ -142,12 +236,19 @@ export async function reconcileServiceRegistry(store, serviceId, registry, optio
142
236
  || set.components.some((renderer) => renderer.method === method)
143
237
  || set.fragments.some((renderer) => renderer.method === method)
144
238
  || (method === "GET" && Boolean(set.stream))).map(([renderer]) => renderer);
239
+ const renderModes = [...new Set(Object.values(route.renderers).flatMap((set) => [
240
+ ...(set.pages.some((renderer) => renderer.method === method) ? ["page"] : []),
241
+ ...(set.fragments.some((renderer) => renderer.method === method) || (method === "GET" && Boolean(set.stream))
242
+ ? ["fragment"]
243
+ : [])
244
+ ]))];
145
245
  return {
146
246
  operationId: operation.operationId,
147
247
  method,
148
248
  title: operation.title,
149
249
  description: operation.description,
150
250
  renderers,
251
+ renderModes,
151
252
  ...(operation.role ? { role: operation.role } : {}),
152
253
  authRequired: operation.auth.required,
153
254
  sitemap: sitemapMetadata(operation.sitemap),
@@ -189,10 +290,16 @@ export async function reconcileServiceRegistry(store, serviceId, registry, optio
189
290
  };
190
291
  }),
191
292
  fragments: [...new Map(Object.values(route.renderers).flatMap((theme) => theme.fragments.flatMap((fragment) => {
293
+ if (!fragment.method)
294
+ return [];
295
+ const operation = route.methodRoutes?.[fragment.method];
296
+ if (!operation)
297
+ return [];
192
298
  const fragmentId = fragment.fragmentLocation && fragment.fragmentId
193
299
  ? `${fragment.fragmentLocation}.${fragment.fragmentId}`
194
300
  : fragment.rendererId;
195
- return [[fragmentId, { fragmentId, targetPath: route.path }]];
301
+ const key = `${fragmentId}:${operation.operationId}:${fragment.method}`;
302
+ return [[key, { fragmentId, targetPath: route.path, operationId: operation.operationId, method: fragment.method }]];
196
303
  }))).values()]
197
304
  };
198
305
  }
@@ -222,7 +329,7 @@ function injectResolvedServicePaths(scoped) {
222
329
  const view = cached.viewIndex[route.viewId];
223
330
  if (!view)
224
331
  return route;
225
- const operation = view.operations.find((candidate) => route.operations.includes(candidate.operationId) && candidate.renderable)
332
+ const operation = view.operations.find((candidate) => route.operations.includes(candidate.operationId) && isPageOperation(candidate))
226
333
  ?? view.operations.find((candidate) => route.operations.includes(candidate.operationId));
227
334
  if (!operation)
228
335
  return route;
@@ -244,11 +351,17 @@ function injectResolvedServicePaths(scoped) {
244
351
  ...(chrome ? { chrome } : {})
245
352
  };
246
353
  });
247
- const apps = scoped.apps.map((app) => ({
248
- ...app,
249
- routes: resolveRoutes(app.routes),
250
- ...(app.appRoutes ? { appRoutes: resolveRoutes(app.appRoutes) } : {})
251
- }));
354
+ const apps = scoped.apps.map((app) => {
355
+ const routes = resolveRoutes(app.routes);
356
+ return {
357
+ ...app,
358
+ routes,
359
+ ...(app.appRoutes ? { appRoutes: resolveRoutes(app.appRoutes) } : {}),
360
+ ...(app.auth ? {
361
+ auth: deriveRolePermissions(app.auth, routes, (serviceId) => manifestCache.get(serviceId) ?? manifestCache.get(serviceManifestKeys.get(serviceId) ?? "")).auth
362
+ } : {})
363
+ };
364
+ });
252
365
  return { ...scoped, apps };
253
366
  }
254
367
  export function registerSyncEndpoint(app, store) {
@@ -404,24 +517,33 @@ function sameOperations(left, right) {
404
517
  function operationIndex(manifest) {
405
518
  return new Map(Object.values(manifest.viewIndex).flatMap((view) => view.operations.map((operation) => [operation.operationId, { view, operation }])));
406
519
  }
407
- function addMissingDependencyRoutes(app, sourceRoute, manifest) {
520
+ function addMissingDependencyRoutes(config, app, sourceRoute, manifest) {
408
521
  if (!sourceRoute.enabled)
409
522
  return false;
410
523
  const sourceView = manifest.viewIndex[sourceRoute.viewId];
411
524
  if (!sourceView)
412
525
  return false;
413
- const operations = operationIndex(manifest);
414
526
  const dependencies = sourceView.operations
415
527
  .filter((operation) => sourceRoute.operations.includes(operation.operationId))
416
528
  .flatMap((operation) => operation.dependencies);
417
529
  let changed = false;
418
- for (const dependencyOperationId of dependencies) {
419
- const dependency = operations.get(dependencyOperationId);
420
- if (!dependency)
530
+ const availableServiceIds = getAvailableServiceInstanceIdsForApp(config, app);
531
+ for (const requirement of dependencies) {
532
+ const targetServiceIds = requirement.serviceId
533
+ ? [...availableServiceIds].filter((serviceId) => getCachedManifestForService(config, serviceId)?.serviceId === requirement.serviceId)
534
+ : [sourceRoute.serviceId];
535
+ if (targetServiceIds.length !== 1)
421
536
  continue;
422
- const existing = app.routes.find((route) => route.serviceId === sourceRoute.serviceId && route.operations.includes(dependencyOperationId));
537
+ const targetServiceId = targetServiceIds[0];
538
+ const targetManifest = getCachedManifestForService(config, targetServiceId);
539
+ if (!targetManifest)
540
+ continue;
541
+ const dependency = operationIndex(targetManifest).get(requirement.operationId);
542
+ if (!dependency || dependency.operation.method !== requirement.method)
543
+ continue;
544
+ const existing = app.routes.find((route) => route.serviceId === targetServiceId && route.operations.includes(requirement.operationId));
423
545
  if (existing) {
424
- if (!existing.enabled) {
546
+ if (existing.enablement !== "disabled" && !existing.enabled) {
425
547
  existing.enabled = true;
426
548
  changed = true;
427
549
  }
@@ -430,18 +552,37 @@ function addMissingDependencyRoutes(app, sourceRoute, manifest) {
430
552
  app.routes.push({
431
553
  id: uuidv7(),
432
554
  kind: "api",
433
- path: apiRoutePath(manifest.serviceId, dependency.view.path),
434
- serviceId: sourceRoute.serviceId,
555
+ path: apiRoutePath(targetManifest.serviceId, dependency.view.path),
556
+ serviceId: targetServiceId,
435
557
  viewId: dependency.view.viewId,
436
558
  targetPath: dependency.view.path,
437
559
  title: dependency.operation.title,
438
560
  enabled: true,
439
- operations: [dependencyOperationId]
561
+ enablement: "auto",
562
+ operations: [requirement.operationId]
440
563
  });
441
564
  changed = true;
442
565
  }
443
566
  return changed;
444
567
  }
568
+ function reconcileDependencyRoutes(config, app) {
569
+ const previous = new Map(app.routes.map((route) => [route.id, `${route.enabled}:${route.enablement ?? ""}`]));
570
+ for (const route of app.routes) {
571
+ if (route.kind === "api" && route.enablement === "auto")
572
+ route.enabled = false;
573
+ }
574
+ for (let pass = 0; pass <= app.routes.length; pass++) {
575
+ let passChanged = false;
576
+ for (const route of [...app.routes]) {
577
+ const manifest = getCachedManifestForService(config, route.serviceId);
578
+ if (manifest && addMissingDependencyRoutes(config, app, route, manifest))
579
+ passChanged = true;
580
+ }
581
+ if (!passChanged)
582
+ break;
583
+ }
584
+ return app.routes.length !== previous.size || app.routes.some((route) => previous.get(route.id) !== `${route.enabled}:${route.enablement ?? ""}`);
585
+ }
445
586
  async function updateServiceMetadata(store, serviceInstanceId, manifest) {
446
587
  const config = await store.loadConfig();
447
588
  const persistedManifest = {
@@ -554,7 +695,7 @@ async function updateServiceMetadata(store, serviceInstanceId, manifest) {
554
695
  changed = true;
555
696
  }
556
697
  const selectedOperations = validOperations.map((operationId) => manifestOperations.get(operationId).operation);
557
- const pageOperation = selectedOperations.find((candidate) => candidate.method === "GET" && candidate.renderable);
698
+ const pageOperation = selectedOperations.find(isPageOperation);
558
699
  const operation = pageOperation ?? selectedOperations[0];
559
700
  if (route.operations.length > 1) {
560
701
  route.operations = [operation.operationId];
@@ -608,12 +749,10 @@ async function updateServiceMetadata(store, serviceInstanceId, manifest) {
608
749
  route.title = operation.title;
609
750
  changed = true;
610
751
  }
611
- if (addMissingDependencyRoutes(app, route, manifest))
612
- changed = true;
613
752
  }
614
753
  for (const serviceId of syncedServiceIds) {
615
754
  for (const view of Object.values(manifest.viewIndex)) {
616
- for (const operation of view.operations.filter((candidate) => candidate.method !== "GET" || !candidate.renderable)) {
755
+ for (const operation of view.operations.filter((candidate) => !isPageOperation(candidate))) {
617
756
  if (app.routes.some((route) => route.serviceId === serviceId && route.operations.includes(operation.operationId)))
618
757
  continue;
619
758
  app.routes.push({
@@ -625,12 +764,15 @@ async function updateServiceMetadata(store, serviceInstanceId, manifest) {
625
764
  targetPath: view.path,
626
765
  title: operation.title,
627
766
  enabled: false,
767
+ enablement: "auto",
628
768
  operations: [operation.operationId]
629
769
  });
630
770
  changed = true;
631
771
  }
632
772
  }
633
773
  }
774
+ if (reconcileDependencyRoutes(config, app))
775
+ changed = true;
634
776
  }
635
777
  if (changed)
636
778
  await store.saveConfig(config);