@objectstack/platform-objects 6.7.0 → 6.8.0

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.
@@ -23,6 +23,36 @@ var SETUP_APP = {
23
23
  { id: "nav_system_overview", type: "dashboard", label: "System Overview", dashboardName: "system_overview", icon: "activity" }
24
24
  ]
25
25
  },
26
+ {
27
+ // App Marketplace — browse + install packages. The browse page is
28
+ // always available: single-environment runtimes use the
29
+ // `MarketplaceProxy` plugin to browse the remote catalog;
30
+ // control-plane (cloud) deployments add `sys_package_installation`
31
+ // to track per-env installs. The "Installed Apps" entry is gated
32
+ // on that object so it only appears when the catalog backend
33
+ // exposes installations (i.e. control-plane / multi-tenant).
34
+ id: "group_apps",
35
+ type: "group",
36
+ label: "Apps",
37
+ icon: "package",
38
+ children: [
39
+ {
40
+ id: "nav_marketplace_browse",
41
+ type: "url",
42
+ label: "Browse Marketplace",
43
+ url: "/apps/setup/system/marketplace",
44
+ icon: "store"
45
+ },
46
+ {
47
+ id: "nav_marketplace_installed",
48
+ type: "url",
49
+ label: "Installed Apps",
50
+ url: "/apps/setup/system/marketplace/installed",
51
+ icon: "package-check",
52
+ requiresObject: "sys_package_installation"
53
+ }
54
+ ]
55
+ },
26
56
  {
27
57
  id: "group_people_org",
28
58
  type: "group",
@@ -152,18 +182,239 @@ var SETUP_APP = {
152
182
  // from sys_user / org members.
153
183
  // - Demoted "All Metadata" from the (now-deleted) Platform group
154
184
  // to this Advanced/debug bucket.
155
- // - The marketplace-only `sys_app` / `sys_package` /
156
- // `sys_package_installation` menus have been removed entirely;
157
- // they are contributed by `@objectstack/service-tenant`
158
- // (control-plane) and are not present in single-environment runtimes.
185
+ // - The raw `sys_app` / `sys_package` / `sys_package_installation`
186
+ // object-list menus stay removed (they are control-plane admin
187
+ // surfaces and live in `cloud-control.app.ts`). End-user
188
+ // marketplace access lives in the top-level `Apps` group above,
189
+ // pointing at the React browse/installed pages.
159
190
  { id: "nav_oauth_apps", type: "object", label: "OAuth Applications", objectName: "sys_oauth_application", icon: "app-window" },
160
191
  { id: "nav_jwks", type: "object", label: "Signing Keys (JWKS)", objectName: "sys_jwks", icon: "key-round" },
161
192
  { id: "nav_verifications", type: "object", label: "Verifications", objectName: "sys_verification", icon: "mail-check" },
162
193
  { id: "nav_two_factor", type: "object", label: "Two-Factor", objectName: "sys_two_factor", icon: "smartphone" },
163
194
  { id: "nav_device_codes", type: "object", label: "Device Codes", objectName: "sys_device_code", icon: "qr-code" },
164
195
  { id: "nav_accounts", type: "object", label: "Identity Links", objectName: "sys_account", icon: "link-2" },
165
- { id: "nav_user_preferences", type: "object", label: "User Preferences", objectName: "sys_user_preference", icon: "sliders" },
166
- { id: "nav_metadata", type: "object", label: "All Metadata", objectName: "sys_metadata", icon: "file-cog" }
196
+ { id: "nav_user_preferences", type: "object", label: "User Preferences", objectName: "sys_user_preference", icon: "sliders" }
197
+ ]
198
+ }
199
+ ]
200
+ };
201
+
202
+ // src/apps/studio.app.ts
203
+ var STUDIO_APP = {
204
+ name: "studio",
205
+ label: "Studio",
206
+ description: "Metadata workbench for developers, analysts, and implementers",
207
+ icon: "hammer",
208
+ active: true,
209
+ isDefault: false,
210
+ branding: {
211
+ primaryColor: "#6366f1"
212
+ // Indigo-500 — distinct from Setup's slate
213
+ },
214
+ requiredPermissions: ["studio.access"],
215
+ navigation: [
216
+ {
217
+ id: "group_overview",
218
+ type: "group",
219
+ label: "Overview",
220
+ icon: "layout-dashboard",
221
+ children: [
222
+ {
223
+ id: "nav_metadata_directory",
224
+ type: "component",
225
+ label: "All Metadata Types",
226
+ componentRef: "metadata:directory",
227
+ icon: "layers"
228
+ }
229
+ ]
230
+ },
231
+ {
232
+ // Data Model — schema-design surfaces. Objects are the primary
233
+ // entry; field management happens in-context on each object's
234
+ // detail form (master-detail), so no top-level field link.
235
+ id: "group_data_model",
236
+ type: "group",
237
+ label: "Data Model",
238
+ icon: "database",
239
+ children: [
240
+ {
241
+ id: "nav_objects",
242
+ type: "component",
243
+ label: "Objects",
244
+ componentRef: "metadata:resource",
245
+ params: { type: "object" },
246
+ icon: "box"
247
+ },
248
+ {
249
+ id: "nav_validations",
250
+ type: "component",
251
+ label: "Validations",
252
+ componentRef: "metadata:resource",
253
+ params: { type: "validation" },
254
+ icon: "check-square"
255
+ }
256
+ ]
257
+ },
258
+ {
259
+ // User Experience — the metadata that shapes what end users see.
260
+ id: "group_ux",
261
+ type: "group",
262
+ label: "User Experience",
263
+ icon: "layout",
264
+ children: [
265
+ {
266
+ id: "nav_apps",
267
+ type: "component",
268
+ label: "Apps",
269
+ componentRef: "metadata:resource",
270
+ params: { type: "app" },
271
+ icon: "app-window"
272
+ },
273
+ {
274
+ id: "nav_views",
275
+ type: "component",
276
+ label: "Views",
277
+ componentRef: "metadata:resource",
278
+ params: { type: "view" },
279
+ icon: "table"
280
+ },
281
+ {
282
+ id: "nav_pages",
283
+ type: "component",
284
+ label: "Pages",
285
+ componentRef: "metadata:resource",
286
+ params: { type: "page" },
287
+ icon: "file-text"
288
+ },
289
+ {
290
+ id: "nav_dashboards",
291
+ type: "component",
292
+ label: "Dashboards",
293
+ componentRef: "metadata:resource",
294
+ params: { type: "dashboard" },
295
+ icon: "layout-dashboard"
296
+ },
297
+ {
298
+ id: "nav_reports",
299
+ type: "component",
300
+ label: "Reports",
301
+ componentRef: "metadata:resource",
302
+ params: { type: "report" },
303
+ icon: "bar-chart-3"
304
+ }
305
+ ]
306
+ },
307
+ {
308
+ // Logic — declarative + scripted business rules.
309
+ id: "group_logic",
310
+ type: "group",
311
+ label: "Logic",
312
+ icon: "function-square",
313
+ children: [
314
+ {
315
+ id: "nav_actions",
316
+ type: "component",
317
+ label: "Actions",
318
+ componentRef: "metadata:resource",
319
+ params: { type: "action" },
320
+ icon: "mouse-pointer-click"
321
+ },
322
+ {
323
+ id: "nav_hooks",
324
+ type: "component",
325
+ label: "Hooks",
326
+ componentRef: "metadata:resource",
327
+ params: { type: "hook" },
328
+ icon: "webhook"
329
+ }
330
+ ]
331
+ },
332
+ {
333
+ // Automation — flows, declarative workflow rules, approval processes.
334
+ id: "group_automation",
335
+ type: "group",
336
+ label: "Automation",
337
+ icon: "workflow",
338
+ children: [
339
+ {
340
+ id: "nav_flows",
341
+ type: "component",
342
+ label: "Flows",
343
+ componentRef: "metadata:resource",
344
+ params: { type: "flow" },
345
+ icon: "git-branch"
346
+ },
347
+ {
348
+ id: "nav_workflows",
349
+ type: "component",
350
+ label: "Workflow Rules",
351
+ componentRef: "metadata:resource",
352
+ params: { type: "workflow" },
353
+ icon: "zap"
354
+ },
355
+ {
356
+ id: "nav_approvals",
357
+ type: "component",
358
+ label: "Approval Processes",
359
+ componentRef: "metadata:resource",
360
+ params: { type: "approval" },
361
+ icon: "check-circle"
362
+ }
363
+ ]
364
+ },
365
+ {
366
+ // AI — agent/tool/skill metadata. Configured together by the
367
+ // same team in practice; runtime conversations live in their
368
+ // own app surface, not here.
369
+ id: "group_ai",
370
+ type: "group",
371
+ label: "AI",
372
+ icon: "sparkles",
373
+ children: [
374
+ {
375
+ id: "nav_agents",
376
+ type: "component",
377
+ label: "Agents",
378
+ componentRef: "metadata:resource",
379
+ params: { type: "agent" },
380
+ icon: "bot"
381
+ },
382
+ {
383
+ id: "nav_tools",
384
+ type: "component",
385
+ label: "Tools",
386
+ componentRef: "metadata:resource",
387
+ params: { type: "tool" },
388
+ icon: "wrench"
389
+ },
390
+ {
391
+ id: "nav_skills",
392
+ type: "component",
393
+ label: "Skills",
394
+ componentRef: "metadata:resource",
395
+ params: { type: "skill" },
396
+ icon: "brain"
397
+ }
398
+ ]
399
+ },
400
+ {
401
+ // Integration — outbound shapes: datasources, email templates,
402
+ // routes/functions/services live here too once they have CRUD
403
+ // surfaces. Email templates are a developer artefact (templates
404
+ // referenced by transactional sends), not a Setup item.
405
+ id: "group_integration",
406
+ type: "group",
407
+ label: "Integration",
408
+ icon: "plug",
409
+ children: [
410
+ {
411
+ id: "nav_email_templates",
412
+ type: "component",
413
+ label: "Email Templates",
414
+ componentRef: "metadata:resource",
415
+ params: { type: "email_template" },
416
+ icon: "mail"
417
+ }
167
418
  ]
168
419
  }
169
420
  ]
@@ -3232,6 +3483,7 @@ var en = {
3232
3483
  navigation: {
3233
3484
  // Groups
3234
3485
  group_overview: { label: "Overview" },
3486
+ group_apps: { label: "Apps" },
3235
3487
  group_people_org: { label: "People & Organization" },
3236
3488
  group_access_control: { label: "Access Control" },
3237
3489
  group_approvals: { label: "Approvals" },
@@ -3240,6 +3492,9 @@ var en = {
3240
3492
  group_advanced: { label: "Advanced" },
3241
3493
  // Overview
3242
3494
  nav_system_overview: { label: "System Overview" },
3495
+ // Apps / Marketplace
3496
+ nav_marketplace_browse: { label: "Browse Marketplace" },
3497
+ nav_marketplace_installed: { label: "Installed Apps" },
3243
3498
  // People & Organization
3244
3499
  nav_users: { label: "Users" },
3245
3500
  nav_departments: { label: "Departments" },
@@ -6247,6 +6502,9 @@ var zhCN = {
6247
6502
  description: "\u5E73\u53F0\u8BBE\u7F6E\u4E0E\u7BA1\u7406",
6248
6503
  navigation: {
6249
6504
  group_overview: { label: "\u603B\u89C8" },
6505
+ group_apps: { label: "\u5E94\u7528" },
6506
+ nav_marketplace_browse: { label: "\u6D4F\u89C8\u5E94\u7528\u5E02\u573A" },
6507
+ nav_marketplace_installed: { label: "\u5DF2\u5B89\u88C5\u5E94\u7528" },
6250
6508
  group_people_org: { label: "\u4EBA\u5458\u4E0E\u7EC4\u7EC7" },
6251
6509
  group_access_control: { label: "\u8BBF\u95EE\u63A7\u5236" },
6252
6510
  group_approvals: { label: "\u5BA1\u6279" },
@@ -9221,6 +9479,9 @@ var jaJP = {
9221
9479
  description: "\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u8A2D\u5B9A\u3068\u7BA1\u7406",
9222
9480
  navigation: {
9223
9481
  group_overview: { label: "\u6982\u8981" },
9482
+ group_apps: { label: "\u30A2\u30D7\u30EA" },
9483
+ nav_marketplace_browse: { label: "\u30DE\u30FC\u30B1\u30C3\u30C8\u30D7\u30EC\u30A4\u30B9\u3092\u95B2\u89A7" },
9484
+ nav_marketplace_installed: { label: "\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u30A2\u30D7\u30EA" },
9224
9485
  group_people_org: { label: "\u30E6\u30FC\u30B6\u30FC\u3068\u7D44\u7E54" },
9225
9486
  group_access_control: { label: "\u30A2\u30AF\u30BB\u30B9\u5236\u5FA1" },
9226
9487
  group_approvals: { label: "\u627F\u8A8D" },
@@ -12195,6 +12456,9 @@ var esES = {
12195
12456
  description: "Configuraci\xF3n y administraci\xF3n de la plataforma",
12196
12457
  navigation: {
12197
12458
  group_overview: { label: "Resumen" },
12459
+ group_apps: { label: "Aplicaciones" },
12460
+ nav_marketplace_browse: { label: "Explorar Marketplace" },
12461
+ nav_marketplace_installed: { label: "Aplicaciones instaladas" },
12198
12462
  group_people_org: { label: "Personas y Organizaci\xF3n" },
12199
12463
  group_access_control: { label: "Control de Acceso" },
12200
12464
  group_approvals: { label: "Aprobaciones" },
@@ -12261,6 +12525,6 @@ var SetupAppTranslations = {
12261
12525
  "es-ES": esES
12262
12526
  };
12263
12527
 
12264
- export { SETUP_APP, SetupAppTranslations, SystemOverviewDashboard, en, esES, jaJP, zhCN };
12528
+ export { SETUP_APP, STUDIO_APP, SetupAppTranslations, SystemOverviewDashboard, en, esES, jaJP, zhCN };
12265
12529
  //# sourceMappingURL=index.mjs.map
12266
12530
  //# sourceMappingURL=index.mjs.map