@objectstack/platform-objects 6.5.1 → 6.7.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.
- package/dist/apps/index.d.mts +18 -189
- package/dist/apps/index.d.ts +18 -189
- package/dist/apps/index.js +71 -270
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/index.mjs +72 -270
- package/dist/apps/index.mjs.map +1 -1
- package/dist/identity/index.d.mts +110 -1
- package/dist/identity/index.d.ts +110 -1
- package/dist/identity/index.js +120 -1
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/index.mjs +120 -1
- package/dist/identity/index.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +326 -271
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +327 -271
- package/dist/index.mjs.map +1 -1
- package/dist/security/index.d.mts +150 -0
- package/dist/security/index.d.ts +150 -0
- package/dist/security/index.js +135 -0
- package/dist/security/index.js.map +1 -1
- package/dist/security/index.mjs +135 -0
- package/dist/security/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -423,6 +423,30 @@ var SysAccount = ObjectSchema.create({
|
|
|
423
423
|
description: "OAuth and authentication provider accounts",
|
|
424
424
|
titleFormat: "{provider_id} - {account_id}",
|
|
425
425
|
compactLayout: ["provider_id", "user_id", "account_id"],
|
|
426
|
+
// Custom actions — sysadmins routinely need to revoke a user's OAuth
|
|
427
|
+
// link (e.g. when an SSO provider is decommissioned or the user
|
|
428
|
+
// requests it). Better-auth exposes `/unlink-account { providerId,
|
|
429
|
+
// accountId }` for this. The form is locked to the row's values so
|
|
430
|
+
// it acts as a one-click confirmation rather than a free-form edit.
|
|
431
|
+
actions: [
|
|
432
|
+
{
|
|
433
|
+
name: "unlink_account",
|
|
434
|
+
label: "Unlink Account",
|
|
435
|
+
icon: "unlink",
|
|
436
|
+
variant: "danger",
|
|
437
|
+
mode: "delete",
|
|
438
|
+
locations: ["list_item", "record_header"],
|
|
439
|
+
type: "api",
|
|
440
|
+
target: "/api/v1/auth/unlink-account",
|
|
441
|
+
confirmText: "Unlink this identity link? The user will no longer be able to sign in with this provider until they re-link it from their account settings.",
|
|
442
|
+
successMessage: "Identity link removed",
|
|
443
|
+
refreshAfter: true,
|
|
444
|
+
params: [
|
|
445
|
+
{ name: "providerId", field: "provider_id", defaultFromRow: true, required: true },
|
|
446
|
+
{ name: "accountId", field: "account_id", defaultFromRow: true, required: true }
|
|
447
|
+
]
|
|
448
|
+
}
|
|
449
|
+
],
|
|
426
450
|
listViews: {
|
|
427
451
|
mine: {
|
|
428
452
|
type: "grid",
|
|
@@ -1977,6 +2001,96 @@ var SysOauthApplication = ObjectSchema.create({
|
|
|
1977
2001
|
displayNameField: "name",
|
|
1978
2002
|
titleFormat: "{name}",
|
|
1979
2003
|
compactLayout: ["name", "client_id", "type", "disabled"],
|
|
2004
|
+
// Custom actions — all OAuth-application mutations are routed through
|
|
2005
|
+
// better-auth's `@better-auth/oauth-provider` endpoints (and a thin
|
|
2006
|
+
// ObjectStack-added auth route for the enable/disable toggle) rather
|
|
2007
|
+
// than the generic data layer, so server-side validation, secret
|
|
2008
|
+
// hashing, and audit hooks all run. The generic `delete` API method
|
|
2009
|
+
// is intentionally dropped from `apiMethods` below so the only delete
|
|
2010
|
+
// path is the better-auth wrapper.
|
|
2011
|
+
//
|
|
2012
|
+
// Upstream gap (better-auth 1.6.11): the stock `/admin/oauth2/update-client`
|
|
2013
|
+
// endpoint's Zod body schema does NOT accept the `disabled` flag, even
|
|
2014
|
+
// though the column exists and the runtime honours it. We bridge the
|
|
2015
|
+
// gap with `POST /api/v1/auth/admin/oauth2/toggle-disabled`, registered
|
|
2016
|
+
// by plugin-auth, which writes through better-auth's own adapter under
|
|
2017
|
+
// the auth namespace (no generic data-layer bypass). When upstream
|
|
2018
|
+
// ships `disabled` support, retarget the enable/disable actions and
|
|
2019
|
+
// delete the bridge route.
|
|
2020
|
+
actions: [
|
|
2021
|
+
{
|
|
2022
|
+
name: "disable_oauth_application",
|
|
2023
|
+
label: "Disable OAuth Application",
|
|
2024
|
+
icon: "pause-circle",
|
|
2025
|
+
variant: "secondary",
|
|
2026
|
+
mode: "custom",
|
|
2027
|
+
locations: ["list_item", "record_header"],
|
|
2028
|
+
type: "api",
|
|
2029
|
+
method: "POST",
|
|
2030
|
+
target: "/api/v1/auth/admin/oauth2/toggle-disabled",
|
|
2031
|
+
confirmText: "Disable this OAuth application? Active access/refresh tokens issued to it will continue to be rejected at the token, authorize, and introspect endpoints. Existing integrations will stop working immediately.",
|
|
2032
|
+
successMessage: "OAuth application disabled",
|
|
2033
|
+
refreshAfter: true,
|
|
2034
|
+
visible: "!record.disabled",
|
|
2035
|
+
bodyExtra: { disabled: true },
|
|
2036
|
+
params: [
|
|
2037
|
+
{ name: "client_id", field: "client_id", defaultFromRow: true, required: true }
|
|
2038
|
+
]
|
|
2039
|
+
},
|
|
2040
|
+
{
|
|
2041
|
+
name: "enable_oauth_application",
|
|
2042
|
+
label: "Enable OAuth Application",
|
|
2043
|
+
icon: "play-circle",
|
|
2044
|
+
variant: "primary",
|
|
2045
|
+
mode: "custom",
|
|
2046
|
+
locations: ["list_item", "record_header"],
|
|
2047
|
+
type: "api",
|
|
2048
|
+
method: "POST",
|
|
2049
|
+
target: "/api/v1/auth/admin/oauth2/toggle-disabled",
|
|
2050
|
+
confirmText: "Re-enable this OAuth application? Token issuance, authorization, and introspection will resume immediately.",
|
|
2051
|
+
successMessage: "OAuth application enabled",
|
|
2052
|
+
refreshAfter: true,
|
|
2053
|
+
visible: "record.disabled",
|
|
2054
|
+
bodyExtra: { disabled: false },
|
|
2055
|
+
params: [
|
|
2056
|
+
{ name: "client_id", field: "client_id", defaultFromRow: true, required: true }
|
|
2057
|
+
]
|
|
2058
|
+
},
|
|
2059
|
+
{
|
|
2060
|
+
name: "rotate_client_secret",
|
|
2061
|
+
label: "Rotate Client Secret",
|
|
2062
|
+
icon: "refresh-cw",
|
|
2063
|
+
variant: "secondary",
|
|
2064
|
+
mode: "custom",
|
|
2065
|
+
locations: ["list_item", "record_header"],
|
|
2066
|
+
type: "api",
|
|
2067
|
+
method: "POST",
|
|
2068
|
+
target: "/api/v1/auth/oauth2/client/rotate-secret",
|
|
2069
|
+
confirmText: "Rotate this OAuth client's secret? The previous secret will stop working immediately and any integrations using it will break until they are updated with the new secret. The new secret is shown only once.",
|
|
2070
|
+
successMessage: "Client secret rotated \u2014 copy the new value from the response now.",
|
|
2071
|
+
refreshAfter: true,
|
|
2072
|
+
params: [
|
|
2073
|
+
{ name: "client_id", field: "client_id", defaultFromRow: true, required: true }
|
|
2074
|
+
]
|
|
2075
|
+
},
|
|
2076
|
+
{
|
|
2077
|
+
name: "delete_oauth_application",
|
|
2078
|
+
label: "Delete OAuth Application",
|
|
2079
|
+
icon: "trash-2",
|
|
2080
|
+
variant: "danger",
|
|
2081
|
+
mode: "delete",
|
|
2082
|
+
locations: ["list_item", "record_header"],
|
|
2083
|
+
type: "api",
|
|
2084
|
+
method: "POST",
|
|
2085
|
+
target: "/api/v1/auth/oauth2/delete-client",
|
|
2086
|
+
confirmText: "Permanently delete this OAuth application? All issued tokens and consents will be invalidated and integrations using this client_id will stop working immediately. This cannot be undone.",
|
|
2087
|
+
successMessage: "OAuth application deleted",
|
|
2088
|
+
refreshAfter: true,
|
|
2089
|
+
params: [
|
|
2090
|
+
{ name: "client_id", field: "client_id", defaultFromRow: true, required: true }
|
|
2091
|
+
]
|
|
2092
|
+
}
|
|
2093
|
+
],
|
|
1980
2094
|
listViews: {
|
|
1981
2095
|
active: {
|
|
1982
2096
|
type: "grid",
|
|
@@ -2208,7 +2322,12 @@ var SysOauthApplication = ObjectSchema.create({
|
|
|
2208
2322
|
trackHistory: true,
|
|
2209
2323
|
searchable: true,
|
|
2210
2324
|
apiEnabled: true,
|
|
2211
|
-
|
|
2325
|
+
// All mutations (create/update/delete) must go through better-auth's
|
|
2326
|
+
// oauth-provider endpoints under /api/v1/auth/{admin/,}oauth2/* — the
|
|
2327
|
+
// generic data layer is read-only for this object so sysadmins cannot
|
|
2328
|
+
// bypass server-side OAuth validation. The Delete row action above is
|
|
2329
|
+
// wired to /api/v1/auth/oauth2/delete-client.
|
|
2330
|
+
apiMethods: ["get", "list"],
|
|
2212
2331
|
trash: false,
|
|
2213
2332
|
mru: false
|
|
2214
2333
|
}
|
|
@@ -2491,6 +2610,83 @@ var SysRole = ObjectSchema.create({
|
|
|
2491
2610
|
displayNameField: "label",
|
|
2492
2611
|
titleFormat: "{label}",
|
|
2493
2612
|
compactLayout: ["label", "name", "active", "is_default"],
|
|
2613
|
+
// Custom actions — system roles drive RBAC and are edited rarely but
|
|
2614
|
+
// require the four high-frequency sysadmin affordances every IdP
|
|
2615
|
+
// (Salesforce, ServiceNow, Okta) ships: activate/deactivate (lifecycle
|
|
2616
|
+
// without losing assignments), mark default (auto-assign to new users),
|
|
2617
|
+
// and clone (template for new roles). All operations hit the generic
|
|
2618
|
+
// data CRUD endpoint exposed by `apiEnabled` — no custom server route
|
|
2619
|
+
// required because `managedBy: 'config'` allows direct mutation.
|
|
2620
|
+
actions: [
|
|
2621
|
+
{
|
|
2622
|
+
name: "activate_role",
|
|
2623
|
+
label: "Activate Role",
|
|
2624
|
+
icon: "circle-check",
|
|
2625
|
+
variant: "secondary",
|
|
2626
|
+
mode: "custom",
|
|
2627
|
+
locations: ["list_item", "record_header"],
|
|
2628
|
+
type: "api",
|
|
2629
|
+
method: "PATCH",
|
|
2630
|
+
target: "/api/v1/data/sys_role/{id}",
|
|
2631
|
+
bodyExtra: { active: true },
|
|
2632
|
+
successMessage: "Role activated",
|
|
2633
|
+
refreshAfter: true
|
|
2634
|
+
},
|
|
2635
|
+
{
|
|
2636
|
+
name: "deactivate_role",
|
|
2637
|
+
label: "Deactivate Role",
|
|
2638
|
+
icon: "circle-off",
|
|
2639
|
+
variant: "danger",
|
|
2640
|
+
mode: "custom",
|
|
2641
|
+
locations: ["list_item", "record_header"],
|
|
2642
|
+
type: "api",
|
|
2643
|
+
method: "PATCH",
|
|
2644
|
+
target: "/api/v1/data/sys_role/{id}",
|
|
2645
|
+
bodyExtra: { active: false },
|
|
2646
|
+
confirmText: "Deactivate this role? Users with the role keep their assignment but the role stops granting permissions until re-activated.",
|
|
2647
|
+
successMessage: "Role deactivated",
|
|
2648
|
+
refreshAfter: true
|
|
2649
|
+
},
|
|
2650
|
+
{
|
|
2651
|
+
name: "set_default_role",
|
|
2652
|
+
label: "Set as Default",
|
|
2653
|
+
icon: "star",
|
|
2654
|
+
variant: "secondary",
|
|
2655
|
+
mode: "custom",
|
|
2656
|
+
locations: ["list_item", "record_header"],
|
|
2657
|
+
type: "api",
|
|
2658
|
+
method: "PATCH",
|
|
2659
|
+
target: "/api/v1/data/sys_role/{id}",
|
|
2660
|
+
bodyExtra: { is_default: true },
|
|
2661
|
+
confirmText: "Make this the default role for new users? Existing users are unaffected.",
|
|
2662
|
+
successMessage: "Default role updated",
|
|
2663
|
+
refreshAfter: true
|
|
2664
|
+
},
|
|
2665
|
+
{
|
|
2666
|
+
// Clone — POST a new sys_role row pre-filled from the source. The
|
|
2667
|
+
// dialog asks only for the new API name / label so the operator
|
|
2668
|
+
// can rename atomically; permissions JSON is copied wholesale via
|
|
2669
|
+
// defaultFromRow.
|
|
2670
|
+
name: "clone_role",
|
|
2671
|
+
label: "Clone Role",
|
|
2672
|
+
icon: "copy",
|
|
2673
|
+
variant: "secondary",
|
|
2674
|
+
mode: "custom",
|
|
2675
|
+
locations: ["list_item", "record_header"],
|
|
2676
|
+
type: "api",
|
|
2677
|
+
method: "POST",
|
|
2678
|
+
target: "/api/v1/data/sys_role",
|
|
2679
|
+
bodyExtra: { is_default: false, active: true },
|
|
2680
|
+
successMessage: "Role cloned",
|
|
2681
|
+
refreshAfter: true,
|
|
2682
|
+
params: [
|
|
2683
|
+
{ name: "label", label: "New Display Name", type: "text", required: true },
|
|
2684
|
+
{ name: "name", label: "New API Name", type: "text", required: true, helpText: "Unique snake_case machine name" },
|
|
2685
|
+
{ field: "description", defaultFromRow: true },
|
|
2686
|
+
{ field: "permissions", defaultFromRow: true }
|
|
2687
|
+
]
|
|
2688
|
+
}
|
|
2689
|
+
],
|
|
2494
2690
|
listViews: {
|
|
2495
2691
|
active: {
|
|
2496
2692
|
type: "grid",
|
|
@@ -2617,6 +2813,64 @@ var SysPermissionSet = ObjectSchema.create({
|
|
|
2617
2813
|
displayNameField: "label",
|
|
2618
2814
|
titleFormat: "{label}",
|
|
2619
2815
|
compactLayout: ["label", "name", "active"],
|
|
2816
|
+
// Custom actions — permission sets are templates assigned to roles or
|
|
2817
|
+
// users (via sys_role_permission_set / sys_user_permission_set). The
|
|
2818
|
+
// sysadmin operations that don't live on the parent-detail tabs are
|
|
2819
|
+
// lifecycle (activate/deactivate without losing assignments) and
|
|
2820
|
+
// clone (build a new permset by tweaking an existing one). Both hit
|
|
2821
|
+
// the generic data CRUD endpoint — managedBy: 'config' permits it.
|
|
2822
|
+
actions: [
|
|
2823
|
+
{
|
|
2824
|
+
name: "activate_permission_set",
|
|
2825
|
+
label: "Activate",
|
|
2826
|
+
icon: "circle-check",
|
|
2827
|
+
variant: "secondary",
|
|
2828
|
+
mode: "custom",
|
|
2829
|
+
locations: ["list_item", "record_header"],
|
|
2830
|
+
type: "api",
|
|
2831
|
+
method: "PATCH",
|
|
2832
|
+
target: "/api/v1/data/sys_permission_set/{id}",
|
|
2833
|
+
bodyExtra: { active: true },
|
|
2834
|
+
successMessage: "Permission set activated",
|
|
2835
|
+
refreshAfter: true
|
|
2836
|
+
},
|
|
2837
|
+
{
|
|
2838
|
+
name: "deactivate_permission_set",
|
|
2839
|
+
label: "Deactivate",
|
|
2840
|
+
icon: "circle-off",
|
|
2841
|
+
variant: "danger",
|
|
2842
|
+
mode: "custom",
|
|
2843
|
+
locations: ["list_item", "record_header"],
|
|
2844
|
+
type: "api",
|
|
2845
|
+
method: "PATCH",
|
|
2846
|
+
target: "/api/v1/data/sys_permission_set/{id}",
|
|
2847
|
+
bodyExtra: { active: false },
|
|
2848
|
+
confirmText: "Deactivate this permission set? Existing assignments stay in place but stop granting access until re-activated.",
|
|
2849
|
+
successMessage: "Permission set deactivated",
|
|
2850
|
+
refreshAfter: true
|
|
2851
|
+
},
|
|
2852
|
+
{
|
|
2853
|
+
name: "clone_permission_set",
|
|
2854
|
+
label: "Clone",
|
|
2855
|
+
icon: "copy",
|
|
2856
|
+
variant: "secondary",
|
|
2857
|
+
mode: "custom",
|
|
2858
|
+
locations: ["list_item", "record_header"],
|
|
2859
|
+
type: "api",
|
|
2860
|
+
method: "POST",
|
|
2861
|
+
target: "/api/v1/data/sys_permission_set",
|
|
2862
|
+
bodyExtra: { active: true },
|
|
2863
|
+
successMessage: "Permission set cloned",
|
|
2864
|
+
refreshAfter: true,
|
|
2865
|
+
params: [
|
|
2866
|
+
{ name: "label", label: "New Display Name", type: "text", required: true },
|
|
2867
|
+
{ name: "name", label: "New API Name", type: "text", required: true, helpText: "Unique snake_case machine name" },
|
|
2868
|
+
{ field: "description", defaultFromRow: true },
|
|
2869
|
+
{ field: "object_permissions", defaultFromRow: true },
|
|
2870
|
+
{ field: "field_permissions", defaultFromRow: true }
|
|
2871
|
+
]
|
|
2872
|
+
}
|
|
2873
|
+
],
|
|
2620
2874
|
listViews: {
|
|
2621
2875
|
active: {
|
|
2622
2876
|
type: "grid",
|
|
@@ -6252,8 +6506,7 @@ var SETUP_APP = {
|
|
|
6252
6506
|
label: "Overview",
|
|
6253
6507
|
icon: "layout-dashboard",
|
|
6254
6508
|
children: [
|
|
6255
|
-
{ id: "nav_system_overview", type: "dashboard", label: "System Overview", dashboardName: "system_overview", icon: "activity" }
|
|
6256
|
-
{ id: "nav_security_overview", type: "dashboard", label: "Security Overview", dashboardName: "security_overview", icon: "shield" }
|
|
6509
|
+
{ id: "nav_system_overview", type: "dashboard", label: "System Overview", dashboardName: "system_overview", icon: "activity" }
|
|
6257
6510
|
]
|
|
6258
6511
|
},
|
|
6259
6512
|
{
|
|
@@ -6315,9 +6568,17 @@ var SETUP_APP = {
|
|
|
6315
6568
|
// is used (not `object`) because settings are stored in a generic
|
|
6316
6569
|
// K/V table (`sys_setting`) rather than per-namespace objects, and
|
|
6317
6570
|
// the renderer is a dedicated <SettingsView> page in objectui.
|
|
6571
|
+
//
|
|
6572
|
+
// Order mirrors `builtinSettingsManifests` so left-nav order matches
|
|
6573
|
+
// the All-Settings index. AI groups chat + embedder under one entry
|
|
6574
|
+
// because operators reason about them together; Knowledge is its
|
|
6575
|
+
// own entry because the adapter selection is independent.
|
|
6318
6576
|
{ id: "nav_settings_hub", type: "url", label: "All Settings", url: "/apps/setup/system/settings", icon: "settings-2" },
|
|
6319
|
-
{ id: "nav_settings_mail", type: "url", label: "Email", url: "/apps/setup/system/settings/mail", icon: "mail" },
|
|
6320
6577
|
{ id: "nav_settings_branding", type: "url", label: "Branding", url: "/apps/setup/system/settings/branding", icon: "palette" },
|
|
6578
|
+
{ id: "nav_settings_mail", type: "url", label: "Email", url: "/apps/setup/system/settings/mail", icon: "mail" },
|
|
6579
|
+
{ id: "nav_settings_storage", type: "url", label: "File Storage", url: "/apps/setup/system/settings/storage", icon: "hard-drive" },
|
|
6580
|
+
{ id: "nav_settings_ai", type: "url", label: "AI & Embedder", url: "/apps/setup/system/settings/ai", icon: "sparkles" },
|
|
6581
|
+
{ id: "nav_settings_knowledge", type: "url", label: "Knowledge", url: "/apps/setup/system/settings/knowledge", icon: "book-open" },
|
|
6321
6582
|
{ id: "nav_settings_feature_flags", type: "url", label: "Feature Flags", url: "/apps/setup/system/settings/feature_flags", icon: "flag" }
|
|
6322
6583
|
]
|
|
6323
6584
|
},
|
|
@@ -6396,63 +6657,42 @@ var SETUP_APP = {
|
|
|
6396
6657
|
var SystemOverviewDashboard = Dashboard.create({
|
|
6397
6658
|
name: "system_overview",
|
|
6398
6659
|
label: "System Overview",
|
|
6399
|
-
description: "Platform health,
|
|
6400
|
-
// 12-column grid matches the widget `w` values below
|
|
6401
|
-
// this, the renderer falls back to a 4-column grid and `w: 3` becomes 75%
|
|
6402
|
-
// width per metric — so KPI cards stack vertically instead of forming a
|
|
6403
|
-
// 4-up row.
|
|
6660
|
+
description: "Platform health, security activity, and recent audit events",
|
|
6661
|
+
// 12-column grid matches the widget `w` values below.
|
|
6404
6662
|
columns: 12,
|
|
6405
6663
|
gap: 4,
|
|
6406
6664
|
widgets: [
|
|
6407
|
-
// ──
|
|
6408
|
-
{
|
|
6409
|
-
id: "widget_active_sessions",
|
|
6410
|
-
title: "Active Sessions",
|
|
6411
|
-
type: "metric",
|
|
6412
|
-
object: "sys_session",
|
|
6413
|
-
layout: {
|
|
6414
|
-
x: 0,
|
|
6415
|
-
y: 0,
|
|
6416
|
-
w: 3,
|
|
6417
|
-
h: 2
|
|
6418
|
-
},
|
|
6419
|
-
aggregate: "count",
|
|
6420
|
-
colorVariant: "blue",
|
|
6421
|
-
description: "Number of currently active user sessions"
|
|
6422
|
-
},
|
|
6423
|
-
// ── Total Users Widget ──────────────────────────────────────────
|
|
6665
|
+
// ── Row 1: Platform KPIs ────────────────────────────────────────
|
|
6424
6666
|
{
|
|
6425
6667
|
id: "widget_total_users",
|
|
6426
6668
|
title: "Total Users",
|
|
6427
6669
|
type: "metric",
|
|
6428
6670
|
object: "sys_user",
|
|
6429
|
-
layout: {
|
|
6430
|
-
x: 3,
|
|
6431
|
-
y: 0,
|
|
6432
|
-
w: 3,
|
|
6433
|
-
h: 2
|
|
6434
|
-
},
|
|
6671
|
+
layout: { x: 0, y: 0, w: 3, h: 2 },
|
|
6435
6672
|
aggregate: "count",
|
|
6436
6673
|
colorVariant: "teal",
|
|
6437
6674
|
description: "Total registered users in the system"
|
|
6438
6675
|
},
|
|
6439
|
-
// ── Organizations Widget ────────────────────────────────────────
|
|
6440
6676
|
{
|
|
6441
6677
|
id: "widget_organizations",
|
|
6442
6678
|
title: "Organizations",
|
|
6443
6679
|
type: "metric",
|
|
6444
6680
|
object: "sys_organization",
|
|
6445
|
-
layout: {
|
|
6446
|
-
x: 6,
|
|
6447
|
-
y: 0,
|
|
6448
|
-
w: 3,
|
|
6449
|
-
h: 2
|
|
6450
|
-
},
|
|
6681
|
+
layout: { x: 3, y: 0, w: 3, h: 2 },
|
|
6451
6682
|
aggregate: "count",
|
|
6452
6683
|
colorVariant: "orange",
|
|
6453
6684
|
description: "Total organizations on the platform"
|
|
6454
6685
|
},
|
|
6455
|
-
|
|
6686
|
+
{
|
|
6687
|
+
id: "widget_active_sessions",
|
|
6688
|
+
title: "Active Sessions",
|
|
6689
|
+
type: "metric",
|
|
6690
|
+
object: "sys_session",
|
|
6691
|
+
layout: { x: 6, y: 0, w: 3, h: 2 },
|
|
6692
|
+
aggregate: "count",
|
|
6693
|
+
colorVariant: "blue",
|
|
6694
|
+
description: "Number of currently active user sessions"
|
|
6695
|
+
},
|
|
6456
6696
|
{
|
|
6457
6697
|
id: "widget_packages_installed",
|
|
6458
6698
|
title: "Packages Installed",
|
|
@@ -6461,97 +6701,13 @@ var SystemOverviewDashboard = Dashboard.create({
|
|
|
6461
6701
|
// Cloud-only object — only registered when service-tenant is loaded.
|
|
6462
6702
|
// Hide this widget gracefully in single-environment runtimes.
|
|
6463
6703
|
requiresObject: "sys_package_installation",
|
|
6464
|
-
layout: {
|
|
6465
|
-
x: 9,
|
|
6466
|
-
y: 0,
|
|
6467
|
-
w: 3,
|
|
6468
|
-
h: 2
|
|
6469
|
-
},
|
|
6704
|
+
layout: { x: 9, y: 0, w: 3, h: 2 },
|
|
6470
6705
|
filter: { status: "installed" },
|
|
6471
6706
|
aggregate: "count",
|
|
6472
6707
|
colorVariant: "success",
|
|
6473
6708
|
description: "Active package installations across projects"
|
|
6474
6709
|
},
|
|
6475
|
-
// ──
|
|
6476
|
-
// Note: relative date filters like `NOW() - INTERVAL 7 DAY` are not
|
|
6477
|
-
// currently substituted by the analytics layer (see
|
|
6478
|
-
// service-analytics/strategies/filter-normalizer.ts). The dashboard's
|
|
6479
|
-
// `globalFilters` date-range bar at the bottom is the supported way
|
|
6480
|
-
// to scope this widget.
|
|
6481
|
-
{
|
|
6482
|
-
id: "widget_audit_actions",
|
|
6483
|
-
title: "Audit Actions",
|
|
6484
|
-
description: "Distribution of audit events by action type",
|
|
6485
|
-
type: "pie",
|
|
6486
|
-
object: "sys_audit_log",
|
|
6487
|
-
layout: {
|
|
6488
|
-
x: 0,
|
|
6489
|
-
y: 2,
|
|
6490
|
-
w: 6,
|
|
6491
|
-
h: 4
|
|
6492
|
-
},
|
|
6493
|
-
categoryField: "action",
|
|
6494
|
-
aggregate: "count"
|
|
6495
|
-
},
|
|
6496
|
-
// ── Session Status Overview ─────────────────────────────────────
|
|
6497
|
-
{
|
|
6498
|
-
id: "widget_active_orgs",
|
|
6499
|
-
title: "Sessions by Organization",
|
|
6500
|
-
description: "Active sessions grouped by organization",
|
|
6501
|
-
type: "bar",
|
|
6502
|
-
object: "sys_session",
|
|
6503
|
-
layout: {
|
|
6504
|
-
x: 6,
|
|
6505
|
-
y: 2,
|
|
6506
|
-
w: 6,
|
|
6507
|
-
h: 4
|
|
6508
|
-
},
|
|
6509
|
-
categoryField: "active_organization_id",
|
|
6510
|
-
aggregate: "count"
|
|
6511
|
-
},
|
|
6512
|
-
// ── Recent Audit Log (Table) ────────────────────────────────────
|
|
6513
|
-
// `type: 'table'` renders the underlying rows directly, so this
|
|
6514
|
-
// panel actually shows the latest events instead of just repeating
|
|
6515
|
-
// the total-count metric. `valueField`/`aggregate` are intentionally
|
|
6516
|
-
// omitted — table widgets pull raw records.
|
|
6517
|
-
{
|
|
6518
|
-
id: "widget_recent_events",
|
|
6519
|
-
title: "Recent Audit Events",
|
|
6520
|
-
description: "Latest platform events",
|
|
6521
|
-
type: "table",
|
|
6522
|
-
object: "sys_audit_log",
|
|
6523
|
-
layout: {
|
|
6524
|
-
x: 0,
|
|
6525
|
-
y: 6,
|
|
6526
|
-
w: 12,
|
|
6527
|
-
h: 4
|
|
6528
|
-
},
|
|
6529
|
-
options: {
|
|
6530
|
-
columns: ["created_at", "user_id", "action", "object_name", "record_id"],
|
|
6531
|
-
sort: [{ field: "created_at", order: "desc" }],
|
|
6532
|
-
pageSize: 20
|
|
6533
|
-
}
|
|
6534
|
-
}
|
|
6535
|
-
],
|
|
6536
|
-
globalFilters: [
|
|
6537
|
-
{
|
|
6538
|
-
field: "created_at",
|
|
6539
|
-
type: "date",
|
|
6540
|
-
label: "Date Range",
|
|
6541
|
-
scope: "dashboard",
|
|
6542
|
-
defaultValue: "last_7_days"
|
|
6543
|
-
}
|
|
6544
|
-
]
|
|
6545
|
-
});
|
|
6546
|
-
var SecurityOverviewDashboard = Dashboard.create({
|
|
6547
|
-
name: "security_overview",
|
|
6548
|
-
label: "Security Overview",
|
|
6549
|
-
description: "Security events, authentication, and audit trails",
|
|
6550
|
-
// 12-column grid matches the widget `w` values below.
|
|
6551
|
-
columns: 12,
|
|
6552
|
-
gap: 4,
|
|
6553
|
-
widgets: [
|
|
6554
|
-
// ── Login Events Widget ─────────────────────────────────────────
|
|
6710
|
+
// ── Row 2: Security KPIs ────────────────────────────────────────
|
|
6555
6711
|
// The `sys_audit_log.action` enum doesn't distinguish failed vs
|
|
6556
6712
|
// successful logins (both fold into `action='login'`). Surfacing a
|
|
6557
6713
|
// total Login Events count is honest; a "Failed Logins" widget will
|
|
@@ -6561,116 +6717,72 @@ var SecurityOverviewDashboard = Dashboard.create({
|
|
|
6561
6717
|
title: "Login Events",
|
|
6562
6718
|
type: "metric",
|
|
6563
6719
|
object: "sys_audit_log",
|
|
6564
|
-
layout: {
|
|
6565
|
-
x: 0,
|
|
6566
|
-
y: 0,
|
|
6567
|
-
w: 3,
|
|
6568
|
-
h: 2
|
|
6569
|
-
},
|
|
6720
|
+
layout: { x: 0, y: 2, w: 4, h: 2 },
|
|
6570
6721
|
filter: { action: "login" },
|
|
6571
6722
|
aggregate: "count",
|
|
6572
6723
|
colorVariant: "blue",
|
|
6573
6724
|
description: "Authentication events recorded by the audit log"
|
|
6574
6725
|
},
|
|
6575
|
-
// ── Permission Changes Widget ───────────────────────────────────
|
|
6576
6726
|
{
|
|
6577
6727
|
id: "widget_permission_changes",
|
|
6578
6728
|
title: "Permission Changes",
|
|
6579
6729
|
type: "metric",
|
|
6580
6730
|
object: "sys_audit_log",
|
|
6581
|
-
layout: {
|
|
6582
|
-
x: 3,
|
|
6583
|
-
y: 0,
|
|
6584
|
-
w: 3,
|
|
6585
|
-
h: 2
|
|
6586
|
-
},
|
|
6731
|
+
layout: { x: 4, y: 2, w: 4, h: 2 },
|
|
6587
6732
|
filter: { action: "permission_change" },
|
|
6588
6733
|
aggregate: "count",
|
|
6589
6734
|
colorVariant: "warning",
|
|
6590
6735
|
description: "Recent permission and role modifications"
|
|
6591
6736
|
},
|
|
6592
|
-
// ── System Config Changes Widget ────────────────────────────────
|
|
6593
6737
|
{
|
|
6594
6738
|
id: "widget_config_changes",
|
|
6595
6739
|
title: "Config Changes",
|
|
6596
6740
|
type: "metric",
|
|
6597
6741
|
object: "sys_audit_log",
|
|
6598
|
-
layout: {
|
|
6599
|
-
x: 6,
|
|
6600
|
-
y: 0,
|
|
6601
|
-
w: 3,
|
|
6602
|
-
h: 2
|
|
6603
|
-
},
|
|
6742
|
+
layout: { x: 8, y: 2, w: 4, h: 2 },
|
|
6604
6743
|
filter: { action: "config_change" },
|
|
6605
6744
|
aggregate: "count",
|
|
6606
6745
|
colorVariant: "blue",
|
|
6607
6746
|
description: "System configuration modifications"
|
|
6608
6747
|
},
|
|
6609
|
-
// ──
|
|
6610
|
-
|
|
6611
|
-
|
|
6612
|
-
|
|
6613
|
-
|
|
6614
|
-
|
|
6615
|
-
layout: {
|
|
6616
|
-
x: 9,
|
|
6617
|
-
y: 0,
|
|
6618
|
-
w: 3,
|
|
6619
|
-
h: 2
|
|
6620
|
-
},
|
|
6621
|
-
aggregate: "count",
|
|
6622
|
-
colorVariant: "success",
|
|
6623
|
-
description: "Currently active user sessions"
|
|
6624
|
-
},
|
|
6625
|
-
// ── Audit Events by Type ────────────────────────────────────────
|
|
6748
|
+
// ── Row 3: Distribution charts ──────────────────────────────────
|
|
6749
|
+
// Note: relative date filters like `NOW() - INTERVAL 7 DAY` are not
|
|
6750
|
+
// currently substituted by the analytics layer (see
|
|
6751
|
+
// service-analytics/strategies/filter-normalizer.ts). The dashboard's
|
|
6752
|
+
// `globalFilters` date-range bar at the bottom is the supported way
|
|
6753
|
+
// to scope these widgets.
|
|
6626
6754
|
{
|
|
6627
6755
|
id: "widget_events_by_type",
|
|
6628
|
-
title: "Audit Events by
|
|
6629
|
-
description: "Distribution of
|
|
6756
|
+
title: "Audit Events by Action",
|
|
6757
|
+
description: "Distribution of audit events by action type",
|
|
6630
6758
|
type: "pie",
|
|
6631
6759
|
object: "sys_audit_log",
|
|
6632
|
-
layout: {
|
|
6633
|
-
x: 0,
|
|
6634
|
-
y: 2,
|
|
6635
|
-
w: 6,
|
|
6636
|
-
h: 4
|
|
6637
|
-
},
|
|
6760
|
+
layout: { x: 0, y: 4, w: 6, h: 4 },
|
|
6638
6761
|
categoryField: "action",
|
|
6639
6762
|
aggregate: "count"
|
|
6640
6763
|
},
|
|
6641
|
-
// ── Audit Events by User ────────────────────────────────────────
|
|
6642
6764
|
{
|
|
6643
6765
|
id: "widget_events_by_user",
|
|
6644
6766
|
title: "Events by User",
|
|
6645
6767
|
description: "Activity distribution across users",
|
|
6646
6768
|
type: "bar",
|
|
6647
6769
|
object: "sys_audit_log",
|
|
6648
|
-
layout: {
|
|
6649
|
-
x: 6,
|
|
6650
|
-
y: 2,
|
|
6651
|
-
w: 6,
|
|
6652
|
-
h: 4
|
|
6653
|
-
},
|
|
6770
|
+
layout: { x: 6, y: 4, w: 6, h: 4 },
|
|
6654
6771
|
categoryField: "user_id",
|
|
6655
6772
|
aggregate: "count"
|
|
6656
6773
|
},
|
|
6657
|
-
// ── Recent
|
|
6658
|
-
//
|
|
6774
|
+
// ── Row 4: Recent audit events table ────────────────────────────
|
|
6775
|
+
// `type: 'table'` renders the underlying rows directly, so this
|
|
6776
|
+
// panel actually shows the latest events instead of just repeating
|
|
6777
|
+
// the total-count metric. `valueField`/`aggregate` are intentionally
|
|
6778
|
+
// omitted — table widgets pull raw records.
|
|
6659
6779
|
{
|
|
6660
|
-
id: "
|
|
6661
|
-
title: "Recent
|
|
6662
|
-
description: "Latest permission
|
|
6780
|
+
id: "widget_recent_events",
|
|
6781
|
+
title: "Recent Audit Events",
|
|
6782
|
+
description: "Latest platform events (login, permission, config, \u2026)",
|
|
6663
6783
|
type: "table",
|
|
6664
6784
|
object: "sys_audit_log",
|
|
6665
|
-
layout: {
|
|
6666
|
-
x: 0,
|
|
6667
|
-
y: 6,
|
|
6668
|
-
w: 12,
|
|
6669
|
-
h: 4
|
|
6670
|
-
},
|
|
6671
|
-
filter: {
|
|
6672
|
-
action: { $in: ["login", "logout", "permission_change", "config_change"] }
|
|
6673
|
-
},
|
|
6785
|
+
layout: { x: 0, y: 8, w: 12, h: 4 },
|
|
6674
6786
|
options: {
|
|
6675
6787
|
columns: ["created_at", "user_id", "action", "object_name", "record_id"],
|
|
6676
6788
|
sort: [{ field: "created_at", order: "desc" }],
|
|
@@ -9614,7 +9726,6 @@ var en = {
|
|
|
9614
9726
|
group_advanced: { label: "Advanced" },
|
|
9615
9727
|
// Overview
|
|
9616
9728
|
nav_system_overview: { label: "System Overview" },
|
|
9617
|
-
nav_security_overview: { label: "Security Overview" },
|
|
9618
9729
|
// People & Organization
|
|
9619
9730
|
nav_users: { label: "Users" },
|
|
9620
9731
|
nav_departments: { label: "Departments" },
|
|
@@ -9655,12 +9766,8 @@ var en = {
|
|
|
9655
9766
|
dashboards: {
|
|
9656
9767
|
system_overview: {
|
|
9657
9768
|
label: "System Overview",
|
|
9658
|
-
description: "Platform health,
|
|
9769
|
+
description: "Platform health, security activity, and recent audit events",
|
|
9659
9770
|
widgets: {
|
|
9660
|
-
widget_active_sessions: {
|
|
9661
|
-
title: "Active Sessions",
|
|
9662
|
-
description: "Number of currently active user sessions"
|
|
9663
|
-
},
|
|
9664
9771
|
widget_total_users: {
|
|
9665
9772
|
title: "Total Users",
|
|
9666
9773
|
description: "Total registered users in the system"
|
|
@@ -9669,28 +9776,14 @@ var en = {
|
|
|
9669
9776
|
title: "Organizations",
|
|
9670
9777
|
description: "Total organizations on the platform"
|
|
9671
9778
|
},
|
|
9779
|
+
widget_active_sessions: {
|
|
9780
|
+
title: "Active Sessions",
|
|
9781
|
+
description: "Number of currently active user sessions"
|
|
9782
|
+
},
|
|
9672
9783
|
widget_packages_installed: {
|
|
9673
9784
|
title: "Packages Installed",
|
|
9674
9785
|
description: "Active package installations across projects"
|
|
9675
9786
|
},
|
|
9676
|
-
widget_audit_actions: {
|
|
9677
|
-
title: "Audit Actions",
|
|
9678
|
-
description: "Distribution of audit events by action type"
|
|
9679
|
-
},
|
|
9680
|
-
widget_active_orgs: {
|
|
9681
|
-
title: "Sessions by Organization",
|
|
9682
|
-
description: "Active sessions grouped by organization"
|
|
9683
|
-
},
|
|
9684
|
-
widget_recent_events: {
|
|
9685
|
-
title: "Recent Audit Events",
|
|
9686
|
-
description: "Latest platform events"
|
|
9687
|
-
}
|
|
9688
|
-
}
|
|
9689
|
-
},
|
|
9690
|
-
security_overview: {
|
|
9691
|
-
label: "Security Overview",
|
|
9692
|
-
description: "Security events, authentication, and audit trails",
|
|
9693
|
-
widgets: {
|
|
9694
9787
|
widget_login_events: {
|
|
9695
9788
|
title: "Login Events",
|
|
9696
9789
|
description: "Authentication events recorded by the audit log"
|
|
@@ -9703,21 +9796,17 @@ var en = {
|
|
|
9703
9796
|
title: "Config Changes",
|
|
9704
9797
|
description: "System configuration modifications"
|
|
9705
9798
|
},
|
|
9706
|
-
widget_active_sessions: {
|
|
9707
|
-
title: "Active Sessions",
|
|
9708
|
-
description: "Currently active user sessions"
|
|
9709
|
-
},
|
|
9710
9799
|
widget_events_by_type: {
|
|
9711
|
-
title: "Audit Events by
|
|
9712
|
-
description: "Distribution of
|
|
9800
|
+
title: "Audit Events by Action",
|
|
9801
|
+
description: "Distribution of audit events by action type"
|
|
9713
9802
|
},
|
|
9714
9803
|
widget_events_by_user: {
|
|
9715
9804
|
title: "Events by User",
|
|
9716
9805
|
description: "Activity distribution across users"
|
|
9717
9806
|
},
|
|
9718
|
-
|
|
9719
|
-
title: "Recent
|
|
9720
|
-
description: "Latest permission
|
|
9807
|
+
widget_recent_events: {
|
|
9808
|
+
title: "Recent Audit Events",
|
|
9809
|
+
description: "Latest platform events (login, permission, config, \u2026)"
|
|
9721
9810
|
}
|
|
9722
9811
|
}
|
|
9723
9812
|
}
|
|
@@ -12651,7 +12740,6 @@ var zhCN = {
|
|
|
12651
12740
|
group_diagnostics: { label: "\u8BCA\u65AD" },
|
|
12652
12741
|
group_advanced: { label: "\u9AD8\u7EA7" },
|
|
12653
12742
|
nav_system_overview: { label: "\u7CFB\u7EDF\u6982\u89C8" },
|
|
12654
|
-
nav_security_overview: { label: "\u5B89\u5168\u6982\u89C8" },
|
|
12655
12743
|
nav_users: { label: "\u7528\u6237" },
|
|
12656
12744
|
nav_departments: { label: "\u90E8\u95E8" },
|
|
12657
12745
|
nav_teams: { label: "\u56E2\u961F" },
|
|
@@ -12686,28 +12774,18 @@ var zhCN = {
|
|
|
12686
12774
|
dashboards: {
|
|
12687
12775
|
system_overview: {
|
|
12688
12776
|
label: "\u7CFB\u7EDF\u6982\u89C8",
|
|
12689
|
-
description: "\u5E73\u53F0\u8FD0\u884C\u72B6\u51B5\u3001\
|
|
12777
|
+
description: "\u5E73\u53F0\u8FD0\u884C\u72B6\u51B5\u3001\u5B89\u5168\u6D3B\u52A8\u4E0E\u6700\u8FD1\u5BA1\u8BA1\u4E8B\u4EF6",
|
|
12690
12778
|
widgets: {
|
|
12691
|
-
widget_active_sessions: { title: "\u6D3B\u8DC3\u4F1A\u8BDD", description: "\u5F53\u524D\u6D3B\u8DC3\u7528\u6237\u4F1A\u8BDD\u6570\u91CF" },
|
|
12692
12779
|
widget_total_users: { title: "\u7528\u6237\u603B\u6570", description: "\u7CFB\u7EDF\u4E2D\u5DF2\u6CE8\u518C\u7684\u7528\u6237\u603B\u6570" },
|
|
12693
12780
|
widget_organizations: { title: "\u7EC4\u7EC7\u6570", description: "\u5E73\u53F0\u4E0A\u7684\u7EC4\u7EC7\u603B\u6570" },
|
|
12781
|
+
widget_active_sessions: { title: "\u6D3B\u8DC3\u4F1A\u8BDD", description: "\u5F53\u524D\u6D3B\u8DC3\u7528\u6237\u4F1A\u8BDD\u6570\u91CF" },
|
|
12694
12782
|
widget_packages_installed: { title: "\u5DF2\u5B89\u88C5\u5305", description: "\u9879\u76EE\u4E2D\u5DF2\u6FC0\u6D3B\u7684\u5B89\u88C5\u5305\u6570" },
|
|
12695
|
-
widget_audit_actions: { title: "\u5BA1\u8BA1\u64CD\u4F5C", description: "\u6309\u64CD\u4F5C\u7C7B\u578B\u5206\u5E03\u7684\u5BA1\u8BA1\u4E8B\u4EF6" },
|
|
12696
|
-
widget_active_orgs: { title: "\u6309\u7EC4\u7EC7\u5212\u5206\u4F1A\u8BDD", description: "\u6309\u7EC4\u7EC7\u5206\u7EC4\u7684\u6D3B\u8DC3\u4F1A\u8BDD" },
|
|
12697
|
-
widget_recent_events: { title: "\u6700\u8FD1\u5BA1\u8BA1\u4E8B\u4EF6", description: "\u6700\u65B0\u7684\u5E73\u53F0\u4E8B\u4EF6" }
|
|
12698
|
-
}
|
|
12699
|
-
},
|
|
12700
|
-
security_overview: {
|
|
12701
|
-
label: "\u5B89\u5168\u6982\u89C8",
|
|
12702
|
-
description: "\u5B89\u5168\u4E8B\u4EF6\u3001\u8EAB\u4EFD\u8BA4\u8BC1\u4E0E\u5BA1\u8BA1\u8FFD\u8E2A",
|
|
12703
|
-
widgets: {
|
|
12704
12783
|
widget_login_events: { title: "\u767B\u5F55\u4E8B\u4EF6", description: "\u5BA1\u8BA1\u65E5\u5FD7\u4E2D\u8BB0\u5F55\u7684\u8BA4\u8BC1\u4E8B\u4EF6" },
|
|
12705
12784
|
widget_permission_changes: { title: "\u6743\u9650\u53D8\u66F4", description: "\u6700\u8FD1\u7684\u6743\u9650\u548C\u89D2\u8272\u4FEE\u6539" },
|
|
12706
12785
|
widget_config_changes: { title: "\u914D\u7F6E\u53D8\u66F4", description: "\u7CFB\u7EDF\u914D\u7F6E\u4FEE\u6539" },
|
|
12707
|
-
|
|
12708
|
-
widget_events_by_type: { title: "\u6309\u7C7B\u578B\u5206\u5E03\u7684\u5BA1\u8BA1\u4E8B\u4EF6", description: "\u5B89\u5168\u4E0E\u5BA1\u8BA1\u4E8B\u4EF6\u5206\u5E03" },
|
|
12786
|
+
widget_events_by_type: { title: "\u6309\u64CD\u4F5C\u5206\u5E03\u7684\u5BA1\u8BA1\u4E8B\u4EF6", description: "\u5BA1\u8BA1\u4E8B\u4EF6\u6309\u64CD\u4F5C\u7C7B\u578B\u5206\u5E03" },
|
|
12709
12787
|
widget_events_by_user: { title: "\u6309\u7528\u6237\u5206\u5E03\u7684\u4E8B\u4EF6", description: "\u7528\u6237\u6D3B\u52A8\u5206\u5E03" },
|
|
12710
|
-
|
|
12788
|
+
widget_recent_events: { title: "\u6700\u8FD1\u5BA1\u8BA1\u4E8B\u4EF6", description: "\u6700\u65B0\u7684\u5E73\u53F0\u4E8B\u4EF6\uFF08\u767B\u5F55\u3001\u6743\u9650\u3001\u914D\u7F6E\u7B49\uFF09" }
|
|
12711
12789
|
}
|
|
12712
12790
|
}
|
|
12713
12791
|
}
|
|
@@ -15636,7 +15714,6 @@ var jaJP = {
|
|
|
15636
15714
|
group_diagnostics: { label: "\u8A3A\u65AD" },
|
|
15637
15715
|
group_advanced: { label: "\u8A73\u7D30" },
|
|
15638
15716
|
nav_system_overview: { label: "\u30B7\u30B9\u30C6\u30E0\u6982\u8981" },
|
|
15639
|
-
nav_security_overview: { label: "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u6982\u8981" },
|
|
15640
15717
|
nav_users: { label: "\u30E6\u30FC\u30B6\u30FC" },
|
|
15641
15718
|
nav_departments: { label: "\u90E8\u7F72" },
|
|
15642
15719
|
nav_teams: { label: "\u30C1\u30FC\u30E0" },
|
|
@@ -15671,28 +15748,18 @@ var jaJP = {
|
|
|
15671
15748
|
dashboards: {
|
|
15672
15749
|
system_overview: {
|
|
15673
15750
|
label: "\u30B7\u30B9\u30C6\u30E0\u6982\u8981",
|
|
15674
|
-
description: "\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306E\u5065\u5168\u6027\u3001\u30BB\
|
|
15751
|
+
description: "\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306E\u5065\u5168\u6027\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u6D3B\u52D5\u3001\u6700\u8FD1\u306E\u76E3\u67FB\u30A4\u30D9\u30F3\u30C8",
|
|
15675
15752
|
widgets: {
|
|
15676
|
-
widget_active_sessions: { title: "\u30A2\u30AF\u30C6\u30A3\u30D6\u30BB\u30C3\u30B7\u30E7\u30F3", description: "\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30E6\u30FC\u30B6\u30FC\u30BB\u30C3\u30B7\u30E7\u30F3\u6570" },
|
|
15677
15753
|
widget_total_users: { title: "\u30E6\u30FC\u30B6\u30FC\u7DCF\u6570", description: "\u30B7\u30B9\u30C6\u30E0\u306B\u767B\u9332\u3055\u308C\u305F\u30E6\u30FC\u30B6\u30FC\u306E\u7DCF\u6570" },
|
|
15678
15754
|
widget_organizations: { title: "\u7D44\u7E54", description: "\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u4E0A\u306E\u7D44\u7E54\u7DCF\u6570" },
|
|
15755
|
+
widget_active_sessions: { title: "\u30A2\u30AF\u30C6\u30A3\u30D6\u30BB\u30C3\u30B7\u30E7\u30F3", description: "\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30E6\u30FC\u30B6\u30FC\u30BB\u30C3\u30B7\u30E7\u30F3\u6570" },
|
|
15679
15756
|
widget_packages_installed: { title: "\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u30D1\u30C3\u30B1\u30FC\u30B8", description: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30D1\u30C3\u30B1\u30FC\u30B8\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6570" },
|
|
15680
|
-
widget_audit_actions: { title: "\u76E3\u67FB\u30A2\u30AF\u30B7\u30E7\u30F3", description: "\u30A2\u30AF\u30B7\u30E7\u30F3\u30BF\u30A4\u30D7\u5225\u306E\u76E3\u67FB\u30A4\u30D9\u30F3\u30C8\u5206\u5E03" },
|
|
15681
|
-
widget_active_orgs: { title: "\u7D44\u7E54\u5225\u30BB\u30C3\u30B7\u30E7\u30F3", description: "\u7D44\u7E54\u5225\u306B\u30B0\u30EB\u30FC\u30D7\u5316\u3055\u308C\u305F\u30A2\u30AF\u30C6\u30A3\u30D6\u30BB\u30C3\u30B7\u30E7\u30F3" },
|
|
15682
|
-
widget_recent_events: { title: "\u6700\u8FD1\u306E\u76E3\u67FB\u30A4\u30D9\u30F3\u30C8", description: "\u6700\u65B0\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u30A4\u30D9\u30F3\u30C8" }
|
|
15683
|
-
}
|
|
15684
|
-
},
|
|
15685
|
-
security_overview: {
|
|
15686
|
-
label: "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u6982\u8981",
|
|
15687
|
-
description: "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30A4\u30D9\u30F3\u30C8\u3001\u8A8D\u8A3C\u3001\u76E3\u67FB\u8A3C\u8DE1",
|
|
15688
|
-
widgets: {
|
|
15689
15757
|
widget_login_events: { title: "\u30ED\u30B0\u30A4\u30F3\u30A4\u30D9\u30F3\u30C8", description: "\u76E3\u67FB\u30ED\u30B0\u306B\u8A18\u9332\u3055\u308C\u305F\u8A8D\u8A3C\u30A4\u30D9\u30F3\u30C8" },
|
|
15690
15758
|
widget_permission_changes: { title: "\u6A29\u9650\u5909\u66F4", description: "\u6700\u8FD1\u306E\u6A29\u9650\u3068\u30ED\u30FC\u30EB\u306E\u5909\u66F4" },
|
|
15691
15759
|
widget_config_changes: { title: "\u69CB\u6210\u5909\u66F4", description: "\u30B7\u30B9\u30C6\u30E0\u69CB\u6210\u306E\u5909\u66F4" },
|
|
15692
|
-
|
|
15693
|
-
widget_events_by_type: { title: "\u30BF\u30A4\u30D7\u5225\u76E3\u67FB\u30A4\u30D9\u30F3\u30C8", description: "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3068\u76E3\u67FB\u30A4\u30D9\u30F3\u30C8\u306E\u5206\u5E03" },
|
|
15760
|
+
widget_events_by_type: { title: "\u30A2\u30AF\u30B7\u30E7\u30F3\u5225\u76E3\u67FB\u30A4\u30D9\u30F3\u30C8", description: "\u30A2\u30AF\u30B7\u30E7\u30F3\u30BF\u30A4\u30D7\u5225\u306E\u76E3\u67FB\u30A4\u30D9\u30F3\u30C8\u5206\u5E03" },
|
|
15694
15761
|
widget_events_by_user: { title: "\u30E6\u30FC\u30B6\u30FC\u5225\u30A4\u30D9\u30F3\u30C8", description: "\u30E6\u30FC\u30B6\u30FC\u5225\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u5206\u5E03" },
|
|
15695
|
-
|
|
15762
|
+
widget_recent_events: { title: "\u6700\u8FD1\u306E\u76E3\u67FB\u30A4\u30D9\u30F3\u30C8", description: "\u6700\u65B0\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u30A4\u30D9\u30F3\u30C8\uFF08\u30ED\u30B0\u30A4\u30F3\u3001\u6A29\u9650\u3001\u69CB\u6210\u306A\u3069\uFF09" }
|
|
15696
15763
|
}
|
|
15697
15764
|
}
|
|
15698
15765
|
}
|
|
@@ -18621,7 +18688,6 @@ var esES = {
|
|
|
18621
18688
|
group_diagnostics: { label: "Diagn\xF3stico" },
|
|
18622
18689
|
group_advanced: { label: "Avanzado" },
|
|
18623
18690
|
nav_system_overview: { label: "Resumen del Sistema" },
|
|
18624
|
-
nav_security_overview: { label: "Resumen de Seguridad" },
|
|
18625
18691
|
nav_users: { label: "Usuarios" },
|
|
18626
18692
|
nav_departments: { label: "Departamentos" },
|
|
18627
18693
|
nav_teams: { label: "Equipos" },
|
|
@@ -18656,28 +18722,18 @@ var esES = {
|
|
|
18656
18722
|
dashboards: {
|
|
18657
18723
|
system_overview: {
|
|
18658
18724
|
label: "Resumen del Sistema",
|
|
18659
|
-
description: "Estado de la plataforma,
|
|
18725
|
+
description: "Estado de la plataforma, actividad de seguridad y eventos de auditor\xEDa recientes",
|
|
18660
18726
|
widgets: {
|
|
18661
|
-
widget_active_sessions: { title: "Sesiones Activas", description: "N\xFAmero de sesiones de usuario activas en este momento" },
|
|
18662
18727
|
widget_total_users: { title: "Usuarios Totales", description: "Total de usuarios registrados en el sistema" },
|
|
18663
18728
|
widget_organizations: { title: "Organizaciones", description: "Total de organizaciones en la plataforma" },
|
|
18729
|
+
widget_active_sessions: { title: "Sesiones Activas", description: "N\xFAmero de sesiones de usuario activas en este momento" },
|
|
18664
18730
|
widget_packages_installed: { title: "Paquetes Instalados", description: "Instalaciones de paquetes activas en los proyectos" },
|
|
18665
|
-
widget_audit_actions: { title: "Acciones de Auditor\xEDa", description: "Distribuci\xF3n de eventos de auditor\xEDa por tipo de acci\xF3n" },
|
|
18666
|
-
widget_active_orgs: { title: "Sesiones por Organizaci\xF3n", description: "Sesiones activas agrupadas por organizaci\xF3n" },
|
|
18667
|
-
widget_recent_events: { title: "Eventos de Auditor\xEDa Recientes", description: "\xDAltimos eventos de la plataforma" }
|
|
18668
|
-
}
|
|
18669
|
-
},
|
|
18670
|
-
security_overview: {
|
|
18671
|
-
label: "Resumen de Seguridad",
|
|
18672
|
-
description: "Eventos de seguridad, autenticaci\xF3n y registros de auditor\xEDa",
|
|
18673
|
-
widgets: {
|
|
18674
18731
|
widget_login_events: { title: "Eventos de Inicio de Sesi\xF3n", description: "Eventos de autenticaci\xF3n registrados por el log de auditor\xEDa" },
|
|
18675
18732
|
widget_permission_changes: { title: "Cambios de Permisos", description: "Modificaciones recientes de permisos y roles" },
|
|
18676
18733
|
widget_config_changes: { title: "Cambios de Configuraci\xF3n", description: "Modificaciones de configuraci\xF3n del sistema" },
|
|
18677
|
-
|
|
18678
|
-
widget_events_by_type: { title: "Eventos de Auditor\xEDa por Tipo", description: "Distribuci\xF3n de eventos de seguridad y auditor\xEDa" },
|
|
18734
|
+
widget_events_by_type: { title: "Eventos de Auditor\xEDa por Acci\xF3n", description: "Distribuci\xF3n de eventos de auditor\xEDa por tipo de acci\xF3n" },
|
|
18679
18735
|
widget_events_by_user: { title: "Eventos por Usuario", description: "Distribuci\xF3n de actividad entre usuarios" },
|
|
18680
|
-
|
|
18736
|
+
widget_recent_events: { title: "Eventos de Auditor\xEDa Recientes", description: "\xDAltimos eventos de la plataforma (inicio de sesi\xF3n, permisos, configuraci\xF3n, \u2026)" }
|
|
18681
18737
|
}
|
|
18682
18738
|
}
|
|
18683
18739
|
}
|
|
@@ -18691,6 +18747,6 @@ var SetupAppTranslations = {
|
|
|
18691
18747
|
"es-ES": esES
|
|
18692
18748
|
};
|
|
18693
18749
|
|
|
18694
|
-
export { SETUP_APP,
|
|
18750
|
+
export { SETUP_APP, SetupAppTranslations, SysAccount, SysActivity, SysApiKey, SysApprovalAction, SysApprovalProcess, SysApprovalRequest, SysAttachment, SysAuditLog, SysComment, SysDepartment, SysDepartmentMember, SysDeviceCode, SysEmail, SysEmailTemplate, SysInvitation, SysJob, SysJobQueue, SysJobRun, SysJwks, SysMember, SysMetadataObject as SysMetadata, SysMetadataHistoryObject, SysMetadataObject, SysNotification, SysOauthAccessToken, SysOauthApplication, SysOauthConsent, SysOauthRefreshToken, SysOrganization, SysPermissionSet, SysPresence, SysRecordShare, SysReportSchedule, SysRole, SysRolePermissionSet, SysSavedReport, SysSecret, SysSession, SysSetting, SysSettingAudit, SysSharingRule, SysTeam, SysTeamMember, SysTwoFactor, SysUser, SysUserPermissionSet, SysUserPreference, SysVerification, SysWebhook, SystemOverviewDashboard, defaultPermissionSets, en, esES, jaJP, zhCN };
|
|
18695
18751
|
//# sourceMappingURL=index.mjs.map
|
|
18696
18752
|
//# sourceMappingURL=index.mjs.map
|