@objectstack/platform-objects 0.1.0 → 4.1.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.
Files changed (57) hide show
  1. package/dist/apps/index.d.mts +16 -48
  2. package/dist/apps/index.d.ts +16 -48
  3. package/dist/apps/index.js +139 -215
  4. package/dist/apps/index.js.map +1 -1
  5. package/dist/apps/index.mjs +140 -210
  6. package/dist/apps/index.mjs.map +1 -1
  7. package/dist/audit/index.d.mts +40249 -150
  8. package/dist/audit/index.d.ts +40249 -150
  9. package/dist/audit/index.js +1428 -0
  10. package/dist/audit/index.js.map +1 -1
  11. package/dist/audit/index.mjs +1417 -1
  12. package/dist/audit/index.mjs.map +1 -1
  13. package/dist/identity/index.d.mts +18792 -2520
  14. package/dist/identity/index.d.ts +18792 -2520
  15. package/dist/identity/index.js +1107 -6
  16. package/dist/identity/index.js.map +1 -1
  17. package/dist/identity/index.mjs +1106 -7
  18. package/dist/identity/index.mjs.map +1 -1
  19. package/dist/index.d.mts +9 -7
  20. package/dist/index.d.ts +9 -7
  21. package/dist/index.js +3939 -1504
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +3917 -1487
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/integration/index.d.mts +2905 -0
  26. package/dist/integration/index.d.ts +2905 -0
  27. package/dist/integration/index.js +140 -0
  28. package/dist/integration/index.js.map +1 -0
  29. package/dist/integration/index.mjs +138 -0
  30. package/dist/integration/index.mjs.map +1 -0
  31. package/dist/metadata/index.d.mts +1426 -19092
  32. package/dist/metadata/index.d.ts +1426 -19092
  33. package/dist/metadata/index.js +29 -619
  34. package/dist/metadata/index.js.map +1 -1
  35. package/dist/metadata/index.mjs +30 -615
  36. package/dist/metadata/index.mjs.map +1 -1
  37. package/dist/security/index.d.mts +10759 -60
  38. package/dist/security/index.d.ts +10759 -60
  39. package/dist/security/index.js +786 -0
  40. package/dist/security/index.js.map +1 -1
  41. package/dist/security/index.mjs +782 -1
  42. package/dist/security/index.mjs.map +1 -1
  43. package/dist/system/index.d.mts +8409 -0
  44. package/dist/system/index.d.ts +8409 -0
  45. package/dist/system/index.js +395 -0
  46. package/dist/system/index.js.map +1 -0
  47. package/dist/system/index.mjs +391 -0
  48. package/dist/system/index.mjs.map +1 -0
  49. package/package.json +13 -8
  50. package/dist/tenant/index.d.mts +0 -16454
  51. package/dist/tenant/index.d.ts +0 -16454
  52. package/dist/tenant/index.js +0 -741
  53. package/dist/tenant/index.js.map +0 -1
  54. package/dist/tenant/index.mjs +0 -733
  55. package/dist/tenant/index.mjs.map +0 -1
  56. /package/dist/{state-machine.zod-BFg-VE0M.d-Ek3_yo9P.d.mts → state-machine.zod-BNanU03M.d-Ek3_yo9P.d.mts} +0 -0
  57. /package/dist/{state-machine.zod-BFg-VE0M.d-Ek3_yo9P.d.ts → state-machine.zod-BNanU03M.d-Ek3_yo9P.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/apps/setup.app.ts","../../src/apps/views/users.view.ts","../../src/apps/views/organizations.view.ts","../../src/apps/views/roles.view.ts","../../src/apps/views/sessions.view.ts","../../src/apps/views/audit_logs.view.ts","../../src/apps/views/package_installations.view.ts","../../src/apps/dashboards/system_overview.dashboard.ts","../../src/apps/dashboards/security_overview.dashboard.ts"],"names":["Dashboard"],"mappings":"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","file":"index.js","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * Platform Setup App — static definition.\n *\n * Lists every `sys_*` administrative object as a left-hand navigation\n * entry in ObjectUI's \"Setup\" area. Lives here (alongside the object\n * schemas it references) instead of being assembled at runtime by\n * `@objectstack/plugin-setup` — that plugin existed only because the\n * referenced objects used to live in three different runtime plugins\n * (auth/security/audit). Now that all `sys_*` objects are centralized\n * in `@objectstack/platform-objects`, the Setup App is a fixed metadata\n * artifact too and can be exported as plain data.\n *\n * The runtime registration happens in `plugin-auth` (which is always\n * loaded alongside security + audit and already calls\n * `manifest.register({...})`).\n *\n * Menu shape: flat `navigation[]` with `type: 'group'` category nodes,\n * matching the convention used by the CRM example app\n * (`examples/app-crm/src/apps/crm.app.ts`). The legacy `areas[]` shape\n * was abandoned because it rendered poorly compared to the category\n * style ObjectUI is built around.\n */\n\nimport type { App } from '@objectstack/spec/ui';\n\nexport const SETUP_APP: App = {\n name: 'setup',\n label: 'Setup',\n description: 'Platform settings and administration',\n icon: 'settings',\n active: true,\n isDefault: false,\n branding: {\n primaryColor: '#475569', // Slate-600 — neutral admin palette\n },\n requiredPermissions: ['setup.access'],\n navigation: [\n {\n id: 'group_overview',\n type: 'group',\n label: 'Overview',\n icon: 'layout-dashboard',\n children: [\n { id: 'nav_system_overview', type: 'dashboard', label: 'System Overview', dashboardName: 'system_overview', icon: 'activity' },\n { id: 'nav_security_overview', type: 'dashboard', label: 'Security Overview', dashboardName: 'security_overview', icon: 'shield' },\n ],\n },\n {\n id: 'group_administration',\n type: 'group',\n label: 'Administration',\n icon: 'shield',\n children: [\n { id: 'nav_users', type: 'object', label: 'Users', objectName: 'sys_user', icon: 'users' },\n { id: 'nav_organizations', type: 'object', label: 'Organizations', objectName: 'sys_organization', icon: 'building-2' },\n { id: 'nav_teams', type: 'object', label: 'Teams', objectName: 'sys_team', icon: 'users-round' },\n { id: 'nav_api_keys', type: 'object', label: 'API Keys', objectName: 'sys_api_key', icon: 'key' },\n { id: 'nav_roles', type: 'object', label: 'Roles', objectName: 'sys_role', icon: 'shield-check' },\n { id: 'nav_permission_sets', type: 'object', label: 'Permission Sets', objectName: 'sys_permission_set', icon: 'lock' },\n { id: 'nav_oauth_apps', type: 'object', label: 'OAuth Apps', objectName: 'sys_oauth_application', icon: 'app-window' },\n { id: 'nav_jwks', type: 'object', label: 'Signing Keys', objectName: 'sys_jwks', icon: 'key-round' },\n ],\n },\n {\n id: 'group_platform',\n type: 'group',\n label: 'Platform',\n icon: 'layers',\n children: [\n { id: 'nav_objects', type: 'object', label: 'Objects', objectName: 'sys_object', icon: 'database' },\n { id: 'nav_views', type: 'object', label: 'Views', objectName: 'sys_view', icon: 'table' },\n { id: 'nav_flows', type: 'object', label: 'Flows', objectName: 'sys_flow', icon: 'workflow' },\n { id: 'nav_agents', type: 'object', label: 'AI Agents', objectName: 'sys_agent', icon: 'bot' },\n { id: 'nav_tools', type: 'object', label: 'AI Tools', objectName: 'sys_tool', icon: 'wrench' },\n { id: 'nav_apps', type: 'object', label: 'Apps', objectName: 'sys_app', icon: 'layout-grid' },\n { id: 'nav_packages', type: 'object', label: 'Packages', objectName: 'sys_package', icon: 'package' },\n { id: 'nav_package_installations', type: 'object', label: 'Installations', objectName: 'sys_package_installation', icon: 'package-check' },\n { id: 'nav_metadata', type: 'object', label: 'All Metadata', objectName: 'sys_metadata', icon: 'file-cog' },\n ],\n },\n {\n id: 'group_system',\n type: 'group',\n label: 'System',\n icon: 'settings',\n children: [\n { id: 'nav_sessions', type: 'object', label: 'Sessions', objectName: 'sys_session', icon: 'monitor' },\n { id: 'nav_audit_logs', type: 'object', label: 'Audit Logs', objectName: 'sys_audit_log', icon: 'scroll-text' },\n { id: 'nav_activity', type: 'object', label: 'Activity', objectName: 'sys_activity', icon: 'activity' },\n { id: 'nav_comments', type: 'object', label: 'Comments', objectName: 'sys_comment', icon: 'message-square' },\n ],\n },\n ],\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { ListView } from '@objectstack/spec/ui';\n\n/**\n * Default list view for sys_user administration.\n * Displays all users with key identity fields.\n */\nexport const UsersView: ListView = {\n name: 'users',\n label: 'Users',\n type: 'grid',\n data: {\n provider: 'object',\n object: 'sys_user',\n },\n columns: [\n { field: 'name', label: 'Name', sortable: true },\n { field: 'email', label: 'Email', sortable: true },\n { field: 'phone', label: 'Phone' },\n { field: 'status', label: 'Status', sortable: true },\n { field: 'active', label: 'Active', sortable: true },\n { field: 'created_at', label: 'Created', sortable: true },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n filter: [],\n searchableFields: ['name', 'email'],\n pagination: {\n pageSize: 20,\n },\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { ListView } from '@objectstack/spec/ui';\n\n/**\n * Default list view for sys_organization administration.\n * Displays all organizations with key metadata.\n */\nexport const OrganizationsView: ListView = {\n name: 'organizations',\n label: 'Organizations',\n type: 'grid',\n data: {\n provider: 'object',\n object: 'sys_organization',\n },\n columns: [\n { field: 'name', label: 'Name', sortable: true },\n { field: 'status', label: 'Status', sortable: true },\n { field: 'plan_tier', label: 'Plan Tier' },\n { field: 'member_count', label: 'Members' },\n { field: 'created_at', label: 'Created', sortable: true },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n filter: [],\n searchableFields: ['name'],\n pagination: {\n pageSize: 20,\n },\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { ListView } from '@objectstack/spec/ui';\n\n/**\n * Default list view for sys_role administration.\n * Displays all platform roles with permission summary.\n */\nexport const RolesView: ListView = {\n name: 'roles',\n label: 'Roles',\n type: 'grid',\n data: {\n provider: 'object',\n object: 'sys_role',\n },\n columns: [\n { field: 'name', label: 'Name', sortable: true },\n { field: 'description', label: 'Description' },\n { field: 'is_system', label: 'System Role' },\n { field: 'created_at', label: 'Created', sortable: true },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n filter: [],\n searchableFields: ['name', 'description'],\n pagination: {\n pageSize: 20,\n },\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { ListView } from '@objectstack/spec/ui';\n\n/**\n * Default list view for sys_session administration.\n * Displays all active user sessions with metadata.\n */\nexport const SessionsView: ListView = {\n name: 'sessions',\n label: 'Sessions',\n type: 'grid',\n data: {\n provider: 'object',\n object: 'sys_session',\n },\n columns: [\n { field: 'user_id', label: 'User', sortable: true },\n { field: 'ip_address', label: 'IP Address' },\n { field: 'created_at', label: 'Created', sortable: true },\n { field: 'expires_at', label: 'Expires', sortable: true },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n filter: [],\n searchableFields: ['user_id'],\n pagination: {\n pageSize: 20,\n },\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { ListView } from '@objectstack/spec/ui';\n\n/**\n * Default list view for sys_audit_log administration.\n * Displays platform audit trail with action and target information.\n */\nexport const AuditLogsView: ListView = {\n name: 'audit_logs',\n label: 'Audit Logs',\n type: 'grid',\n data: {\n provider: 'object',\n object: 'sys_audit_log',\n },\n columns: [\n { field: 'created_at', label: 'Timestamp', sortable: true },\n { field: 'action', label: 'Action', sortable: true },\n { field: 'user_id', label: 'Actor' },\n { field: 'object_name', label: 'Object' },\n { field: 'record_id', label: 'Record ID' },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n filter: [],\n searchableFields: ['action', 'object_name', 'record_id'],\n pagination: {\n pageSize: 20,\n },\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { ListView } from '@objectstack/spec/ui';\n\n/**\n * Default list view for sys_package_installation administration.\n * Displays package installations with version and status information.\n */\nexport const PackageInstallationsView: ListView = {\n name: 'package_installations',\n label: 'Package Installations',\n type: 'grid',\n data: {\n provider: 'object',\n object: 'sys_package_installation',\n },\n columns: [\n { field: 'package_id', label: 'Package', sortable: true },\n { field: 'project_id', label: 'Project', sortable: true },\n { field: 'package_version_id', label: 'Version' },\n { field: 'status', label: 'Status', sortable: true },\n { field: 'installed_at', label: 'Installed', sortable: true },\n ],\n sort: [{ field: 'installed_at', order: 'desc' }],\n filter: [],\n searchableFields: ['package_id', 'project_id'],\n pagination: {\n pageSize: 20,\n },\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { Dashboard } from '@objectstack/spec/ui';\n\n/**\n * System Overview Dashboard\n * \n * Provides at-a-glance monitoring of platform health and key metrics:\n * - Active user sessions\n * - Audit activity (recent events)\n * - Package installation status\n * - Platform configuration\n */\nexport const SystemOverviewDashboard = Dashboard.create({\n name: 'system_overview',\n label: 'System Overview',\n description: 'Platform health, sessions, and audit activity',\n\n // 12-column grid matches the widget `w` values below (3, 6, 12). Without\n // this, the renderer falls back to a 4-column grid and `w: 3` becomes 75%\n // width per metric — so KPI cards stack vertically instead of forming a\n // 4-up row.\n columns: 12,\n gap: 4,\n\n widgets: [\n // ── Active Sessions Widget ──────────────────────────────────────\n {\n id: 'widget_active_sessions',\n title: 'Active Sessions',\n type: 'metric',\n object: 'sys_session',\n layout: {\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n },\n aggregate: 'count',\n colorVariant: 'blue',\n description: 'Number of currently active user sessions',\n },\n\n // ── Total Users Widget ──────────────────────────────────────────\n {\n id: 'widget_total_users',\n title: 'Total Users',\n type: 'metric',\n object: 'sys_user',\n layout: {\n x: 3,\n y: 0,\n w: 3,\n h: 2,\n },\n aggregate: 'count',\n colorVariant: 'teal',\n description: 'Total registered users in the system',\n },\n\n // ── Organizations Widget ────────────────────────────────────────\n {\n id: 'widget_organizations',\n title: 'Organizations',\n type: 'metric',\n object: 'sys_organization',\n layout: {\n x: 6,\n y: 0,\n w: 3,\n h: 2,\n },\n aggregate: 'count',\n colorVariant: 'orange',\n description: 'Total organizations on the platform',\n },\n\n // ── Packages Installed Widget ───────────────────────────────────\n {\n id: 'widget_packages_installed',\n title: 'Packages Installed',\n type: 'metric',\n object: 'sys_package_installation',\n layout: {\n x: 9,\n y: 0,\n w: 3,\n h: 2,\n },\n filter: {\n field: 'status',\n operator: 'equals',\n value: 'installed',\n },\n aggregate: 'count',\n colorVariant: 'success',\n description: 'Active package installations across projects',\n },\n\n // ── Audit Actions by Type (last 7 days) ─────────────────────────\n {\n id: 'widget_audit_actions',\n title: 'Audit Actions (7d)',\n description: 'Distribution of audit events by action type',\n type: 'pie',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 2,\n w: 6,\n h: 4,\n },\n categoryField: 'action',\n aggregate: 'count',\n filter: {\n field: 'created_at',\n operator: 'gte',\n value: 'NOW() - INTERVAL 7 DAY',\n },\n },\n\n // ── Session Status Overview ─────────────────────────────────────\n {\n id: 'widget_active_orgs',\n title: 'Sessions by Organization',\n description: 'Active sessions grouped by organization',\n type: 'bar',\n object: 'sys_session',\n layout: {\n x: 6,\n y: 2,\n w: 6,\n h: 4,\n },\n categoryField: 'active_organization_id',\n aggregate: 'count',\n },\n\n // ── Recent Audit Log (Table) ────────────────────────────────────\n {\n id: 'widget_recent_events',\n title: 'Recent Audit Events',\n description: 'Latest platform events',\n type: 'metric',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 6,\n w: 12,\n h: 3,\n },\n aggregate: 'count',\n colorVariant: 'default',\n },\n ],\n globalFilters: [\n {\n field: 'created_at',\n type: 'date',\n label: 'Date Range',\n scope: 'dashboard',\n defaultValue: 'last_7_days',\n },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { Dashboard } from '@objectstack/spec/ui';\n\n/**\n * Security Overview Dashboard\n * \n * Provides security and compliance monitoring:\n * - User authentication events\n * - Permission changes\n * - System configuration audits\n * - Active user sessions\n */\nexport const SecurityOverviewDashboard = Dashboard.create({\n name: 'security_overview',\n label: 'Security Overview',\n description: 'Security events, authentication, and audit trails',\n\n // 12-column grid matches the widget `w` values below.\n columns: 12,\n gap: 4,\n\n widgets: [\n // ── Failed Login Attempts Widget ────────────────────────────────\n {\n id: 'widget_failed_logins',\n title: 'Failed Login Attempts',\n type: 'metric',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n },\n filter: {\n field: 'action',\n operator: 'equals',\n value: 'login',\n },\n aggregate: 'count',\n colorVariant: 'danger',\n description: 'Failed authentication attempts (24h)',\n },\n\n // ── Permission Changes Widget ───────────────────────────────────\n {\n id: 'widget_permission_changes',\n title: 'Permission Changes',\n type: 'metric',\n object: 'sys_audit_log',\n layout: {\n x: 3,\n y: 0,\n w: 3,\n h: 2,\n },\n filter: {\n field: 'action',\n operator: 'equals',\n value: 'permission_change',\n },\n aggregate: 'count',\n colorVariant: 'warning',\n description: 'Recent permission and role modifications',\n },\n\n // ── System Config Changes Widget ────────────────────────────────\n {\n id: 'widget_config_changes',\n title: 'Config Changes',\n type: 'metric',\n object: 'sys_audit_log',\n layout: {\n x: 6,\n y: 0,\n w: 3,\n h: 2,\n },\n filter: {\n field: 'action',\n operator: 'equals',\n value: 'config_change',\n },\n aggregate: 'count',\n colorVariant: 'blue',\n description: 'System configuration modifications',\n },\n\n // ── Active Sessions Widget ──────────────────────────────────────\n {\n id: 'widget_active_sessions',\n title: 'Active Sessions',\n type: 'metric',\n object: 'sys_session',\n layout: {\n x: 9,\n y: 0,\n w: 3,\n h: 2,\n },\n aggregate: 'count',\n colorVariant: 'success',\n description: 'Currently active user sessions',\n },\n\n // ── Audit Events by Type ────────────────────────────────────────\n {\n id: 'widget_events_by_type',\n title: 'Audit Events by Type',\n description: 'Distribution of security and audit events',\n type: 'pie',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 2,\n w: 6,\n h: 4,\n },\n categoryField: 'action',\n aggregate: 'count',\n },\n\n // ── Audit Events by User ────────────────────────────────────────\n {\n id: 'widget_events_by_user',\n title: 'Events by User',\n description: 'Activity distribution across users',\n type: 'bar',\n object: 'sys_audit_log',\n layout: {\n x: 6,\n y: 2,\n w: 6,\n h: 4,\n },\n categoryField: 'user_id',\n aggregate: 'count',\n },\n\n // ── Recent Security Events (Table) ──────────────────────────────\n {\n id: 'widget_recent_security_events',\n title: 'Recent Security Events',\n description: 'Latest permission and config changes',\n type: 'metric',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 6,\n w: 12,\n h: 3,\n },\n aggregate: 'count',\n colorVariant: 'default',\n },\n ],\n globalFilters: [\n {\n field: 'created_at',\n type: 'date',\n label: 'Date Range',\n scope: 'dashboard',\n defaultValue: 'last_7_days',\n },\n ],\n});\n"]}
1
+ {"version":3,"sources":["../../src/apps/setup.app.ts","../../src/apps/dashboards/system_overview.dashboard.ts","../../src/apps/dashboards/security_overview.dashboard.ts"],"names":["Dashboard"],"mappings":"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","file":"index.js","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\n/**\n * Platform Setup App — static definition.\n *\n * Lists every `sys_*` administrative object as a left-hand navigation\n * entry in ObjectUI's \"Setup\" area. Lives here (alongside the object\n * schemas it references) instead of being assembled at runtime by\n * `@objectstack/plugin-setup` — that plugin existed only because the\n * referenced objects used to live in three different runtime plugins\n * (auth/security/audit). Now that all `sys_*` objects are centralized\n * in `@objectstack/platform-objects`, the Setup App is a fixed metadata\n * artifact too and can be exported as plain data.\n *\n * The runtime registration happens in `plugin-auth` (which is always\n * loaded alongside security + audit and already calls\n * `manifest.register({...})`).\n *\n * Menu shape: flat `navigation[]` with `type: 'group'` category nodes,\n * matching the convention used by the CRM example app\n * (`examples/app-crm/src/apps/crm.app.ts`). The legacy `areas[]` shape\n * was abandoned because it rendered poorly compared to the category\n * style ObjectUI is built around.\n */\n\nimport type { App } from '@objectstack/spec/ui';\n\nexport const SETUP_APP: App = {\n name: 'setup',\n label: 'Setup',\n description: 'Platform settings and administration',\n icon: 'settings',\n active: true,\n isDefault: false,\n branding: {\n primaryColor: '#475569', // Slate-600 — neutral admin palette\n },\n requiredPermissions: ['setup.access'],\n navigation: [\n {\n id: 'group_overview',\n type: 'group',\n label: 'Overview',\n icon: 'layout-dashboard',\n children: [\n { id: 'nav_system_overview', type: 'dashboard', label: 'System Overview', dashboardName: 'system_overview', icon: 'activity' },\n { id: 'nav_security_overview', type: 'dashboard', label: 'Security Overview', dashboardName: 'security_overview', icon: 'shield' },\n ],\n },\n {\n id: 'group_people_org',\n type: 'group',\n label: 'People & Organization',\n icon: 'users',\n children: [\n // HR-shaped grouping: who exists, where they sit in the org chart,\n // and which tenants/teams they belong to. `sys_department` is the\n // platform-owned org skeleton (M10.17.1); `sys_team` is better-auth's\n // flat collaboration grouping.\n //\n // M10.30b: removed top-level Department Members / Team Members /\n // Org Members entries — they are M:N join tables and the natural\n // entry point is the parent record's detail page.\n { id: 'nav_users', type: 'object', label: 'Users', objectName: 'sys_user', icon: 'user' },\n { id: 'nav_departments', type: 'object', label: 'Departments', objectName: 'sys_department', icon: 'building', requiresObject: 'sys_department' },\n { id: 'nav_teams', type: 'object', label: 'Teams', objectName: 'sys_team', icon: 'users-round' },\n { id: 'nav_organizations', type: 'object', label: 'Organizations', objectName: 'sys_organization', icon: 'building-2' },\n { id: 'nav_invitations', type: 'object', label: 'Invitations', objectName: 'sys_invitation', icon: 'mail' },\n ],\n },\n {\n id: 'group_access_control',\n type: 'group',\n label: 'Access Control',\n icon: 'shield',\n children: [\n // M10.30b: removed top-level User Permission Sets / Role Permission\n // Sets entries — same M:N → parent-detail-tab argument as the\n // People & Org cleanup.\n { id: 'nav_roles', type: 'object', label: 'Roles', objectName: 'sys_role', icon: 'shield-check' },\n { id: 'nav_permission_sets', type: 'object', label: 'Permission Sets', objectName: 'sys_permission_set', icon: 'lock' },\n { id: 'nav_sharing_rules', type: 'object', label: 'Sharing Rules', objectName: 'sys_sharing_rule', icon: 'share-2', requiresObject: 'sys_sharing_rule' },\n { id: 'nav_record_shares', type: 'object', label: 'Record Shares', objectName: 'sys_record_share', icon: 'link', requiresObject: 'sys_record_share' },\n { id: 'nav_api_keys', type: 'object', label: 'API Keys', objectName: 'sys_api_key', icon: 'key' },\n ],\n },\n {\n id: 'group_approvals',\n type: 'group',\n label: 'Approvals',\n icon: 'check-circle',\n children: [\n { id: 'nav_approval_processes', type: 'object', label: 'Processes', objectName: 'sys_approval_process', icon: 'workflow', requiresObject: 'sys_approval_process' },\n { id: 'nav_approval_requests', type: 'object', label: 'Requests', objectName: 'sys_approval_request', icon: 'inbox', requiresObject: 'sys_approval_request' },\n { id: 'nav_approval_actions', type: 'object', label: 'Action History', objectName: 'sys_approval_action', icon: 'history', requiresObject: 'sys_approval_action' },\n ],\n },\n {\n id: 'group_configuration',\n type: 'group',\n label: 'Configuration',\n icon: 'sliders-horizontal',\n children: [\n // Metadata-driven settings hub. Each entry maps to a SettingsManifest\n // namespace exposed by @objectstack/service-settings. URL navigation\n // is used (not `object`) because settings are stored in a generic\n // K/V table (`sys_setting`) rather than per-namespace objects, and\n // the renderer is a dedicated <SettingsView> page in objectui.\n { id: 'nav_settings_hub', type: 'url', label: 'All Settings', url: '/apps/setup/system/settings', icon: 'settings-2' },\n { id: 'nav_settings_mail', type: 'url', label: 'Email', url: '/apps/setup/system/settings/mail', icon: 'mail' },\n { id: 'nav_settings_branding', type: 'url', label: 'Branding', url: '/apps/setup/system/settings/branding', icon: 'palette' },\n { id: 'nav_settings_feature_flags', type: 'url', label: 'Feature Flags', url: '/apps/setup/system/settings/feature_flags', icon: 'flag' },\n ],\n },\n {\n id: 'group_diagnostics',\n type: 'group',\n label: 'Diagnostics',\n icon: 'stethoscope',\n children: [\n // Day-to-day observability surfaces. M10.30b removed `sys_activity`\n // and `sys_comment` — both are CRM operational data authored from\n // record pages, not platform admin surfaces.\n { id: 'nav_sessions', type: 'object', label: 'Sessions', objectName: 'sys_session', icon: 'monitor' },\n { id: 'nav_audit_logs', type: 'object', label: 'Audit Logs', objectName: 'sys_audit_log', icon: 'scroll-text' },\n { id: 'nav_notifications', type: 'object', label: 'Notifications', objectName: 'sys_notification', icon: 'bell', requiresObject: 'sys_notification' },\n ],\n },\n {\n id: 'group_advanced',\n type: 'group',\n label: 'Advanced',\n icon: 'wrench',\n expanded: false,\n children: [\n // Better-auth internals — rarely useful for humans, but exposed\n // so support engineers can inspect token state without dropping\n // to SQL. The objectui sidebar collapses this group by default;\n // edits should hit the read-only banner since these are all\n // `managedBy: 'better-auth'`.\n //\n // M10.30b changes:\n // - Removed the 3 OAuth satellite menus (access tokens / refresh\n // tokens / consents). They live under their parent OAuth App.\n // - Renamed \"Linked Accounts\" → \"Identity Links\" to distinguish\n // from sys_user / org members.\n // - Demoted \"All Metadata\" from the (now-deleted) Platform group\n // to this Advanced/debug bucket.\n // - The marketplace-only `sys_app` / `sys_package` /\n // `sys_package_installation` menus have been removed entirely;\n // they are contributed by `@objectstack/service-tenant`\n // (control-plane) and are not present in single-project runtimes.\n { id: 'nav_oauth_apps', type: 'object', label: 'OAuth Applications', objectName: 'sys_oauth_application', icon: 'app-window' },\n { id: 'nav_jwks', type: 'object', label: 'Signing Keys (JWKS)', objectName: 'sys_jwks', icon: 'key-round' },\n { id: 'nav_verifications', type: 'object', label: 'Verifications', objectName: 'sys_verification', icon: 'mail-check' },\n { id: 'nav_two_factor', type: 'object', label: 'Two-Factor', objectName: 'sys_two_factor', icon: 'smartphone' },\n { id: 'nav_device_codes', type: 'object', label: 'Device Codes', objectName: 'sys_device_code', icon: 'qr-code' },\n { id: 'nav_accounts', type: 'object', label: 'Identity Links', objectName: 'sys_account', icon: 'link-2' },\n { id: 'nav_user_preferences', type: 'object', label: 'User Preferences', objectName: 'sys_user_preference', icon: 'sliders' },\n { id: 'nav_metadata', type: 'object', label: 'All Metadata', objectName: 'sys_metadata', icon: 'file-cog' },\n ],\n },\n ],\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { Dashboard } from '@objectstack/spec/ui';\n\n/**\n * System Overview Dashboard\n * \n * Provides at-a-glance monitoring of platform health and key metrics:\n * - Active user sessions\n * - Audit activity (recent events)\n * - Package installation status\n * - Platform configuration\n */\nexport const SystemOverviewDashboard = Dashboard.create({\n name: 'system_overview',\n label: 'System Overview',\n description: 'Platform health, sessions, and audit activity',\n\n // 12-column grid matches the widget `w` values below (3, 6, 12). Without\n // this, the renderer falls back to a 4-column grid and `w: 3` becomes 75%\n // width per metric — so KPI cards stack vertically instead of forming a\n // 4-up row.\n columns: 12,\n gap: 4,\n\n widgets: [\n // ── Active Sessions Widget ──────────────────────────────────────\n {\n id: 'widget_active_sessions',\n title: 'Active Sessions',\n type: 'metric',\n object: 'sys_session',\n layout: {\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n },\n aggregate: 'count',\n colorVariant: 'blue',\n description: 'Number of currently active user sessions',\n },\n\n // ── Total Users Widget ──────────────────────────────────────────\n {\n id: 'widget_total_users',\n title: 'Total Users',\n type: 'metric',\n object: 'sys_user',\n layout: {\n x: 3,\n y: 0,\n w: 3,\n h: 2,\n },\n aggregate: 'count',\n colorVariant: 'teal',\n description: 'Total registered users in the system',\n },\n\n // ── Organizations Widget ────────────────────────────────────────\n {\n id: 'widget_organizations',\n title: 'Organizations',\n type: 'metric',\n object: 'sys_organization',\n layout: {\n x: 6,\n y: 0,\n w: 3,\n h: 2,\n },\n aggregate: 'count',\n colorVariant: 'orange',\n description: 'Total organizations on the platform',\n },\n\n // ── Packages Installed Widget ───────────────────────────────────\n {\n id: 'widget_packages_installed',\n title: 'Packages Installed',\n type: 'metric',\n object: 'sys_package_installation',\n // Cloud-only object — only registered when service-tenant is loaded.\n // Hide this widget gracefully in single-project runtimes.\n requiresObject: 'sys_package_installation',\n layout: {\n x: 9,\n y: 0,\n w: 3,\n h: 2,\n },\n filter: { status: 'installed' },\n aggregate: 'count',\n colorVariant: 'success',\n description: 'Active package installations across projects',\n },\n\n // ── Audit Actions by Type ───────────────────────────────────────\n // Note: relative date filters like `NOW() - INTERVAL 7 DAY` are not\n // currently substituted by the analytics layer (see\n // service-analytics/strategies/filter-normalizer.ts). The dashboard's\n // `globalFilters` date-range bar at the bottom is the supported way\n // to scope this widget.\n {\n id: 'widget_audit_actions',\n title: 'Audit Actions',\n description: 'Distribution of audit events by action type',\n type: 'pie',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 2,\n w: 6,\n h: 4,\n },\n categoryField: 'action',\n aggregate: 'count',\n },\n\n // ── Session Status Overview ─────────────────────────────────────\n {\n id: 'widget_active_orgs',\n title: 'Sessions by Organization',\n description: 'Active sessions grouped by organization',\n type: 'bar',\n object: 'sys_session',\n layout: {\n x: 6,\n y: 2,\n w: 6,\n h: 4,\n },\n categoryField: 'active_organization_id',\n aggregate: 'count',\n },\n\n // ── Recent Audit Log (Table) ────────────────────────────────────\n // `type: 'table'` renders the underlying rows directly, so this\n // panel actually shows the latest events instead of just repeating\n // the total-count metric. `valueField`/`aggregate` are intentionally\n // omitted — table widgets pull raw records.\n {\n id: 'widget_recent_events',\n title: 'Recent Audit Events',\n description: 'Latest platform events',\n type: 'table',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 6,\n w: 12,\n h: 4,\n },\n options: {\n columns: ['created_at', 'user_id', 'action', 'object_name', 'record_id'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pageSize: 20,\n },\n },\n ],\n globalFilters: [\n {\n field: 'created_at',\n type: 'date',\n label: 'Date Range',\n scope: 'dashboard',\n defaultValue: 'last_7_days',\n },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { Dashboard } from '@objectstack/spec/ui';\n\n/**\n * Security Overview Dashboard\n * \n * Provides security and compliance monitoring:\n * - User authentication events\n * - Permission changes\n * - System configuration audits\n * - Active user sessions\n */\nexport const SecurityOverviewDashboard = Dashboard.create({\n name: 'security_overview',\n label: 'Security Overview',\n description: 'Security events, authentication, and audit trails',\n\n // 12-column grid matches the widget `w` values below.\n columns: 12,\n gap: 4,\n\n widgets: [\n // ── Login Events Widget ─────────────────────────────────────────\n // The `sys_audit_log.action` enum doesn't distinguish failed vs\n // successful logins (both fold into `action='login'`). Surfacing a\n // total Login Events count is honest; a \"Failed Logins\" widget will\n // need a richer enum or a separate detail field first.\n {\n id: 'widget_login_events',\n title: 'Login Events',\n type: 'metric',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n },\n filter: { action: 'login' },\n aggregate: 'count',\n colorVariant: 'blue',\n description: 'Authentication events recorded by the audit log',\n },\n\n // ── Permission Changes Widget ───────────────────────────────────\n {\n id: 'widget_permission_changes',\n title: 'Permission Changes',\n type: 'metric',\n object: 'sys_audit_log',\n layout: {\n x: 3,\n y: 0,\n w: 3,\n h: 2,\n },\n filter: { action: 'permission_change' },\n aggregate: 'count',\n colorVariant: 'warning',\n description: 'Recent permission and role modifications',\n },\n\n // ── System Config Changes Widget ────────────────────────────────\n {\n id: 'widget_config_changes',\n title: 'Config Changes',\n type: 'metric',\n object: 'sys_audit_log',\n layout: {\n x: 6,\n y: 0,\n w: 3,\n h: 2,\n },\n filter: { action: 'config_change' },\n aggregate: 'count',\n colorVariant: 'blue',\n description: 'System configuration modifications',\n },\n\n // ── Active Sessions Widget ──────────────────────────────────────\n {\n id: 'widget_active_sessions',\n title: 'Active Sessions',\n type: 'metric',\n object: 'sys_session',\n layout: {\n x: 9,\n y: 0,\n w: 3,\n h: 2,\n },\n aggregate: 'count',\n colorVariant: 'success',\n description: 'Currently active user sessions',\n },\n\n // ── Audit Events by Type ────────────────────────────────────────\n {\n id: 'widget_events_by_type',\n title: 'Audit Events by Type',\n description: 'Distribution of security and audit events',\n type: 'pie',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 2,\n w: 6,\n h: 4,\n },\n categoryField: 'action',\n aggregate: 'count',\n },\n\n // ── Audit Events by User ────────────────────────────────────────\n {\n id: 'widget_events_by_user',\n title: 'Events by User',\n description: 'Activity distribution across users',\n type: 'bar',\n object: 'sys_audit_log',\n layout: {\n x: 6,\n y: 2,\n w: 6,\n h: 4,\n },\n categoryField: 'user_id',\n aggregate: 'count',\n },\n\n // ── Recent Security Events (Table) ──────────────────────────────\n // Real table widget — pulls the latest permission/config rows.\n {\n id: 'widget_recent_security_events',\n title: 'Recent Security Events',\n description: 'Latest permission and config changes',\n type: 'table',\n object: 'sys_audit_log',\n layout: {\n x: 0,\n y: 6,\n w: 12,\n h: 4,\n },\n filter: {\n action: { $in: ['login', 'logout', 'permission_change', 'config_change'] },\n },\n options: {\n columns: ['created_at', 'user_id', 'action', 'object_name', 'record_id'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pageSize: 20,\n },\n },\n ],\n globalFilters: [\n {\n field: 'created_at',\n type: 'date',\n label: 'Date Range',\n scope: 'dashboard',\n defaultValue: 'last_7_days',\n },\n ],\n});\n"]}
@@ -25,195 +25,120 @@ var SETUP_APP = {
25
25
  ]
26
26
  },
27
27
  {
28
- id: "group_administration",
28
+ id: "group_people_org",
29
29
  type: "group",
30
- label: "Administration",
31
- icon: "shield",
30
+ label: "People & Organization",
31
+ icon: "users",
32
32
  children: [
33
- { id: "nav_users", type: "object", label: "Users", objectName: "sys_user", icon: "users" },
34
- { id: "nav_organizations", type: "object", label: "Organizations", objectName: "sys_organization", icon: "building-2" },
33
+ // HR-shaped grouping: who exists, where they sit in the org chart,
34
+ // and which tenants/teams they belong to. `sys_department` is the
35
+ // platform-owned org skeleton (M10.17.1); `sys_team` is better-auth's
36
+ // flat collaboration grouping.
37
+ //
38
+ // M10.30b: removed top-level Department Members / Team Members /
39
+ // Org Members entries — they are M:N join tables and the natural
40
+ // entry point is the parent record's detail page.
41
+ { id: "nav_users", type: "object", label: "Users", objectName: "sys_user", icon: "user" },
42
+ { id: "nav_departments", type: "object", label: "Departments", objectName: "sys_department", icon: "building", requiresObject: "sys_department" },
35
43
  { id: "nav_teams", type: "object", label: "Teams", objectName: "sys_team", icon: "users-round" },
36
- { id: "nav_api_keys", type: "object", label: "API Keys", objectName: "sys_api_key", icon: "key" },
44
+ { id: "nav_organizations", type: "object", label: "Organizations", objectName: "sys_organization", icon: "building-2" },
45
+ { id: "nav_invitations", type: "object", label: "Invitations", objectName: "sys_invitation", icon: "mail" }
46
+ ]
47
+ },
48
+ {
49
+ id: "group_access_control",
50
+ type: "group",
51
+ label: "Access Control",
52
+ icon: "shield",
53
+ children: [
54
+ // M10.30b: removed top-level User Permission Sets / Role Permission
55
+ // Sets entries — same M:N → parent-detail-tab argument as the
56
+ // People & Org cleanup.
37
57
  { id: "nav_roles", type: "object", label: "Roles", objectName: "sys_role", icon: "shield-check" },
38
58
  { id: "nav_permission_sets", type: "object", label: "Permission Sets", objectName: "sys_permission_set", icon: "lock" },
39
- { id: "nav_oauth_apps", type: "object", label: "OAuth Apps", objectName: "sys_oauth_application", icon: "app-window" },
40
- { id: "nav_jwks", type: "object", label: "Signing Keys", objectName: "sys_jwks", icon: "key-round" }
59
+ { id: "nav_sharing_rules", type: "object", label: "Sharing Rules", objectName: "sys_sharing_rule", icon: "share-2", requiresObject: "sys_sharing_rule" },
60
+ { id: "nav_record_shares", type: "object", label: "Record Shares", objectName: "sys_record_share", icon: "link", requiresObject: "sys_record_share" },
61
+ { id: "nav_api_keys", type: "object", label: "API Keys", objectName: "sys_api_key", icon: "key" }
41
62
  ]
42
63
  },
43
64
  {
44
- id: "group_platform",
65
+ id: "group_approvals",
45
66
  type: "group",
46
- label: "Platform",
47
- icon: "layers",
67
+ label: "Approvals",
68
+ icon: "check-circle",
48
69
  children: [
49
- { id: "nav_objects", type: "object", label: "Objects", objectName: "sys_object", icon: "database" },
50
- { id: "nav_views", type: "object", label: "Views", objectName: "sys_view", icon: "table" },
51
- { id: "nav_flows", type: "object", label: "Flows", objectName: "sys_flow", icon: "workflow" },
52
- { id: "nav_agents", type: "object", label: "AI Agents", objectName: "sys_agent", icon: "bot" },
53
- { id: "nav_tools", type: "object", label: "AI Tools", objectName: "sys_tool", icon: "wrench" },
54
- { id: "nav_apps", type: "object", label: "Apps", objectName: "sys_app", icon: "layout-grid" },
55
- { id: "nav_packages", type: "object", label: "Packages", objectName: "sys_package", icon: "package" },
56
- { id: "nav_package_installations", type: "object", label: "Installations", objectName: "sys_package_installation", icon: "package-check" },
57
- { id: "nav_metadata", type: "object", label: "All Metadata", objectName: "sys_metadata", icon: "file-cog" }
70
+ { id: "nav_approval_processes", type: "object", label: "Processes", objectName: "sys_approval_process", icon: "workflow", requiresObject: "sys_approval_process" },
71
+ { id: "nav_approval_requests", type: "object", label: "Requests", objectName: "sys_approval_request", icon: "inbox", requiresObject: "sys_approval_request" },
72
+ { id: "nav_approval_actions", type: "object", label: "Action History", objectName: "sys_approval_action", icon: "history", requiresObject: "sys_approval_action" }
73
+ ]
74
+ },
75
+ {
76
+ id: "group_configuration",
77
+ type: "group",
78
+ label: "Configuration",
79
+ icon: "sliders-horizontal",
80
+ children: [
81
+ // Metadata-driven settings hub. Each entry maps to a SettingsManifest
82
+ // namespace exposed by @objectstack/service-settings. URL navigation
83
+ // is used (not `object`) because settings are stored in a generic
84
+ // K/V table (`sys_setting`) rather than per-namespace objects, and
85
+ // the renderer is a dedicated <SettingsView> page in objectui.
86
+ { id: "nav_settings_hub", type: "url", label: "All Settings", url: "/apps/setup/system/settings", icon: "settings-2" },
87
+ { id: "nav_settings_mail", type: "url", label: "Email", url: "/apps/setup/system/settings/mail", icon: "mail" },
88
+ { id: "nav_settings_branding", type: "url", label: "Branding", url: "/apps/setup/system/settings/branding", icon: "palette" },
89
+ { id: "nav_settings_feature_flags", type: "url", label: "Feature Flags", url: "/apps/setup/system/settings/feature_flags", icon: "flag" }
58
90
  ]
59
91
  },
60
92
  {
61
- id: "group_system",
93
+ id: "group_diagnostics",
62
94
  type: "group",
63
- label: "System",
64
- icon: "settings",
95
+ label: "Diagnostics",
96
+ icon: "stethoscope",
65
97
  children: [
98
+ // Day-to-day observability surfaces. M10.30b removed `sys_activity`
99
+ // and `sys_comment` — both are CRM operational data authored from
100
+ // record pages, not platform admin surfaces.
66
101
  { id: "nav_sessions", type: "object", label: "Sessions", objectName: "sys_session", icon: "monitor" },
67
102
  { id: "nav_audit_logs", type: "object", label: "Audit Logs", objectName: "sys_audit_log", icon: "scroll-text" },
68
- { id: "nav_activity", type: "object", label: "Activity", objectName: "sys_activity", icon: "activity" },
69
- { id: "nav_comments", type: "object", label: "Comments", objectName: "sys_comment", icon: "message-square" }
103
+ { id: "nav_notifications", type: "object", label: "Notifications", objectName: "sys_notification", icon: "bell", requiresObject: "sys_notification" }
104
+ ]
105
+ },
106
+ {
107
+ id: "group_advanced",
108
+ type: "group",
109
+ label: "Advanced",
110
+ icon: "wrench",
111
+ expanded: false,
112
+ children: [
113
+ // Better-auth internals — rarely useful for humans, but exposed
114
+ // so support engineers can inspect token state without dropping
115
+ // to SQL. The objectui sidebar collapses this group by default;
116
+ // edits should hit the read-only banner since these are all
117
+ // `managedBy: 'better-auth'`.
118
+ //
119
+ // M10.30b changes:
120
+ // - Removed the 3 OAuth satellite menus (access tokens / refresh
121
+ // tokens / consents). They live under their parent OAuth App.
122
+ // - Renamed "Linked Accounts" → "Identity Links" to distinguish
123
+ // from sys_user / org members.
124
+ // - Demoted "All Metadata" from the (now-deleted) Platform group
125
+ // to this Advanced/debug bucket.
126
+ // - The marketplace-only `sys_app` / `sys_package` /
127
+ // `sys_package_installation` menus have been removed entirely;
128
+ // they are contributed by `@objectstack/service-tenant`
129
+ // (control-plane) and are not present in single-project runtimes.
130
+ { id: "nav_oauth_apps", type: "object", label: "OAuth Applications", objectName: "sys_oauth_application", icon: "app-window" },
131
+ { id: "nav_jwks", type: "object", label: "Signing Keys (JWKS)", objectName: "sys_jwks", icon: "key-round" },
132
+ { id: "nav_verifications", type: "object", label: "Verifications", objectName: "sys_verification", icon: "mail-check" },
133
+ { id: "nav_two_factor", type: "object", label: "Two-Factor", objectName: "sys_two_factor", icon: "smartphone" },
134
+ { id: "nav_device_codes", type: "object", label: "Device Codes", objectName: "sys_device_code", icon: "qr-code" },
135
+ { id: "nav_accounts", type: "object", label: "Identity Links", objectName: "sys_account", icon: "link-2" },
136
+ { id: "nav_user_preferences", type: "object", label: "User Preferences", objectName: "sys_user_preference", icon: "sliders" },
137
+ { id: "nav_metadata", type: "object", label: "All Metadata", objectName: "sys_metadata", icon: "file-cog" }
70
138
  ]
71
139
  }
72
140
  ]
73
141
  };
74
-
75
- // src/apps/views/users.view.ts
76
- var UsersView = {
77
- name: "users",
78
- label: "Users",
79
- type: "grid",
80
- data: {
81
- provider: "object",
82
- object: "sys_user"
83
- },
84
- columns: [
85
- { field: "name", label: "Name", sortable: true },
86
- { field: "email", label: "Email", sortable: true },
87
- { field: "phone", label: "Phone" },
88
- { field: "status", label: "Status", sortable: true },
89
- { field: "active", label: "Active", sortable: true },
90
- { field: "created_at", label: "Created", sortable: true }
91
- ],
92
- sort: [{ field: "created_at", order: "desc" }],
93
- filter: [],
94
- searchableFields: ["name", "email"],
95
- pagination: {
96
- pageSize: 20
97
- }
98
- };
99
-
100
- // src/apps/views/organizations.view.ts
101
- var OrganizationsView = {
102
- name: "organizations",
103
- label: "Organizations",
104
- type: "grid",
105
- data: {
106
- provider: "object",
107
- object: "sys_organization"
108
- },
109
- columns: [
110
- { field: "name", label: "Name", sortable: true },
111
- { field: "status", label: "Status", sortable: true },
112
- { field: "plan_tier", label: "Plan Tier" },
113
- { field: "member_count", label: "Members" },
114
- { field: "created_at", label: "Created", sortable: true }
115
- ],
116
- sort: [{ field: "created_at", order: "desc" }],
117
- filter: [],
118
- searchableFields: ["name"],
119
- pagination: {
120
- pageSize: 20
121
- }
122
- };
123
-
124
- // src/apps/views/roles.view.ts
125
- var RolesView = {
126
- name: "roles",
127
- label: "Roles",
128
- type: "grid",
129
- data: {
130
- provider: "object",
131
- object: "sys_role"
132
- },
133
- columns: [
134
- { field: "name", label: "Name", sortable: true },
135
- { field: "description", label: "Description" },
136
- { field: "is_system", label: "System Role" },
137
- { field: "created_at", label: "Created", sortable: true }
138
- ],
139
- sort: [{ field: "created_at", order: "desc" }],
140
- filter: [],
141
- searchableFields: ["name", "description"],
142
- pagination: {
143
- pageSize: 20
144
- }
145
- };
146
-
147
- // src/apps/views/sessions.view.ts
148
- var SessionsView = {
149
- name: "sessions",
150
- label: "Sessions",
151
- type: "grid",
152
- data: {
153
- provider: "object",
154
- object: "sys_session"
155
- },
156
- columns: [
157
- { field: "user_id", label: "User", sortable: true },
158
- { field: "ip_address", label: "IP Address" },
159
- { field: "created_at", label: "Created", sortable: true },
160
- { field: "expires_at", label: "Expires", sortable: true }
161
- ],
162
- sort: [{ field: "created_at", order: "desc" }],
163
- filter: [],
164
- searchableFields: ["user_id"],
165
- pagination: {
166
- pageSize: 20
167
- }
168
- };
169
-
170
- // src/apps/views/audit_logs.view.ts
171
- var AuditLogsView = {
172
- name: "audit_logs",
173
- label: "Audit Logs",
174
- type: "grid",
175
- data: {
176
- provider: "object",
177
- object: "sys_audit_log"
178
- },
179
- columns: [
180
- { field: "created_at", label: "Timestamp", sortable: true },
181
- { field: "action", label: "Action", sortable: true },
182
- { field: "user_id", label: "Actor" },
183
- { field: "object_name", label: "Object" },
184
- { field: "record_id", label: "Record ID" }
185
- ],
186
- sort: [{ field: "created_at", order: "desc" }],
187
- filter: [],
188
- searchableFields: ["action", "object_name", "record_id"],
189
- pagination: {
190
- pageSize: 20
191
- }
192
- };
193
-
194
- // src/apps/views/package_installations.view.ts
195
- var PackageInstallationsView = {
196
- name: "package_installations",
197
- label: "Package Installations",
198
- type: "grid",
199
- data: {
200
- provider: "object",
201
- object: "sys_package_installation"
202
- },
203
- columns: [
204
- { field: "package_id", label: "Package", sortable: true },
205
- { field: "project_id", label: "Project", sortable: true },
206
- { field: "package_version_id", label: "Version" },
207
- { field: "status", label: "Status", sortable: true },
208
- { field: "installed_at", label: "Installed", sortable: true }
209
- ],
210
- sort: [{ field: "installed_at", order: "desc" }],
211
- filter: [],
212
- searchableFields: ["package_id", "project_id"],
213
- pagination: {
214
- pageSize: 20
215
- }
216
- };
217
142
  var SystemOverviewDashboard = Dashboard.create({
218
143
  name: "system_overview",
219
144
  label: "System Overview",
@@ -279,25 +204,29 @@ var SystemOverviewDashboard = Dashboard.create({
279
204
  title: "Packages Installed",
280
205
  type: "metric",
281
206
  object: "sys_package_installation",
207
+ // Cloud-only object — only registered when service-tenant is loaded.
208
+ // Hide this widget gracefully in single-project runtimes.
209
+ requiresObject: "sys_package_installation",
282
210
  layout: {
283
211
  x: 9,
284
212
  y: 0,
285
213
  w: 3,
286
214
  h: 2
287
215
  },
288
- filter: {
289
- field: "status",
290
- operator: "equals",
291
- value: "installed"
292
- },
216
+ filter: { status: "installed" },
293
217
  aggregate: "count",
294
218
  colorVariant: "success",
295
219
  description: "Active package installations across projects"
296
220
  },
297
- // ── Audit Actions by Type (last 7 days) ─────────────────────────
221
+ // ── Audit Actions by Type ───────────────────────────────────────
222
+ // Note: relative date filters like `NOW() - INTERVAL 7 DAY` are not
223
+ // currently substituted by the analytics layer (see
224
+ // service-analytics/strategies/filter-normalizer.ts). The dashboard's
225
+ // `globalFilters` date-range bar at the bottom is the supported way
226
+ // to scope this widget.
298
227
  {
299
228
  id: "widget_audit_actions",
300
- title: "Audit Actions (7d)",
229
+ title: "Audit Actions",
301
230
  description: "Distribution of audit events by action type",
302
231
  type: "pie",
303
232
  object: "sys_audit_log",
@@ -308,12 +237,7 @@ var SystemOverviewDashboard = Dashboard.create({
308
237
  h: 4
309
238
  },
310
239
  categoryField: "action",
311
- aggregate: "count",
312
- filter: {
313
- field: "created_at",
314
- operator: "gte",
315
- value: "NOW() - INTERVAL 7 DAY"
316
- }
240
+ aggregate: "count"
317
241
  },
318
242
  // ── Session Status Overview ─────────────────────────────────────
319
243
  {
@@ -332,20 +256,27 @@ var SystemOverviewDashboard = Dashboard.create({
332
256
  aggregate: "count"
333
257
  },
334
258
  // ── Recent Audit Log (Table) ────────────────────────────────────
259
+ // `type: 'table'` renders the underlying rows directly, so this
260
+ // panel actually shows the latest events instead of just repeating
261
+ // the total-count metric. `valueField`/`aggregate` are intentionally
262
+ // omitted — table widgets pull raw records.
335
263
  {
336
264
  id: "widget_recent_events",
337
265
  title: "Recent Audit Events",
338
266
  description: "Latest platform events",
339
- type: "metric",
267
+ type: "table",
340
268
  object: "sys_audit_log",
341
269
  layout: {
342
270
  x: 0,
343
271
  y: 6,
344
272
  w: 12,
345
- h: 3
273
+ h: 4
346
274
  },
347
- aggregate: "count",
348
- colorVariant: "default"
275
+ options: {
276
+ columns: ["created_at", "user_id", "action", "object_name", "record_id"],
277
+ sort: [{ field: "created_at", order: "desc" }],
278
+ pageSize: 20
279
+ }
349
280
  }
350
281
  ],
351
282
  globalFilters: [
@@ -366,10 +297,14 @@ var SecurityOverviewDashboard = Dashboard.create({
366
297
  columns: 12,
367
298
  gap: 4,
368
299
  widgets: [
369
- // ── Failed Login Attempts Widget ────────────────────────────────
300
+ // ── Login Events Widget ─────────────────────────────────────────
301
+ // The `sys_audit_log.action` enum doesn't distinguish failed vs
302
+ // successful logins (both fold into `action='login'`). Surfacing a
303
+ // total Login Events count is honest; a "Failed Logins" widget will
304
+ // need a richer enum or a separate detail field first.
370
305
  {
371
- id: "widget_failed_logins",
372
- title: "Failed Login Attempts",
306
+ id: "widget_login_events",
307
+ title: "Login Events",
373
308
  type: "metric",
374
309
  object: "sys_audit_log",
375
310
  layout: {
@@ -378,14 +313,10 @@ var SecurityOverviewDashboard = Dashboard.create({
378
313
  w: 3,
379
314
  h: 2
380
315
  },
381
- filter: {
382
- field: "action",
383
- operator: "equals",
384
- value: "login"
385
- },
316
+ filter: { action: "login" },
386
317
  aggregate: "count",
387
- colorVariant: "danger",
388
- description: "Failed authentication attempts (24h)"
318
+ colorVariant: "blue",
319
+ description: "Authentication events recorded by the audit log"
389
320
  },
390
321
  // ── Permission Changes Widget ───────────────────────────────────
391
322
  {
@@ -399,11 +330,7 @@ var SecurityOverviewDashboard = Dashboard.create({
399
330
  w: 3,
400
331
  h: 2
401
332
  },
402
- filter: {
403
- field: "action",
404
- operator: "equals",
405
- value: "permission_change"
406
- },
333
+ filter: { action: "permission_change" },
407
334
  aggregate: "count",
408
335
  colorVariant: "warning",
409
336
  description: "Recent permission and role modifications"
@@ -420,11 +347,7 @@ var SecurityOverviewDashboard = Dashboard.create({
420
347
  w: 3,
421
348
  h: 2
422
349
  },
423
- filter: {
424
- field: "action",
425
- operator: "equals",
426
- value: "config_change"
427
- },
350
+ filter: { action: "config_change" },
428
351
  aggregate: "count",
429
352
  colorVariant: "blue",
430
353
  description: "System configuration modifications"
@@ -478,20 +401,27 @@ var SecurityOverviewDashboard = Dashboard.create({
478
401
  aggregate: "count"
479
402
  },
480
403
  // ── Recent Security Events (Table) ──────────────────────────────
404
+ // Real table widget — pulls the latest permission/config rows.
481
405
  {
482
406
  id: "widget_recent_security_events",
483
407
  title: "Recent Security Events",
484
408
  description: "Latest permission and config changes",
485
- type: "metric",
409
+ type: "table",
486
410
  object: "sys_audit_log",
487
411
  layout: {
488
412
  x: 0,
489
413
  y: 6,
490
414
  w: 12,
491
- h: 3
415
+ h: 4
492
416
  },
493
- aggregate: "count",
494
- colorVariant: "default"
417
+ filter: {
418
+ action: { $in: ["login", "logout", "permission_change", "config_change"] }
419
+ },
420
+ options: {
421
+ columns: ["created_at", "user_id", "action", "object_name", "record_id"],
422
+ sort: [{ field: "created_at", order: "desc" }],
423
+ pageSize: 20
424
+ }
495
425
  }
496
426
  ],
497
427
  globalFilters: [
@@ -505,6 +435,6 @@ var SecurityOverviewDashboard = Dashboard.create({
505
435
  ]
506
436
  });
507
437
 
508
- export { AuditLogsView, OrganizationsView, PackageInstallationsView, RolesView, SETUP_APP, SecurityOverviewDashboard, SessionsView, SystemOverviewDashboard, UsersView };
438
+ export { SETUP_APP, SecurityOverviewDashboard, SystemOverviewDashboard };
509
439
  //# sourceMappingURL=index.mjs.map
510
440
  //# sourceMappingURL=index.mjs.map