@objectstack/platform-objects 8.0.0 → 9.0.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.
@@ -96,8 +96,8 @@ declare const STUDIO_APP: App;
96
96
  * `member_default` permission set.
97
97
  *
98
98
  * The C-tier `resultDialog` actions previously shipped on these objects
99
- * make the experience equivalent to the old account SPA:
100
- * - `sys_two_factor.enable_two_factor` — QR + backup codes
99
+ * make the experience equivalent to the old account SPA for supported
100
+ * surfaces:
101
101
  * - `sys_oauth_application.create` — one-time client_secret reveal
102
102
  * - `sys_account.link_social` — OAuth redirect URL
103
103
  *
@@ -129,8 +129,9 @@ declare const SystemOverviewDashboard: {
129
129
  label: string;
130
130
  widgets: {
131
131
  id: string;
132
- type: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "grouped-bar" | "stacked-bar" | "bi-polar-bar" | "stacked-area" | "step-line" | "spline" | "donut" | "funnel" | "pyramid" | "bubble" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot";
133
- aggregate: "min" | "max" | "count" | "sum" | "avg";
132
+ type: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "donut" | "funnel" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot";
133
+ dataset: string;
134
+ values: string[];
134
135
  layout: {
135
136
  x: number;
136
137
  y: number;
@@ -140,7 +141,7 @@ declare const SystemOverviewDashboard: {
140
141
  title?: string | undefined;
141
142
  description?: string | undefined;
142
143
  chartConfig?: {
143
- type: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "grouped-bar" | "stacked-bar" | "bi-polar-bar" | "stacked-area" | "step-line" | "spline" | "donut" | "funnel" | "pyramid" | "bubble" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot";
144
+ type: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "donut" | "funnel" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot";
144
145
  showLegend: boolean;
145
146
  showDataLabels: boolean;
146
147
  title?: string | undefined;
@@ -172,7 +173,7 @@ declare const SystemOverviewDashboard: {
172
173
  name: string;
173
174
  yAxis: "left" | "right";
174
175
  label?: string | undefined;
175
- type?: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "grouped-bar" | "stacked-bar" | "bi-polar-bar" | "stacked-area" | "step-line" | "spline" | "donut" | "funnel" | "pyramid" | "bubble" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot" | undefined;
176
+ type?: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "donut" | "funnel" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot" | undefined;
176
177
  color?: string | undefined;
177
178
  stack?: string | undefined;
178
179
  variant?: "primary" | "comparison" | undefined;
@@ -208,23 +209,11 @@ declare const SystemOverviewDashboard: {
208
209
  actionUrl?: string | undefined;
209
210
  actionType?: "url" | "api" | "modal" | "flow" | "script" | undefined;
210
211
  actionIcon?: string | undefined;
211
- object?: string | undefined;
212
212
  filter?: _objectstack_spec_data.FilterCondition | undefined;
213
213
  compareTo?: "previousPeriod" | "previousYear" | {
214
214
  offset: string;
215
215
  } | undefined;
216
- categoryField?: string | undefined;
217
- categoryGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
218
- valueField?: string | undefined;
219
- measures?: {
220
- valueField: string;
221
- aggregate: "min" | "max" | "count" | "sum" | "avg";
222
- label?: string | undefined;
223
- format?: string | undefined;
224
- }[] | undefined;
225
- dataset?: string | undefined;
226
216
  dimensions?: string[] | undefined;
227
- values?: string[] | undefined;
228
217
  options?: unknown;
229
218
  responsive?: {
230
219
  breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
@@ -320,6 +309,47 @@ declare const SystemOverviewDashboard: {
320
309
  } | undefined;
321
310
  };
322
311
 
312
+ declare const SystemOverviewDatasets: {
313
+ name: string;
314
+ label: string;
315
+ object: string;
316
+ dimensions: {
317
+ name: string;
318
+ field: string;
319
+ label?: string | undefined;
320
+ type?: "string" | "number" | "boolean" | "date" | "lookup" | undefined;
321
+ dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
322
+ }[];
323
+ measures: {
324
+ name: string;
325
+ aggregate: "min" | "max" | "count" | "sum" | "avg" | "count_distinct" | "array_agg" | "string_agg";
326
+ label?: string | undefined;
327
+ field?: string | undefined;
328
+ filter?: unknown;
329
+ format?: string | undefined;
330
+ certified?: boolean | undefined;
331
+ derived?: {
332
+ op: "sum" | "ratio" | "difference" | "product";
333
+ of: string[];
334
+ } | undefined;
335
+ }[];
336
+ _lock?: "full" | "none" | "no-overlay" | "no-delete" | undefined;
337
+ _lockReason?: string | undefined;
338
+ _lockSource?: "artifact" | "package" | "env-forced" | undefined;
339
+ _provenance?: "package" | "env-forced" | "org" | undefined;
340
+ _packageId?: string | undefined;
341
+ _packageVersion?: string | undefined;
342
+ _lockDocsUrl?: string | undefined;
343
+ description?: string | undefined;
344
+ include?: string[] | undefined;
345
+ filter?: unknown;
346
+ protection?: {
347
+ lock: "full" | "none" | "no-overlay" | "no-delete";
348
+ reason: string;
349
+ docsUrl?: string | undefined;
350
+ } | undefined;
351
+ }[];
352
+
323
353
  /**
324
354
  * Setup App — Internationalization (i18n)
325
355
  *
@@ -368,4 +398,4 @@ declare const jaJP: TranslationData;
368
398
  */
369
399
  declare const esES: TranslationData;
370
400
 
371
- export { ACCOUNT_APP, SETUP_APP, SETUP_NAV_CONTRIBUTIONS, STUDIO_APP, SetupAppTranslations, SystemOverviewDashboard, en, esES, jaJP, zhCN };
401
+ export { ACCOUNT_APP, SETUP_APP, SETUP_NAV_CONTRIBUTIONS, STUDIO_APP, SetupAppTranslations, SystemOverviewDashboard, SystemOverviewDatasets, en, esES, jaJP, zhCN };
@@ -96,8 +96,8 @@ declare const STUDIO_APP: App;
96
96
  * `member_default` permission set.
97
97
  *
98
98
  * The C-tier `resultDialog` actions previously shipped on these objects
99
- * make the experience equivalent to the old account SPA:
100
- * - `sys_two_factor.enable_two_factor` — QR + backup codes
99
+ * make the experience equivalent to the old account SPA for supported
100
+ * surfaces:
101
101
  * - `sys_oauth_application.create` — one-time client_secret reveal
102
102
  * - `sys_account.link_social` — OAuth redirect URL
103
103
  *
@@ -129,8 +129,9 @@ declare const SystemOverviewDashboard: {
129
129
  label: string;
130
130
  widgets: {
131
131
  id: string;
132
- type: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "grouped-bar" | "stacked-bar" | "bi-polar-bar" | "stacked-area" | "step-line" | "spline" | "donut" | "funnel" | "pyramid" | "bubble" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot";
133
- aggregate: "min" | "max" | "count" | "sum" | "avg";
132
+ type: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "donut" | "funnel" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot";
133
+ dataset: string;
134
+ values: string[];
134
135
  layout: {
135
136
  x: number;
136
137
  y: number;
@@ -140,7 +141,7 @@ declare const SystemOverviewDashboard: {
140
141
  title?: string | undefined;
141
142
  description?: string | undefined;
142
143
  chartConfig?: {
143
- type: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "grouped-bar" | "stacked-bar" | "bi-polar-bar" | "stacked-area" | "step-line" | "spline" | "donut" | "funnel" | "pyramid" | "bubble" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot";
144
+ type: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "donut" | "funnel" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot";
144
145
  showLegend: boolean;
145
146
  showDataLabels: boolean;
146
147
  title?: string | undefined;
@@ -172,7 +173,7 @@ declare const SystemOverviewDashboard: {
172
173
  name: string;
173
174
  yAxis: "left" | "right";
174
175
  label?: string | undefined;
175
- type?: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "grouped-bar" | "stacked-bar" | "bi-polar-bar" | "stacked-area" | "step-line" | "spline" | "donut" | "funnel" | "pyramid" | "bubble" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot" | undefined;
176
+ type?: "table" | "bar" | "line" | "pie" | "area" | "scatter" | "horizontal-bar" | "column" | "donut" | "funnel" | "treemap" | "sankey" | "gauge" | "solid-gauge" | "metric" | "kpi" | "bullet" | "radar" | "pivot" | undefined;
176
177
  color?: string | undefined;
177
178
  stack?: string | undefined;
178
179
  variant?: "primary" | "comparison" | undefined;
@@ -208,23 +209,11 @@ declare const SystemOverviewDashboard: {
208
209
  actionUrl?: string | undefined;
209
210
  actionType?: "url" | "api" | "modal" | "flow" | "script" | undefined;
210
211
  actionIcon?: string | undefined;
211
- object?: string | undefined;
212
212
  filter?: _objectstack_spec_data.FilterCondition | undefined;
213
213
  compareTo?: "previousPeriod" | "previousYear" | {
214
214
  offset: string;
215
215
  } | undefined;
216
- categoryField?: string | undefined;
217
- categoryGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
218
- valueField?: string | undefined;
219
- measures?: {
220
- valueField: string;
221
- aggregate: "min" | "max" | "count" | "sum" | "avg";
222
- label?: string | undefined;
223
- format?: string | undefined;
224
- }[] | undefined;
225
- dataset?: string | undefined;
226
216
  dimensions?: string[] | undefined;
227
- values?: string[] | undefined;
228
217
  options?: unknown;
229
218
  responsive?: {
230
219
  breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
@@ -320,6 +309,47 @@ declare const SystemOverviewDashboard: {
320
309
  } | undefined;
321
310
  };
322
311
 
312
+ declare const SystemOverviewDatasets: {
313
+ name: string;
314
+ label: string;
315
+ object: string;
316
+ dimensions: {
317
+ name: string;
318
+ field: string;
319
+ label?: string | undefined;
320
+ type?: "string" | "number" | "boolean" | "date" | "lookup" | undefined;
321
+ dateGranularity?: "day" | "week" | "month" | "quarter" | "year" | undefined;
322
+ }[];
323
+ measures: {
324
+ name: string;
325
+ aggregate: "min" | "max" | "count" | "sum" | "avg" | "count_distinct" | "array_agg" | "string_agg";
326
+ label?: string | undefined;
327
+ field?: string | undefined;
328
+ filter?: unknown;
329
+ format?: string | undefined;
330
+ certified?: boolean | undefined;
331
+ derived?: {
332
+ op: "sum" | "ratio" | "difference" | "product";
333
+ of: string[];
334
+ } | undefined;
335
+ }[];
336
+ _lock?: "full" | "none" | "no-overlay" | "no-delete" | undefined;
337
+ _lockReason?: string | undefined;
338
+ _lockSource?: "artifact" | "package" | "env-forced" | undefined;
339
+ _provenance?: "package" | "env-forced" | "org" | undefined;
340
+ _packageId?: string | undefined;
341
+ _packageVersion?: string | undefined;
342
+ _lockDocsUrl?: string | undefined;
343
+ description?: string | undefined;
344
+ include?: string[] | undefined;
345
+ filter?: unknown;
346
+ protection?: {
347
+ lock: "full" | "none" | "no-overlay" | "no-delete";
348
+ reason: string;
349
+ docsUrl?: string | undefined;
350
+ } | undefined;
351
+ }[];
352
+
323
353
  /**
324
354
  * Setup App — Internationalization (i18n)
325
355
  *
@@ -368,4 +398,4 @@ declare const jaJP: TranslationData;
368
398
  */
369
399
  declare const esES: TranslationData;
370
400
 
371
- export { ACCOUNT_APP, SETUP_APP, SETUP_NAV_CONTRIBUTIONS, STUDIO_APP, SetupAppTranslations, SystemOverviewDashboard, en, esES, jaJP, zhCN };
401
+ export { ACCOUNT_APP, SETUP_APP, SETUP_NAV_CONTRIBUTIONS, STUDIO_APP, SetupAppTranslations, SystemOverviewDashboard, SystemOverviewDatasets, en, esES, jaJP, zhCN };
@@ -153,6 +153,7 @@ var SETUP_NAV_CONTRIBUTIONS = [
153
153
  items: [
154
154
  { id: "nav_settings_hub", type: "url", label: "All Settings", url: "/apps/setup/system/settings", icon: "settings-2", requiredPermissions: ["manage_platform_settings"] },
155
155
  { id: "nav_settings_branding", type: "url", label: "Branding", url: "/apps/setup/system/settings/branding", icon: "palette" },
156
+ { id: "nav_settings_auth", type: "url", label: "Authentication", url: "/apps/setup/system/settings/auth", icon: "lock-keyhole", requiredPermissions: ["manage_platform_settings"] },
156
157
  { id: "nav_settings_mail", type: "url", label: "Email", url: "/apps/setup/system/settings/mail", icon: "mail", requiredPermissions: ["manage_platform_settings"] },
157
158
  { id: "nav_settings_storage", type: "url", label: "File Storage", url: "/apps/setup/system/settings/storage", icon: "hard-drive", requiredPermissions: ["manage_platform_settings"] },
158
159
  { id: "nav_settings_ai", type: "url", label: "AI & Embedder", url: "/apps/setup/system/settings/ai", icon: "sparkles", requiredPermissions: ["manage_platform_settings"] },
@@ -179,7 +180,6 @@ var SETUP_NAV_CONTRIBUTIONS = [
179
180
  { id: "nav_oauth_apps", type: "object", label: "OAuth Applications", objectName: "sys_oauth_application", icon: "app-window" },
180
181
  { id: "nav_jwks", type: "object", label: "Signing Keys (JWKS)", objectName: "sys_jwks", icon: "key-round" },
181
182
  { id: "nav_verifications", type: "object", label: "Verifications", objectName: "sys_verification", icon: "mail-check" },
182
- { id: "nav_two_factor", type: "object", label: "Two-Factor", objectName: "sys_two_factor", icon: "smartphone" },
183
183
  { id: "nav_device_codes", type: "object", label: "Device Codes", objectName: "sys_device_code", icon: "qr-code" },
184
184
  { id: "nav_accounts", type: "object", label: "Identity Links", objectName: "sys_account", icon: "link-2" },
185
185
  { id: "nav_user_preferences", type: "object", label: "User Preferences", objectName: "sys_user_preference", icon: "sliders" }
@@ -491,8 +491,8 @@ var ACCOUNT_APP = {
491
491
  // sky-500 — distinct from Setup's slate
492
492
  },
493
493
  // No `requiredPermissions`: any authenticated user must be able to
494
- // manage their own 2FA / linked accounts / personal OAuth apps. RLS on
495
- // each object scopes rows to the caller.
494
+ // manage their own linked accounts / personal OAuth apps. RLS on each
495
+ // object scopes rows to the caller.
496
496
  navigation: [
497
497
  // Profile is the canonical landing — a hand-written React settings card
498
498
  // (Vercel/Linear style) registered in the Console SPA as
@@ -559,14 +559,6 @@ var ACCOUNT_APP = {
559
559
  icon: "shield",
560
560
  defaultOpen: true,
561
561
  children: [
562
- {
563
- id: "nav_account_two_factor",
564
- type: "object",
565
- label: "Two-Factor Authentication",
566
- objectName: "sys_two_factor",
567
- icon: "smartphone",
568
- requiresObject: "sys_two_factor"
569
- },
570
562
  {
571
563
  id: "nav_account_linked",
572
564
  type: "object",
@@ -634,45 +626,45 @@ var SystemOverviewDashboard = ui.Dashboard.create({
634
626
  // ── Row 1: Platform KPIs ────────────────────────────────────────
635
627
  {
636
628
  id: "widget_total_users",
629
+ dataset: "sys_user_metrics",
630
+ values: ["user_count"],
637
631
  title: "Total Users",
638
632
  type: "metric",
639
- object: "sys_user",
640
633
  layout: { x: 0, y: 0, w: 3, h: 2 },
641
- aggregate: "count",
642
634
  colorVariant: "teal",
643
635
  description: "Total registered users in the system"
644
636
  },
645
637
  {
646
638
  id: "widget_organizations",
639
+ dataset: "sys_organization_metrics",
640
+ values: ["org_count"],
647
641
  title: "Organizations",
648
642
  type: "metric",
649
- object: "sys_organization",
650
643
  layout: { x: 3, y: 0, w: 3, h: 2 },
651
- aggregate: "count",
652
644
  colorVariant: "orange",
653
645
  description: "Total organizations on the platform"
654
646
  },
655
647
  {
656
648
  id: "widget_active_sessions",
649
+ dataset: "sys_session_metrics",
650
+ values: ["session_count"],
657
651
  title: "Active Sessions",
658
652
  type: "metric",
659
- object: "sys_session",
660
653
  layout: { x: 6, y: 0, w: 3, h: 2 },
661
- aggregate: "count",
662
654
  colorVariant: "blue",
663
655
  description: "Number of currently active user sessions"
664
656
  },
665
657
  {
666
658
  id: "widget_packages_installed",
659
+ dataset: "sys_package_installation_metrics",
660
+ values: ["package_count"],
667
661
  title: "Packages Installed",
668
662
  type: "metric",
669
- object: "sys_package_installation",
670
663
  // Cloud-only object — only registered when service-tenant is loaded.
671
664
  // Hide this widget gracefully in single-environment runtimes.
672
665
  requiresObject: "sys_package_installation",
673
666
  layout: { x: 9, y: 0, w: 3, h: 2 },
674
667
  filter: { status: "installed" },
675
- aggregate: "count",
676
668
  colorVariant: "success",
677
669
  description: "Active package installations across projects"
678
670
  },
@@ -683,34 +675,34 @@ var SystemOverviewDashboard = ui.Dashboard.create({
683
675
  // need a richer enum or a separate detail field first.
684
676
  {
685
677
  id: "widget_login_events",
678
+ dataset: "sys_audit_log_metrics",
679
+ values: ["event_count"],
686
680
  title: "Login Events",
687
681
  type: "metric",
688
- object: "sys_audit_log",
689
682
  layout: { x: 0, y: 2, w: 4, h: 2 },
690
683
  filter: { action: "login" },
691
- aggregate: "count",
692
684
  colorVariant: "blue",
693
685
  description: "Authentication events recorded by the audit log"
694
686
  },
695
687
  {
696
688
  id: "widget_permission_changes",
689
+ dataset: "sys_audit_log_metrics",
690
+ values: ["event_count"],
697
691
  title: "Permission Changes",
698
692
  type: "metric",
699
- object: "sys_audit_log",
700
693
  layout: { x: 4, y: 2, w: 4, h: 2 },
701
694
  filter: { action: "permission_change" },
702
- aggregate: "count",
703
695
  colorVariant: "warning",
704
696
  description: "Recent permission and role modifications"
705
697
  },
706
698
  {
707
699
  id: "widget_config_changes",
700
+ dataset: "sys_audit_log_metrics",
701
+ values: ["event_count"],
708
702
  title: "Config Changes",
709
703
  type: "metric",
710
- object: "sys_audit_log",
711
704
  layout: { x: 8, y: 2, w: 4, h: 2 },
712
705
  filter: { action: "config_change" },
713
- aggregate: "count",
714
706
  colorVariant: "blue",
715
707
  description: "System configuration modifications"
716
708
  },
@@ -722,41 +714,37 @@ var SystemOverviewDashboard = ui.Dashboard.create({
722
714
  // to scope these widgets.
723
715
  {
724
716
  id: "widget_events_by_type",
717
+ dataset: "sys_audit_log_metrics",
718
+ dimensions: ["action"],
719
+ values: ["event_count"],
725
720
  title: "Audit Events by Action",
726
721
  description: "Distribution of audit events by action type",
727
722
  type: "pie",
728
- object: "sys_audit_log",
729
- layout: { x: 0, y: 4, w: 6, h: 4 },
730
- categoryField: "action",
731
- aggregate: "count"
723
+ layout: { x: 0, y: 4, w: 6, h: 4 }
732
724
  },
733
725
  {
734
726
  id: "widget_events_by_user",
727
+ dataset: "sys_audit_log_metrics",
728
+ dimensions: ["user_id"],
729
+ values: ["event_count"],
735
730
  title: "Events by User",
736
731
  description: "Activity distribution across users",
737
732
  type: "bar",
738
- object: "sys_audit_log",
739
- layout: { x: 6, y: 4, w: 6, h: 4 },
740
- categoryField: "user_id",
741
- aggregate: "count"
742
- },
743
- // ── Row 4: Recent audit events table ────────────────────────────
744
- // `type: 'table'` renders the underlying rows directly, so this
745
- // panel actually shows the latest events instead of just repeating
746
- // the total-count metric. `valueField`/`aggregate` are intentionally
747
- // omitted — table widgets pull raw records.
733
+ layout: { x: 6, y: 4, w: 6, h: 4 }
734
+ },
735
+ // ── Row 4: Audit events by action ───────────────────────────────
736
+ // ADR-0021 single-form: a dataset-bound breakdown of events by action.
737
+ // (The raw recent-events record list belongs in a ListView on
738
+ // sys_audit_log a row-level lens, not a dashboard analytics widget.)
748
739
  {
749
740
  id: "widget_recent_events",
750
- title: "Recent Audit Events",
751
- description: "Latest platform events (login, permission, config, \u2026)",
741
+ title: "Audit Events by Action",
742
+ description: "Event volume grouped by action (login, permission, config, \u2026)",
752
743
  type: "table",
753
- object: "sys_audit_log",
754
- layout: { x: 0, y: 8, w: 12, h: 4 },
755
- options: {
756
- columns: ["created_at", "user_id", "action", "object_name", "record_id"],
757
- sort: [{ field: "created_at", order: "desc" }],
758
- pageSize: 20
759
- }
744
+ dataset: "sys_audit_log_metrics",
745
+ dimensions: ["action"],
746
+ values: ["event_count"],
747
+ layout: { x: 0, y: 8, w: 12, h: 4 }
760
748
  }
761
749
  ],
762
750
  globalFilters: [
@@ -769,6 +757,51 @@ var SystemOverviewDashboard = ui.Dashboard.create({
769
757
  }
770
758
  ]
771
759
  });
760
+ var SysUserDataset = ui.defineDataset({
761
+ name: "sys_user_metrics",
762
+ label: "User Metrics",
763
+ object: "sys_user",
764
+ dimensions: [],
765
+ measures: [{ name: "user_count", label: "Users", aggregate: "count" }]
766
+ });
767
+ var SysOrganizationDataset = ui.defineDataset({
768
+ name: "sys_organization_metrics",
769
+ label: "Organization Metrics",
770
+ object: "sys_organization",
771
+ dimensions: [],
772
+ measures: [{ name: "org_count", label: "Organizations", aggregate: "count" }]
773
+ });
774
+ var SysSessionDataset = ui.defineDataset({
775
+ name: "sys_session_metrics",
776
+ label: "Session Metrics",
777
+ object: "sys_session",
778
+ dimensions: [],
779
+ measures: [{ name: "session_count", label: "Sessions", aggregate: "count" }]
780
+ });
781
+ var SysPackageInstallationDataset = ui.defineDataset({
782
+ name: "sys_package_installation_metrics",
783
+ label: "Package Installation Metrics",
784
+ object: "sys_package_installation",
785
+ dimensions: [],
786
+ measures: [{ name: "package_count", label: "Installations", aggregate: "count" }]
787
+ });
788
+ var SysAuditLogDataset = ui.defineDataset({
789
+ name: "sys_audit_log_metrics",
790
+ label: "Audit Log Metrics",
791
+ object: "sys_audit_log",
792
+ dimensions: [
793
+ { name: "action", label: "Action", field: "action", type: "string" },
794
+ { name: "user_id", label: "User", field: "user_id", type: "lookup" }
795
+ ],
796
+ measures: [{ name: "event_count", label: "Events", aggregate: "count" }]
797
+ });
798
+ var SystemOverviewDatasets = [
799
+ SysUserDataset,
800
+ SysOrganizationDataset,
801
+ SysSessionDataset,
802
+ SysPackageInstallationDataset,
803
+ SysAuditLogDataset
804
+ ];
772
805
 
773
806
  // src/apps/translations/en.objects.generated.ts
774
807
  var enObjects = {
@@ -3357,7 +3390,6 @@ var en = {
3357
3390
  nav_account_notifications: { label: "Notifications" },
3358
3391
  nav_account_approvals: { label: "Approvals" },
3359
3392
  nav_account_memberships: { label: "My Organizations" },
3360
- nav_account_two_factor: { label: "Two-Factor Authentication" },
3361
3393
  nav_account_linked: { label: "Linked Accounts" },
3362
3394
  nav_account_sessions: { label: "Active Sessions" },
3363
3395
  nav_account_api_keys: { label: "API Keys" },
@@ -3375,6 +3407,7 @@ var en = {
3375
3407
  group_access_control: { label: "Access Control" },
3376
3408
  group_approvals: { label: "Approvals" },
3377
3409
  group_configuration: { label: "Configuration" },
3410
+ group_integrations: { label: "Integrations" },
3378
3411
  group_diagnostics: { label: "Diagnostics" },
3379
3412
  group_advanced: { label: "Advanced" },
3380
3413
  // Overview
@@ -3402,7 +3435,15 @@ var en = {
3402
3435
  nav_settings_hub: { label: "All Settings" },
3403
3436
  nav_settings_mail: { label: "Email" },
3404
3437
  nav_settings_branding: { label: "Branding" },
3438
+ nav_settings_auth: { label: "Authentication" },
3439
+ nav_settings_storage: { label: "File Storage" },
3440
+ nav_settings_ai: { label: "AI & Embedder" },
3441
+ nav_settings_knowledge: { label: "Knowledge" },
3405
3442
  nav_settings_feature_flags: { label: "Feature Flags" },
3443
+ // Notifications (contributed by @objectstack/service-messaging)
3444
+ nav_notification_preferences: { label: "Notification Preferences" },
3445
+ nav_notification_subscriptions: { label: "Notification Subscriptions" },
3446
+ nav_notification_templates: { label: "Notification Templates" },
3406
3447
  // Diagnostics
3407
3448
  nav_sessions: { label: "Sessions" },
3408
3449
  nav_audit_logs: { label: "Audit Logs" },
@@ -3411,7 +3452,6 @@ var en = {
3411
3452
  nav_oauth_apps: { label: "OAuth Applications" },
3412
3453
  nav_jwks: { label: "Signing Keys (JWKS)" },
3413
3454
  nav_verifications: { label: "Verifications" },
3414
- nav_two_factor: { label: "Two-Factor" },
3415
3455
  nav_device_codes: { label: "Device Codes" },
3416
3456
  nav_accounts: { label: "Identity Links" },
3417
3457
  nav_user_preferences: { label: "User Preferences" },
@@ -6091,7 +6131,6 @@ var zhCN = {
6091
6131
  nav_account_notifications: { label: "\u901A\u77E5" },
6092
6132
  nav_account_approvals: { label: "\u5F85\u6211\u5BA1\u6279" },
6093
6133
  nav_account_memberships: { label: "\u6211\u7684\u7EC4\u7EC7" },
6094
- nav_account_two_factor: { label: "\u53CC\u91CD\u8BA4\u8BC1" },
6095
6134
  nav_account_linked: { label: "\u5DF2\u5173\u8054\u8D26\u6237" },
6096
6135
  nav_account_sessions: { label: "\u6D3B\u52A8\u4F1A\u8BDD" },
6097
6136
  nav_account_api_keys: { label: "API \u5BC6\u94A5" },
@@ -6110,6 +6149,7 @@ var zhCN = {
6110
6149
  group_access_control: { label: "\u8BBF\u95EE\u63A7\u5236" },
6111
6150
  group_approvals: { label: "\u5BA1\u6279" },
6112
6151
  group_configuration: { label: "\u914D\u7F6E" },
6152
+ group_integrations: { label: "\u96C6\u6210" },
6113
6153
  group_diagnostics: { label: "\u8BCA\u65AD" },
6114
6154
  group_advanced: { label: "\u9AD8\u7EA7" },
6115
6155
  nav_system_overview: { label: "\u7CFB\u7EDF\u6982\u89C8" },
@@ -6129,14 +6169,20 @@ var zhCN = {
6129
6169
  nav_settings_hub: { label: "\u5168\u90E8\u8BBE\u7F6E" },
6130
6170
  nav_settings_mail: { label: "\u90AE\u4EF6" },
6131
6171
  nav_settings_branding: { label: "\u54C1\u724C" },
6172
+ nav_settings_auth: { label: "\u8BA4\u8BC1" },
6173
+ nav_settings_storage: { label: "\u6587\u4EF6\u5B58\u50A8" },
6174
+ nav_settings_ai: { label: "AI \u4E0E Embedder" },
6175
+ nav_settings_knowledge: { label: "\u77E5\u8BC6\u5E93" },
6132
6176
  nav_settings_feature_flags: { label: "\u529F\u80FD\u5F00\u5173" },
6177
+ nav_notification_preferences: { label: "\u901A\u77E5\u504F\u597D" },
6178
+ nav_notification_subscriptions: { label: "\u901A\u77E5\u8BA2\u9605" },
6179
+ nav_notification_templates: { label: "\u901A\u77E5\u6A21\u677F" },
6133
6180
  nav_sessions: { label: "\u4F1A\u8BDD" },
6134
6181
  nav_audit_logs: { label: "\u5BA1\u8BA1\u65E5\u5FD7" },
6135
6182
  nav_notifications: { label: "\u901A\u77E5" },
6136
6183
  nav_oauth_apps: { label: "OAuth \u5E94\u7528" },
6137
6184
  nav_jwks: { label: "\u7B7E\u540D\u5BC6\u94A5 (JWKS)" },
6138
6185
  nav_verifications: { label: "\u9A8C\u8BC1\u8BB0\u5F55" },
6139
- nav_two_factor: { label: "\u53CC\u91CD\u8BA4\u8BC1" },
6140
6186
  nav_device_codes: { label: "\u8BBE\u5907\u4EE3\u7801" },
6141
6187
  nav_accounts: { label: "\u8EAB\u4EFD\u94FE\u63A5" },
6142
6188
  nav_user_preferences: { label: "\u7528\u6237\u504F\u597D" },
@@ -8786,7 +8832,6 @@ var jaJP = {
8786
8832
  nav_account_notifications: { label: "\u901A\u77E5" },
8787
8833
  nav_account_approvals: { label: "\u627F\u8A8D\u5F85\u3061" },
8788
8834
  nav_account_memberships: { label: "\u6240\u5C5E\u7D44\u7E54" },
8789
- nav_account_two_factor: { label: "\u4E8C\u8981\u7D20\u8A8D\u8A3C" },
8790
8835
  nav_account_linked: { label: "\u9023\u643A\u30A2\u30AB\u30A6\u30F3\u30C8" },
8791
8836
  nav_account_sessions: { label: "\u30A2\u30AF\u30C6\u30A3\u30D6\u30BB\u30C3\u30B7\u30E7\u30F3" },
8792
8837
  nav_account_api_keys: { label: "API \u30AD\u30FC" },
@@ -8805,6 +8850,7 @@ var jaJP = {
8805
8850
  group_access_control: { label: "\u30A2\u30AF\u30BB\u30B9\u5236\u5FA1" },
8806
8851
  group_approvals: { label: "\u627F\u8A8D" },
8807
8852
  group_configuration: { label: "\u69CB\u6210" },
8853
+ group_integrations: { label: "\u7D71\u5408" },
8808
8854
  group_diagnostics: { label: "\u8A3A\u65AD" },
8809
8855
  group_advanced: { label: "\u8A73\u7D30" },
8810
8856
  nav_system_overview: { label: "\u30B7\u30B9\u30C6\u30E0\u6982\u8981" },
@@ -8824,14 +8870,20 @@ var jaJP = {
8824
8870
  nav_settings_hub: { label: "\u3059\u3079\u3066\u306E\u8A2D\u5B9A" },
8825
8871
  nav_settings_mail: { label: "\u30E1\u30FC\u30EB" },
8826
8872
  nav_settings_branding: { label: "\u30D6\u30E9\u30F3\u30C7\u30A3\u30F3\u30B0" },
8873
+ nav_settings_auth: { label: "\u8A8D\u8A3C" },
8874
+ nav_settings_storage: { label: "\u30D5\u30A1\u30A4\u30EB\u30B9\u30C8\u30EC\u30FC\u30B8" },
8875
+ nav_settings_ai: { label: "AI \u3068 Embedder" },
8876
+ nav_settings_knowledge: { label: "\u30CA\u30EC\u30C3\u30B8" },
8827
8877
  nav_settings_feature_flags: { label: "\u6A5F\u80FD\u30D5\u30E9\u30B0" },
8878
+ nav_notification_preferences: { label: "\u901A\u77E5\u8A2D\u5B9A" },
8879
+ nav_notification_subscriptions: { label: "\u901A\u77E5\u8CFC\u8AAD" },
8880
+ nav_notification_templates: { label: "\u901A\u77E5\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8" },
8828
8881
  nav_sessions: { label: "\u30BB\u30C3\u30B7\u30E7\u30F3" },
8829
8882
  nav_audit_logs: { label: "\u76E3\u67FB\u30ED\u30B0" },
8830
8883
  nav_notifications: { label: "\u901A\u77E5" },
8831
8884
  nav_oauth_apps: { label: "OAuth \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3" },
8832
8885
  nav_jwks: { label: "\u7F72\u540D\u30AD\u30FC (JWKS)" },
8833
8886
  nav_verifications: { label: "\u691C\u8A3C" },
8834
- nav_two_factor: { label: "\u4E8C\u8981\u7D20\u8A8D\u8A3C" },
8835
8887
  nav_device_codes: { label: "\u30C7\u30D0\u30A4\u30B9\u30B3\u30FC\u30C9" },
8836
8888
  nav_accounts: { label: "ID \u9023\u643A" },
8837
8889
  nav_user_preferences: { label: "\u30E6\u30FC\u30B6\u30FC\u8A2D\u5B9A" },
@@ -11481,7 +11533,6 @@ var esES = {
11481
11533
  nav_account_notifications: { label: "Notificaciones" },
11482
11534
  nav_account_approvals: { label: "Aprobaciones pendientes" },
11483
11535
  nav_account_memberships: { label: "Mis organizaciones" },
11484
- nav_account_two_factor: { label: "Autenticaci\xF3n de dos factores" },
11485
11536
  nav_account_linked: { label: "Cuentas vinculadas" },
11486
11537
  nav_account_sessions: { label: "Sesiones activas" },
11487
11538
  nav_account_api_keys: { label: "Claves API" },
@@ -11500,6 +11551,7 @@ var esES = {
11500
11551
  group_access_control: { label: "Control de Acceso" },
11501
11552
  group_approvals: { label: "Aprobaciones" },
11502
11553
  group_configuration: { label: "Configuraci\xF3n" },
11554
+ group_integrations: { label: "Integraciones" },
11503
11555
  group_diagnostics: { label: "Diagn\xF3stico" },
11504
11556
  group_advanced: { label: "Avanzado" },
11505
11557
  nav_system_overview: { label: "Resumen del Sistema" },
@@ -11519,14 +11571,20 @@ var esES = {
11519
11571
  nav_settings_hub: { label: "Todos los Ajustes" },
11520
11572
  nav_settings_mail: { label: "Correo" },
11521
11573
  nav_settings_branding: { label: "Marca" },
11574
+ nav_settings_auth: { label: "Autenticaci\xF3n" },
11575
+ nav_settings_storage: { label: "Almacenamiento de Archivos" },
11576
+ nav_settings_ai: { label: "IA y Embedder" },
11577
+ nav_settings_knowledge: { label: "Conocimiento" },
11522
11578
  nav_settings_feature_flags: { label: "Indicadores de Funcionalidad" },
11579
+ nav_notification_preferences: { label: "Preferencias de Notificaci\xF3n" },
11580
+ nav_notification_subscriptions: { label: "Suscripciones de Notificaci\xF3n" },
11581
+ nav_notification_templates: { label: "Plantillas de Notificaci\xF3n" },
11523
11582
  nav_sessions: { label: "Sesiones" },
11524
11583
  nav_audit_logs: { label: "Registros de Auditor\xEDa" },
11525
11584
  nav_notifications: { label: "Notificaciones" },
11526
11585
  nav_oauth_apps: { label: "Aplicaciones OAuth" },
11527
11586
  nav_jwks: { label: "Claves de Firma (JWKS)" },
11528
11587
  nav_verifications: { label: "Verificaciones" },
11529
- nav_two_factor: { label: "Doble Factor" },
11530
11588
  nav_device_codes: { label: "C\xF3digos de Dispositivo" },
11531
11589
  nav_accounts: { label: "Enlaces de Identidad" },
11532
11590
  nav_user_preferences: { label: "Preferencias de Usuario" },
@@ -11603,6 +11661,7 @@ exports.SETUP_NAV_CONTRIBUTIONS = SETUP_NAV_CONTRIBUTIONS;
11603
11661
  exports.STUDIO_APP = STUDIO_APP;
11604
11662
  exports.SetupAppTranslations = SetupAppTranslations;
11605
11663
  exports.SystemOverviewDashboard = SystemOverviewDashboard;
11664
+ exports.SystemOverviewDatasets = SystemOverviewDatasets;
11606
11665
  exports.en = en;
11607
11666
  exports.esES = esES;
11608
11667
  exports.jaJP = jaJP;