@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/identity/sys-user.object.ts","../src/identity/sys-session.object.ts","../src/identity/sys-account.object.ts","../src/identity/sys-verification.object.ts","../src/identity/sys-organization.object.ts","../src/identity/sys-member.object.ts","../src/identity/sys-invitation.object.ts","../src/identity/sys-team.object.ts","../src/identity/sys-team-member.object.ts","../src/identity/sys-api-key.object.ts","../src/identity/sys-two-factor.object.ts","../src/identity/sys-device-code.object.ts","../src/identity/sys-user-preference.object.ts","../src/identity/sys-oauth-application.object.ts","../src/identity/sys-oauth-access-token.object.ts","../src/identity/sys-oauth-refresh-token.object.ts","../src/identity/sys-oauth-consent.object.ts","../src/identity/sys-jwks.object.ts","../src/security/sys-role.object.ts","../src/security/sys-permission-set.object.ts","../src/audit/sys-audit-log.object.ts","../src/audit/sys-presence.object.ts","../src/audit/sys-activity.object.ts","../src/audit/sys-comment.object.ts","../src/tenant/sys-project.object.ts","../src/tenant/sys-project-member.object.ts","../src/tenant/sys-project-credential.object.ts","../src/tenant/sys-app.object.ts","../src/tenant/sys-package.object.ts","../src/tenant/sys-package-version.object.ts","../src/tenant/sys-package-installation.object.ts","../src/metadata/sys-metadata.object.ts","../src/metadata/sys-metadata-history.object.ts","../src/metadata/sys-object.object.ts","../src/metadata/sys-view.object.ts","../src/metadata/sys-agent.object.ts","../src/metadata/sys-tool.object.ts","../src/metadata/sys-flow.object.ts","../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":["ObjectSchema","Field","Dashboard"],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_user — System User Object\n *\n * Canonical user identity record for the ObjectStack platform.\n * Backed by better-auth's `user` model with ObjectStack field conventions.\n *\n * Field order drives default list/form layout: identity first, then profile,\n * then system-managed audit fields (hidden from create/edit forms).\n *\n * @namespace sys\n */\nexport const SysUser = ObjectSchema.create({\n name: 'sys_user',\n label: 'User',\n pluralLabel: 'Users',\n icon: 'user',\n isSystem: true,\n description: 'User accounts for authentication',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'email', 'email_verified'],\n\n fields: {\n // ── Identity (primary business fields) ───────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n email: Field.email({\n label: 'Email',\n required: true,\n searchable: true,\n group: 'Identity',\n }),\n\n email_verified: Field.boolean({\n label: 'Email Verified',\n defaultValue: false,\n group: 'Identity',\n }),\n\n two_factor_enabled: Field.boolean({\n label: 'Two-Factor Enabled',\n defaultValue: false,\n group: 'Identity',\n description: 'Whether two-factor authentication is enabled for this user. Maintained by the better-auth `twoFactor` plugin.',\n }),\n\n // ── Profile ──────────────────────────────────────────────────\n image: Field.url({\n label: 'Profile Image',\n required: false,\n group: 'Profile',\n }),\n\n // ── System (auto-managed, hidden from create/edit forms) ─────\n id: Field.text({\n label: 'User ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['email'], unique: true },\n { fields: ['created_at'], unique: false },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: true,\n },\n\n validations: [\n {\n name: 'email_unique',\n type: 'unique',\n severity: 'error',\n message: 'Email must be unique',\n fields: ['email'],\n caseSensitive: false,\n },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_session — System Session Object\n *\n * Active user session record for the ObjectStack platform.\n * Backed by better-auth's `session` model with ObjectStack field conventions.\n *\n * The `token` field is hidden by default — sessions are managed by the\n * auth plugin, not edited manually. Admins see session metadata\n * (user, expiry, IP, active context) without exposing the token value.\n *\n * @namespace sys\n */\nexport const SysSession = ObjectSchema.create({\n name: 'sys_session',\n label: 'Session',\n pluralLabel: 'Sessions',\n icon: 'key',\n isSystem: true,\n description: 'Active user sessions',\n displayNameField: 'user_id',\n titleFormat: 'Session — {user_id}',\n compactLayout: ['user_id', 'ip_address', 'expires_at'],\n\n fields: {\n // ── Session owner & expiry ──────────────────────────────────\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n searchable: true,\n group: 'Session',\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n group: 'Session',\n }),\n\n // ── Active context (multi-org/team) ──────────────────────────\n active_organization_id: Field.lookup('sys_organization', {\n label: 'Active Organization',\n required: false,\n group: 'Context',\n }),\n\n active_team_id: Field.lookup('sys_team', {\n label: 'Active Team',\n required: false,\n group: 'Context',\n }),\n\n // ── Client fingerprint ───────────────────────────────────────\n ip_address: Field.text({\n label: 'IP Address',\n required: false,\n maxLength: 45, // Support IPv6\n group: 'Client',\n }),\n\n user_agent: Field.textarea({\n label: 'User Agent',\n required: false,\n group: 'Client',\n }),\n\n // ── Secret (hidden by default) ──────────────────────────────\n token: Field.text({\n label: 'Session Token',\n required: true,\n hidden: true,\n readonly: true,\n description: 'Opaque session token — never exposed in UI',\n group: 'Secret',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Session ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['token'], unique: true },\n { fields: ['user_id'], unique: false },\n { fields: ['expires_at'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'delete'],\n trash: false,\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_account — System Account Object\n *\n * OAuth / credential provider account record.\n * Backed by better-auth's `account` model with ObjectStack field conventions.\n *\n * @namespace sys\n */\nexport const SysAccount = ObjectSchema.create({\n name: 'sys_account',\n label: 'Account',\n pluralLabel: 'Accounts',\n icon: 'link',\n isSystem: true,\n description: 'OAuth and authentication provider accounts',\n titleFormat: '{provider_id} - {account_id}',\n compactLayout: ['provider_id', 'user_id', 'account_id'],\n \n fields: {\n id: Field.text({\n label: 'Account ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n provider_id: Field.text({\n label: 'Provider ID',\n required: true,\n description: 'OAuth provider identifier (google, github, etc.)',\n }),\n \n account_id: Field.text({\n label: 'Provider Account ID',\n required: true,\n description: \"User's ID in the provider's system\",\n }),\n \n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n description: 'Link to user table',\n }),\n \n access_token: Field.textarea({\n label: 'Access Token',\n required: false,\n }),\n \n refresh_token: Field.textarea({\n label: 'Refresh Token',\n required: false,\n }),\n \n id_token: Field.textarea({\n label: 'ID Token',\n required: false,\n }),\n \n access_token_expires_at: Field.datetime({\n label: 'Access Token Expires At',\n required: false,\n }),\n \n refresh_token_expires_at: Field.datetime({\n label: 'Refresh Token Expires At',\n required: false,\n }),\n \n scope: Field.text({\n label: 'OAuth Scope',\n required: false,\n }),\n \n password: Field.text({\n label: 'Password Hash',\n required: false,\n description: 'Hashed password for email/password provider',\n }),\n },\n \n indexes: [\n { fields: ['user_id'], unique: false },\n { fields: ['provider_id', 'account_id'], unique: true },\n ],\n \n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_verification — System Verification Object\n *\n * Email and phone verification token record.\n * Backed by better-auth's `verification` model with ObjectStack field conventions.\n *\n * @namespace sys\n */\nexport const SysVerification = ObjectSchema.create({\n name: 'sys_verification',\n label: 'Verification',\n pluralLabel: 'Verifications',\n icon: 'shield-check',\n isSystem: true,\n description: 'Email and phone verification tokens',\n titleFormat: 'Verification for {identifier}',\n compactLayout: ['identifier', 'expires_at', 'created_at'],\n \n fields: {\n id: Field.text({\n label: 'Verification ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n value: Field.text({\n label: 'Verification Token',\n required: true,\n description: 'Token or code for verification',\n }),\n \n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n }),\n \n identifier: Field.text({\n label: 'Identifier',\n required: true,\n description: 'Email address or phone number',\n }),\n },\n \n indexes: [\n { fields: ['value'], unique: true },\n { fields: ['identifier'], unique: false },\n { fields: ['expires_at'], unique: false },\n ],\n \n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'create', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_organization — System Organization Object\n *\n * Multi-organization support for the ObjectStack platform.\n * Backed by better-auth's organization plugin.\n *\n * @namespace sys\n */\nexport const SysOrganization = ObjectSchema.create({\n name: 'sys_organization',\n label: 'Organization',\n pluralLabel: 'Organizations',\n icon: 'building-2',\n isSystem: true,\n description: 'Organizations for multi-tenant grouping',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'slug'],\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n slug: Field.text({\n label: 'Slug',\n required: false,\n searchable: true,\n maxLength: 255,\n description: 'URL-friendly identifier',\n group: 'Identity',\n }),\n\n // ── Branding ─────────────────────────────────────────────────\n logo: Field.url({\n label: 'Logo',\n required: false,\n group: 'Branding',\n }),\n\n // ── Configuration ────────────────────────────────────────────\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n description: 'JSON-serialized organization metadata',\n group: 'Configuration',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Organization ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['slug'], unique: true },\n { fields: ['name'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_member — System Member Object\n *\n * Organization membership linking users to organizations with roles.\n * Backed by better-auth's organization plugin.\n *\n * @namespace sys\n */\nexport const SysMember = ObjectSchema.create({\n name: 'sys_member',\n label: 'Member',\n pluralLabel: 'Members',\n icon: 'user-check',\n isSystem: true,\n description: 'Organization membership records',\n titleFormat: '{user_id} in {organization_id}',\n compactLayout: ['user_id', 'organization_id', 'role'],\n \n fields: {\n id: Field.text({\n label: 'Member ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n }),\n \n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n }),\n \n role: Field.text({\n label: 'Role',\n required: false,\n description: 'Member role within the organization (e.g. admin, member)',\n maxLength: 100,\n }),\n },\n \n indexes: [\n { fields: ['organization_id', 'user_id'], unique: true },\n { fields: ['user_id'] },\n ],\n \n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_invitation — System Invitation Object\n *\n * Organization invitation tokens for inviting users.\n * Backed by better-auth's organization plugin.\n *\n * @namespace sys\n */\nexport const SysInvitation = ObjectSchema.create({\n name: 'sys_invitation',\n label: 'Invitation',\n pluralLabel: 'Invitations',\n icon: 'mail',\n isSystem: true,\n description: 'Organization invitations for user onboarding',\n titleFormat: 'Invitation to {organization_id}',\n compactLayout: ['email', 'organization_id', 'status'],\n \n fields: {\n id: Field.text({\n label: 'Invitation ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n }),\n \n email: Field.email({\n label: 'Email',\n required: true,\n description: 'Email address of the invited user',\n }),\n \n role: Field.text({\n label: 'Role',\n required: false,\n maxLength: 100,\n description: 'Role to assign upon acceptance',\n }),\n \n status: Field.select(['pending', 'accepted', 'rejected', 'expired', 'canceled'], {\n label: 'Status',\n required: true,\n defaultValue: 'pending',\n }),\n \n inviter_id: Field.lookup('sys_user', {\n label: 'Inviter',\n required: true,\n description: 'User who sent the invitation',\n }),\n \n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n }),\n \n team_id: Field.lookup('sys_team', {\n label: 'Team',\n required: false,\n description: 'Optional team to assign upon acceptance',\n }),\n },\n \n indexes: [\n { fields: ['organization_id'] },\n { fields: ['email'] },\n { fields: ['expires_at'] },\n ],\n \n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_team — System Team Object\n *\n * Teams within an organization for fine-grained grouping.\n * Backed by better-auth's organization plugin (teams feature).\n *\n * @namespace sys\n */\nexport const SysTeam = ObjectSchema.create({\n name: 'sys_team',\n label: 'Team',\n pluralLabel: 'Teams',\n icon: 'users',\n isSystem: true,\n description: 'Teams within organizations for fine-grained grouping',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'organization_id'],\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n description: 'Parent organization for this team',\n group: 'Identity',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Team ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['organization_id'] },\n { fields: ['name', 'organization_id'], unique: true },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_team_member — System Team Member Object\n *\n * Links users to teams within organizations.\n * Backed by better-auth's organization plugin (teams feature).\n *\n * @namespace sys\n */\nexport const SysTeamMember = ObjectSchema.create({\n name: 'sys_team_member',\n label: 'Team Member',\n pluralLabel: 'Team Members',\n icon: 'user-plus',\n isSystem: true,\n description: 'Team membership records linking users to teams',\n titleFormat: '{user_id} in {team_id}',\n compactLayout: ['user_id', 'team_id', 'created_at'],\n \n fields: {\n id: Field.text({\n label: 'Team Member ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n team_id: Field.lookup('sys_team', {\n label: 'Team',\n required: true,\n }),\n \n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n }),\n },\n \n indexes: [\n { fields: ['team_id', 'user_id'], unique: true },\n { fields: ['user_id'] },\n ],\n \n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_api_key — System API Key Object\n *\n * API keys for programmatic/machine access to the platform.\n *\n * Field `key` stores a hashed value and is marked hidden so it never\n * leaks into default list/form rendering; the raw token is only\n * returned once on creation via the auth plugin API.\n *\n * @namespace sys\n */\nexport const SysApiKey = ObjectSchema.create({\n name: 'sys_api_key',\n label: 'API Key',\n pluralLabel: 'API Keys',\n icon: 'key-round',\n isSystem: true,\n description: 'API keys for programmatic access',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'prefix', 'user_id', 'expires_at', 'revoked'],\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n description: 'Human-readable label for the API key',\n group: 'Identity',\n }),\n\n prefix: Field.text({\n label: 'Prefix',\n required: false,\n maxLength: 16,\n description: 'Visible prefix for identifying the key (e.g., \"osk_\")',\n group: 'Identity',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'Owner',\n required: true,\n description: 'User who owns this API key',\n group: 'Identity',\n }),\n\n // ── Access ───────────────────────────────────────────────────\n scopes: Field.textarea({\n label: 'Scopes',\n required: false,\n description: 'JSON array of permission scopes',\n group: 'Access',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n expires_at: Field.datetime({\n label: 'Expires At',\n required: false,\n group: 'Lifecycle',\n }),\n\n last_used_at: Field.datetime({\n label: 'Last Used At',\n required: false,\n readonly: true,\n description: 'Automatically updated on each API call',\n group: 'Lifecycle',\n }),\n\n revoked: Field.boolean({\n label: 'Revoked',\n defaultValue: false,\n group: 'Lifecycle',\n }),\n\n // ── Secret (hidden by default) ──────────────────────────────\n key: Field.text({\n label: 'Hashed Key',\n required: true,\n hidden: true,\n readonly: true,\n description: 'Hashed API key value — never exposed to clients',\n group: 'Secret',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'API Key ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['key'], unique: true },\n { fields: ['user_id'] },\n { fields: ['prefix'] },\n { fields: ['revoked'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_two_factor — System Two-Factor Object\n *\n * Two-factor authentication credentials (TOTP, backup codes).\n * Backed by better-auth's two-factor plugin.\n *\n * @namespace sys\n */\nexport const SysTwoFactor = ObjectSchema.create({\n name: 'sys_two_factor',\n label: 'Two Factor',\n pluralLabel: 'Two Factor Credentials',\n icon: 'smartphone',\n isSystem: true,\n description: 'Two-factor authentication credentials',\n titleFormat: 'Two-factor for {user_id}',\n compactLayout: ['user_id', 'created_at'],\n \n fields: {\n id: Field.text({\n label: 'Two Factor ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n }),\n \n secret: Field.text({\n label: 'Secret',\n required: true,\n description: 'TOTP secret key',\n }),\n \n backup_codes: Field.textarea({\n label: 'Backup Codes',\n required: false,\n description: 'JSON-serialized backup recovery codes',\n }),\n },\n \n indexes: [\n { fields: ['user_id'], unique: true },\n ],\n \n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_device_code — System Device Authorization Code Object\n *\n * Stores pending RFC 8628 OAuth Device Authorization Grant requests.\n * Backed by better-auth's `device-authorization` plugin (`deviceCode` model).\n *\n * Lifecycle:\n * 1. CLI calls `POST /device/code` → row inserted with status='pending'\n * 2. Browser visits `verification_uri_complete` and the signed-in user\n * calls `POST /device/approve` (or `/device/deny`) → status flips\n * 3. CLI's next `POST /device/token` poll either receives a session token\n * (status=approved) or one of the standard error codes\n * (`authorization_pending`, `slow_down`, `expired_token`,\n * `access_denied`). Approved rows are deleted on token issuance.\n *\n * @namespace sys\n */\nexport const SysDeviceCode = ObjectSchema.create({\n name: 'sys_device_code',\n label: 'Device Code',\n pluralLabel: 'Device Codes',\n icon: 'key-round',\n isSystem: true,\n description: 'OAuth 2.0 Device Authorization Grant (RFC 8628) pending requests',\n titleFormat: '{user_code}',\n compactLayout: ['user_code', 'status', 'client_id', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'Device Code ID',\n required: true,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n /** High-entropy token returned to the device (CLI). Polled at /device/token. */\n device_code: Field.text({\n label: 'Device Code',\n required: true,\n description: 'High-entropy token returned to the polling device',\n }),\n\n /** Human-readable short code displayed to the user (e.g. ABCD-EFGH). */\n user_code: Field.text({\n label: 'User Code',\n required: true,\n description: 'Short user-facing code (e.g. ABCD-EFGH)',\n }),\n\n /** Owning user — populated when the request is approved. */\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: false,\n description: 'User who approved the device authorization',\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n description: 'When the device & user codes are no longer valid',\n }),\n\n /** 'pending' | 'approved' | 'denied' */\n status: Field.text({\n label: 'Status',\n required: true,\n description: \"Current status: 'pending' | 'approved' | 'denied'\",\n }),\n\n last_polled_at: Field.datetime({\n label: 'Last Polled At',\n required: false,\n description: 'Timestamp of the most recent /device/token poll',\n }),\n\n polling_interval: Field.number({\n label: 'Polling Interval (ms)',\n required: false,\n description: 'Server-recommended minimum polling interval, in ms',\n }),\n\n client_id: Field.text({\n label: 'Client ID',\n required: false,\n description: 'OAuth client identifier of the requesting device',\n }),\n\n scope: Field.text({\n label: 'Scope',\n required: false,\n description: 'Space-separated OAuth scopes requested by the device',\n }),\n },\n\n indexes: [\n { fields: ['device_code'], unique: true },\n { fields: ['user_code'], unique: true },\n { fields: ['status'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_user_preference — System User Preference Object\n *\n * Per-user key-value preferences for storing UI state, settings, and personalization.\n * Supports the User Preferences layer in the Config Resolution hierarchy\n * (Runtime > User Preferences > Tenant > Env).\n *\n * Common use cases:\n * - UI preferences: theme, locale, timezone, sidebar state\n * - Feature flags: plugin.ai.auto_save, plugin.dev.debug_mode\n * - User-specific settings: default_view, notifications_enabled\n *\n * @namespace sys\n */\nexport const SysUserPreference = ObjectSchema.create({\n name: 'sys_user_preference',\n label: 'User Preference',\n pluralLabel: 'User Preferences',\n icon: 'settings',\n isSystem: true,\n description: 'Per-user key-value preferences (theme, locale, etc.)',\n titleFormat: '{key}',\n compactLayout: ['user_id', 'key'],\n\n fields: {\n id: Field.text({\n label: 'Preference ID',\n required: true,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n description: 'Owner user of this preference',\n }),\n\n key: Field.text({\n label: 'Key',\n required: true,\n maxLength: 255,\n description: 'Preference key (e.g., theme, locale, plugin.ai.auto_save)',\n }),\n\n value: Field.json({\n label: 'Value',\n description: 'Preference value (any JSON-serializable type)',\n }),\n },\n\n indexes: [\n { fields: ['user_id', 'key'], unique: true },\n { fields: ['user_id'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_oauth_application — Registered OAuth/OIDC client application\n *\n * Backed by `@better-auth/oauth-provider`'s `oauthClient` model. Each row\n * represents an external application that has been registered to authenticate\n * users against this ObjectStack server (acting as an OpenID Connect IdP).\n *\n * The table name is preserved from the deprecated `oidc-provider` plugin\n * (which used the `oauthApplication` model name) so existing data remains\n * accessible. The new model exposes a richer set of OAuth 2.1 / OIDC\n * registration fields — see RFC 7591 (Dynamic Client Registration) and\n * RFC 8414 (Authorization Server Metadata).\n *\n * @namespace sys\n */\nexport const SysOauthApplication = ObjectSchema.create({\n name: 'sys_oauth_application',\n label: 'OAuth Application',\n pluralLabel: 'OAuth Applications',\n icon: 'key-round',\n isSystem: true,\n description: 'Registered OAuth/OIDC client applications',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'client_id', 'type', 'disabled'],\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n name: Field.text({\n label: 'Name',\n required: false,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n icon: Field.url({\n label: 'Icon',\n required: false,\n description: 'Logo URL shown on the consent screen',\n group: 'Identity',\n }),\n\n uri: Field.url({\n label: 'Home URI',\n required: false,\n description: 'Public homepage of the registered client',\n group: 'Identity',\n }),\n\n contacts: Field.textarea({\n label: 'Contacts',\n required: false,\n description: 'JSON-serialized list of contact email addresses',\n group: 'Identity',\n }),\n\n tos: Field.url({\n label: 'Terms of Service',\n required: false,\n group: 'Identity',\n }),\n\n policy: Field.url({\n label: 'Privacy Policy',\n required: false,\n group: 'Identity',\n }),\n\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n description: 'JSON-serialized application metadata',\n group: 'Identity',\n }),\n\n // ── OAuth Credentials ────────────────────────────────────────\n client_id: Field.text({\n label: 'Client ID',\n required: true,\n readonly: true,\n maxLength: 255,\n description: 'Public OAuth client identifier',\n group: 'Credentials',\n }),\n\n client_secret: Field.text({\n label: 'Client Secret',\n required: false,\n maxLength: 1024,\n description: 'OAuth client secret (hashed/encrypted at rest)',\n group: 'Credentials',\n }),\n\n redirect_uris: Field.textarea({\n label: 'Redirect URIs',\n required: true,\n description: 'JSON-serialized list of allowed redirect URIs',\n group: 'Credentials',\n }),\n\n post_logout_redirect_uris: Field.textarea({\n label: 'Post-logout Redirect URIs',\n required: false,\n description: 'JSON-serialized list of allowed post-logout redirect URIs',\n group: 'Credentials',\n }),\n\n type: Field.select(['web', 'native', 'user-agent-based', 'public'], {\n label: 'Client Type',\n required: false,\n defaultValue: 'web',\n group: 'Credentials',\n }),\n\n public: Field.boolean({\n label: 'Public Client',\n required: false,\n description: 'Marks the client as a public (non-confidential) OAuth client',\n group: 'Credentials',\n }),\n\n require_pkce: Field.boolean({\n label: 'Require PKCE',\n required: false,\n group: 'Credentials',\n }),\n\n token_endpoint_auth_method: Field.text({\n label: 'Token Endpoint Auth Method',\n required: false,\n maxLength: 64,\n description: 'e.g. client_secret_basic, client_secret_post, none',\n group: 'Credentials',\n }),\n\n grant_types: Field.textarea({\n label: 'Grant Types',\n required: false,\n description: 'JSON-serialized list of allowed grant types',\n group: 'Credentials',\n }),\n\n response_types: Field.textarea({\n label: 'Response Types',\n required: false,\n description: 'JSON-serialized list of allowed response types',\n group: 'Credentials',\n }),\n\n scopes: Field.textarea({\n label: 'Allowed Scopes',\n required: false,\n description: 'JSON-serialized list of scopes the client may request',\n group: 'Credentials',\n }),\n\n subject_type: Field.text({\n label: 'Subject Type',\n required: false,\n maxLength: 32,\n description: 'OIDC subject type (e.g. public, pairwise)',\n group: 'Credentials',\n }),\n\n // ── Behaviour flags ──────────────────────────────────────────\n disabled: Field.boolean({\n label: 'Disabled',\n required: false,\n defaultValue: false,\n group: 'Behaviour',\n }),\n\n skip_consent: Field.boolean({\n label: 'Skip Consent',\n required: false,\n description: 'Treat as a trusted client and bypass the consent screen',\n group: 'Behaviour',\n }),\n\n enable_end_session: Field.boolean({\n label: 'Enable End Session',\n required: false,\n description: 'Allow the client to call the OIDC end-session endpoint',\n group: 'Behaviour',\n }),\n\n // ── Software statement (RFC 7591 §2.3) ───────────────────────\n software_id: Field.text({\n label: 'Software ID',\n required: false,\n maxLength: 255,\n group: 'Software',\n }),\n\n software_version: Field.text({\n label: 'Software Version',\n required: false,\n maxLength: 64,\n group: 'Software',\n }),\n\n software_statement: Field.textarea({\n label: 'Software Statement',\n required: false,\n description: 'Signed JWT asserting the client metadata (RFC 7591 §2.3)',\n group: 'Software',\n }),\n\n // ── Ownership / system ───────────────────────────────────────\n user_id: Field.lookup('sys_user', {\n label: 'Owner User',\n required: false,\n description: 'User who registered this application',\n group: 'System',\n }),\n\n reference_id: Field.text({\n label: 'Reference ID',\n required: false,\n maxLength: 255,\n description: 'Caller-supplied correlation identifier',\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['client_id'], unique: true },\n { fields: ['user_id'] },\n { fields: ['reference_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_oauth_access_token — Issued OAuth/OIDC opaque access token\n *\n * Backed by `@better-auth/oauth-provider`'s `oauthAccessToken` model. One\n * row per opaque access token issuance. Tokens are short-lived; expired\n * rows can be safely pruned.\n *\n * Refresh tokens have been split into a sibling table — see\n * {@link SysOauthRefreshToken}. The optional `refresh_id` column links an\n * access token back to the refresh-token row that minted it.\n *\n * @namespace sys\n */\nexport const SysOauthAccessToken = ObjectSchema.create({\n name: 'sys_oauth_access_token',\n label: 'OAuth Access Token',\n pluralLabel: 'OAuth Access Tokens',\n icon: 'ticket',\n isSystem: true,\n description: 'Opaque OAuth access tokens issued to client applications',\n compactLayout: ['client_id', 'user_id', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n token: Field.text({\n label: 'Token',\n required: true,\n maxLength: 1024,\n description: 'Opaque access token value',\n }),\n\n client_id: Field.text({\n label: 'Client ID',\n required: true,\n description: 'Foreign key to sys_oauth_application.client_id',\n }),\n\n session_id: Field.lookup('sys_session', {\n label: 'Session',\n required: false,\n description: 'Foreign key to sys_session.id',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: false,\n description: 'Foreign key to sys_user.id',\n }),\n\n refresh_id: Field.lookup('sys_oauth_refresh_token', {\n label: 'Refresh Token',\n required: false,\n description: 'Foreign key to sys_oauth_refresh_token.id',\n }),\n\n reference_id: Field.text({\n label: 'Reference ID',\n required: false,\n maxLength: 255,\n description: 'Caller-supplied correlation identifier',\n }),\n\n scopes: Field.textarea({\n label: 'Scopes',\n required: true,\n description: 'JSON-serialized list of scopes granted to this token',\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n },\n\n indexes: [\n { fields: ['token'], unique: true },\n { fields: ['client_id'] },\n { fields: ['session_id'] },\n { fields: ['user_id'] },\n { fields: ['refresh_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: false,\n apiMethods: [],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_oauth_refresh_token — Issued OAuth/OIDC refresh token\n *\n * Backed by `@better-auth/oauth-provider`'s `oauthRefreshToken` model.\n * Refresh tokens are issued for the `offline_access` scope and are bound\n * to a specific session (`session_id`) and client (`client_id`).\n *\n * Each access-token rotation produces a new refresh-token row; revoked\n * tokens are kept (with `revoked` set) for audit purposes until pruned.\n *\n * @namespace sys\n */\nexport const SysOauthRefreshToken = ObjectSchema.create({\n name: 'sys_oauth_refresh_token',\n label: 'OAuth Refresh Token',\n pluralLabel: 'OAuth Refresh Tokens',\n icon: 'refresh-cw',\n isSystem: true,\n description: 'Opaque OAuth refresh tokens (linked to a session)',\n compactLayout: ['client_id', 'user_id', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n token: Field.text({\n label: 'Token',\n required: true,\n maxLength: 1024,\n description: 'Opaque refresh token value',\n }),\n\n client_id: Field.text({\n label: 'Client ID',\n required: true,\n description: 'Foreign key to sys_oauth_application.client_id',\n }),\n\n session_id: Field.lookup('sys_session', {\n label: 'Session',\n required: false,\n description: 'Foreign key to sys_session.id',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n description: 'Foreign key to sys_user.id',\n }),\n\n reference_id: Field.text({\n label: 'Reference ID',\n required: false,\n maxLength: 255,\n description: 'Caller-supplied correlation identifier',\n }),\n\n scopes: Field.textarea({\n label: 'Scopes',\n required: true,\n description: 'JSON-serialized list of scopes granted to this token',\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n revoked: Field.datetime({\n label: 'Revoked At',\n required: false,\n description: 'Timestamp at which this refresh token was revoked',\n }),\n\n auth_time: Field.datetime({\n label: 'Auth Time',\n required: false,\n description: 'When the user originally authenticated for this token chain',\n }),\n },\n\n indexes: [\n { fields: ['token'], unique: true },\n { fields: ['client_id'] },\n { fields: ['session_id'] },\n { fields: ['user_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: false,\n apiMethods: [],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_oauth_consent — Recorded user consent for an OAuth client + scopes\n *\n * Backed by `@better-auth/oauth-provider`'s `oauthConsent` model. When a\n * user consents to a client requesting a particular set of scopes, the\n * decision is persisted here so future authorization requests for the same\n * client+scopes can skip the consent screen.\n *\n * The presence of a row implies consent was given for the listed scopes —\n * the previous boolean `consent_given` flag was removed in the migration\n * from `better-auth/plugins/oidc-provider` to `@better-auth/oauth-provider`.\n *\n * @namespace sys\n */\nexport const SysOauthConsent = ObjectSchema.create({\n name: 'sys_oauth_consent',\n label: 'OAuth Consent',\n pluralLabel: 'OAuth Consents',\n icon: 'shield-check',\n isSystem: true,\n description: 'User consent records for OAuth client applications',\n compactLayout: ['client_id', 'user_id', 'scopes'],\n\n fields: {\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n client_id: Field.text({\n label: 'Client ID',\n required: true,\n description: 'Foreign key to sys_oauth_application.client_id',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: false,\n description: 'Foreign key to sys_user.id',\n }),\n\n reference_id: Field.text({\n label: 'Reference ID',\n required: false,\n maxLength: 255,\n description: 'Caller-supplied correlation identifier',\n }),\n\n scopes: Field.textarea({\n label: 'Scopes',\n required: true,\n description: 'JSON-serialized list of scopes the user consented to',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n },\n\n indexes: [\n { fields: ['client_id'] },\n { fields: ['user_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: false,\n apiMethods: [],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_jwks — JWKS (JSON Web Key Set) key pair store\n *\n * Backed by better-auth's `jwt` plugin. Each row is a single asymmetric\n * key pair used to sign and verify JWTs (id_tokens, JWT access tokens)\n * issued by this ObjectStack server when it acts as an OAuth/OIDC IdP.\n *\n * The plugin rotates keys automatically — older rows are kept until\n * `expires_at` so existing tokens can still be verified.\n *\n * @namespace sys\n */\nexport const SysJwks = ObjectSchema.create({\n name: 'sys_jwks',\n label: 'JWKS Key',\n pluralLabel: 'JWKS Keys',\n icon: 'key',\n isSystem: true,\n description: 'Asymmetric key pairs used to sign and verify issued JWTs',\n compactLayout: ['id', 'created_at', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'Key ID',\n required: true,\n readonly: true,\n description: 'JWK `kid` value',\n }),\n\n public_key: Field.textarea({\n label: 'Public Key',\n required: true,\n description: 'JSON-serialized JWK public key',\n }),\n\n private_key: Field.textarea({\n label: 'Private Key',\n required: true,\n description: 'JSON-serialized JWK private key (encrypted at rest)',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: false,\n description: 'When the key may no longer be used to verify tokens',\n }),\n },\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: false,\n apiMethods: [],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_role — System Role Object\n *\n * RBAC role definition for the ObjectStack platform.\n * Roles group permissions and are assigned to users or members.\n *\n * @namespace sys\n */\nexport const SysRole = ObjectSchema.create({\n name: 'sys_role',\n label: 'Role',\n pluralLabel: 'Roles',\n icon: 'shield',\n isSystem: true,\n description: 'Role definitions for RBAC access control',\n displayNameField: 'label',\n titleFormat: '{label}',\n compactLayout: ['label', 'name', 'active', 'is_default'],\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n label: Field.text({\n label: 'Display Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n name: Field.text({\n label: 'API Name',\n required: true,\n searchable: true,\n maxLength: 100,\n description: 'Unique machine name for the role (e.g. admin, editor, viewer)',\n group: 'Identity',\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: false,\n group: 'Identity',\n }),\n\n // ── Configuration ────────────────────────────────────────────\n permissions: Field.textarea({\n label: 'Permissions',\n required: false,\n description: 'JSON-serialized array of permission strings',\n group: 'Configuration',\n }),\n\n // ── Status ───────────────────────────────────────────────────\n active: Field.boolean({\n label: 'Active',\n defaultValue: true,\n group: 'Status',\n }),\n\n is_default: Field.boolean({\n label: 'Default Role',\n defaultValue: false,\n description: 'Automatically assigned to new users',\n group: 'Status',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Role ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['active'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_permission_set — System Permission Set Object\n *\n * Named groupings of fine-grained permissions.\n * Permission sets can be assigned to roles or directly to users\n * for granular access control.\n *\n * @namespace sys\n */\nexport const SysPermissionSet = ObjectSchema.create({\n name: 'sys_permission_set',\n label: 'Permission Set',\n pluralLabel: 'Permission Sets',\n icon: 'lock',\n isSystem: true,\n description: 'Named permission groupings for fine-grained access control',\n displayNameField: 'label',\n titleFormat: '{label}',\n compactLayout: ['label', 'name', 'active'],\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n label: Field.text({\n label: 'Display Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n name: Field.text({\n label: 'API Name',\n required: true,\n searchable: true,\n maxLength: 100,\n description: 'Unique machine name for the permission set',\n group: 'Identity',\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: false,\n group: 'Identity',\n }),\n\n // ── Permissions ──────────────────────────────────────────────\n object_permissions: Field.textarea({\n label: 'Object Permissions',\n required: false,\n description: 'JSON-serialized object-level CRUD permissions',\n group: 'Permissions',\n }),\n\n field_permissions: Field.textarea({\n label: 'Field Permissions',\n required: false,\n description: 'JSON-serialized field-level read/write permissions',\n group: 'Permissions',\n }),\n\n // ── Status ───────────────────────────────────────────────────\n active: Field.boolean({\n label: 'Active',\n defaultValue: true,\n group: 'Status',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Permission Set ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['active'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_audit_log — System Audit Log Object\n *\n * Immutable audit trail for all significant platform events.\n * Records who did what, when, and the before/after state.\n *\n * Every field is `readonly: true` — audit logs are written only by\n * internal system hooks, never via UI forms. API exposes only `get` + `list`.\n *\n * @namespace sys\n */\nexport const SysAuditLog = ObjectSchema.create({\n name: 'sys_audit_log',\n label: 'Audit Log',\n pluralLabel: 'Audit Logs',\n icon: 'scroll-text',\n isSystem: true,\n description: 'Immutable audit trail for platform events',\n displayNameField: 'action',\n titleFormat: '{action} · {object_name}',\n compactLayout: ['created_at', 'action', 'object_name', 'record_id', 'user_id'],\n\n fields: {\n // ── Event ────────────────────────────────────────────────────\n created_at: Field.datetime({\n label: 'Timestamp',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'Event',\n }),\n\n action: Field.select(\n ['create', 'update', 'delete', 'restore', 'login', 'logout', 'permission_change', 'config_change', 'export', 'import'],\n {\n label: 'Action',\n required: true,\n readonly: true,\n searchable: true,\n description: 'Action type (snake_case)',\n group: 'Event',\n },\n ),\n\n user_id: Field.lookup('sys_user', {\n label: 'Actor',\n required: false,\n readonly: true,\n searchable: true,\n description: 'User who performed the action (null for system actions)',\n group: 'Event',\n }),\n\n // ── Target record ────────────────────────────────────────────\n object_name: Field.text({\n label: 'Object',\n required: false,\n readonly: true,\n searchable: true,\n maxLength: 255,\n description: 'Target object (e.g. sys_user, project_task)',\n group: 'Target',\n }),\n\n record_id: Field.text({\n label: 'Record ID',\n required: false,\n readonly: true,\n searchable: true,\n description: 'ID of the affected record',\n group: 'Target',\n }),\n\n // ── Change payload ───────────────────────────────────────────\n old_value: Field.textarea({\n label: 'Old Value',\n required: false,\n readonly: true,\n description: 'JSON-serialized previous state',\n group: 'Changes',\n }),\n\n new_value: Field.textarea({\n label: 'New Value',\n required: false,\n readonly: true,\n description: 'JSON-serialized new state',\n group: 'Changes',\n }),\n\n // ── Client fingerprint ───────────────────────────────────────\n ip_address: Field.text({\n label: 'IP Address',\n required: false,\n readonly: true,\n maxLength: 45,\n group: 'Client',\n }),\n\n user_agent: Field.textarea({\n label: 'User Agent',\n required: false,\n readonly: true,\n group: 'Client',\n }),\n\n // ── Context ──────────────────────────────────────────────────\n tenant_id: Field.lookup('sys_organization', {\n label: 'Tenant',\n required: false,\n readonly: true,\n description: 'Tenant context for multi-tenant isolation',\n group: 'Context',\n }),\n\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n readonly: true,\n description: 'JSON-serialized additional context',\n group: 'Context',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Audit Log ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['created_at'] },\n { fields: ['user_id'] },\n { fields: ['object_name', 'record_id'] },\n { fields: ['action'] },\n { fields: ['tenant_id'] },\n ],\n\n enable: {\n trackHistory: false, // Audit logs are themselves the audit trail\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list'], // Read-only — creation happens via internal system hooks only\n trash: false, // Never soft-delete audit logs\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_presence — System Presence Object\n *\n * Tracks real-time user presence and activity across the platform.\n * Fields align with the PresenceStateSchema protocol definition\n * from `@objectstack/spec/api` (websocket.zod.ts).\n *\n * Owned by `service-realtime` as the canonical Presence domain object.\n *\n * @namespace sys\n * @see PresenceStateSchema in packages/spec/src/api/websocket.zod.ts\n */\nexport const SysPresence = ObjectSchema.create({\n name: 'sys_presence',\n label: 'Presence',\n pluralLabel: 'Presences',\n icon: 'wifi',\n isSystem: true,\n description: 'Real-time user presence and activity tracking',\n titleFormat: '{user_id} ({status})',\n compactLayout: ['user_id', 'status', 'last_seen'],\n\n fields: {\n id: Field.text({\n label: 'Presence ID',\n required: true,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n searchable: true,\n }),\n\n session_id: Field.lookup('sys_session', {\n label: 'Session',\n required: true,\n }),\n\n status: Field.select({\n label: 'Status',\n required: true,\n defaultValue: 'online',\n options: [\n { value: 'online', label: 'Online' },\n { value: 'away', label: 'Away' },\n { value: 'busy', label: 'Busy' },\n { value: 'offline', label: 'Offline' },\n ],\n }),\n\n last_seen: Field.datetime({\n label: 'Last Seen',\n required: true,\n defaultValue: 'NOW()',\n }),\n\n current_location: Field.text({\n label: 'Current Location',\n required: false,\n maxLength: 500,\n }),\n\n device: Field.select({\n label: 'Device',\n required: false,\n options: [\n { value: 'desktop', label: 'Desktop' },\n { value: 'mobile', label: 'Mobile' },\n { value: 'tablet', label: 'Tablet' },\n { value: 'other', label: 'Other' },\n ],\n }),\n\n custom_status: Field.text({\n label: 'Custom Status',\n required: false,\n maxLength: 255,\n }),\n\n metadata: Field.json({\n label: 'Metadata',\n required: false,\n description: 'Arbitrary JSON metadata associated with the presence state (matches PresenceStateSchema.metadata).',\n }),\n },\n\n indexes: [\n { fields: ['user_id'], unique: false },\n { fields: ['session_id'], unique: true },\n { fields: ['status'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_activity — Lightweight Activity Stream\n *\n * Append-only \"recent activity\" feed shown on dashboards / overview\n * pages. Distinct from `sys_audit_log` (compliance-grade, structured\n * before/after diffs) and `feed_item` (record-scoped Chatter timeline\n * with comments/reactions/threads). Activity entries are denormalized\n * snapshots optimized for chronological \"what happened lately\" reads.\n *\n * Typical write sources: data triggers, plugin events, UI actions.\n * Typical readers: Studio dashboard, mobile inbox, notification jobs.\n *\n * @namespace sys\n */\nexport const SysActivity = ObjectSchema.create({\n name: 'sys_activity',\n label: 'Activity',\n pluralLabel: 'Activities',\n icon: 'activity',\n isSystem: true,\n description: 'Recent activity stream entries (lightweight, denormalized)',\n displayNameField: 'summary',\n titleFormat: '{type} · {summary}',\n compactLayout: ['timestamp', 'type', 'actor_name', 'summary'],\n\n fields: {\n id: Field.text({\n label: 'Activity ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n timestamp: Field.datetime({\n label: 'Timestamp',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'Event',\n }),\n\n type: Field.select(\n [\n 'created',\n 'updated',\n 'deleted',\n 'commented',\n 'mentioned',\n 'shared',\n 'assigned',\n 'completed',\n 'login',\n 'logout',\n 'system',\n ],\n {\n label: 'Type',\n required: true,\n readonly: true,\n searchable: true,\n group: 'Event',\n },\n ),\n\n summary: Field.text({\n label: 'Summary',\n required: true,\n readonly: true,\n maxLength: 500,\n searchable: true,\n description: 'Human-readable one-line summary',\n group: 'Event',\n }),\n\n // ── Actor ───────────────────────────────────────────────────\n actor_id: Field.lookup('sys_user', {\n label: 'Actor',\n required: false,\n readonly: true,\n searchable: true,\n group: 'Actor',\n }),\n\n actor_name: Field.text({\n label: 'Actor Name',\n required: false,\n readonly: true,\n group: 'Actor',\n }),\n\n actor_avatar_url: Field.url({\n label: 'Actor Avatar',\n required: false,\n readonly: true,\n group: 'Actor',\n }),\n\n // ── Target ───────────────────────────────────────────────────\n object_name: Field.text({\n label: 'Object',\n required: false,\n readonly: true,\n searchable: true,\n maxLength: 255,\n description: 'Target object short name (e.g. account, sys_user)',\n group: 'Target',\n }),\n\n record_id: Field.text({\n label: 'Record ID',\n required: false,\n readonly: true,\n searchable: true,\n group: 'Target',\n }),\n\n record_label: Field.text({\n label: 'Record Label',\n required: false,\n readonly: true,\n maxLength: 255,\n description: 'Display label of the target record at write time',\n group: 'Target',\n }),\n\n url: Field.url({\n label: 'URL',\n required: false,\n readonly: true,\n description: 'Optional deep-link to the activity target',\n group: 'Target',\n }),\n\n // ── Context ──────────────────────────────────────────────────\n project_id: Field.lookup('sys_project', {\n label: 'Project',\n required: false,\n readonly: true,\n searchable: true,\n description: 'Project context (multi-project deployments)',\n group: 'Context',\n }),\n\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n readonly: true,\n description: 'JSON-serialized additional context',\n group: 'Context',\n }),\n },\n\n indexes: [\n { fields: ['timestamp'] },\n { fields: ['actor_id'] },\n { fields: ['object_name', 'record_id'] },\n { fields: ['type'] },\n { fields: ['project_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list'],\n trash: false,\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_comment — Threaded Record Comments\n *\n * Generic threaded discussion attached to any record via `thread_id`.\n * `thread_id` is conventionally formatted as `{object}:{record_id}`\n * (e.g. `sys_user:abc123`, `account:9001`) so a single index covers\n * \"all comments on this record\" lookups across every object.\n *\n * Distinct from `feed_item` (Salesforce-style Chatter timeline that\n * mixes comments with field changes / events / approvals). Use\n * `sys_comment` when you want a focused threaded discussion surface\n * without the heavier Chatter envelope.\n *\n * @namespace sys\n */\nexport const SysComment = ObjectSchema.create({\n name: 'sys_comment',\n label: 'Comment',\n pluralLabel: 'Comments',\n icon: 'message-square',\n isSystem: true,\n description: 'Threaded comments attached to records via thread_id',\n displayNameField: 'body',\n titleFormat: '{author_name}: {body}',\n compactLayout: ['created_at', 'author_name', 'body'],\n\n fields: {\n id: Field.text({\n label: 'Comment ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n // ── Thread ───────────────────────────────────────────────────\n thread_id: Field.text({\n label: 'Thread',\n required: true,\n searchable: true,\n maxLength: 255,\n description:\n 'Thread identifier — conventionally `{object}:{record_id}` (e.g. `sys_user:abc123`)',\n group: 'Thread',\n }),\n\n parent_id: Field.lookup('sys_comment', {\n label: 'Parent Comment',\n required: false,\n description: 'Optional parent comment for nested replies',\n group: 'Thread',\n }),\n\n reply_count: Field.number({\n label: 'Reply Count',\n defaultValue: 0,\n readonly: true,\n group: 'Thread',\n }),\n\n // ── Author ───────────────────────────────────────────────────\n author_id: Field.lookup('sys_user', {\n label: 'Author',\n required: true,\n searchable: true,\n group: 'Author',\n }),\n\n author_name: Field.text({\n label: 'Author Name',\n required: false,\n group: 'Author',\n }),\n\n author_avatar_url: Field.url({\n label: 'Author Avatar',\n required: false,\n group: 'Author',\n }),\n\n // ── Body ─────────────────────────────────────────────────────\n body: Field.textarea({\n label: 'Body',\n required: true,\n searchable: true,\n description: 'Comment text (Markdown supported)',\n group: 'Body',\n }),\n\n mentions: Field.textarea({\n label: 'Mentions',\n required: false,\n description: 'JSON array of @mention objects',\n group: 'Body',\n }),\n\n reactions: Field.textarea({\n label: 'Reactions',\n required: false,\n description: 'JSON array of emoji reaction objects',\n group: 'Body',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n is_edited: Field.boolean({\n label: 'Edited',\n defaultValue: false,\n group: 'Lifecycle',\n }),\n\n edited_at: Field.datetime({\n label: 'Edited At',\n required: false,\n group: 'Lifecycle',\n }),\n\n visibility: Field.select(\n ['public', 'internal', 'private'],\n {\n label: 'Visibility',\n defaultValue: 'public',\n group: 'Lifecycle',\n },\n ),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['thread_id', 'created_at'] },\n { fields: ['parent_id'] },\n { fields: ['author_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n trash: true,\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_project — Control Plane Project Registry\n *\n * One row per project. An organization owns N projects\n * (dev/test/prod/sandbox/preview/…). Physical database connection info\n * is stored directly on this row (database_url, database_driver, etc.)\n * so a single JOIN-free lookup gives both logical and physical addressing.\n *\n * **This table lives in the Control Plane only.** Project DBs contain\n * only business data rows — zero system tables.\n *\n * @namespace sys\n */\nexport const SysProject = ObjectSchema.create({\n name: 'sys_project',\n label: 'Project',\n pluralLabel: 'Projects',\n icon: 'layers',\n isSystem: true,\n description: 'Control-plane registry of tenant projects (prod/test/dev/sandbox).',\n titleFormat: '{display_name}',\n compactLayout: ['display_name', 'status', 'is_default'],\n\n fields: {\n id: Field.text({\n label: 'Project ID',\n required: true,\n readonly: true,\n description: 'UUID of the project (stable, never reused).',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Creation timestamp.',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Last update timestamp.',\n }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n description: 'Foreign key to sys_organization.',\n }),\n\n display_name: Field.text({\n label: 'Display Name',\n required: true,\n maxLength: 255,\n description: 'Display name shown in Studio and APIs.',\n }),\n\n is_default: Field.boolean({\n label: 'Is Default',\n required: true,\n defaultValue: false,\n description: 'Whether this is the default project for the organization. Exactly one per org.',\n }),\n\n is_system: Field.boolean({\n label: 'Is System',\n required: true,\n defaultValue: false,\n description: 'Whether this is a system project (platform infrastructure, not user data).',\n }),\n\n plan: Field.select({\n label: 'Plan',\n required: true,\n defaultValue: 'free',\n description: 'Plan tier applied to this project for quota and billing.',\n options: [\n { value: 'free', label: 'Free' },\n { value: 'starter', label: 'Starter' },\n { value: 'pro', label: 'Pro' },\n { value: 'enterprise', label: 'Enterprise' },\n { value: 'custom', label: 'Custom' },\n ],\n }),\n\n status: Field.select({\n label: 'Status',\n required: true,\n defaultValue: 'provisioning',\n description: 'Project lifecycle status.',\n options: [\n { value: 'provisioning', label: 'Provisioning' },\n { value: 'active', label: 'Active' },\n { value: 'suspended', label: 'Suspended' },\n { value: 'archived', label: 'Archived' },\n { value: 'failed', label: 'Failed' },\n { value: 'migrating', label: 'Migrating' },\n ],\n }),\n\n created_by: Field.lookup('sys_user', {\n label: 'Created By',\n required: true,\n description: 'User that created the project.',\n }),\n\n database_url: Field.url({\n label: 'Database URL',\n required: false,\n description: 'Connection URL for the project database (e.g. libsql://proj-uuid.turso.io). Set after provisioning.',\n }),\n\n database_driver: Field.text({\n label: 'Database Driver',\n required: false,\n maxLength: 50,\n description: 'Data-plane driver key (turso, libsql, sqlite, memory, postgres).',\n }),\n\n storage_limit_mb: Field.number({\n label: 'Storage Limit (MB)',\n required: false,\n defaultValue: 1024,\n description: 'Storage quota in megabytes.',\n }),\n\n provisioned_at: Field.datetime({\n label: 'Provisioned At',\n required: false,\n description: 'When the physical database was provisioned.',\n }),\n\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n description: 'JSON-serialized free-form metadata (feature flags, tags, …).',\n }),\n\n hostname: Field.text({\n label: 'Hostname',\n required: false,\n maxLength: 255,\n unique: true,\n description: 'Canonical hostname for this project (e.g. acme-dev.objectstack.app or api.acme.com). UNIQUE. Auto-set on creation; can be overridden for custom domains.',\n }),\n },\n\n indexes: [\n { fields: ['organization_id'] },\n { fields: ['organization_id', 'is_default'] },\n { fields: ['status'] },\n { fields: ['database_driver'] },\n { fields: ['hostname'], unique: true },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_project_member — Per-Project RBAC\n *\n * Grants a user access to a specific project with a specific role.\n * Scoped narrowly to project boundaries so that `prod` can have a\n * different cast of admins than `dev`.\n *\n * A user may be a member of multiple projects within the same\n * organization with different roles. Uniqueness is `(project_id, user_id)`.\n *\n * @namespace sys\n */\nexport const SysProjectMember = ObjectSchema.create({\n name: 'sys_project_member',\n label: 'Project Member',\n pluralLabel: 'Project Members',\n icon: 'users',\n isSystem: true,\n description: 'Per-project user/role assignments.',\n titleFormat: '{user_id} @ {project_id}',\n compactLayout: ['user_id', 'project_id', 'role'],\n\n fields: {\n id: Field.text({\n label: 'Membership ID',\n required: true,\n readonly: true,\n description: 'UUID of the membership.',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Creation timestamp.',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Last update timestamp.',\n }),\n\n project_id: Field.lookup('sys_project', {\n label: 'Project',\n required: true,\n description: 'Foreign key to sys_project.',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n description: 'Foreign key to sys_user.',\n }),\n\n role: Field.select({\n label: 'Role',\n required: true,\n description: 'Per-project role (owner/admin/maker/reader/guest).',\n options: [\n { value: 'owner', label: 'Owner' },\n { value: 'admin', label: 'Administrator' },\n { value: 'maker', label: 'Maker / Developer' },\n { value: 'reader', label: 'Reader' },\n { value: 'guest', label: 'Guest' },\n ],\n }),\n\n invited_by: Field.lookup('sys_user', {\n label: 'Invited By',\n required: true,\n description: 'User that granted this membership.',\n }),\n },\n\n indexes: [\n { fields: ['project_id', 'user_id'], unique: true },\n { fields: ['project_id'] },\n { fields: ['user_id'] },\n { fields: ['role'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_project_credential — Rotatable Project Database Credentials\n *\n * Stores encrypted credentials for project databases separately from\n * the project record (`sys_project`) so that secrets can\n * be rotated, revoked, and audited independently.\n *\n * During rotation, multiple rows can exist per `project_id`:\n * the previous credential stays `active` until the new one has been\n * propagated to all runtimes, then flips to `revoked`.\n *\n * @namespace sys\n */\nexport const SysProjectCredential = ObjectSchema.create({\n name: 'sys_project_credential',\n label: 'Project Credential',\n pluralLabel: 'Project Credentials',\n icon: 'key',\n isSystem: true,\n description: 'Rotatable encrypted credentials for project databases.',\n titleFormat: '{id}',\n compactLayout: ['project_id', 'status', 'authorization', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'Credential ID',\n required: true,\n readonly: true,\n description: 'UUID of the credential.',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Creation timestamp.',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Last update timestamp.',\n }),\n\n project_id: Field.lookup('sys_project', {\n label: 'Project',\n required: true,\n description: 'Foreign key to sys_project.',\n }),\n\n secret_ciphertext: Field.textarea({\n label: 'Secret Ciphertext',\n required: true,\n description: 'Encrypted auth token or secret (never store plaintext).',\n }),\n\n encryption_key_id: Field.text({\n label: 'Encryption Key ID',\n required: true,\n maxLength: 255,\n description: 'KMS/encryption key ID that produced the ciphertext.',\n }),\n\n authorization: Field.select({\n label: 'Authorization',\n required: true,\n defaultValue: 'full_access',\n description: 'Authorization scope for this credential.',\n options: [\n { value: 'full_access', label: 'Full Access' },\n { value: 'read_only', label: 'Read Only' },\n ],\n }),\n\n status: Field.select({\n label: 'Status',\n required: true,\n defaultValue: 'active',\n description: 'Credential lifecycle status.',\n options: [\n { value: 'active', label: 'Active' },\n { value: 'rotating', label: 'Rotating' },\n { value: 'revoked', label: 'Revoked' },\n ],\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: false,\n description: 'Optional expiry — after this timestamp the credential must be rotated.',\n }),\n\n revoked_at: Field.datetime({\n label: 'Revoked At',\n required: false,\n description: 'Timestamp when the credential was revoked (null while active).',\n }),\n },\n\n indexes: [\n { fields: ['project_id'] },\n { fields: ['project_id', 'status'] },\n { fields: ['status'] },\n { fields: ['expires_at'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_app — Org-scoped catalog of apps across all projects in an organization.\n *\n * Mirrors per-project app metadata into the control-plane DB so the Studio\n * frontend can render a workspace-style \"all apps in this org\" view with a\n * single org-filtered query, without fanning out to every project DB.\n *\n * Kept thin on purpose: only the card-level fields (name, label, icon,\n * project_name, …) needed to render the catalog. The full app definition\n * remains authoritative in the project DB and is fetched on demand when the\n * user enters an app.\n *\n * Sync source: `AppCatalogService` listens for `app:registered` /\n * `app:unregistered` kernel hooks fired from project kernels (both\n * package-installed and user-created apps).\n *\n * **Stored in the Control Plane DB (not in project DBs).**\n *\n * @namespace sys\n */\nexport const SysApp = ObjectSchema.create({\n name: 'sys_app',\n label: 'App',\n pluralLabel: 'Apps',\n icon: 'layout-grid',\n isSystem: true,\n description: 'Org-scoped catalog of apps across all projects (sys_app).',\n titleFormat: '{label}',\n compactLayout: ['label', 'project_name', 'source', 'active'],\n\n fields: {\n id: Field.text({\n label: 'App Catalog ID',\n required: true,\n readonly: true,\n description: 'UUID of this catalog entry (stable, never reused).',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Creation timestamp (ISO-8601).',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Last update timestamp (ISO-8601).',\n }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n description:\n 'Foreign key to sys_organization. Drives tenant isolation — ' +\n 'ControlPlaneProxyDriver auto-injects this filter on all reads.',\n }),\n\n project_id: Field.lookup('sys_project', {\n label: 'Project',\n required: true,\n description: 'Foreign key to sys_project. The project this app lives in.',\n }),\n\n project_name: Field.text({\n label: 'Project Name',\n required: false,\n description:\n 'Denormalized project display name. Cached here so the catalog list ' +\n 'avoids a JOIN against sys_project for card rendering.',\n }),\n\n name: Field.text({\n label: 'App Name',\n required: true,\n description: 'Short, machine name of the app (snake_case). Unique within a project.',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: false,\n description: 'Human-readable display label shown on the catalog card.',\n }),\n\n icon: Field.text({\n label: 'Icon',\n required: false,\n description: 'Icon identifier (e.g. lucide name, emoji, or URL).',\n }),\n\n branding: Field.textarea({\n label: 'Branding',\n required: false,\n description:\n 'JSON-serialized branding subset (color, logo, …) used for catalog rendering.',\n }),\n\n is_default: Field.boolean({\n label: 'Is Default',\n required: false,\n defaultValue: false,\n description: 'Whether this is the default app for its project.',\n }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n description: 'Whether the app is currently enabled in its project kernel.',\n }),\n\n source: Field.select({\n label: 'Source',\n required: true,\n defaultValue: 'package',\n description: 'Where this app originates from.',\n options: [\n { value: 'package', label: 'Package' },\n { value: 'user', label: 'User' },\n ],\n }),\n\n package_id: Field.lookup('sys_package', {\n label: 'Package',\n required: false,\n description:\n 'Foreign key to sys_package when source = package. Null for user-created apps.',\n }),\n },\n\n indexes: [\n { fields: ['project_id', 'name'], unique: true },\n { fields: ['organization_id'] },\n { fields: ['project_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_package — Control Plane Package Registry\n *\n * One row per logical package (also called Solution in Power Platform,\n * Unlocked Package in Salesforce, Application in ServiceNow).\n * The package itself carries only identity and publishing metadata.\n * Actual content (objects, views, flows…) lives in sys_package_version.\n *\n * Addressable by the globally unique `manifest_id` (reverse-domain string).\n * The `manifest_id` is immutable once set — renaming a package requires\n * creating a new package entry.\n *\n * **This table lives in the Control Plane only.**\n *\n * See `docs/adr/0003-package-as-first-class-citizen.md` for the full rationale.\n *\n * @namespace sys\n */\nexport const SysPackage = ObjectSchema.create({\n name: 'sys_package',\n label: 'Package',\n pluralLabel: 'Packages',\n icon: 'package',\n isSystem: true,\n description: 'Control-plane registry of installable packages / solutions (sys_package).',\n titleFormat: '{display_name}',\n compactLayout: ['display_name', 'manifest_id', 'visibility', 'created_at'],\n\n fields: {\n id: Field.text({\n label: 'Package ID',\n required: true,\n readonly: true,\n description: 'UUID of the package (stable, never reused).',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Creation timestamp (ISO-8601).',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Last update timestamp (ISO-8601).',\n }),\n\n manifest_id: Field.text({\n label: 'Manifest ID',\n required: true,\n readonly: true,\n maxLength: 255,\n description:\n 'Globally unique reverse-domain package identifier (e.g. com.acme.crm). ' +\n 'Immutable once set. Used as the stable public key for dependency declarations.',\n }),\n\n owner_org_id: Field.lookup('sys_organization', {\n label: 'Owner Organization',\n required: true,\n description: 'Organization that owns and publishes this package.',\n }),\n\n display_name: Field.text({\n label: 'Display Name',\n required: true,\n maxLength: 128,\n description: 'Human-readable name shown in Studio and Marketplace.',\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: false,\n description: 'Short package description shown in search results and install dialogs (max 512 chars).',\n }),\n\n readme: Field.textarea({\n label: 'Readme',\n required: false,\n description: 'Long-form package documentation (markdown). Displayed on the Marketplace detail page.',\n }),\n\n visibility: Field.select({\n label: 'Visibility',\n required: true,\n defaultValue: 'private',\n description:\n 'Controls who can discover and install the package. ' +\n 'private = owner org only; org = all envs in owner org; marketplace = public registry.',\n options: [\n { value: 'private', label: 'Private' },\n { value: 'org', label: 'Organization' },\n { value: 'marketplace', label: 'Marketplace' },\n ],\n }),\n\n category: Field.text({\n label: 'Category',\n required: false,\n maxLength: 100,\n description: 'Primary category for Marketplace filtering (e.g. crm, hr, finance, devtools).',\n }),\n\n tags: Field.textarea({\n label: 'Tags',\n required: false,\n description: 'JSON-serialized array of search/filter tags (e.g. [\"salesforce\",\"sync\",\"crm\"]).',\n }),\n\n icon_url: Field.url({\n label: 'Icon URL',\n required: false,\n description: 'URL to the package icon image displayed in Studio and Marketplace.',\n }),\n\n homepage_url: Field.url({\n label: 'Homepage URL',\n required: false,\n description: 'URL to the package homepage or external documentation site.',\n }),\n\n license: Field.text({\n label: 'License',\n required: false,\n maxLength: 64,\n description: 'SPDX license identifier (e.g. MIT, Apache-2.0, proprietary).',\n }),\n\n created_by: Field.lookup('sys_user', {\n label: 'Created By',\n required: true,\n description: 'User that registered this package in the Control Plane.',\n }),\n },\n\n indexes: [\n { fields: ['manifest_id'], unique: true },\n { fields: ['owner_org_id'] },\n { fields: ['visibility'] },\n { fields: ['owner_org_id', 'visibility'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_package_version — Immutable Package Release Snapshot\n *\n * One row per versioned release of a package. Once `status` transitions\n * from `draft` to `published`, the `manifest_json` and `checksum` fields\n * are sealed and MUST NOT change.\n *\n * The triple `(package_id, version)` is UNIQUE — a package can only publish\n * each semver string once.\n *\n * Installing a package means pointing a `sys_package_installation` row at a\n * specific `sys_package_version` UUID. Upgrading swaps that pointer atomically.\n *\n * **This table lives in the Control Plane only.**\n *\n * See `docs/adr/0003-package-as-first-class-citizen.md` for the full rationale.\n *\n * @namespace sys\n */\nexport const SysPackageVersion = ObjectSchema.create({\n name: 'sys_package_version',\n label: 'Package Version',\n pluralLabel: 'Package Versions',\n icon: 'tag',\n isSystem: true,\n description: 'Immutable release snapshot of a package (sys_package_version).',\n titleFormat: '{package_id} v{version}',\n compactLayout: ['package_id', 'version', 'status', 'published_at'],\n\n fields: {\n id: Field.text({\n label: 'Version ID',\n required: true,\n readonly: true,\n description: 'UUID of this package version row (stable, never reused).',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Creation timestamp (ISO-8601).',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Last update timestamp (ISO-8601). Only modified while status is draft.',\n }),\n\n package_id: Field.lookup('sys_package', {\n label: 'Package',\n required: true,\n description: 'Foreign key to sys_package (the parent package).',\n }),\n\n version: Field.text({\n label: 'Version',\n required: true,\n maxLength: 64,\n description: 'Semantic version string (e.g. 1.2.3, 2.0.0-beta.1). Follows semver spec.',\n }),\n\n status: Field.select({\n label: 'Status',\n required: true,\n defaultValue: 'draft',\n description:\n 'Lifecycle status. draft = being authored, may be mutated. ' +\n 'published = immutable snapshot, installable in any environment. ' +\n 'deprecated = published but superseded; new installs blocked.',\n options: [\n { value: 'draft', label: 'Draft' },\n { value: 'published', label: 'Published' },\n { value: 'deprecated', label: 'Deprecated' },\n ],\n }),\n\n manifest_json: Field.textarea({\n label: 'Manifest JSON',\n required: false,\n description:\n 'Full package manifest serialized as JSON. Frozen on publish — ' +\n 'writing to this field after status = published is rejected by the service layer.',\n }),\n\n checksum: Field.text({\n label: 'Checksum',\n required: false,\n maxLength: 64,\n readonly: true,\n description: 'SHA-256 hex digest of manifest_json. Computed and set on publish. Used for tamper detection.',\n }),\n\n release_notes: Field.textarea({\n label: 'Release Notes',\n required: false,\n description: 'Human-readable changelog for this version (markdown). Optional.',\n }),\n\n min_platform_version: Field.text({\n label: 'Min Platform Version',\n required: false,\n maxLength: 32,\n description:\n 'Minimum ObjectStack platform version required to run this version ' +\n '(semver, e.g. 4.0.0). Denormalized from manifest_json for fast validation.',\n }),\n\n is_pre_release: Field.boolean({\n label: 'Pre-release',\n required: true,\n defaultValue: false,\n description:\n 'Whether this is a pre-release version (alpha, beta, rc). ' +\n 'Pre-release versions are not installed by default when resolving \"latest\".',\n }),\n\n published_at: Field.datetime({\n label: 'Published At',\n required: false,\n description: 'Timestamp when this version was published. Null while status is draft.',\n }),\n\n published_by: Field.lookup('sys_user', {\n label: 'Published By',\n required: false,\n description: 'User who published this version. Set on the draft → published transition.',\n }),\n\n created_by: Field.lookup('sys_user', {\n label: 'Created By',\n required: true,\n description: 'User that created this version row.',\n }),\n },\n\n indexes: [\n { fields: ['package_id', 'version'], unique: true },\n { fields: ['package_id'] },\n { fields: ['status'] },\n { fields: ['package_id', 'status'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_package_installation — Per-project package installation record.\n *\n * Models the pairing between a project and a specific, immutable package\n * version snapshot (`sys_package_version`). Only one version of a given package\n * may be active per project at a time (enforced by UNIQUE on\n * `(project_id, package_id)`).\n *\n * **Upgrade** = atomic UPDATE of `package_version_id` to a newer version UUID.\n * **Rollback** = atomic UPDATE of `package_version_id` to an older version UUID.\n * Version history is tracked via the sequence of `package_version_id` changes\n * on this row (and an optional sys_package_installation_history audit table).\n *\n * **Stored in the Control Plane DB (not in project DBs).**\n * Project DBs contain only business data rows — zero system tables.\n *\n * See `docs/adr/0003-package-as-first-class-citizen.md` for the full rationale.\n *\n * @namespace sys\n */\nexport const SysPackageInstallation = ObjectSchema.create({\n name: 'sys_package_installation',\n label: 'Package Installation',\n pluralLabel: 'Package Installations',\n icon: 'package',\n isSystem: true,\n description: 'Per-project package installation registry (sys_package_installation).',\n titleFormat: '{package_id} @ {project_id}',\n compactLayout: ['package_version_id', 'project_id', 'status', 'installed_at'],\n\n fields: {\n id: Field.text({\n label: 'Installation ID',\n required: true,\n readonly: true,\n description: 'UUID of this installation record (stable, never reused).',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Creation timestamp (ISO-8601).',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n description: 'Last update timestamp — changes on upgrade, rollback, enable/disable (ISO-8601).',\n }),\n\n project_id: Field.lookup('sys_project', {\n label: 'Project',\n required: true,\n description: 'Foreign key to sys_project. The project that owns this installation.',\n }),\n\n package_version_id: Field.lookup('sys_package_version', {\n label: 'Package Version',\n required: true,\n description:\n 'Foreign key to sys_package_version. The specific, immutable release snapshot ' +\n 'currently installed in this project. Upgrading = swapping this field to a newer ' +\n 'version. Rollback = swapping to an older version.',\n }),\n\n package_id: Field.lookup('sys_package', {\n label: 'Package',\n required: true,\n description:\n 'Foreign key to sys_package. Denormalized from the linked package_version row ' +\n 'at install time to enforce the UNIQUE (project_id, package_id) constraint without a JOIN.',\n }),\n\n status: Field.select({\n label: 'Status',\n required: true,\n defaultValue: 'installed',\n description: 'Current lifecycle status of this installation within the project.',\n options: [\n { value: 'installed', label: 'Installed' },\n { value: 'installing', label: 'Installing' },\n { value: 'upgrading', label: 'Upgrading' },\n { value: 'disabled', label: 'Disabled' },\n { value: 'error', label: 'Error' },\n ],\n }),\n\n enabled: Field.boolean({\n label: 'Enabled',\n required: true,\n defaultValue: true,\n description:\n 'Whether the package metadata is actively loaded into this project. ' +\n 'Disabled packages are installed but their schema is not visible to the runtime.',\n }),\n\n settings: Field.textarea({\n label: 'Settings',\n required: false,\n description:\n 'JSON-serialized per-installation configuration overrides. ' +\n 'Keys mirror the package manifest configurationSchema.properties.',\n }),\n\n installed_at: Field.datetime({\n label: 'Installed At',\n required: true,\n defaultValue: 'NOW()',\n description: 'Timestamp when this installation was first created (ISO-8601).',\n }),\n\n installed_by: Field.lookup('sys_user', {\n label: 'Installed By',\n required: false,\n description: 'User who performed the initial install. Null for system-automated installs.',\n }),\n\n error_message: Field.textarea({\n label: 'Error Message',\n required: false,\n description: 'Error details when status is error. Cleared on next successful install/upgrade.',\n }),\n },\n\n indexes: [\n { fields: ['project_id', 'package_id'], unique: true },\n { fields: ['project_id'] },\n { fields: ['package_id'] },\n { fields: ['package_version_id'] },\n { fields: ['status'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_metadata — System Metadata Object\n *\n * Canonical ObjectStack object definition for the metadata persistence table.\n * Stores all platform-scope and user-scope metadata records (Objects, Views,\n * Flows, etc.) using the MetadataRecordSchema envelope.\n *\n * This is a system object (isSystem: true) — protected from deletion and\n * automatically provisioned by the DatabaseLoader on first use.\n *\n * @see MetadataRecordSchema in metadata-persistence.zod.ts\n */\nexport const SysMetadataObject = ObjectSchema.create({\n name: 'sys_metadata',\n label: 'System Metadata',\n pluralLabel: 'System Metadata',\n icon: 'settings',\n isSystem: true,\n description: 'Stores platform and user-scope metadata records (objects, views, flows, etc.)',\n\n fields: {\n /** Primary Key (UUID) */\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n /** Machine name — unique identifier used in code references */\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n }),\n\n /** Metadata type (e.g. \"object\", \"view\", \"flow\") */\n type: Field.text({\n label: 'Metadata Type',\n required: true,\n searchable: true,\n maxLength: 100,\n }),\n\n /** Namespace / module grouping (e.g. \"crm\", \"core\") */\n namespace: Field.text({\n label: 'Namespace',\n required: false,\n defaultValue: 'default',\n maxLength: 100,\n }),\n\n /** Package that owns/delivered this metadata (legacy string identifier, kept for compat) */\n package_id: Field.text({\n label: 'Package ID',\n required: false,\n maxLength: 255,\n description: 'Legacy package manifest ID string. Use package_version_id for new records.',\n }),\n\n /**\n * FK → sys_package_version (UUID). Set for metadata that belongs to a specific\n * package release snapshot. NULL = platform-built-in or environment override.\n */\n package_version_id: Field.lookup('sys_package_version', {\n label: 'Package Version',\n required: false,\n description:\n 'Foreign key to sys_package_version (UUID). Null = platform-built-in or env-level override.',\n }),\n\n /** Who manages this record: package, platform, or user */\n managed_by: Field.select(['package', 'platform', 'user'], {\n label: 'Managed By',\n required: false,\n }),\n\n /** Scope: system (code), platform (admin DB), user (personal DB) */\n scope: Field.select(['system', 'platform', 'user'], {\n label: 'Scope',\n required: true,\n defaultValue: 'platform',\n }),\n\n /** JSON payload — the actual metadata configuration */\n metadata: Field.textarea({\n label: 'Metadata',\n required: true,\n description: 'JSON-serialized metadata payload',\n }),\n\n /** Parent metadata name for extension/override */\n extends: Field.text({\n label: 'Extends',\n required: false,\n maxLength: 255,\n }),\n\n /** Merge strategy when extending parent metadata */\n strategy: Field.select(['merge', 'replace'], {\n label: 'Strategy',\n required: false,\n defaultValue: 'merge',\n }),\n\n /** Owner user ID (for user-scope items) */\n owner: Field.text({\n label: 'Owner',\n required: false,\n maxLength: 255,\n }),\n\n /** Lifecycle state */\n state: Field.select(['draft', 'active', 'archived', 'deprecated'], {\n label: 'State',\n required: false,\n defaultValue: 'active',\n }),\n\n /** Organization ID for multi-tenant isolation */\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: false,\n description: 'Organization for multi-tenant isolation.',\n }),\n\n /** Project ID — null = platform-global, set = project-scoped */\n project_id: Field.lookup('sys_project', {\n label: 'Project',\n required: false,\n description: 'Foreign key to sys_project (UUID). Null = platform-global.',\n }),\n\n /** Version number for optimistic concurrency */\n version: Field.number({\n label: 'Version',\n required: false,\n defaultValue: 1,\n }),\n\n /** Content checksum for change detection */\n checksum: Field.text({\n label: 'Checksum',\n required: false,\n maxLength: 64,\n }),\n\n /** Origin of this metadata record */\n source: Field.select(['filesystem', 'database', 'api', 'migration'], {\n label: 'Source',\n required: false,\n }),\n\n /** Classification tags (JSON array) */\n tags: Field.textarea({\n label: 'Tags',\n required: false,\n description: 'JSON-serialized array of classification tags',\n }),\n\n /** Audit fields */\n created_by: Field.lookup('sys_user', {\n label: 'Created By',\n required: false,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: false,\n readonly: true,\n }),\n\n updated_by: Field.lookup('sys_user', {\n label: 'Updated By',\n required: false,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n }),\n },\n\n indexes: [\n { fields: ['type', 'name', 'project_id'], unique: true },\n { fields: ['type', 'scope'] },\n { fields: ['organization_id'] },\n { fields: ['project_id'] },\n { fields: ['package_version_id'] },\n { fields: ['state'] },\n { fields: ['namespace'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_metadata_history — Metadata Version History Object\n *\n * Stores historical snapshots of metadata changes for version tracking,\n * audit trail, and rollback capabilities.\n *\n * This is a system object (isSystem: true) — protected from deletion and\n * automatically provisioned when metadata history is enabled.\n *\n * Each record represents a single version snapshot of a metadata item,\n * created whenever the metadata is modified, published, or reverted.\n *\n * @see MetadataHistoryRecordSchema in metadata-persistence.zod.ts\n */\nexport const SysMetadataHistoryObject = ObjectSchema.create({\n name: 'sys_metadata_history',\n label: 'Metadata History',\n pluralLabel: 'Metadata History',\n icon: 'history',\n isSystem: true,\n description: 'Version history and audit trail for metadata changes',\n\n fields: {\n /** Primary Key (UUID) */\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n /** Foreign key to sys_metadata.id */\n metadata_id: Field.lookup('sys_metadata', {\n label: 'Metadata',\n required: true,\n readonly: true,\n }),\n\n /** Machine name (denormalized for easier querying) */\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n readonly: true,\n maxLength: 255,\n }),\n\n /** Metadata type (denormalized for easier querying) */\n type: Field.text({\n label: 'Metadata Type',\n required: true,\n searchable: true,\n readonly: true,\n maxLength: 100,\n }),\n\n /** Version number at this snapshot */\n version: Field.number({\n label: 'Version',\n required: true,\n readonly: true,\n }),\n\n /** Type of operation that created this history entry */\n operation_type: Field.select(['create', 'update', 'publish', 'revert', 'delete'], {\n label: 'Operation Type',\n required: true,\n readonly: true,\n }),\n\n /** Historical metadata snapshot (JSON payload) */\n metadata: Field.textarea({\n label: 'Metadata',\n required: true,\n readonly: true,\n description: 'JSON-serialized metadata snapshot at this version',\n }),\n\n /** SHA-256 checksum of metadata content */\n checksum: Field.text({\n label: 'Checksum',\n required: true,\n readonly: true,\n maxLength: 64,\n }),\n\n /** Checksum of the previous version */\n previous_checksum: Field.text({\n label: 'Previous Checksum',\n required: false,\n readonly: true,\n maxLength: 64,\n }),\n\n /** Human-readable description of changes */\n change_note: Field.textarea({\n label: 'Change Note',\n required: false,\n readonly: true,\n description: 'Description of what changed in this version',\n }),\n\n /** Organization ID for multi-tenant isolation */\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: false,\n readonly: true,\n description: 'Organization for multi-tenant isolation.',\n }),\n\n /** Environment ID — null = platform-global, set = env-scoped */\n project_id: Field.text({\n label: 'Environment ID',\n required: false,\n readonly: true,\n maxLength: 255,\n description: 'Scopes this history entry to a specific environment.',\n }),\n\n /** User who made this change */\n recorded_by: Field.lookup('sys_user', {\n label: 'Recorded By',\n required: false,\n readonly: true,\n }),\n\n /** When was this version recorded */\n recorded_at: Field.datetime({\n label: 'Recorded At',\n required: true,\n readonly: true,\n }),\n },\n\n indexes: [\n { fields: ['metadata_id', 'version'], unique: true },\n { fields: ['metadata_id', 'recorded_at'] },\n { fields: ['type', 'name'] },\n { fields: ['recorded_at'] },\n { fields: ['operation_type'] },\n { fields: ['organization_id'] },\n { fields: ['project_id'] },\n ],\n\n enable: {\n trackHistory: false, // Don't track history of history records\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list'], // Read-only via API\n trash: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_object Object Definition\n *\n * Represents object metadata as queryable data.\n * Allows Studio to browse/filter/search object definitions using the Object Protocol.\n * Registered without a namespace, so FQN = `sys_object` and table = `sys_object`.\n */\nexport const SysObject = ObjectSchema.create({\n name: 'sys_object',\n label: 'Object Definition',\n pluralLabel: 'Object Definitions',\n description: 'Metadata for business objects',\n icon: 'database',\n isSystem: true,\n\n fields: {\n // Core Identity\n name: Field.text({\n label: 'Object Name',\n required: true,\n maxLength: 255,\n description: 'Machine name (snake_case)',\n }),\n\n project_id: Field.text({\n label: 'Environment ID',\n maxLength: 255,\n description: 'Project/environment scope — null = control-plane global',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: true,\n maxLength: 255,\n }),\n\n plural_label: Field.text({\n label: 'Plural Label',\n maxLength: 255,\n }),\n\n description: Field.textarea({\n label: 'Description',\n }),\n\n icon: Field.text({\n label: 'Icon',\n maxLength: 100,\n }),\n\n // Classification\n namespace: Field.text({\n label: 'Namespace',\n maxLength: 100,\n description: 'Logical domain namespace',\n }),\n\n tags: Field.text({\n label: 'Tags',\n description: 'Comma-separated categorization tags',\n }),\n\n active: Field.boolean({\n label: 'Active',\n defaultValue: true,\n }),\n\n is_system: Field.boolean({\n label: 'System Object',\n defaultValue: false,\n description: 'Protected from deletion',\n }),\n\n abstract: Field.boolean({\n label: 'Abstract',\n defaultValue: false,\n description: 'Cannot be instantiated',\n }),\n\n // Storage\n datasource: Field.text({\n label: 'Datasource',\n maxLength: 100,\n defaultValue: 'default',\n }),\n\n table_name: Field.text({\n label: 'Table Name',\n maxLength: 255,\n description: 'Physical table/collection name',\n }),\n\n // Complex Data (stored as JSON)\n fields_json: Field.textarea({\n label: 'Fields (JSON)',\n description: 'Field definitions as JSON',\n }),\n\n indexes_json: Field.textarea({\n label: 'Indexes (JSON)',\n description: 'Index definitions as JSON',\n }),\n\n validations_json: Field.textarea({\n label: 'Validations (JSON)',\n description: 'Validation rules as JSON',\n }),\n\n state_machines_json: Field.textarea({\n label: 'State Machines (JSON)',\n description: 'State machine definitions as JSON',\n }),\n\n capabilities_json: Field.textarea({\n label: 'Capabilities (JSON)',\n description: 'Enabled system features as JSON',\n }),\n\n // Denormalized Fields\n field_count: Field.number({\n label: 'Field Count',\n description: 'Number of fields defined',\n }),\n\n // Display\n display_name_field: Field.text({\n label: 'Display Name Field',\n maxLength: 100,\n description: 'Field to use as record display name',\n }),\n\n title_format: Field.text({\n label: 'Title Format',\n maxLength: 255,\n description: 'Title expression template',\n }),\n\n compact_layout: Field.text({\n label: 'Compact Layout',\n description: 'Comma-separated field names for cards',\n }),\n\n // Capabilities\n track_history: Field.boolean({\n label: 'Track History',\n defaultValue: false,\n }),\n\n searchable: Field.boolean({\n label: 'Searchable',\n defaultValue: true,\n }),\n\n api_enabled: Field.boolean({\n label: 'API Enabled',\n defaultValue: true,\n }),\n\n files: Field.boolean({\n label: 'Files',\n defaultValue: false,\n }),\n\n feeds: Field.boolean({\n label: 'Feeds',\n defaultValue: false,\n }),\n\n activities: Field.boolean({\n label: 'Activities',\n defaultValue: false,\n }),\n\n trash: Field.boolean({\n label: 'Trash',\n defaultValue: true,\n }),\n\n mru: Field.boolean({\n label: 'MRU',\n defaultValue: true,\n }),\n\n clone: Field.boolean({\n label: 'Clone',\n defaultValue: true,\n }),\n\n // Package Management\n package_id: Field.lookup('sys_package', {\n label: 'Package',\n }),\n\n managed_by: Field.select({\n label: 'Managed By',\n options: [\n { value: 'package', label: 'Package' },\n { value: 'platform', label: 'Platform' },\n { value: 'user', label: 'User' },\n ],\n }),\n\n // Audit\n created_by: Field.lookup('sys_user', { label: 'Created By' }),\n created_at: Field.datetime({ label: 'Created At' }),\n updated_by: Field.lookup('sys_user', { label: 'Updated By' }),\n updated_at: Field.datetime({ label: 'Updated At' }),\n },\n\n indexes: [\n { fields: ['name', 'project_id'], unique: true },\n { fields: ['project_id'] },\n { fields: ['namespace'] },\n { fields: ['package_id'] },\n { fields: ['active'] },\n { fields: ['is_system'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_view Object Definition\n *\n * Represents view metadata as queryable data.\n * Registered without a namespace, so FQN = `sys_view` and table = `sys_view`.\n */\nexport const SysView = ObjectSchema.create({\n name: 'sys_view',\n label: 'View Definition',\n pluralLabel: 'View Definitions',\n description: 'Metadata for UI views (grid, kanban, calendar, etc.)',\n icon: 'layout-grid',\n isSystem: true,\n\n fields: {\n // Core Identity\n name: Field.text({\n label: 'View Name',\n required: true,\n maxLength: 255,\n }),\n\n project_id: Field.text({\n label: 'Environment ID',\n maxLength: 255,\n description: 'Project/environment scope — null = control-plane global',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: true,\n maxLength: 255,\n }),\n\n description: Field.textarea({\n label: 'Description',\n }),\n\n // Reference to Object\n object_name: Field.text({\n label: 'Object Name',\n required: true,\n maxLength: 255,\n description: 'The object this view displays',\n }),\n\n // View Type\n view_type: Field.select({\n label: 'View Type',\n required: true,\n options: [\n { value: 'grid', label: 'Grid' },\n { value: 'kanban', label: 'Kanban' },\n { value: 'calendar', label: 'Calendar' },\n { value: 'gantt', label: 'Gantt' },\n { value: 'form', label: 'Form' },\n { value: 'timeline', label: 'Timeline' },\n ],\n }),\n\n // Complex Configuration\n columns_json: Field.textarea({\n label: 'Columns (JSON)',\n description: 'Column definitions as JSON',\n }),\n\n filters_json: Field.textarea({\n label: 'Filters (JSON)',\n description: 'Filter definitions as JSON',\n }),\n\n sort_json: Field.textarea({\n label: 'Sort (JSON)',\n description: 'Sort configuration as JSON',\n }),\n\n config_json: Field.textarea({\n label: 'Configuration (JSON)',\n description: 'View-specific configuration as JSON',\n }),\n\n // Display Options\n page_size: Field.number({\n label: 'Page Size',\n defaultValue: 25,\n min: 1,\n max: 200,\n }),\n\n show_search: Field.boolean({\n label: 'Show Search',\n defaultValue: true,\n }),\n\n show_filters: Field.boolean({\n label: 'Show Filters',\n defaultValue: true,\n }),\n\n // Classification\n namespace: Field.text({\n label: 'Namespace',\n maxLength: 100,\n }),\n\n // Package Management\n package_id: Field.lookup('sys_package', {\n label: 'Package',\n }),\n\n managed_by: Field.select({\n label: 'Managed By',\n options: [\n { value: 'package', label: 'Package' },\n { value: 'platform', label: 'Platform' },\n { value: 'user', label: 'User' },\n ],\n }),\n\n // Audit\n created_by: Field.lookup('sys_user', { label: 'Created By' }),\n created_at: Field.datetime({ label: 'Created At' }),\n updated_by: Field.lookup('sys_user', { label: 'Updated By' }),\n updated_at: Field.datetime({ label: 'Updated At' }),\n },\n\n indexes: [\n { fields: ['name', 'project_id'], unique: true },\n { fields: ['project_id'] },\n { fields: ['object_name'] },\n { fields: ['view_type'] },\n { fields: ['namespace'] },\n { fields: ['package_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_agent Object Definition\n *\n * Represents AI agent metadata as queryable data.\n * Registered without a namespace, so FQN = `sys_agent` and table = `sys_agent`.\n */\nexport const SysAgent = ObjectSchema.create({\n name: 'sys_agent',\n label: 'AI Agent',\n pluralLabel: 'AI Agents',\n description: 'AI agent definitions',\n icon: 'bot',\n isSystem: true,\n\n fields: {\n // Core Identity\n name: Field.text({\n label: 'Agent Name',\n required: true,\n maxLength: 255,\n }),\n\n project_id: Field.text({\n label: 'Environment ID',\n maxLength: 255,\n description: 'Project/environment scope — null = control-plane global',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: true,\n maxLength: 255,\n }),\n\n description: Field.textarea({\n label: 'Description',\n }),\n\n // Agent Type\n agent_type: Field.select({\n label: 'Agent Type',\n options: [\n { value: 'conversational', label: 'Conversational' },\n { value: 'task', label: 'Task-Based' },\n { value: 'analytical', label: 'Analytical' },\n { value: 'workflow', label: 'Workflow' },\n ],\n }),\n\n // Model Configuration\n model: Field.text({\n label: 'Model ID',\n maxLength: 255,\n description: 'AI model identifier',\n }),\n\n temperature: Field.number({\n label: 'Temperature',\n min: 0,\n max: 2,\n defaultValue: 0.7,\n }),\n\n max_tokens: Field.number({\n label: 'Max Tokens',\n min: 1,\n max: 100000,\n }),\n\n top_p: Field.number({\n label: 'Top P',\n min: 0,\n max: 1,\n }),\n\n // System Prompt\n system_prompt: Field.textarea({\n label: 'System Prompt',\n description: 'Instructions for the AI agent',\n }),\n\n // Tools Configuration\n tools_json: Field.textarea({\n label: 'Tools (JSON)',\n description: 'Available tools as JSON array',\n }),\n\n // Skills Configuration\n skills_json: Field.textarea({\n label: 'Skills (JSON)',\n description: 'Available skills as JSON array',\n }),\n\n // Memory Configuration\n memory_enabled: Field.boolean({\n label: 'Memory Enabled',\n defaultValue: false,\n }),\n\n memory_window: Field.number({\n label: 'Memory Window',\n description: 'Number of conversation turns to remember',\n defaultValue: 10,\n }),\n\n // Classification\n namespace: Field.text({\n label: 'Namespace',\n maxLength: 100,\n }),\n\n // Package Management\n package_id: Field.lookup('sys_package', {\n label: 'Package',\n }),\n\n managed_by: Field.select({\n label: 'Managed By',\n options: [\n { value: 'package', label: 'Package' },\n { value: 'platform', label: 'Platform' },\n { value: 'user', label: 'User' },\n ],\n }),\n\n // Audit\n created_by: Field.lookup('sys_user', { label: 'Created By' }),\n created_at: Field.datetime({ label: 'Created At' }),\n updated_by: Field.lookup('sys_user', { label: 'Updated By' }),\n updated_at: Field.datetime({ label: 'Updated At' }),\n },\n\n indexes: [\n { fields: ['name', 'project_id'], unique: true },\n { fields: ['project_id'] },\n { fields: ['agent_type'] },\n { fields: ['namespace'] },\n { fields: ['package_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_tool Object Definition\n *\n * Represents AI tool metadata as queryable data.\n * Registered without a namespace, so FQN = `sys_tool` and table = `sys_tool`.\n */\nexport const SysTool = ObjectSchema.create({\n name: 'sys_tool',\n label: 'AI Tool',\n pluralLabel: 'AI Tools',\n description: 'AI tool definitions',\n icon: 'wrench',\n isSystem: true,\n\n fields: {\n // Core Identity\n name: Field.text({\n label: 'Tool Name',\n required: true,\n maxLength: 255,\n }),\n\n project_id: Field.text({\n label: 'Environment ID',\n maxLength: 255,\n description: 'Project/environment scope — null = control-plane global',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: true,\n maxLength: 255,\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: true,\n }),\n\n // Parameters\n parameters_json: Field.textarea({\n label: 'Parameters (JSON)',\n description: 'Tool parameter schema as JSON',\n }),\n\n // Implementation\n handler_code: Field.textarea({\n label: 'Handler Code',\n description: 'Tool implementation code',\n }),\n\n // Classification\n namespace: Field.text({\n label: 'Namespace',\n maxLength: 100,\n }),\n\n // Package Management\n package_id: Field.lookup('sys_package', {\n label: 'Package',\n }),\n\n managed_by: Field.select({\n label: 'Managed By',\n options: [\n { value: 'package', label: 'Package' },\n { value: 'platform', label: 'Platform' },\n { value: 'user', label: 'User' },\n ],\n }),\n\n // Audit\n created_by: Field.lookup('sys_user', { label: 'Created By' }),\n created_at: Field.datetime({ label: 'Created At' }),\n updated_by: Field.lookup('sys_user', { label: 'Updated By' }),\n updated_at: Field.datetime({ label: 'Updated At' }),\n },\n\n indexes: [\n { fields: ['name', 'project_id'], unique: true },\n { fields: ['project_id'] },\n { fields: ['namespace'] },\n { fields: ['package_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_flow Object Definition\n *\n * Represents flow metadata as queryable data.\n * Registered without a namespace, so FQN = `sys_flow` and table = `sys_flow`.\n */\nexport const SysFlow = ObjectSchema.create({\n name: 'sys_flow',\n label: 'Flow',\n pluralLabel: 'Flows',\n description: 'Visual logic flow definitions',\n icon: 'workflow',\n isSystem: true,\n\n fields: {\n // Core Identity\n name: Field.text({\n label: 'Flow Name',\n required: true,\n maxLength: 255,\n }),\n\n project_id: Field.text({\n label: 'Environment ID',\n maxLength: 255,\n description: 'Project/environment scope — null = control-plane global',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: true,\n maxLength: 255,\n }),\n\n description: Field.textarea({\n label: 'Description',\n }),\n\n // Flow Type\n flow_type: Field.select({\n label: 'Flow Type',\n required: true,\n options: [\n { value: 'autolaunched', label: 'Autolaunched' },\n { value: 'screen', label: 'Screen Flow' },\n { value: 'schedule', label: 'Scheduled' },\n { value: 'trigger', label: 'Trigger-Based' },\n ],\n }),\n\n // Flow Definition\n nodes_json: Field.textarea({\n label: 'Nodes (JSON)',\n description: 'Flow nodes as JSON',\n }),\n\n edges_json: Field.textarea({\n label: 'Edges (JSON)',\n description: 'Flow edges as JSON',\n }),\n\n variables_json: Field.textarea({\n label: 'Variables (JSON)',\n description: 'Flow variables as JSON',\n }),\n\n // Trigger Configuration\n trigger_type: Field.select({\n label: 'Trigger Type',\n options: [\n { value: 'record_created', label: 'Record Created' },\n { value: 'record_updated', label: 'Record Updated' },\n { value: 'record_deleted', label: 'Record Deleted' },\n { value: 'schedule', label: 'Schedule' },\n { value: 'platform_event', label: 'Platform Event' },\n ],\n }),\n\n trigger_object: Field.text({\n label: 'Trigger Object',\n maxLength: 255,\n }),\n\n // Status\n active: Field.boolean({\n label: 'Active',\n defaultValue: false,\n }),\n\n // Classification\n namespace: Field.text({\n label: 'Namespace',\n maxLength: 100,\n }),\n\n // Package Management\n package_id: Field.lookup('sys_package', {\n label: 'Package',\n }),\n\n managed_by: Field.select({\n label: 'Managed By',\n options: [\n { value: 'package', label: 'Package' },\n { value: 'platform', label: 'Platform' },\n { value: 'user', label: 'User' },\n ],\n }),\n\n // Audit\n created_by: Field.lookup('sys_user', { label: 'Created By' }),\n created_at: Field.datetime({ label: 'Created At' }),\n updated_by: Field.lookup('sys_user', { label: 'Updated By' }),\n updated_at: Field.datetime({ label: 'Updated At' }),\n },\n\n indexes: [\n { fields: ['name', 'project_id'], unique: true },\n { fields: ['project_id'] },\n { fields: ['flow_type'] },\n { fields: ['active'] },\n { fields: ['namespace'] },\n { fields: ['package_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n trash: true,\n mru: true,\n },\n});\n","// 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/identity/sys-user.object.ts","../src/identity/sys-session.object.ts","../src/identity/sys-account.object.ts","../src/identity/sys-verification.object.ts","../src/identity/sys-organization.object.ts","../src/identity/sys-member.object.ts","../src/identity/sys-invitation.object.ts","../src/identity/sys-team.object.ts","../src/identity/sys-team-member.object.ts","../src/identity/sys-department.object.ts","../src/identity/sys-department-member.object.ts","../src/identity/sys-api-key.object.ts","../src/identity/sys-two-factor.object.ts","../src/identity/sys-device-code.object.ts","../src/identity/sys-user-preference.object.ts","../src/identity/sys-oauth-application.object.ts","../src/identity/sys-oauth-access-token.object.ts","../src/identity/sys-oauth-refresh-token.object.ts","../src/identity/sys-oauth-consent.object.ts","../src/identity/sys-jwks.object.ts","../src/security/sys-role.object.ts","../src/security/sys-permission-set.object.ts","../src/security/sys-user-permission-set.object.ts","../src/security/sys-role-permission-set.object.ts","../src/security/sys-record-share.object.ts","../src/security/sys-sharing-rule.object.ts","../src/security/default-permission-sets.ts","../src/audit/sys-audit-log.object.ts","../src/audit/sys-presence.object.ts","../src/audit/sys-activity.object.ts","../src/audit/sys-comment.object.ts","../src/audit/sys-attachment.object.ts","../src/audit/sys-notification.object.ts","../src/audit/sys-email.object.ts","../src/audit/sys-email-template.object.ts","../src/audit/sys-saved-report.object.ts","../src/audit/sys-report-schedule.object.ts","../src/audit/sys-approval-process.object.ts","../src/audit/sys-approval-request.object.ts","../src/audit/sys-approval-action.object.ts","../src/audit/sys-job.object.ts","../src/audit/sys-job-run.object.ts","../src/audit/sys-job-queue.object.ts","../src/integration/sys-webhook.object.ts","../src/metadata/sys-metadata.object.ts","../src/metadata/sys-metadata-history.object.ts","../src/system/sys-setting.object.ts","../src/system/sys-secret.object.ts","../src/system/sys-setting-audit.object.ts","../src/apps/setup.app.ts","../src/apps/dashboards/system_overview.dashboard.ts","../src/apps/dashboards/security_overview.dashboard.ts"],"names":["ObjectSchema","Field","Dashboard"],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_user — System User Object\n *\n * Canonical user identity record for the ObjectStack platform.\n * Backed by better-auth's `user` model with ObjectStack field conventions.\n *\n * Field order drives default list/form layout: identity first, then profile,\n * then system-managed audit fields (hidden from create/edit forms).\n *\n * @namespace sys\n */\nexport const SysUser = ObjectSchema.create({\n name: 'sys_user',\n label: 'User',\n pluralLabel: 'Users',\n icon: 'user',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'User accounts for authentication',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'email', 'email_verified'],\n\n // Custom actions — generic CRUD is suppressed because user accounts are\n // managed by better-auth, but we still need first-class affordances for\n // common operations. Each action delegates to a Console-side named script\n // registered on the ActionRunner (see objectui `AppContent.tsx`). Adding\n // new affordances (reset password, revoke session, …) is now a pure\n // schema + script-registration change — no per-view code.\n actions: [\n {\n name: 'invite_user',\n label: 'Invite User',\n icon: 'user-plus',\n variant: 'primary',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/organization/invite-member',\n successMessage: 'Invitation sent',\n refreshAfter: true,\n params: [\n { field: 'email', required: true },\n { field: 'role', objectOverride: 'sys_member', required: true },\n ],\n },\n\n // ── Platform admin operations (require better-auth `admin` plugin) ─\n //\n // These actions hit /api/v1/auth/admin/* endpoints that are only\n // wired when `auth.plugins.admin` is enabled. When the plugin is\n // disabled the actions still render (schema is static) but server\n // returns 404. UI surfaces them under the row menu so platform\n // admins can manage accounts without dropping to SQL or\n // a custom Setup wizard.\n {\n name: 'ban_user',\n label: 'Ban User',\n icon: 'ban',\n variant: 'danger',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/admin/ban-user',\n recordIdParam: 'userId',\n successMessage: 'User banned',\n refreshAfter: true,\n confirmText: 'Ban this user? They will be signed out and unable to sign in until unbanned.',\n params: [\n { name: 'banReason', label: 'Ban Reason', type: 'text', required: false },\n ],\n },\n {\n name: 'unban_user',\n label: 'Unban User',\n icon: 'check-circle-2',\n variant: 'secondary',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/admin/unban-user',\n recordIdParam: 'userId',\n successMessage: 'User unbanned',\n refreshAfter: true,\n },\n {\n name: 'set_user_password',\n label: 'Set Password',\n icon: 'key-round',\n variant: 'secondary',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/admin/set-user-password',\n recordIdParam: 'userId',\n successMessage: 'Password updated',\n refreshAfter: false,\n params: [\n { name: 'newPassword', label: 'New Password', type: 'text', required: true },\n ],\n },\n {\n name: 'set_user_role',\n label: 'Set Platform Role',\n icon: 'shield-check',\n variant: 'secondary',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/admin/set-role',\n recordIdParam: 'userId',\n successMessage: 'Role updated',\n refreshAfter: true,\n params: [\n { name: 'role', label: 'Platform Role', type: 'text', required: true },\n ],\n },\n {\n name: 'impersonate_user',\n label: 'Impersonate User',\n icon: 'user-cog',\n variant: 'secondary',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/admin/impersonate-user',\n recordIdParam: 'userId',\n successMessage: 'Now impersonating user',\n refreshAfter: true,\n confirmText: 'Start an impersonation session for this user? Use only for legitimate support cases — actions will be logged.',\n },\n ],\n\n listViews: {\n all_users: {\n type: 'grid',\n name: 'all_users',\n label: 'All Users',\n data: { provider: 'object', object: 'sys_user' },\n columns: ['name', 'email', 'email_verified', 'two_factor_enabled', 'created_at'],\n sort: [{ field: 'name', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n unverified: {\n type: 'grid',\n name: 'unverified',\n label: 'Unverified',\n data: { provider: 'object', object: 'sys_user' },\n columns: ['name', 'email', 'created_at'],\n filter: [{ field: 'email_verified', operator: 'equals', value: false }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n two_factor: {\n type: 'grid',\n name: 'two_factor',\n label: '2FA Enabled',\n data: { provider: 'object', object: 'sys_user' },\n columns: ['name', 'email', 'two_factor_enabled', 'updated_at'],\n filter: [{ field: 'two_factor_enabled', operator: 'equals', value: true }],\n sort: [{ field: 'name', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n banned: {\n type: 'grid',\n name: 'banned',\n label: 'Banned',\n data: { provider: 'object', object: 'sys_user' },\n columns: ['name', 'email', 'banned', 'ban_reason', 'ban_expires'],\n filter: [{ field: 'banned', operator: 'equals', value: true }],\n sort: [{ field: 'updated_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n // ── Identity (primary business fields) ───────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n email: Field.email({\n label: 'Email',\n required: true,\n searchable: true,\n group: 'Identity',\n }),\n\n email_verified: Field.boolean({\n label: 'Email Verified',\n defaultValue: false,\n group: 'Identity',\n }),\n\n two_factor_enabled: Field.boolean({\n label: 'Two-Factor Enabled',\n defaultValue: false,\n group: 'Identity',\n description: 'Whether two-factor authentication is enabled for this user. Maintained by the better-auth `twoFactor` plugin.',\n }),\n\n // ── Admin (managed by better-auth `admin` plugin when enabled) ───\n role: Field.text({\n label: 'Platform Role',\n required: false,\n maxLength: 64,\n group: 'Admin',\n description: 'Platform-level role (admin, user, …). Set via the Set Platform Role action.',\n }),\n\n banned: Field.boolean({\n label: 'Banned',\n defaultValue: false,\n group: 'Admin',\n description: 'When true, the user cannot sign in. Toggle via Ban User / Unban User actions.',\n }),\n\n ban_reason: Field.text({\n label: 'Ban Reason',\n required: false,\n maxLength: 255,\n group: 'Admin',\n }),\n\n ban_expires: Field.datetime({\n label: 'Ban Expires',\n required: false,\n group: 'Admin',\n description: 'When set, the ban auto-clears at this time.',\n }),\n\n // ── Profile ──────────────────────────────────────────────────\n image: Field.url({\n label: 'Profile Image',\n required: false,\n group: 'Profile',\n }),\n\n // ── System (auto-managed, hidden from create/edit forms) ─────\n id: Field.text({\n label: 'User ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['email'], unique: true },\n { fields: ['created_at'], unique: false },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: true,\n },\n\n validations: [\n {\n name: 'email_unique',\n type: 'unique',\n severity: 'error',\n message: 'Email must be unique',\n fields: ['email'],\n caseSensitive: false,\n },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_session — System Session Object\n *\n * Active user session record for the ObjectStack platform.\n * Backed by better-auth's `session` model with ObjectStack field conventions.\n *\n * The `token` field is hidden by default — sessions are managed by the\n * auth plugin, not edited manually. Admins see session metadata\n * (user, expiry, IP, active context) without exposing the token value.\n *\n * @namespace sys\n */\nexport const SysSession = ObjectSchema.create({\n name: 'sys_session',\n label: 'Session',\n pluralLabel: 'Sessions',\n icon: 'key',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Active user sessions',\n displayNameField: 'user_id',\n titleFormat: 'Session — {user_id}',\n compactLayout: ['user_id', 'ip_address', 'expires_at'],\n\n // Custom actions — sessions are managed by better-auth (generic CRUD\n // suppressed). \"Sign out other devices\" is the high-value self-service\n // affordance every IdP exposes. Maps to better-auth's\n // `revoke-other-sessions` endpoint which terminates every session for\n // the current user except the one making the request.\n actions: [\n {\n name: 'revoke_my_other_sessions',\n label: 'Sign out other devices',\n icon: 'log-out',\n variant: 'danger',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/revoke-other-sessions',\n confirmText: 'Sign out of every other device where you\\'re currently logged in? Your current session will remain active.',\n successMessage: 'All other sessions revoked',\n refreshAfter: true,\n },\n {\n name: 'revoke_session',\n label: 'Revoke Session',\n icon: 'log-out',\n variant: 'danger',\n mode: 'delete',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/revoke-session',\n // better-auth `revoke-session` keys off the session token, not the id.\n recordIdParam: 'token',\n recordIdField: 'token',\n confirmText: 'Revoke this session? The user will be signed out from that device.',\n successMessage: 'Session revoked',\n refreshAfter: true,\n },\n ],\n\n listViews: {\n mine: {\n type: 'grid',\n name: 'mine',\n label: 'My Sessions',\n data: { provider: 'object', object: 'sys_session' },\n columns: ['ip_address', 'active_organization_id', 'created_at', 'expires_at'],\n filter: [{ field: 'user_id', operator: 'equals', value: '{current_user_id}' }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n all_sessions: {\n type: 'grid',\n name: 'all_sessions',\n label: 'All',\n data: { provider: 'object', object: 'sys_session' },\n columns: ['user_id', 'ip_address', 'active_organization_id', 'created_at', 'expires_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n // ── Session owner & expiry ──────────────────────────────────\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n searchable: true,\n group: 'Session',\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n group: 'Session',\n }),\n\n // ── Active context (multi-org/team) ──────────────────────────\n active_organization_id: Field.lookup('sys_organization', {\n label: 'Active Organization',\n required: false,\n group: 'Context',\n }),\n\n active_team_id: Field.lookup('sys_team', {\n label: 'Active Team',\n required: false,\n group: 'Context',\n }),\n\n // ── Client fingerprint ───────────────────────────────────────\n ip_address: Field.text({\n label: 'IP Address',\n required: false,\n maxLength: 45, // Support IPv6\n group: 'Client',\n }),\n\n user_agent: Field.textarea({\n label: 'User Agent',\n required: false,\n group: 'Client',\n }),\n\n // ── Admin (managed by better-auth `admin` plugin) ────────────\n impersonated_by: Field.lookup('sys_user', {\n label: 'Impersonated By',\n required: false,\n group: 'Admin',\n description: 'User id of the admin that started this impersonation session, if any.',\n }),\n\n // ── Secret (hidden by default) ──────────────────────────────\n token: Field.text({\n label: 'Session Token',\n required: true,\n hidden: true,\n readonly: true,\n description: 'Opaque session token — never exposed in UI',\n group: 'Secret',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Session ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['token'], unique: true },\n { fields: ['user_id'], unique: false },\n { fields: ['expires_at'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'delete'],\n trash: false,\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_account — System Account Object\n *\n * OAuth / credential provider account record.\n * Backed by better-auth's `account` model with ObjectStack field conventions.\n *\n * @namespace sys\n */\nexport const SysAccount = ObjectSchema.create({\n name: 'sys_account',\n label: 'Account',\n pluralLabel: 'Accounts',\n icon: 'link',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'OAuth and authentication provider accounts',\n titleFormat: '{provider_id} - {account_id}',\n compactLayout: ['provider_id', 'user_id', 'account_id'],\n\n listViews: {\n mine: {\n type: 'grid',\n name: 'mine',\n label: 'My Links',\n data: { provider: 'object', object: 'sys_account' },\n columns: ['provider_id', 'account_id', 'created_at', 'updated_at'],\n filter: [{ field: 'user_id', operator: 'equals', value: '{current_user_id}' }],\n sort: [{ field: 'provider_id', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n by_provider: {\n type: 'grid',\n name: 'by_provider',\n label: 'By Provider',\n data: { provider: 'object', object: 'sys_account' },\n columns: ['provider_id', 'user_id', 'account_id', 'created_at'],\n sort: [{ field: 'provider_id', order: 'asc' }, { field: 'created_at', order: 'desc' }],\n grouping: { fields: [{ field: 'provider_id', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_links: {\n type: 'grid',\n name: 'all_links',\n label: 'All',\n data: { provider: 'object', object: 'sys_account' },\n columns: ['provider_id', 'user_id', 'account_id', 'created_at', 'updated_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n },\n },\n \n fields: {\n id: Field.text({\n label: 'Account ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n provider_id: Field.text({\n label: 'Provider ID',\n required: true,\n description: 'OAuth provider identifier (google, github, etc.)',\n }),\n \n account_id: Field.text({\n label: 'Provider Account ID',\n required: true,\n description: \"User's ID in the provider's system\",\n }),\n \n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n description: 'Link to user table',\n }),\n \n access_token: Field.textarea({\n label: 'Access Token',\n required: false,\n }),\n \n refresh_token: Field.textarea({\n label: 'Refresh Token',\n required: false,\n }),\n \n id_token: Field.textarea({\n label: 'ID Token',\n required: false,\n }),\n \n access_token_expires_at: Field.datetime({\n label: 'Access Token Expires At',\n required: false,\n }),\n \n refresh_token_expires_at: Field.datetime({\n label: 'Refresh Token Expires At',\n required: false,\n }),\n \n scope: Field.text({\n label: 'OAuth Scope',\n required: false,\n }),\n \n password: Field.text({\n label: 'Password Hash',\n required: false,\n description: 'Hashed password for email/password provider',\n }),\n },\n \n indexes: [\n { fields: ['user_id'], unique: false },\n { fields: ['provider_id', 'account_id'], unique: true },\n ],\n \n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_verification — System Verification Object\n *\n * Email and phone verification token record.\n * Backed by better-auth's `verification` model with ObjectStack field conventions.\n *\n * @namespace sys\n */\nexport const SysVerification = ObjectSchema.create({\n name: 'sys_verification',\n label: 'Verification',\n pluralLabel: 'Verifications',\n icon: 'shield-check',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Email and phone verification tokens',\n titleFormat: 'Verification for {identifier}',\n compactLayout: ['identifier', 'expires_at', 'created_at'],\n \n fields: {\n id: Field.text({\n label: 'Verification ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n value: Field.text({\n label: 'Verification Token',\n required: true,\n description: 'Token or code for verification',\n }),\n \n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n }),\n \n identifier: Field.text({\n label: 'Identifier',\n required: true,\n description: 'Email address or phone number',\n }),\n },\n \n indexes: [\n { fields: ['value'], unique: true },\n { fields: ['identifier'], unique: false },\n { fields: ['expires_at'], unique: false },\n ],\n \n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'create', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_organization — System Organization Object\n *\n * Multi-organization support for the ObjectStack platform.\n * Backed by better-auth's organization plugin.\n *\n * @namespace sys\n */\nexport const SysOrganization = ObjectSchema.create({\n name: 'sys_organization',\n label: 'Organization',\n pluralLabel: 'Organizations',\n icon: 'building-2',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Organizations for multi-tenant grouping',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'slug'],\n\n // Custom actions — generic CRUD is suppressed (better-auth-managed),\n // but admins still need to create new orgs from the Setup app.\n actions: [\n {\n name: 'create_organization',\n label: 'Create Organization',\n icon: 'plus',\n variant: 'primary',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/organization/create',\n successMessage: 'Organization created',\n refreshAfter: true,\n params: [\n { field: 'name', required: true },\n { field: 'slug', required: true },\n { field: 'logo' },\n ],\n },\n {\n name: 'update_organization',\n label: 'Edit Organization',\n icon: 'pencil',\n mode: 'edit',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/update',\n recordIdParam: 'organizationId',\n // better-auth `organization/update` nests editable fields under `data`.\n bodyShape: { wrap: 'data' },\n successMessage: 'Organization updated',\n refreshAfter: true,\n params: [\n { field: 'name', required: true, defaultFromRow: true },\n { field: 'slug', required: true, defaultFromRow: true },\n { field: 'logo', defaultFromRow: true },\n ],\n },\n {\n name: 'delete_organization',\n label: 'Delete Organization',\n icon: 'trash-2',\n variant: 'danger',\n mode: 'delete',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/delete',\n recordIdParam: 'organizationId',\n confirmText: 'Delete this organization? All members will lose access immediately. This cannot be undone.',\n successMessage: 'Organization deleted',\n refreshAfter: true,\n },\n {\n // Switch the caller's active organization context. Standard\n // better-auth endpoint; no extra params needed (org id ships as\n // the row id). Used from the Setup list and the record header so\n // admins can context-switch without leaving the page.\n name: 'set_active_organization',\n label: 'Set Active',\n icon: 'check-circle-2',\n variant: 'secondary',\n mode: 'custom',\n locations: ['list_item', 'record_header'],\n type: 'api',\n target: '/api/v1/auth/organization/set-active',\n recordIdParam: 'organizationId',\n successMessage: 'Active organization switched',\n refreshAfter: true,\n },\n {\n // Current user leaves the org. Distinct from `delete_organization`\n // (admin-only, destroys the org) — `leave` only removes the caller's\n // own membership. Better-auth: `organization/leave { organizationId }`.\n name: 'leave_organization',\n label: 'Leave Organization',\n icon: 'log-out',\n variant: 'danger',\n mode: 'custom',\n locations: ['list_item', 'record_header'],\n type: 'api',\n target: '/api/v1/auth/organization/leave',\n recordIdParam: 'organizationId',\n confirmText: 'Leave this organization? You will lose access to all of its resources.',\n successMessage: 'You have left the organization',\n refreshAfter: true,\n },\n ],\n\n listViews: {\n all_orgs: {\n type: 'grid',\n name: 'all_orgs',\n label: 'All',\n data: { provider: 'object', object: 'sys_organization' },\n columns: ['name', 'slug', 'created_at', 'updated_at'],\n sort: [{ field: 'name', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n slug: Field.text({\n label: 'Slug',\n required: false,\n searchable: true,\n maxLength: 255,\n description: 'URL-friendly identifier',\n group: 'Identity',\n }),\n\n // ── Branding ─────────────────────────────────────────────────\n logo: Field.url({\n label: 'Logo',\n required: false,\n group: 'Branding',\n }),\n\n // ── Configuration ────────────────────────────────────────────\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n description: 'JSON-serialized organization metadata',\n group: 'Configuration',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Organization ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['slug'], unique: true },\n { fields: ['name'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_member — System Member Object\n *\n * Organization membership linking users to organizations with roles.\n * Backed by better-auth's organization plugin.\n *\n * @namespace sys\n */\nexport const SysMember = ObjectSchema.create({\n name: 'sys_member',\n label: 'Member',\n pluralLabel: 'Members',\n icon: 'user-check',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Organization membership records',\n titleFormat: '{user_id} in {organization_id}',\n compactLayout: ['user_id', 'organization_id', 'role'],\n\n // Row-level actions: better-auth `organization/update-member-role` and\n // `organization/remove-member`. Generic CRUD is suppressed on better-auth\n // managed tables, so these are the canonical edit/delete entry points.\n // The `add_member` toolbar action covers the admin \"attach an existing\n // user directly without sending an invitation\" flow.\n actions: [\n {\n // Admin-only: directly attach an existing user to the active org,\n // bypassing the invite-accept flow. Better-auth:\n // `organization/add-member { userId, role, organizationId?, teamId? }`.\n // organizationId/teamId default to the caller's active org/team when\n // omitted, so we leave them as optional params.\n name: 'add_member',\n label: 'Add Member',\n icon: 'user-plus',\n variant: 'primary',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/organization/add-member',\n successMessage: 'Member added',\n refreshAfter: true,\n params: [\n { name: 'userId', field: 'user_id', required: true },\n { field: 'role', required: true },\n { name: 'organizationId', field: 'organization_id' },\n ],\n },\n {\n name: 'update_member_role',\n label: 'Change Role',\n icon: 'shield',\n mode: 'edit',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/update-member-role',\n recordIdParam: 'memberId',\n successMessage: 'Member role updated',\n refreshAfter: true,\n params: [\n { field: 'role', required: true, defaultFromRow: true },\n ],\n },\n {\n name: 'remove_member',\n label: 'Remove Member',\n icon: 'user-minus',\n variant: 'danger',\n mode: 'delete',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/remove-member',\n recordIdParam: 'memberIdOrEmail',\n confirmText: 'Remove this member from the organization? They will lose access to all org resources.',\n successMessage: 'Member removed',\n refreshAfter: true,\n },\n ],\n\n fields: {\n id: Field.text({\n label: 'Member ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n }),\n \n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n }),\n \n role: Field.select({\n label: 'Role',\n required: false,\n description: 'Member role within the organization',\n options: [\n { label: 'Owner', value: 'owner' },\n { label: 'Admin', value: 'admin' },\n { label: 'Member', value: 'member' },\n ],\n defaultValue: 'member',\n }),\n },\n \n indexes: [\n { fields: ['organization_id', 'user_id'], unique: true },\n { fields: ['user_id'] },\n ],\n \n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_invitation — System Invitation Object\n *\n * Organization invitation tokens for inviting users.\n * Backed by better-auth's organization plugin.\n *\n * @namespace sys\n */\nexport const SysInvitation = ObjectSchema.create({\n name: 'sys_invitation',\n label: 'Invitation',\n pluralLabel: 'Invitations',\n icon: 'mail',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Organization invitations for user onboarding',\n titleFormat: 'Invitation to {organization_id}',\n compactLayout: ['email', 'organization_id', 'status'],\n\n // Custom actions — generic CRUD is suppressed (better-auth-managed).\n // Mirror the `invite_user` toolbar action from sys_user here so admins\n // landing on the Invitations page get an obvious entry point.\n actions: [\n {\n name: 'invite_user',\n label: 'Invite User',\n icon: 'user-plus',\n variant: 'primary',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/organization/invite-member',\n successMessage: 'Invitation sent',\n refreshAfter: true,\n params: [\n { field: 'email', required: true },\n { field: 'role', required: true },\n ],\n },\n {\n name: 'cancel_invitation',\n label: 'Cancel Invitation',\n icon: 'x-circle',\n variant: 'danger',\n mode: 'delete',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/cancel-invitation',\n recordIdParam: 'invitationId',\n confirmText: 'Cancel this invitation? The recipient will no longer be able to accept it.',\n successMessage: 'Invitation canceled',\n refreshAfter: true,\n },\n {\n name: 'resend_invitation',\n label: 'Resend Invitation',\n icon: 'send',\n variant: 'secondary',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/invite-member',\n bodyExtra: { resend: true },\n successMessage: 'Invitation resent',\n refreshAfter: true,\n params: [\n { field: 'email', required: true, defaultFromRow: true },\n { field: 'role', required: true, defaultFromRow: true },\n ],\n },\n ],\n\n listViews: {\n pending: {\n type: 'grid',\n name: 'pending',\n label: 'Pending',\n data: { provider: 'object', object: 'sys_invitation' },\n columns: ['email', 'role', 'organization_id', 'inviter_id', 'expires_at'],\n filter: [{ field: 'status', operator: 'equals', value: 'pending' }],\n sort: [{ field: 'expires_at', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n accepted: {\n type: 'grid',\n name: 'accepted',\n label: 'Accepted',\n data: { provider: 'object', object: 'sys_invitation' },\n columns: ['email', 'role', 'organization_id', 'inviter_id', 'created_at'],\n filter: [{ field: 'status', operator: 'equals', value: 'accepted' }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n expired: {\n type: 'grid',\n name: 'expired',\n label: 'Expired / Canceled',\n data: { provider: 'object', object: 'sys_invitation' },\n columns: ['email', 'status', 'organization_id', 'expires_at'],\n filter: [{ field: 'status', operator: 'in', value: ['expired', 'rejected', 'canceled'] }],\n sort: [{ field: 'expires_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n all_invitations: {\n type: 'grid',\n name: 'all_invitations',\n label: 'All',\n data: { provider: 'object', object: 'sys_invitation' },\n columns: ['email', 'status', 'role', 'organization_id', 'inviter_id', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n },\n \n fields: {\n id: Field.text({\n label: 'Invitation ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n }),\n \n email: Field.email({\n label: 'Email',\n required: true,\n description: 'Email address of the invited user',\n }),\n \n role: Field.select({\n label: 'Role',\n required: false,\n description: 'Role to assign upon acceptance',\n options: [\n { label: 'Owner', value: 'owner' },\n { label: 'Admin', value: 'admin' },\n { label: 'Member', value: 'member' },\n ],\n defaultValue: 'member',\n }),\n \n status: Field.select(['pending', 'accepted', 'rejected', 'expired', 'canceled'], {\n label: 'Status',\n required: true,\n defaultValue: 'pending',\n }),\n \n inviter_id: Field.lookup('sys_user', {\n label: 'Inviter',\n required: true,\n description: 'User who sent the invitation',\n }),\n \n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n }),\n \n team_id: Field.lookup('sys_team', {\n label: 'Team',\n required: false,\n description: 'Optional team to assign upon acceptance',\n }),\n },\n \n indexes: [\n { fields: ['organization_id'] },\n { fields: ['email'] },\n { fields: ['expires_at'] },\n ],\n \n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_team — System Team Object\n *\n * Teams within an organization for fine-grained grouping.\n * Backed by better-auth's organization plugin (teams feature).\n *\n * @namespace sys\n */\nexport const SysTeam = ObjectSchema.create({\n name: 'sys_team',\n label: 'Team',\n pluralLabel: 'Teams',\n icon: 'users',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Teams within organizations for fine-grained grouping',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'organization_id'],\n\n // Custom actions calling better-auth's team endpoints. Generic CRUD is\n // suppressed (managedBy: 'better-auth'), so these are the canonical\n // entry points for create/update/delete.\n actions: [\n {\n // Better-auth: `organization/create-team { name, organizationId? }`.\n // organizationId defaults to the caller's active org when omitted.\n name: 'create_team',\n label: 'Create Team',\n icon: 'plus',\n variant: 'primary',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/organization/create-team',\n successMessage: 'Team created',\n refreshAfter: true,\n params: [\n { field: 'name', required: true },\n { name: 'organizationId', field: 'organization_id' },\n ],\n },\n {\n // Better-auth: `organization/update-team { teamId, data: { name } }`.\n // teamId stays flat (top-level); the user-editable params nest under\n // `data` via bodyShape.\n name: 'update_team',\n label: 'Edit Team',\n icon: 'pencil',\n mode: 'edit',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/update-team',\n recordIdParam: 'teamId',\n bodyShape: { wrap: 'data' },\n successMessage: 'Team updated',\n refreshAfter: true,\n params: [\n { field: 'name', required: true, defaultFromRow: true },\n ],\n },\n {\n // Better-auth: `organization/remove-team { teamId, organizationId? }`.\n // organizationId defaults to the caller's active org when omitted.\n name: 'remove_team',\n label: 'Delete Team',\n icon: 'trash-2',\n variant: 'danger',\n mode: 'delete',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/remove-team',\n recordIdParam: 'teamId',\n confirmText: 'Delete this team? Members will lose any team-scoped access. This cannot be undone.',\n successMessage: 'Team deleted',\n refreshAfter: true,\n },\n ],\n\n listViews: {\n by_org: {\n type: 'grid',\n name: 'by_org',\n label: 'By Organization',\n data: { provider: 'object', object: 'sys_team' },\n columns: ['organization_id', 'name', 'created_at', 'updated_at'],\n sort: [{ field: 'organization_id', order: 'asc' }, { field: 'name', order: 'asc' }],\n grouping: { fields: [{ field: 'organization_id', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_teams: {\n type: 'grid',\n name: 'all_teams',\n label: 'All',\n data: { provider: 'object', object: 'sys_team' },\n columns: ['name', 'organization_id', 'created_at', 'updated_at'],\n sort: [{ field: 'name', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n description: 'Parent organization for this team',\n group: 'Identity',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Team ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['organization_id'] },\n { fields: ['name', 'organization_id'], unique: true },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_team_member — System Team Member Object\n *\n * Links users to teams within organizations.\n * Backed by better-auth's organization plugin (teams feature).\n *\n * @namespace sys\n */\nexport const SysTeamMember = ObjectSchema.create({\n name: 'sys_team_member',\n label: 'Team Member',\n pluralLabel: 'Team Members',\n icon: 'user-plus',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Team membership records linking users to teams',\n titleFormat: '{user_id} in {team_id}',\n compactLayout: ['user_id', 'team_id', 'created_at'],\n\n // Custom actions calling better-auth's team-member endpoints. Generic\n // CRUD is suppressed (managedBy: 'better-auth') so these are the\n // canonical add/remove entry points.\n actions: [\n {\n // Better-auth: `organization/add-team-member { teamId, userId }`.\n name: 'add_team_member',\n label: 'Add Member',\n icon: 'user-plus',\n variant: 'primary',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/organization/add-team-member',\n successMessage: 'Team member added',\n refreshAfter: true,\n params: [\n { name: 'teamId', field: 'team_id', required: true },\n { name: 'userId', field: 'user_id', required: true },\n ],\n },\n {\n // Better-auth: `organization/remove-team-member { teamId, userId }`.\n // The endpoint identifies the membership by the (teamId, userId)\n // pair rather than the join-row id, so we pull both from the row\n // via `defaultFromRow` instead of using `recordIdParam`.\n name: 'remove_team_member',\n label: 'Remove from Team',\n icon: 'user-minus',\n variant: 'danger',\n mode: 'delete',\n locations: ['list_item'],\n type: 'api',\n target: '/api/v1/auth/organization/remove-team-member',\n confirmText: 'Remove this user from the team? They will lose any team-scoped access.',\n successMessage: 'Team member removed',\n refreshAfter: true,\n params: [\n { name: 'teamId', field: 'team_id', required: true, defaultFromRow: true },\n { name: 'userId', field: 'user_id', required: true, defaultFromRow: true },\n ],\n },\n ],\n\n fields: {\n id: Field.text({\n label: 'Team Member ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n team_id: Field.lookup('sys_team', {\n label: 'Team',\n required: true,\n }),\n \n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n }),\n },\n \n indexes: [\n { fields: ['team_id', 'user_id'], unique: true },\n { fields: ['user_id'] },\n ],\n \n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_department — Enterprise Org-Skeleton Node\n *\n * The persistent, hierarchical org chart node. **This is distinct from\n * `sys_team`** (which is the flat better-auth collaboration grouping).\n *\n * A single tenant typically has one `kind='company'` root, then nested\n * `division` / `department` / `team` / `office` nodes underneath. The\n * `kind` enum is purely a display/categorisation hint — the recursive\n * structure works identically regardless of value.\n *\n * Drives:\n * - `recipient_type='department'` sharing rules\n * - `dept:` approver prefix in the approval engine\n * - Report rollups and manager chains in CRM/PM apps\n *\n * @namespace sys\n */\nexport const SysDepartment = ObjectSchema.create({\n name: 'sys_department',\n label: 'Department',\n pluralLabel: 'Departments',\n icon: 'building',\n isSystem: true,\n managedBy: 'platform',\n description: 'Hierarchical org-skeleton node (department / division / business unit / office).',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'kind', 'parent_department_id', 'manager_user_id'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_department' },\n columns: ['name', 'code', 'kind', 'parent_department_id', 'manager_user_id', 'effective_from'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'name', order: 'asc' }],\n pagination: { pageSize: 100 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_department' },\n columns: ['name', 'code', 'kind', 'effective_to'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'effective_to', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n by_kind: {\n type: 'grid',\n name: 'by_kind',\n label: 'By Kind',\n data: { provider: 'object', object: 'sys_department' },\n columns: ['kind', 'name', 'code', 'parent_department_id', 'manager_user_id', 'active'],\n sort: [{ field: 'kind', order: 'asc' }, { field: 'name', order: 'asc' }],\n grouping: { fields: [{ field: 'kind', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_departments: {\n type: 'grid',\n name: 'all_departments',\n label: 'All',\n data: { provider: 'object', object: 'sys_department' },\n columns: ['name', 'code', 'kind', 'parent_department_id', 'manager_user_id', 'active'],\n sort: [{ field: 'name', order: 'asc' }],\n pagination: { pageSize: 100 },\n },\n },\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n code: Field.text({\n label: 'Code',\n required: false,\n searchable: true,\n maxLength: 64,\n description: 'Short stable code (e.g. EMEA-SALES). Unique within tenant.',\n group: 'Identity',\n }),\n\n kind: Field.select(\n ['company', 'division', 'department', 'team', 'office', 'cost_center'],\n {\n label: 'Kind',\n required: true,\n defaultValue: 'department',\n description: 'Categorisation hint — does not change graph semantics.',\n group: 'Identity',\n },\n ),\n\n // ── Hierarchy ────────────────────────────────────────────────\n parent_department_id: Field.lookup('sys_department', {\n label: 'Parent Department',\n required: false,\n description: 'Self-reference for the org tree. Null = root of tenant.',\n group: 'Hierarchy',\n }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: true,\n description: 'Tenant scope.',\n group: 'Hierarchy',\n }),\n\n // ── Leadership ───────────────────────────────────────────────\n manager_user_id: Field.lookup('sys_user', {\n label: 'Department Head',\n required: false,\n description: 'User responsible for this org unit (department head / lead).',\n group: 'Leadership',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n active: Field.boolean({\n label: 'Active',\n required: false,\n defaultValue: true,\n description: 'When false, members are not expanded by graph queries.',\n group: 'Lifecycle',\n }),\n\n effective_from: Field.datetime({\n label: 'Effective From',\n required: false,\n description: 'When this department came into existence (HRIS sync).',\n group: 'Lifecycle',\n }),\n\n effective_to: Field.datetime({\n label: 'Effective To',\n required: false,\n description: 'When this department was retired (HRIS sync).',\n group: 'Lifecycle',\n }),\n\n external_ref: Field.text({\n label: 'External Reference',\n required: false,\n maxLength: 200,\n description: 'ID in upstream HRIS (Workday / SAP HR / 北森).',\n group: 'Lifecycle',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Department ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['organization_id'] },\n { fields: ['parent_department_id'] },\n { fields: ['code', 'organization_id'], unique: true },\n { fields: ['active'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_department_member — User ↔ Department Assignment\n *\n * Many-to-many between `sys_user` and `sys_department`. A user can belong\n * to multiple departments (matrix orgs) but exactly one is marked\n * `is_primary` to drive the default reporting view.\n *\n * Effective-dated so that historical reports & audits can reconstruct\n * who reported to which unit at any point in time.\n *\n * @namespace sys\n */\nexport const SysDepartmentMember = ObjectSchema.create({\n name: 'sys_department_member',\n label: 'Department Member',\n pluralLabel: 'Department Members',\n icon: 'user-cog',\n isSystem: true,\n managedBy: 'platform',\n description: 'User assignment to a department (matrix-org friendly, effective-dated).',\n titleFormat: '{user_id} in {department_id}',\n compactLayout: ['user_id', 'department_id', 'role_in_department', 'is_primary'],\n\n fields: {\n id: Field.text({\n label: 'Member ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n department_id: Field.lookup('sys_department', {\n label: 'Department',\n required: true,\n group: 'Assignment',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n group: 'Assignment',\n }),\n\n role_in_department: Field.select(\n ['member', 'lead', 'deputy'],\n {\n label: 'Role in Department',\n required: false,\n defaultValue: 'member',\n description: '`lead` is the day-to-day head; `deputy` may stand in for the lead in approval routing.',\n group: 'Assignment',\n },\n ),\n\n is_primary: Field.boolean({\n label: 'Primary Assignment',\n required: false,\n defaultValue: true,\n description: 'When the user is in multiple departments, this marks the canonical one for reporting.',\n group: 'Assignment',\n }),\n\n effective_from: Field.datetime({\n label: 'Effective From',\n required: false,\n group: 'Lifecycle',\n }),\n\n effective_to: Field.datetime({\n label: 'Effective To',\n required: false,\n group: 'Lifecycle',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['department_id', 'user_id'], unique: true },\n { fields: ['user_id'] },\n { fields: ['is_primary'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_api_key — System API Key Object\n *\n * API keys for programmatic/machine access to the platform.\n *\n * Field `key` stores a hashed value and is marked hidden so it never\n * leaks into default list/form rendering; the raw token is only\n * returned once on creation via the auth plugin API.\n *\n * @namespace sys\n */\nexport const SysApiKey = ObjectSchema.create({\n name: 'sys_api_key',\n label: 'API Key',\n pluralLabel: 'API Keys',\n icon: 'key-round',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'API keys for programmatic access',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'prefix', 'user_id', 'expires_at', 'revoked'],\n\n // Custom actions — sys_api_key is managed-by 'better-auth' but the\n // `revoked` boolean is a column we control via the data API. These row\n // actions use the generic PATCH /api/v1/sys_api_key/{id} endpoint with\n // `bodyExtra` to set the `revoked` flag explicitly.\n actions: [\n {\n name: 'revoke_api_key',\n label: 'Revoke API Key',\n icon: 'shield-off',\n variant: 'danger',\n mode: 'custom',\n locations: ['list_item'],\n type: 'api',\n method: 'PATCH',\n target: '/api/v1/data/sys_api_key/{id}',\n bodyExtra: { revoked: true },\n confirmText: 'Revoke this API key? Any clients using it will immediately lose access.',\n successMessage: 'API key revoked',\n refreshAfter: true,\n },\n {\n name: 'restore_api_key',\n label: 'Restore API Key',\n icon: 'shield-check',\n variant: 'secondary',\n mode: 'custom',\n locations: ['list_item'],\n type: 'api',\n method: 'PATCH',\n target: '/api/v1/data/sys_api_key/{id}',\n bodyExtra: { revoked: false },\n confirmText: 'Restore this revoked API key? Existing clients holding the key will regain access.',\n successMessage: 'API key restored',\n refreshAfter: true,\n },\n ],\n\n listViews: {\n mine: {\n type: 'grid',\n name: 'mine',\n label: 'My Keys',\n data: { provider: 'object', object: 'sys_api_key' },\n columns: ['name', 'prefix', 'expires_at', 'last_used_at', 'revoked'],\n filter: [\n { field: 'user_id', operator: 'equals', value: '{current_user_id}' },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_api_key' },\n columns: ['name', 'prefix', 'user_id', 'expires_at', 'last_used_at'],\n filter: [{ field: 'revoked', operator: 'equals', value: false }],\n sort: [{ field: 'last_used_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n revoked: {\n type: 'grid',\n name: 'revoked',\n label: 'Revoked',\n data: { provider: 'object', object: 'sys_api_key' },\n columns: ['name', 'prefix', 'user_id', 'expires_at', 'updated_at'],\n filter: [{ field: 'revoked', operator: 'equals', value: true }],\n sort: [{ field: 'updated_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n all_keys: {\n type: 'grid',\n name: 'all_keys',\n label: 'All',\n data: { provider: 'object', object: 'sys_api_key' },\n columns: ['name', 'prefix', 'user_id', 'expires_at', 'last_used_at', 'revoked'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n description: 'Human-readable label for the API key',\n group: 'Identity',\n }),\n\n prefix: Field.text({\n label: 'Prefix',\n required: false,\n maxLength: 16,\n description: 'Visible prefix for identifying the key (e.g., \"osk_\")',\n group: 'Identity',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'Owner',\n required: true,\n description: 'User who owns this API key',\n group: 'Identity',\n }),\n\n // ── Access ───────────────────────────────────────────────────\n scopes: Field.textarea({\n label: 'Scopes',\n required: false,\n description: 'JSON array of permission scopes',\n group: 'Access',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n expires_at: Field.datetime({\n label: 'Expires At',\n required: false,\n group: 'Lifecycle',\n }),\n\n last_used_at: Field.datetime({\n label: 'Last Used At',\n required: false,\n readonly: true,\n description: 'Automatically updated on each API call',\n group: 'Lifecycle',\n }),\n\n revoked: Field.boolean({\n label: 'Revoked',\n defaultValue: false,\n group: 'Lifecycle',\n }),\n\n // ── Secret (hidden by default) ──────────────────────────────\n key: Field.text({\n label: 'Hashed Key',\n required: true,\n hidden: true,\n readonly: true,\n description: 'Hashed API key value — never exposed to clients',\n group: 'Secret',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'API Key ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['key'], unique: true },\n { fields: ['user_id'] },\n { fields: ['prefix'] },\n { fields: ['revoked'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_two_factor — System Two-Factor Object\n *\n * Two-factor authentication credentials (TOTP, backup codes).\n * Backed by better-auth's two-factor plugin.\n *\n * @namespace sys\n */\nexport const SysTwoFactor = ObjectSchema.create({\n name: 'sys_two_factor',\n label: 'Two Factor',\n pluralLabel: 'Two Factor Credentials',\n icon: 'smartphone',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Two-factor authentication credentials',\n titleFormat: 'Two-factor for {user_id}',\n compactLayout: ['user_id', 'created_at'],\n\n listViews: {\n mine: {\n type: 'grid',\n name: 'mine',\n label: 'My Enrollment',\n data: { provider: 'object', object: 'sys_two_factor' },\n columns: ['created_at', 'updated_at'],\n filter: [{ field: 'user_id', operator: 'equals', value: '{current_user_id}' }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n all_enrollments: {\n type: 'grid',\n name: 'all_enrollments',\n label: 'All',\n data: { provider: 'object', object: 'sys_two_factor' },\n columns: ['user_id', 'created_at', 'updated_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n // Toolbar actions for self-service 2FA enrollment. The actual TOTP secret\n // and backup codes returned by better-auth must be shown in the response\n // toast / dialog — the action runner surfaces successMessage; the raw\n // payload is logged client-side for now (TODO: dedicated 2FA setup wizard).\n actions: [\n {\n name: 'enable_two_factor',\n label: 'Enable 2FA',\n icon: 'shield-check',\n variant: 'primary',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/two-factor/enable',\n successMessage: '2FA enrollment started — check response for TOTP URI and backup codes',\n refreshAfter: true,\n params: [\n { name: 'password', label: 'Current Password', type: 'text', required: true },\n ],\n },\n {\n name: 'disable_two_factor',\n label: 'Disable 2FA',\n icon: 'shield-off',\n variant: 'danger',\n locations: ['list_toolbar'],\n type: 'api',\n target: '/api/v1/auth/two-factor/disable',\n confirmText: 'Disable two-factor authentication on your account?',\n successMessage: '2FA disabled',\n refreshAfter: true,\n params: [\n { name: 'password', label: 'Current Password', type: 'text', required: true },\n ],\n },\n ],\n\n \n fields: {\n id: Field.text({\n label: 'Two Factor ID',\n required: true,\n readonly: true,\n }),\n \n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n \n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n }),\n \n secret: Field.text({\n label: 'Secret',\n required: true,\n description: 'TOTP secret key',\n }),\n \n backup_codes: Field.textarea({\n label: 'Backup Codes',\n required: false,\n description: 'JSON-serialized backup recovery codes',\n }),\n },\n \n indexes: [\n { fields: ['user_id'], unique: true },\n ],\n \n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_device_code — System Device Authorization Code Object\n *\n * Stores pending RFC 8628 OAuth Device Authorization Grant requests.\n * Backed by better-auth's `device-authorization` plugin (`deviceCode` model).\n *\n * Lifecycle:\n * 1. CLI calls `POST /device/code` → row inserted with status='pending'\n * 2. Browser visits `verification_uri_complete` and the signed-in user\n * calls `POST /device/approve` (or `/device/deny`) → status flips\n * 3. CLI's next `POST /device/token` poll either receives a session token\n * (status=approved) or one of the standard error codes\n * (`authorization_pending`, `slow_down`, `expired_token`,\n * `access_denied`). Approved rows are deleted on token issuance.\n *\n * @namespace sys\n */\nexport const SysDeviceCode = ObjectSchema.create({\n name: 'sys_device_code',\n label: 'Device Code',\n pluralLabel: 'Device Codes',\n icon: 'key-round',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'OAuth 2.0 Device Authorization Grant (RFC 8628) pending requests',\n titleFormat: '{user_code}',\n compactLayout: ['user_code', 'status', 'client_id', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'Device Code ID',\n required: true,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n /** High-entropy token returned to the device (CLI). Polled at /device/token. */\n device_code: Field.text({\n label: 'Device Code',\n required: true,\n description: 'High-entropy token returned to the polling device',\n }),\n\n /** Human-readable short code displayed to the user (e.g. ABCD-EFGH). */\n user_code: Field.text({\n label: 'User Code',\n required: true,\n description: 'Short user-facing code (e.g. ABCD-EFGH)',\n }),\n\n /** Owning user — populated when the request is approved. */\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: false,\n description: 'User who approved the device authorization',\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n description: 'When the device & user codes are no longer valid',\n }),\n\n /** 'pending' | 'approved' | 'denied' */\n status: Field.text({\n label: 'Status',\n required: true,\n description: \"Current status: 'pending' | 'approved' | 'denied'\",\n }),\n\n last_polled_at: Field.datetime({\n label: 'Last Polled At',\n required: false,\n description: 'Timestamp of the most recent /device/token poll',\n }),\n\n polling_interval: Field.number({\n label: 'Polling Interval (ms)',\n required: false,\n description: 'Server-recommended minimum polling interval, in ms',\n }),\n\n client_id: Field.text({\n label: 'Client ID',\n required: false,\n description: 'OAuth client identifier of the requesting device',\n }),\n\n scope: Field.text({\n label: 'Scope',\n required: false,\n description: 'Space-separated OAuth scopes requested by the device',\n }),\n },\n\n indexes: [\n { fields: ['device_code'], unique: true },\n { fields: ['user_code'], unique: true },\n { fields: ['status'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_user_preference — System User Preference Object\n *\n * Per-user key-value preferences for storing UI state, settings, and personalization.\n * Supports the User Preferences layer in the Config Resolution hierarchy\n * (Runtime > User Preferences > Tenant > Env).\n *\n * Common use cases:\n * - UI preferences: theme, locale, timezone, sidebar state\n * - Feature flags: plugin.ai.auto_save, plugin.dev.debug_mode\n * - User-specific settings: default_view, notifications_enabled\n *\n * @namespace sys\n */\nexport const SysUserPreference = ObjectSchema.create({\n name: 'sys_user_preference',\n label: 'User Preference',\n pluralLabel: 'User Preferences',\n icon: 'settings',\n isSystem: true,\n // managedBy: 'system' — preferences are per-user state authored from\n // the user's own settings page, never created by an admin. The list\n // surface in Setup is a support/diagnostic view only.\n managedBy: 'system',\n description: 'Per-user key-value preferences (theme, locale, etc.)',\n titleFormat: '{key}',\n compactLayout: ['user_id', 'key'],\n\n listViews: {\n mine: {\n type: 'grid',\n name: 'mine',\n label: 'My Preferences',\n data: { provider: 'object', object: 'sys_user_preference' },\n columns: ['key', 'updated_at'],\n filter: [{ field: 'user_id', operator: 'equals', value: '{current_user_id}' }],\n sort: [{ field: 'key', order: 'asc' }],\n pagination: { pageSize: 100 },\n },\n by_user: {\n type: 'grid',\n name: 'by_user',\n label: 'By User',\n data: { provider: 'object', object: 'sys_user_preference' },\n columns: ['user_id', 'key', 'updated_at'],\n sort: [{ field: 'user_id', order: 'asc' }, { field: 'key', order: 'asc' }],\n grouping: { fields: [{ field: 'user_id', order: 'asc', collapsed: true }] },\n pagination: { pageSize: 200 },\n },\n all_preferences: {\n type: 'grid',\n name: 'all_preferences',\n label: 'All',\n data: { provider: 'object', object: 'sys_user_preference' },\n columns: ['user_id', 'key', 'created_at', 'updated_at'],\n sort: [{ field: 'updated_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n },\n },\n\n fields: {\n id: Field.text({\n label: 'Preference ID',\n required: true,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n description: 'Owner user of this preference',\n }),\n\n key: Field.text({\n label: 'Key',\n required: true,\n maxLength: 255,\n description: 'Preference key (e.g., theme, locale, plugin.ai.auto_save)',\n }),\n\n value: Field.json({\n label: 'Value',\n description: 'Preference value (any JSON-serializable type)',\n }),\n },\n\n indexes: [\n { fields: ['user_id', 'key'], unique: true },\n { fields: ['user_id'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_oauth_application — Registered OAuth/OIDC client application\n *\n * Backed by `@better-auth/oauth-provider`'s `oauthClient` model. Each row\n * represents an external application that has been registered to authenticate\n * users against this ObjectStack server (acting as an OpenID Connect IdP).\n *\n * The table name is preserved from the deprecated `oidc-provider` plugin\n * (which used the `oauthApplication` model name) so existing data remains\n * accessible. The new model exposes a richer set of OAuth 2.1 / OIDC\n * registration fields — see RFC 7591 (Dynamic Client Registration) and\n * RFC 8414 (Authorization Server Metadata).\n *\n * @namespace sys\n */\nexport const SysOauthApplication = ObjectSchema.create({\n name: 'sys_oauth_application',\n label: 'OAuth Application',\n pluralLabel: 'OAuth Applications',\n icon: 'key-round',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Registered OAuth/OIDC client applications',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'client_id', 'type', 'disabled'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_oauth_application' },\n columns: ['name', 'client_id', 'type', 'updated_at'],\n filter: [{ field: 'disabled', operator: 'equals', value: false }],\n sort: [{ field: 'name', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n disabled_apps: {\n type: 'grid',\n name: 'disabled_apps',\n label: 'Disabled',\n data: { provider: 'object', object: 'sys_oauth_application' },\n columns: ['name', 'client_id', 'type', 'updated_at'],\n filter: [{ field: 'disabled', operator: 'equals', value: true }],\n sort: [{ field: 'updated_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n all_apps: {\n type: 'grid',\n name: 'all_apps',\n label: 'All',\n data: { provider: 'object', object: 'sys_oauth_application' },\n columns: ['name', 'client_id', 'type', 'disabled', 'created_at'],\n sort: [{ field: 'name', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n name: Field.text({\n label: 'Name',\n required: false,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n icon: Field.url({\n label: 'Icon',\n required: false,\n description: 'Logo URL shown on the consent screen',\n group: 'Identity',\n }),\n\n uri: Field.url({\n label: 'Home URI',\n required: false,\n description: 'Public homepage of the registered client',\n group: 'Identity',\n }),\n\n contacts: Field.textarea({\n label: 'Contacts',\n required: false,\n description: 'JSON-serialized list of contact email addresses',\n group: 'Identity',\n }),\n\n tos: Field.url({\n label: 'Terms of Service',\n required: false,\n group: 'Identity',\n }),\n\n policy: Field.url({\n label: 'Privacy Policy',\n required: false,\n group: 'Identity',\n }),\n\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n description: 'JSON-serialized application metadata',\n group: 'Identity',\n }),\n\n // ── OAuth Credentials ────────────────────────────────────────\n client_id: Field.text({\n label: 'Client ID',\n required: true,\n readonly: true,\n maxLength: 255,\n description: 'Public OAuth client identifier',\n group: 'Credentials',\n }),\n\n client_secret: Field.text({\n label: 'Client Secret',\n required: false,\n maxLength: 1024,\n description: 'OAuth client secret (hashed/encrypted at rest)',\n group: 'Credentials',\n }),\n\n redirect_uris: Field.textarea({\n label: 'Redirect URIs',\n required: true,\n description: 'JSON-serialized list of allowed redirect URIs',\n group: 'Credentials',\n }),\n\n post_logout_redirect_uris: Field.textarea({\n label: 'Post-logout Redirect URIs',\n required: false,\n description: 'JSON-serialized list of allowed post-logout redirect URIs',\n group: 'Credentials',\n }),\n\n type: Field.select(['web', 'native', 'user-agent-based', 'public'], {\n label: 'Client Type',\n required: false,\n defaultValue: 'web',\n group: 'Credentials',\n }),\n\n public: Field.boolean({\n label: 'Public Client',\n required: false,\n description: 'Marks the client as a public (non-confidential) OAuth client',\n group: 'Credentials',\n }),\n\n require_pkce: Field.boolean({\n label: 'Require PKCE',\n required: false,\n group: 'Credentials',\n }),\n\n token_endpoint_auth_method: Field.text({\n label: 'Token Endpoint Auth Method',\n required: false,\n maxLength: 64,\n description: 'e.g. client_secret_basic, client_secret_post, none',\n group: 'Credentials',\n }),\n\n grant_types: Field.textarea({\n label: 'Grant Types',\n required: false,\n description: 'JSON-serialized list of allowed grant types',\n group: 'Credentials',\n }),\n\n response_types: Field.textarea({\n label: 'Response Types',\n required: false,\n description: 'JSON-serialized list of allowed response types',\n group: 'Credentials',\n }),\n\n scopes: Field.textarea({\n label: 'Allowed Scopes',\n required: false,\n description: 'JSON-serialized list of scopes the client may request',\n group: 'Credentials',\n }),\n\n subject_type: Field.text({\n label: 'Subject Type',\n required: false,\n maxLength: 32,\n description: 'OIDC subject type (e.g. public, pairwise)',\n group: 'Credentials',\n }),\n\n // ── Behaviour flags ──────────────────────────────────────────\n disabled: Field.boolean({\n label: 'Disabled',\n required: false,\n defaultValue: false,\n group: 'Behaviour',\n }),\n\n skip_consent: Field.boolean({\n label: 'Skip Consent',\n required: false,\n description: 'Treat as a trusted client and bypass the consent screen',\n group: 'Behaviour',\n }),\n\n enable_end_session: Field.boolean({\n label: 'Enable End Session',\n required: false,\n description: 'Allow the client to call the OIDC end-session endpoint',\n group: 'Behaviour',\n }),\n\n // ── Software statement (RFC 7591 §2.3) ───────────────────────\n software_id: Field.text({\n label: 'Software ID',\n required: false,\n maxLength: 255,\n group: 'Software',\n }),\n\n software_version: Field.text({\n label: 'Software Version',\n required: false,\n maxLength: 64,\n group: 'Software',\n }),\n\n software_statement: Field.textarea({\n label: 'Software Statement',\n required: false,\n description: 'Signed JWT asserting the client metadata (RFC 7591 §2.3)',\n group: 'Software',\n }),\n\n // ── Ownership / system ───────────────────────────────────────\n user_id: Field.lookup('sys_user', {\n label: 'Owner User',\n required: false,\n description: 'User who registered this application',\n group: 'System',\n }),\n\n reference_id: Field.text({\n label: 'Reference ID',\n required: false,\n maxLength: 255,\n description: 'Caller-supplied correlation identifier',\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['client_id'], unique: true },\n { fields: ['user_id'] },\n { fields: ['reference_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_oauth_access_token — Issued OAuth/OIDC opaque access token\n *\n * Backed by `@better-auth/oauth-provider`'s `oauthAccessToken` model. One\n * row per opaque access token issuance. Tokens are short-lived; expired\n * rows can be safely pruned.\n *\n * Refresh tokens have been split into a sibling table — see\n * {@link SysOauthRefreshToken}. The optional `refresh_id` column links an\n * access token back to the refresh-token row that minted it.\n *\n * @namespace sys\n */\nexport const SysOauthAccessToken = ObjectSchema.create({\n name: 'sys_oauth_access_token',\n label: 'OAuth Access Token',\n pluralLabel: 'OAuth Access Tokens',\n icon: 'ticket',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Opaque OAuth access tokens issued to client applications',\n compactLayout: ['client_id', 'user_id', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n token: Field.text({\n label: 'Token',\n required: true,\n maxLength: 1024,\n description: 'Opaque access token value',\n }),\n\n client_id: Field.text({\n label: 'Client ID',\n required: true,\n description: 'Foreign key to sys_oauth_application.client_id',\n }),\n\n session_id: Field.lookup('sys_session', {\n label: 'Session',\n required: false,\n description: 'Foreign key to sys_session.id',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: false,\n description: 'Foreign key to sys_user.id',\n }),\n\n refresh_id: Field.lookup('sys_oauth_refresh_token', {\n label: 'Refresh Token',\n required: false,\n description: 'Foreign key to sys_oauth_refresh_token.id',\n }),\n\n reference_id: Field.text({\n label: 'Reference ID',\n required: false,\n maxLength: 255,\n description: 'Caller-supplied correlation identifier',\n }),\n\n scopes: Field.textarea({\n label: 'Scopes',\n required: true,\n description: 'JSON-serialized list of scopes granted to this token',\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n },\n\n indexes: [\n { fields: ['token'], unique: true },\n { fields: ['client_id'] },\n { fields: ['session_id'] },\n { fields: ['user_id'] },\n { fields: ['refresh_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: false,\n apiMethods: [],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_oauth_refresh_token — Issued OAuth/OIDC refresh token\n *\n * Backed by `@better-auth/oauth-provider`'s `oauthRefreshToken` model.\n * Refresh tokens are issued for the `offline_access` scope and are bound\n * to a specific session (`session_id`) and client (`client_id`).\n *\n * Each access-token rotation produces a new refresh-token row; revoked\n * tokens are kept (with `revoked` set) for audit purposes until pruned.\n *\n * @namespace sys\n */\nexport const SysOauthRefreshToken = ObjectSchema.create({\n name: 'sys_oauth_refresh_token',\n label: 'OAuth Refresh Token',\n pluralLabel: 'OAuth Refresh Tokens',\n icon: 'refresh-cw',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Opaque OAuth refresh tokens (linked to a session)',\n compactLayout: ['client_id', 'user_id', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n token: Field.text({\n label: 'Token',\n required: true,\n maxLength: 1024,\n description: 'Opaque refresh token value',\n }),\n\n client_id: Field.text({\n label: 'Client ID',\n required: true,\n description: 'Foreign key to sys_oauth_application.client_id',\n }),\n\n session_id: Field.lookup('sys_session', {\n label: 'Session',\n required: false,\n description: 'Foreign key to sys_session.id',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n description: 'Foreign key to sys_user.id',\n }),\n\n reference_id: Field.text({\n label: 'Reference ID',\n required: false,\n maxLength: 255,\n description: 'Caller-supplied correlation identifier',\n }),\n\n scopes: Field.textarea({\n label: 'Scopes',\n required: true,\n description: 'JSON-serialized list of scopes granted to this token',\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n revoked: Field.datetime({\n label: 'Revoked At',\n required: false,\n description: 'Timestamp at which this refresh token was revoked',\n }),\n\n auth_time: Field.datetime({\n label: 'Auth Time',\n required: false,\n description: 'When the user originally authenticated for this token chain',\n }),\n },\n\n indexes: [\n { fields: ['token'], unique: true },\n { fields: ['client_id'] },\n { fields: ['session_id'] },\n { fields: ['user_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: false,\n apiMethods: [],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_oauth_consent — Recorded user consent for an OAuth client + scopes\n *\n * Backed by `@better-auth/oauth-provider`'s `oauthConsent` model. When a\n * user consents to a client requesting a particular set of scopes, the\n * decision is persisted here so future authorization requests for the same\n * client+scopes can skip the consent screen.\n *\n * The presence of a row implies consent was given for the listed scopes —\n * the previous boolean `consent_given` flag was removed in the migration\n * from `better-auth/plugins/oidc-provider` to `@better-auth/oauth-provider`.\n *\n * @namespace sys\n */\nexport const SysOauthConsent = ObjectSchema.create({\n name: 'sys_oauth_consent',\n label: 'OAuth Consent',\n pluralLabel: 'OAuth Consents',\n icon: 'shield-check',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'User consent records for OAuth client applications',\n compactLayout: ['client_id', 'user_id', 'scopes'],\n\n fields: {\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n client_id: Field.text({\n label: 'Client ID',\n required: true,\n description: 'Foreign key to sys_oauth_application.client_id',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: false,\n description: 'Foreign key to sys_user.id',\n }),\n\n reference_id: Field.text({\n label: 'Reference ID',\n required: false,\n maxLength: 255,\n description: 'Caller-supplied correlation identifier',\n }),\n\n scopes: Field.textarea({\n label: 'Scopes',\n required: true,\n description: 'JSON-serialized list of scopes the user consented to',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n },\n\n indexes: [\n { fields: ['client_id'] },\n { fields: ['user_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: false,\n apiMethods: [],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_jwks — JWKS (JSON Web Key Set) key pair store\n *\n * Backed by better-auth's `jwt` plugin. Each row is a single asymmetric\n * key pair used to sign and verify JWTs (id_tokens, JWT access tokens)\n * issued by this ObjectStack server when it acts as an OAuth/OIDC IdP.\n *\n * The plugin rotates keys automatically — older rows are kept until\n * `expires_at` so existing tokens can still be verified.\n *\n * @namespace sys\n */\nexport const SysJwks = ObjectSchema.create({\n name: 'sys_jwks',\n label: 'JWKS Key',\n pluralLabel: 'JWKS Keys',\n icon: 'key',\n isSystem: true,\n managedBy: 'better-auth',\n description: 'Asymmetric key pairs used to sign and verify issued JWTs',\n compactLayout: ['id', 'created_at', 'expires_at'],\n\n fields: {\n id: Field.text({\n label: 'Key ID',\n required: true,\n readonly: true,\n description: 'JWK `kid` value',\n }),\n\n public_key: Field.textarea({\n label: 'Public Key',\n required: true,\n description: 'JSON-serialized JWK public key',\n }),\n\n private_key: Field.textarea({\n label: 'Private Key',\n required: true,\n description: 'JSON-serialized JWK private key (encrypted at rest)',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n expires_at: Field.datetime({\n label: 'Expires At',\n required: false,\n description: 'When the key may no longer be used to verify tokens',\n }),\n },\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: false,\n apiMethods: [],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_role — System Role Object\n *\n * RBAC role definition for the ObjectStack platform.\n * Roles group permissions and are assigned to users or members.\n *\n * @namespace sys\n */\nexport const SysRole = ObjectSchema.create({\n name: 'sys_role',\n label: 'Role',\n pluralLabel: 'Roles',\n icon: 'shield',\n isSystem: true,\n managedBy: 'config',\n description: 'Role definitions for RBAC access control',\n displayNameField: 'label',\n titleFormat: '{label}',\n compactLayout: ['label', 'name', 'active', 'is_default'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_role' },\n columns: ['label', 'name', 'is_default', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n default_roles: {\n type: 'grid',\n name: 'default_roles',\n label: 'Default',\n data: { provider: 'object', object: 'sys_role' },\n columns: ['label', 'name', 'description', 'active'],\n filter: [{ field: 'is_default', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n custom: {\n type: 'grid',\n name: 'custom',\n label: 'Custom',\n data: { provider: 'object', object: 'sys_role' },\n columns: ['label', 'name', 'active', 'updated_at'],\n filter: [{ field: 'is_default', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n all_roles: {\n type: 'grid',\n name: 'all_roles',\n label: 'All',\n data: { provider: 'object', object: 'sys_role' },\n columns: ['label', 'name', 'active', 'is_default', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n label: Field.text({\n label: 'Display Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n name: Field.text({\n label: 'API Name',\n required: true,\n searchable: true,\n maxLength: 100,\n description: 'Unique machine name for the role (e.g. admin, editor, viewer)',\n group: 'Identity',\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: false,\n group: 'Identity',\n }),\n\n // ── Configuration ────────────────────────────────────────────\n permissions: Field.textarea({\n label: 'Permissions',\n required: false,\n description: 'JSON-serialized array of permission strings',\n group: 'Configuration',\n }),\n\n // ── Status ───────────────────────────────────────────────────\n active: Field.boolean({\n label: 'Active',\n defaultValue: true,\n group: 'Status',\n }),\n\n is_default: Field.boolean({\n label: 'Default Role',\n defaultValue: false,\n description: 'Automatically assigned to new users',\n group: 'Status',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Role ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['active'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_permission_set — System Permission Set Object\n *\n * Named groupings of fine-grained permissions.\n * Permission sets can be assigned to roles or directly to users\n * for granular access control.\n *\n * @namespace sys\n */\nexport const SysPermissionSet = ObjectSchema.create({\n name: 'sys_permission_set',\n label: 'Permission Set',\n pluralLabel: 'Permission Sets',\n icon: 'lock',\n isSystem: true,\n managedBy: 'config',\n description: 'Named permission groupings for fine-grained access control',\n displayNameField: 'label',\n titleFormat: '{label}',\n compactLayout: ['label', 'name', 'active'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_permission_set' },\n columns: ['label', 'name', 'description', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_permission_set' },\n columns: ['label', 'name', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n all_permsets: {\n type: 'grid',\n name: 'all_permsets',\n label: 'All',\n data: { provider: 'object', object: 'sys_permission_set' },\n columns: ['label', 'name', 'active', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n // ── Identity ─────────────────────────────────────────────────\n label: Field.text({\n label: 'Display Name',\n required: true,\n searchable: true,\n maxLength: 255,\n group: 'Identity',\n }),\n\n name: Field.text({\n label: 'API Name',\n required: true,\n searchable: true,\n maxLength: 100,\n description: 'Unique machine name for the permission set',\n group: 'Identity',\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: false,\n group: 'Identity',\n }),\n\n // ── Permissions ──────────────────────────────────────────────\n object_permissions: Field.textarea({\n label: 'Object Permissions',\n required: false,\n description: 'JSON-serialized object-level CRUD permissions',\n group: 'Permissions',\n }),\n\n field_permissions: Field.textarea({\n label: 'Field Permissions',\n required: false,\n description: 'JSON-serialized field-level read/write permissions',\n group: 'Permissions',\n }),\n\n // ── Status ───────────────────────────────────────────────────\n active: Field.boolean({\n label: 'Active',\n defaultValue: true,\n group: 'Status',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Permission Set ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['active'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_user_permission_set — User ↔ PermissionSet assignment.\n *\n * Salesforce-style additive permission grant: a user may be assigned any\n * number of `sys_permission_set` rows, optionally scoped to a specific\n * organization. The runtime resolver (`resolveExecutionContext` in\n * `@objectstack/runtime`) reads this table when building the per-request\n * `ExecutionContext.permissions[]`.\n *\n * Uniqueness is `(user_id, permission_set_id, organization_id)` so the\n * same permission set can be granted independently in each org context\n * the user belongs to.\n *\n * @namespace sys\n */\nexport const SysUserPermissionSet = ObjectSchema.create({\n name: 'sys_user_permission_set',\n label: 'User Permission Set',\n pluralLabel: 'User Permission Sets',\n icon: 'user-check',\n isSystem: true,\n managedBy: 'system',\n description: 'Direct assignment of a permission set to a user (optionally scoped to an organization).',\n titleFormat: '{user_id} → {permission_set_id}',\n compactLayout: ['user_id', 'permission_set_id', 'organization_id'],\n\n fields: {\n id: Field.text({\n label: 'Assignment ID',\n required: true,\n readonly: true,\n description: 'UUID of the assignment.',\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n description: 'Foreign key to sys_user.',\n }),\n\n permission_set_id: Field.lookup('sys_permission_set', {\n label: 'Permission Set',\n required: true,\n description: 'Foreign key to sys_permission_set.',\n }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: false,\n description: 'Optional organization scope. NULL = applies in every org context.',\n }),\n\n granted_by: Field.lookup('sys_user', {\n label: 'Granted By',\n required: false,\n description: 'User who granted this permission set.',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n },\n\n indexes: [\n { fields: ['user_id', 'permission_set_id', 'organization_id'], unique: true },\n { fields: ['user_id'] },\n { fields: ['organization_id'] },\n { fields: ['permission_set_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_role_permission_set — Role ↔ PermissionSet binding.\n *\n * Allows administrators to compose a `sys_role` from one or more\n * `sys_permission_set` rows. At request time, the runtime resolver\n * (`resolveExecutionContext`) collects every permission set bound to\n * the user's roles via this table and injects their names into\n * `ExecutionContext.permissions[]` for downstream RBAC evaluation.\n *\n * @namespace sys\n */\nexport const SysRolePermissionSet = ObjectSchema.create({\n name: 'sys_role_permission_set',\n label: 'Role Permission Set',\n pluralLabel: 'Role Permission Sets',\n icon: 'shield-plus',\n isSystem: true,\n managedBy: 'system',\n description: 'Binds a permission set to a role.',\n titleFormat: '{role_id} → {permission_set_id}',\n compactLayout: ['role_id', 'permission_set_id'],\n\n fields: {\n id: Field.text({\n label: 'Binding ID',\n required: true,\n readonly: true,\n description: 'UUID of the role-permission-set binding.',\n }),\n\n role_id: Field.lookup('sys_role', {\n label: 'Role',\n required: true,\n description: 'Foreign key to sys_role.',\n }),\n\n permission_set_id: Field.lookup('sys_permission_set', {\n label: 'Permission Set',\n required: true,\n description: 'Foreign key to sys_permission_set.',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n },\n\n indexes: [\n { fields: ['role_id', 'permission_set_id'], unique: true },\n { fields: ['role_id'] },\n { fields: ['permission_set_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: true,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_record_share — Per-Record Sharing Grant\n *\n * Bridges the ownership-only baseline established by `object.sharingModel`\n * with the real-world need to delegate access to a single record. Each\n * row says: \"principal P has access level L on (object O, record R),\n * because of source S (manual grant or rule).\"\n *\n * Enforcement lives in `@objectstack/plugin-sharing`:\n * - For objects with `sharingModel: 'private'`, the engine middleware\n * AND-s `{$or:[{owner_id:userId},{id:{$in:[grantedRecordIds]}}]}`\n * into every `find` against that object.\n * - For objects with `sharingModel: 'private' | 'read'`, the same\n * middleware enforces edit/delete by checking ownership OR a share\n * row with `access_level in ('edit','full')`.\n *\n * Conventions:\n * - `object_name` is the short object name (e.g. `account`, `lead`).\n * - `recipient_type` mirrors `ShareRecipientType` from the spec\n * (`user` is enforced today; `group`/`role` are persisted for\n * forward-compatibility).\n * - `source = 'manual'` rows are created by a user via the REST\n * `POST /data/:object/:id/shares` endpoint. `source = 'rule'` rows\n * are materialised by the sharing-rule evaluator (future); the\n * `source_id` lets the evaluator reconcile stale grants.\n *\n * @namespace sys\n */\nexport const SysRecordShare = ObjectSchema.create({\n name: 'sys_record_share',\n label: 'Record Share',\n pluralLabel: 'Record Shares',\n icon: 'share',\n isSystem: true,\n managedBy: 'system',\n description: 'Per-record sharing grant — extends OWD with explicit access',\n titleFormat: '{object_name}/{record_id} → {recipient_id} ({access_level})',\n compactLayout: ['object_name', 'record_id', 'recipient_id', 'access_level', 'source'],\n\n listViews: {\n granted_to_me: {\n type: 'grid',\n name: 'granted_to_me',\n label: 'Granted to Me',\n data: { provider: 'object', object: 'sys_record_share' },\n columns: ['object_name', 'record_id', 'access_level', 'source', 'granted_by', 'created_at'],\n filter: [\n { field: 'recipient_type', operator: 'equals', value: 'user' },\n { field: 'recipient_id', operator: 'equals', value: '{current_user_id}' },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n granted_by_me: {\n type: 'grid',\n name: 'granted_by_me',\n label: 'Granted by Me',\n data: { provider: 'object', object: 'sys_record_share' },\n columns: ['object_name', 'record_id', 'recipient_id', 'access_level', 'source', 'created_at'],\n filter: [\n { field: 'granted_by', operator: 'equals', value: '{current_user_id}' },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n by_object: {\n type: 'grid',\n name: 'by_object',\n label: 'By Object',\n data: { provider: 'object', object: 'sys_record_share' },\n columns: ['object_name', 'record_id', 'recipient_id', 'access_level', 'source', 'created_at'],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'created_at', order: 'desc' }],\n grouping: { fields: [{ field: 'object_name', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n manual_grants: {\n type: 'grid',\n name: 'manual_grants',\n label: 'Manual Grants',\n data: { provider: 'object', object: 'sys_record_share' },\n columns: ['object_name', 'record_id', 'recipient_id', 'access_level', 'granted_by', 'reason', 'created_at'],\n filter: [{ field: 'source', operator: 'equals', value: 'manual' }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n rule_grants: {\n type: 'grid',\n name: 'rule_grants',\n label: 'Rule Grants',\n data: { provider: 'object', object: 'sys_record_share' },\n columns: ['object_name', 'record_id', 'recipient_id', 'access_level', 'source_id', 'created_at'],\n filter: [{ field: 'source', operator: 'in', value: ['rule', 'team', 'inherited'] }],\n sort: [{ field: 'source_id', order: 'asc' }, { field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n all_shares: {\n type: 'grid',\n name: 'all_shares',\n label: 'All',\n data: { provider: 'object', object: 'sys_record_share' },\n columns: ['object_name', 'record_id', 'recipient_type', 'recipient_id', 'access_level', 'source', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n },\n },\n\n fields: {\n id: Field.text({\n label: 'Share ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n // ── Target (which record is being shared) ────────────────────\n object_name: Field.text({\n label: 'Object',\n required: true,\n maxLength: 100,\n description: 'Short object name of the shared record',\n group: 'Target',\n }),\n\n record_id: Field.text({\n label: 'Record',\n required: true,\n maxLength: 100,\n description: 'Primary key of the shared record within object_name',\n group: 'Target',\n }),\n\n // ── Recipient (who receives access) ──────────────────────────\n recipient_type: Field.select(\n ['user', 'group', 'role', 'role_and_subordinates', 'guest'],\n {\n label: 'Recipient Type',\n required: true,\n defaultValue: 'user',\n description: 'Kind of principal that holds the grant',\n group: 'Recipient',\n },\n ),\n\n recipient_id: Field.text({\n label: 'Recipient',\n required: true,\n maxLength: 100,\n description: 'ID of the user/group/role that receives access',\n group: 'Recipient',\n }),\n\n access_level: Field.select(\n ['read', 'edit', 'full'],\n {\n label: 'Access Level',\n required: true,\n defaultValue: 'read',\n description: 'What the recipient can do — read | edit | full (transfer/share/delete)',\n group: 'Recipient',\n },\n ),\n\n // ── Provenance ───────────────────────────────────────────────\n source: Field.select(\n ['manual', 'rule', 'team', 'inherited'],\n {\n label: 'Source',\n required: true,\n defaultValue: 'manual',\n description: 'Why this grant exists — used by the rule evaluator to reconcile',\n group: 'Provenance',\n },\n ),\n\n source_id: Field.text({\n label: 'Source ID',\n required: false,\n maxLength: 200,\n description: 'Rule name / team id when source != manual',\n group: 'Provenance',\n }),\n\n granted_by: Field.lookup('sys_user', {\n label: 'Granted By',\n required: false,\n description: 'User that created the grant (manual only)',\n group: 'Provenance',\n }),\n\n reason: Field.text({\n label: 'Reason',\n required: false,\n maxLength: 500,\n description: 'Optional free-text explanation surfaced to the recipient',\n group: 'Provenance',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n // Hot path: \"all records visible to user U on object O\" — the\n // middleware reads (object_name, recipient_type, recipient_id) to\n // build the `id IN (...)` predicate on every find.\n { fields: ['object_name', 'recipient_type', 'recipient_id'] },\n // \"all grants on this record\" — used by the share-management UI\n // and by canEdit() to look up explicit grants.\n { fields: ['object_name', 'record_id'] },\n // Reconciliation key for rule-driven shares.\n { fields: ['source', 'source_id'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_sharing_rule — Declarative record-sharing rule.\n *\n * Salesforce-style criteria-based sharing: \"any record on object O that\n * matches criteria C is granted access level A to recipient R\". Rules\n * are evaluated by `@objectstack/plugin-sharing` and materialise their\n * grants as rows in `sys_record_share` with `source='rule'` and\n * `source_id={rule.id}` so the evaluator can reconcile (delete + re-\n * insert) on rule updates without touching manual grants.\n *\n * Evaluation triggers:\n * - `afterInsert` / `afterUpdate` on the target object (per-record,\n * incremental — the hot path).\n * - REST `POST /sharing/rules/:id/evaluate` (admin-initiated\n * bulk reconcile — used after rule edits).\n *\n * Criteria are stored as JSON (a normal `FilterCondition`) so the\n * existing engine `find()` can do the matching natively. v1 supports\n * simple `{field, op, value}` style filters; CEL predicates are a\n * follow-up.\n *\n * @namespace sys\n */\nexport const SysSharingRule = ObjectSchema.create({\n name: 'sys_sharing_rule',\n label: 'Sharing Rule',\n pluralLabel: 'Sharing Rules',\n icon: 'shield-check',\n isSystem: true,\n managedBy: 'config',\n // Sharing rules can now be authored visually via the Studio criteria\n // builder (apps/studio/src/components/SharingCriteriaBuilder.tsx).\n // We still recommend `defineSharingRule({...})` for repo-controlled\n // baselines, but admins can safely create/edit/delete from the UI.\n userActions: { create: true, edit: true, delete: true, import: false },\n description: 'Declarative sharing rule that auto-materialises sys_record_share grants. Authored via defineSharingRule() in code or the Studio criteria builder.',\n displayNameField: 'name',\n titleFormat: '{label}',\n compactLayout: ['name', 'object_name', 'recipient_type', 'recipient_id', 'access_level', 'active'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_sharing_rule' },\n columns: ['label', 'object_name', 'recipient_type', 'recipient_id', 'access_level', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_sharing_rule' },\n columns: ['label', 'object_name', 'recipient_type', 'recipient_id', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n by_object: {\n type: 'grid',\n name: 'by_object',\n label: 'By Object',\n data: { provider: 'object', object: 'sys_sharing_rule' },\n columns: ['object_name', 'label', 'recipient_type', 'access_level', 'active'],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'label', order: 'asc' }],\n grouping: { fields: [{ field: 'object_name', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_rules: {\n type: 'grid',\n name: 'all_rules',\n label: 'All',\n data: { provider: 'object', object: 'sys_sharing_rule' },\n columns: ['label', 'object_name', 'recipient_type', 'recipient_id', 'access_level', 'active', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Rule ID', required: true, readonly: true, group: 'System' }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: false,\n group: 'System',\n description: 'Tenant that owns this rule; null = global',\n }),\n\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 100,\n description: 'Unique snake_case rule name',\n group: 'Identity',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: true,\n maxLength: 200,\n group: 'Identity',\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: false,\n group: 'Identity',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: true,\n maxLength: 100,\n description: 'Short object name (e.g. opportunity, account)',\n group: 'Target',\n }),\n\n criteria_json: Field.textarea({\n label: 'Criteria (FilterCondition JSON)',\n required: false,\n description: 'JSON FilterCondition matched against records of object_name. Empty = match all.',\n group: 'Target',\n }),\n\n recipient_type: Field.select(\n ['user', 'team', 'department', 'role', 'queue'],\n {\n label: 'Recipient Type',\n required: true,\n defaultValue: 'department',\n description: 'Kind of principal that receives access — expanded to user grants at evaluation time. `department` walks the parent_department_id tree; `team` is flat (better-auth).',\n group: 'Recipient',\n },\n ),\n\n recipient_id: Field.text({\n label: 'Recipient',\n required: true,\n maxLength: 200,\n description: 'department id / team id / role name / queue name / user id depending on recipient_type',\n group: 'Recipient',\n }),\n\n access_level: Field.select(\n ['read', 'edit', 'full'],\n {\n label: 'Access Level',\n required: true,\n defaultValue: 'read',\n group: 'Recipient',\n },\n ),\n\n active: Field.boolean({\n label: 'Active',\n required: false,\n defaultValue: true,\n description: 'Only active rules participate in lifecycle evaluation',\n group: 'Lifecycle',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['object_name', 'active'] },\n { fields: ['name'], unique: true },\n { fields: ['organization_id'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { PermissionSetSchema, type PermissionSet } from '@objectstack/spec/security';\n\n/**\n * Identity tables managed by the better-auth plugin (see\n * `packages/platform-objects/src/identity/`). Mutations to these tables\n * MUST flow through the better-auth API endpoints (sign-up, password\n * reset, organization invite/remove-member, api-key/create, …) rather\n * than the generic CRUD pipeline so that password hashing, token\n * signing, email verification, invitation flows and scope hashing all\n * fire correctly.\n *\n * The default member/viewer permission sets therefore explicitly DENY\n * `allowCreate / allowEdit / allowDelete` on these objects while still\n * permitting reads (subject to the rest of the RLS chain). Admin\n * permission sets keep their `*` wildcard so they can rescue data\n * directly when needed.\n *\n * Each entry mirrors the `managedBy: 'better-auth'` flag declared on\n * the corresponding object schema in `packages/platform-objects/src/identity/`.\n */\nconst BETTER_AUTH_MANAGED_OBJECTS = [\n 'sys_user',\n 'sys_account',\n 'sys_session',\n 'sys_organization',\n 'sys_member',\n 'sys_invitation',\n 'sys_team',\n 'sys_team_member',\n 'sys_api_key',\n 'sys_two_factor',\n 'sys_verification',\n 'sys_jwks',\n 'sys_device_code',\n 'sys_oauth_application',\n 'sys_oauth_access_token',\n 'sys_oauth_refresh_token',\n 'sys_oauth_consent',\n] as const;\n\nconst denyWritesOnManagedObjects = (): Record<string, {\n allowRead: boolean;\n allowCreate: boolean;\n allowEdit: boolean;\n allowDelete: boolean;\n}> => Object.fromEntries(\n BETTER_AUTH_MANAGED_OBJECTS.map((name) => [\n name,\n { allowRead: true, allowCreate: false, allowEdit: false, allowDelete: false },\n ]),\n);\n\n/**\n * Default permission sets seeded by the platform.\n *\n * These are referenced by name (`admin_full_access`, `member_default`,\n * `viewer_readonly`) from `sys_role_permission_set` rows or assigned\n * directly to users via `sys_user_permission_set`.\n *\n * The runtime SecurityPlugin reads these via the metadata service when a\n * permission set name appears in the request `ExecutionContext.permissions[]`.\n *\n * Each entry is run through `PermissionSetSchema.parse(...)` so Zod fills\n * in the boolean/`priority`/`enabled` defaults — keeping the literal\n * source readable while still satisfying the strict output type.\n *\n * `objects: { '*': … }` uses the wildcard sentinel honoured by\n * `PermissionEvaluator` — admins do not need an explicit row per object.\n * Per-object entries fully override the wildcard for that object (see\n * `PermissionEvaluator.checkObjectPermission` — lookup, not merge).\n *\n * RLS policies use the canonical `current_user.*` placeholders compiled\n * by `RLSCompiler`. The active organization is exposed under\n * `current_user.organization_id` (sourced from\n * `ExecutionContext.tenantId` at request time) — there is no rewrite\n * step or `tenantField` indirection in SecurityPlugin. Schemas with a\n * different physical tenant column should fork these defaults.\n */\nexport const defaultPermissionSets: PermissionSet[] = [\n PermissionSetSchema.parse({\n name: 'admin_full_access',\n label: 'Administrator — Full Access',\n isProfile: true,\n objects: {\n '*': {\n allowRead: true,\n allowCreate: true,\n allowEdit: true,\n allowDelete: true,\n viewAllRecords: true,\n modifyAllRecords: true,\n },\n },\n systemPermissions: ['manage_users', 'manage_metadata', 'setup.access'],\n }),\n PermissionSetSchema.parse({\n name: 'member_default',\n label: 'Member — Standard Access',\n isProfile: true,\n objects: {\n '*': {\n allowRead: true,\n allowCreate: true,\n allowEdit: true,\n allowDelete: true,\n },\n // Identity tables are managed by better-auth — no direct writes.\n ...denyWritesOnManagedObjects(),\n },\n rowLevelSecurity: [\n {\n name: 'tenant_isolation',\n object: '*',\n operation: 'all',\n using: 'organization_id = current_user.organization_id',\n },\n {\n name: 'owner_only_writes',\n object: '*',\n operation: 'update',\n using: 'owner_id = current_user.id',\n },\n {\n name: 'owner_only_deletes',\n object: '*',\n operation: 'delete',\n using: 'owner_id = current_user.id',\n },\n // ── better-auth system tables that lack `organization_id` and would\n // otherwise be left unprotected by the wildcard rule above. ────\n //\n // The security plugin's RLS injector treats wildcard policies that\n // target a missing field as `RLS_DENY_FILTER` (zero rows) unless a\n // per-object policy contributes an alternate match. Each `*_self`\n // policy below restores per-user visibility on a better-auth table\n // that has `user_id` but no `organization_id`. Tables without\n // `user_id` (`sys_verification`, `sys_jwks`, empty `sys_passkey`)\n // stay DENY for non-admins by design — only platform admins (via\n // `admin_full_access`, which has no RLS) should inspect them.\n {\n name: 'sys_organization_self',\n object: 'sys_organization',\n operation: 'all',\n using: 'id = current_user.organization_id',\n },\n {\n name: 'sys_user_self',\n object: 'sys_user',\n operation: 'select',\n using: 'id = current_user.id',\n },\n {\n name: 'sys_session_self',\n object: 'sys_session',\n operation: 'all',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_account_self',\n object: 'sys_account',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_team_member_self',\n object: 'sys_team_member',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_two_factor_self',\n object: 'sys_two_factor',\n operation: 'all',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_user_preference_self',\n object: 'sys_user_preference',\n operation: 'all',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_api_key_self',\n object: 'sys_api_key',\n operation: 'all',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_device_code_self',\n object: 'sys_device_code',\n operation: 'all',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_oauth_access_token_self',\n object: 'sys_oauth_access_token',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_oauth_refresh_token_self',\n object: 'sys_oauth_refresh_token',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_oauth_consent_self',\n object: 'sys_oauth_consent',\n operation: 'all',\n using: 'user_id = current_user.id',\n },\n ],\n }),\n PermissionSetSchema.parse({\n name: 'viewer_readonly',\n label: 'Viewer — Read-Only',\n isProfile: true,\n objects: {\n '*': {\n allowRead: true,\n allowCreate: false,\n allowEdit: false,\n allowDelete: false,\n },\n // Belt-and-suspenders: explicit deny on managed objects even though\n // the wildcard already denies — keeps the policy readable when\n // future relaxations might widen the wildcard.\n ...denyWritesOnManagedObjects(),\n },\n rowLevelSecurity: [\n {\n name: 'tenant_isolation',\n object: '*',\n operation: 'select',\n using: 'organization_id = current_user.organization_id',\n },\n {\n name: 'sys_organization_self',\n object: 'sys_organization',\n operation: 'select',\n using: 'id = current_user.organization_id',\n },\n {\n name: 'sys_user_self',\n object: 'sys_user',\n operation: 'select',\n using: 'id = current_user.id',\n },\n // ── Per-user visibility on better-auth tables that lack\n // `organization_id` (matches the `member_default` carve-outs).\n {\n name: 'sys_session_self',\n object: 'sys_session',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_account_self',\n object: 'sys_account',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_team_member_self',\n object: 'sys_team_member',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_two_factor_self',\n object: 'sys_two_factor',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_user_preference_self',\n object: 'sys_user_preference',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_api_key_self',\n object: 'sys_api_key',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_device_code_self',\n object: 'sys_device_code',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_oauth_access_token_self',\n object: 'sys_oauth_access_token',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_oauth_refresh_token_self',\n object: 'sys_oauth_refresh_token',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n {\n name: 'sys_oauth_consent_self',\n object: 'sys_oauth_consent',\n operation: 'select',\n using: 'user_id = current_user.id',\n },\n ],\n }),\n];\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_audit_log — System Audit Log Object\n *\n * Immutable audit trail for all significant platform events.\n * Records who did what, when, and the before/after state.\n *\n * Every field is `readonly: true` — audit logs are written only by\n * internal system hooks, never via UI forms. API exposes only `get` + `list`.\n *\n * @namespace sys\n */\nexport const SysAuditLog = ObjectSchema.create({\n name: 'sys_audit_log',\n label: 'Audit Log',\n pluralLabel: 'Audit Logs',\n icon: 'scroll-text',\n isSystem: true,\n managedBy: 'append-only',\n description: 'Immutable audit trail for platform events',\n displayNameField: 'action',\n titleFormat: '{action} · {object_name}',\n compactLayout: ['created_at', 'action', 'object_name', 'record_id', 'user_id'],\n\n listViews: {\n recent: {\n type: 'grid',\n name: 'recent',\n label: 'Recent',\n data: { provider: 'object', object: 'sys_audit_log' },\n columns: ['created_at', 'action', 'object_name', 'record_id', 'user_id'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n emptyState: { title: 'No audit events', message: 'Activity will appear here as users interact with the platform.' },\n },\n writes_only: {\n type: 'grid',\n name: 'writes_only',\n label: 'Writes',\n data: { provider: 'object', object: 'sys_audit_log' },\n columns: ['created_at', 'action', 'object_name', 'record_id', 'user_id'],\n filter: [{ field: 'action', operator: 'in', value: ['create', 'update', 'delete', 'restore'] }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n auth_events: {\n type: 'grid',\n name: 'auth_events',\n label: 'Auth',\n data: { provider: 'object', object: 'sys_audit_log' },\n columns: ['created_at', 'action', 'user_id'],\n filter: [{ field: 'action', operator: 'in', value: ['login', 'logout', 'permission_change'] }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n config_changes: {\n type: 'grid',\n name: 'config_changes',\n label: 'Config',\n data: { provider: 'object', object: 'sys_audit_log' },\n columns: ['created_at', 'action', 'object_name', 'user_id'],\n filter: [{ field: 'action', operator: 'in', value: ['config_change', 'export', 'import'] }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n all_events: {\n type: 'grid',\n name: 'all_events',\n label: 'All',\n data: { provider: 'object', object: 'sys_audit_log' },\n columns: ['created_at', 'action', 'object_name', 'record_id', 'user_id'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n },\n },\n\n fields: {\n // ── Event ────────────────────────────────────────────────────\n created_at: Field.datetime({\n label: 'Timestamp',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'Event',\n }),\n\n action: Field.select(\n ['create', 'update', 'delete', 'restore', 'login', 'logout', 'permission_change', 'config_change', 'export', 'import'],\n {\n label: 'Action',\n required: true,\n readonly: true,\n searchable: true,\n description: 'Action type (snake_case)',\n group: 'Event',\n },\n ),\n\n user_id: Field.lookup('sys_user', {\n label: 'Actor',\n required: false,\n readonly: true,\n searchable: true,\n description: 'User who performed the action (null for system actions)',\n group: 'Event',\n }),\n\n // ── Target record ────────────────────────────────────────────\n object_name: Field.text({\n label: 'Object',\n required: false,\n readonly: true,\n searchable: true,\n maxLength: 255,\n description: 'Target object (e.g. sys_user, project_task)',\n group: 'Target',\n }),\n\n record_id: Field.text({\n label: 'Record ID',\n required: false,\n readonly: true,\n searchable: true,\n description: 'ID of the affected record',\n group: 'Target',\n }),\n\n // ── Change payload ───────────────────────────────────────────\n old_value: Field.textarea({\n label: 'Old Value',\n required: false,\n readonly: true,\n description: 'JSON-serialized previous state',\n group: 'Changes',\n }),\n\n new_value: Field.textarea({\n label: 'New Value',\n required: false,\n readonly: true,\n description: 'JSON-serialized new state',\n group: 'Changes',\n }),\n\n // ── Client fingerprint ───────────────────────────────────────\n ip_address: Field.text({\n label: 'IP Address',\n required: false,\n readonly: true,\n maxLength: 45,\n group: 'Client',\n }),\n\n user_agent: Field.textarea({\n label: 'User Agent',\n required: false,\n readonly: true,\n group: 'Client',\n }),\n\n // ── Context ──────────────────────────────────────────────────\n tenant_id: Field.lookup('sys_organization', {\n label: 'Tenant',\n required: false,\n readonly: true,\n description: 'Tenant context for multi-tenant isolation',\n group: 'Context',\n }),\n\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n readonly: true,\n description: 'JSON-serialized additional context',\n group: 'Context',\n }),\n\n // ── System ───────────────────────────────────────────────────\n id: Field.text({\n label: 'Audit Log ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['created_at'] },\n { fields: ['user_id'] },\n { fields: ['object_name', 'record_id'] },\n { fields: ['action'] },\n { fields: ['tenant_id'] },\n ],\n\n enable: {\n trackHistory: false, // Audit logs are themselves the audit trail\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list'], // Read-only — creation happens via internal system hooks only\n trash: false, // Never soft-delete audit logs\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_presence — System Presence Object\n *\n * Tracks real-time user presence and activity across the platform.\n * Fields align with the PresenceStateSchema protocol definition\n * from `@objectstack/spec/api` (websocket.zod.ts).\n *\n * Owned by `service-realtime` as the canonical Presence domain object.\n *\n * @namespace sys\n * @see PresenceStateSchema in packages/spec/src/api/websocket.zod.ts\n */\nexport const SysPresence = ObjectSchema.create({\n name: 'sys_presence',\n label: 'Presence',\n pluralLabel: 'Presences',\n icon: 'wifi',\n isSystem: true,\n managedBy: 'append-only',\n description: 'Real-time user presence and activity tracking',\n titleFormat: '{user_id} ({status})',\n compactLayout: ['user_id', 'status', 'last_seen'],\n\n fields: {\n id: Field.text({\n label: 'Presence ID',\n required: true,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n required: true,\n searchable: true,\n }),\n\n session_id: Field.lookup('sys_session', {\n label: 'Session',\n required: true,\n }),\n\n status: Field.select({\n label: 'Status',\n required: true,\n defaultValue: 'online',\n options: [\n { value: 'online', label: 'Online' },\n { value: 'away', label: 'Away' },\n { value: 'busy', label: 'Busy' },\n { value: 'offline', label: 'Offline' },\n ],\n }),\n\n last_seen: Field.datetime({\n label: 'Last Seen',\n required: true,\n defaultValue: 'NOW()',\n }),\n\n current_location: Field.text({\n label: 'Current Location',\n required: false,\n maxLength: 500,\n }),\n\n device: Field.select({\n label: 'Device',\n required: false,\n options: [\n { value: 'desktop', label: 'Desktop' },\n { value: 'mobile', label: 'Mobile' },\n { value: 'tablet', label: 'Tablet' },\n { value: 'other', label: 'Other' },\n ],\n }),\n\n custom_status: Field.text({\n label: 'Custom Status',\n required: false,\n maxLength: 255,\n }),\n\n metadata: Field.json({\n label: 'Metadata',\n required: false,\n description: 'Arbitrary JSON metadata associated with the presence state (matches PresenceStateSchema.metadata).',\n }),\n },\n\n indexes: [\n { fields: ['user_id'], unique: false },\n { fields: ['session_id'], unique: true },\n { fields: ['status'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_activity — Lightweight Activity Stream\n *\n * Append-only \"recent activity\" feed shown on dashboards / overview\n * pages. Distinct from `sys_audit_log` (compliance-grade, structured\n * before/after diffs) and `feed_item` (record-scoped Chatter timeline\n * with comments/reactions/threads). Activity entries are denormalized\n * snapshots optimized for chronological \"what happened lately\" reads.\n *\n * Typical write sources: data triggers, plugin events, UI actions.\n * Typical readers: Studio dashboard, mobile inbox, notification jobs.\n *\n * @namespace sys\n */\nexport const SysActivity = ObjectSchema.create({\n name: 'sys_activity',\n label: 'Activity',\n pluralLabel: 'Activities',\n icon: 'activity',\n isSystem: true,\n managedBy: 'append-only',\n description: 'Recent activity stream entries (lightweight, denormalized)',\n displayNameField: 'summary',\n titleFormat: '{type} · {summary}',\n compactLayout: ['timestamp', 'type', 'actor_name', 'summary'],\n\n fields: {\n id: Field.text({\n label: 'Activity ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n timestamp: Field.datetime({\n label: 'Timestamp',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'Event',\n }),\n\n type: Field.select(\n [\n 'created',\n 'updated',\n 'deleted',\n 'commented',\n 'mentioned',\n 'shared',\n 'assigned',\n 'completed',\n 'login',\n 'logout',\n 'system',\n ],\n {\n label: 'Type',\n required: true,\n readonly: true,\n searchable: true,\n group: 'Event',\n },\n ),\n\n summary: Field.text({\n label: 'Summary',\n required: true,\n readonly: true,\n maxLength: 500,\n searchable: true,\n description: 'Human-readable one-line summary',\n group: 'Event',\n }),\n\n // ── Actor ───────────────────────────────────────────────────\n actor_id: Field.lookup('sys_user', {\n label: 'Actor',\n required: false,\n readonly: true,\n searchable: true,\n group: 'Actor',\n }),\n\n actor_name: Field.text({\n label: 'Actor Name',\n required: false,\n readonly: true,\n group: 'Actor',\n }),\n\n actor_avatar_url: Field.url({\n label: 'Actor Avatar',\n required: false,\n readonly: true,\n group: 'Actor',\n }),\n\n // ── Target ───────────────────────────────────────────────────\n object_name: Field.text({\n label: 'Object',\n required: false,\n readonly: true,\n searchable: true,\n maxLength: 255,\n description: 'Target object short name (e.g. account, sys_user)',\n group: 'Target',\n }),\n\n record_id: Field.text({\n label: 'Record ID',\n required: false,\n readonly: true,\n searchable: true,\n group: 'Target',\n }),\n\n record_label: Field.text({\n label: 'Record Label',\n required: false,\n readonly: true,\n maxLength: 255,\n description: 'Display label of the target record at write time',\n group: 'Target',\n }),\n\n url: Field.url({\n label: 'URL',\n required: false,\n readonly: true,\n description: 'Optional deep-link to the activity target',\n group: 'Target',\n }),\n\n // ── Context ──────────────────────────────────────────────────\n project_id: Field.lookup('sys_project', {\n label: 'Project',\n required: false,\n readonly: true,\n searchable: true,\n description: 'Project context (multi-project deployments)',\n group: 'Context',\n }),\n\n metadata: Field.textarea({\n label: 'Metadata',\n required: false,\n readonly: true,\n description: 'JSON-serialized additional context',\n group: 'Context',\n }),\n },\n\n indexes: [\n { fields: ['timestamp'] },\n { fields: ['actor_id'] },\n { fields: ['object_name', 'record_id'] },\n { fields: ['type'] },\n { fields: ['project_id'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: true,\n apiEnabled: true,\n apiMethods: ['get', 'list'],\n trash: false,\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_comment — Threaded Record Comments\n *\n * Generic threaded discussion attached to any record via `thread_id`.\n * `thread_id` is conventionally formatted as `{object}:{record_id}`\n * (e.g. `sys_user:abc123`, `account:9001`) so a single index covers\n * \"all comments on this record\" lookups across every object.\n *\n * Distinct from `feed_item` (Salesforce-style Chatter timeline that\n * mixes comments with field changes / events / approvals). Use\n * `sys_comment` when you want a focused threaded discussion surface\n * without the heavier Chatter envelope.\n *\n * @namespace sys\n */\nexport const SysComment = ObjectSchema.create({\n name: 'sys_comment',\n label: 'Comment',\n pluralLabel: 'Comments',\n icon: 'message-square',\n isSystem: true,\n managedBy: 'platform',\n description: 'Threaded comments attached to records via thread_id',\n displayNameField: 'body',\n titleFormat: '{author_name}: {body}',\n compactLayout: ['created_at', 'author_name', 'body'],\n\n fields: {\n id: Field.text({\n label: 'Comment ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n // ── Thread ───────────────────────────────────────────────────\n thread_id: Field.text({\n label: 'Thread',\n required: true,\n searchable: true,\n maxLength: 255,\n description:\n 'Thread identifier — conventionally `{object}:{record_id}` (e.g. `sys_user:abc123`)',\n group: 'Thread',\n }),\n\n parent_id: Field.lookup('sys_comment', {\n label: 'Parent Comment',\n required: false,\n description: 'Optional parent comment for nested replies',\n group: 'Thread',\n }),\n\n reply_count: Field.number({\n label: 'Reply Count',\n defaultValue: 0,\n readonly: true,\n group: 'Thread',\n }),\n\n // ── Author ───────────────────────────────────────────────────\n author_id: Field.lookup('sys_user', {\n label: 'Author',\n required: true,\n searchable: true,\n group: 'Author',\n }),\n\n author_name: Field.text({\n label: 'Author Name',\n required: false,\n group: 'Author',\n }),\n\n author_avatar_url: Field.url({\n label: 'Author Avatar',\n required: false,\n group: 'Author',\n }),\n\n // ── Body ─────────────────────────────────────────────────────\n body: Field.textarea({\n label: 'Body',\n required: true,\n searchable: true,\n description: 'Comment text (Markdown supported)',\n group: 'Body',\n }),\n\n mentions: Field.textarea({\n label: 'Mentions',\n required: false,\n description: 'JSON array of @mention objects',\n group: 'Body',\n }),\n\n reactions: Field.textarea({\n label: 'Reactions',\n required: false,\n description: 'JSON array of emoji reaction objects',\n group: 'Body',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n is_edited: Field.boolean({\n label: 'Edited',\n defaultValue: false,\n group: 'Lifecycle',\n }),\n\n edited_at: Field.datetime({\n label: 'Edited At',\n required: false,\n group: 'Lifecycle',\n }),\n\n visibility: Field.select(\n ['public', 'internal', 'private'],\n {\n label: 'Visibility',\n defaultValue: 'public',\n group: 'Lifecycle',\n },\n ),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['thread_id', 'created_at'] },\n { fields: ['parent_id'] },\n { fields: ['author_id'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: true,\n apiEnabled: true,\n trash: true,\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_attachment — Polymorphic File ↔ Record Link\n *\n * Generic join row that attaches a previously-uploaded `sys_file` to\n * any other record. Mirrors the Salesforce \"ContentDocumentLink\" /\n * ServiceNow \"sys_attachment\" pattern: file storage and \"where this\n * file is attached\" are separated, so the same `sys_file` row can be\n * surfaced on multiple records, an org-wide library, or a thread.\n *\n * Conventions:\n * - `parent_object` is the short object name (e.g. `account`, `lead`,\n * `opportunity`, `case`, `sys_comment`).\n * - `parent_id` is the parent record's primary key.\n * - `(parent_object, parent_id)` is the natural index for the\n * \"files on this record\" lookup.\n * - `share_type` follows the Salesforce convention: V = Viewer,\n * C = Collaborator, I = Inferred (inherited from parent record).\n *\n * @namespace sys\n */\nexport const SysAttachment = ObjectSchema.create({\n name: 'sys_attachment',\n label: 'Attachment',\n pluralLabel: 'Attachments',\n icon: 'paperclip',\n isSystem: true,\n managedBy: 'platform',\n description: 'Polymorphic link between a sys_file and any other record',\n titleFormat: '{file_name} → {parent_object}/{parent_id}',\n compactLayout: ['created_at', 'parent_object', 'file_name', 'mime_type', 'size'],\n\n fields: {\n id: Field.text({\n label: 'Attachment ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n // ── Parent (polymorphic) ────────────────────────────────────\n parent_object: Field.text({\n label: 'Parent Object',\n required: true,\n searchable: true,\n maxLength: 128,\n description: 'Short object name of the attached-to record (e.g. account, lead)',\n group: 'Parent',\n }),\n\n parent_id: Field.text({\n label: 'Parent Record',\n required: true,\n searchable: true,\n maxLength: 64,\n description: 'Primary key of the attached-to record',\n group: 'Parent',\n }),\n\n // ── File reference ──────────────────────────────────────────\n file_id: Field.lookup('sys_file', {\n label: 'File',\n required: true,\n description: 'The sys_file storage entry being attached',\n group: 'File',\n }),\n\n file_name: Field.text({\n label: 'File Name',\n required: false,\n searchable: true,\n maxLength: 255,\n description: 'Denormalised copy of sys_file.name for fast list rendering',\n group: 'File',\n }),\n\n mime_type: Field.text({\n label: 'MIME Type',\n required: false,\n maxLength: 128,\n group: 'File',\n }),\n\n size: Field.number({\n label: 'Size (bytes)',\n required: false,\n group: 'File',\n }),\n\n // ── Sharing ────────────────────────────────────────────────\n share_type: Field.select(\n ['viewer', 'collaborator', 'inferred'],\n {\n label: 'Share Type',\n defaultValue: 'viewer',\n description: 'viewer | collaborator | inferred (inherited from parent record)',\n group: 'Sharing',\n },\n ),\n\n visibility: Field.select(\n ['internal', 'all_users', 'shared_users'],\n {\n label: 'Visibility',\n defaultValue: 'internal',\n group: 'Sharing',\n },\n ),\n\n // ── Authoring ──────────────────────────────────────────────\n uploaded_by: Field.lookup('sys_user', {\n label: 'Uploaded By',\n required: false,\n group: 'System',\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: false,\n maxLength: 1024,\n group: 'File',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['parent_object', 'parent_id', 'created_at'] },\n { fields: ['file_id'] },\n { fields: ['uploaded_by'] },\n ],\n\n enable: {\n trackHistory: false,\n searchable: true,\n apiEnabled: true,\n trash: true,\n mru: false,\n clone: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_notification — Per-User Inbox Notification\n *\n * Personal, unread-trackable notifications. Distinct from\n * `sys_activity` (per-record, append-only narrative) and\n * `sys_audit_log` (compliance-grade structured diff). Each row\n * targets exactly one user (`recipient_id`) and is the source of\n * truth for the header bell badge.\n *\n * Typical writers: comment mention, record assignment, lead-convert\n * completion, flow notifications. Typical readers: header bell,\n * notification center.\n *\n * @namespace sys\n */\nexport const SysNotification = ObjectSchema.create({\n name: 'sys_notification',\n label: 'Notification',\n pluralLabel: 'Notifications',\n icon: 'bell',\n isSystem: true,\n managedBy: 'system',\n description: 'Per-user notification inbox entries',\n displayNameField: 'title',\n titleFormat: '{title}',\n compactLayout: ['title', 'type', 'is_read', 'created_at'],\n\n listViews: {\n unread: {\n type: 'grid',\n name: 'unread',\n label: 'Unread',\n data: { provider: 'object', object: 'sys_notification' },\n columns: ['type', 'title', 'recipient_id', 'created_at'],\n filter: [\n { field: 'recipient_id', operator: 'equals', value: '{current_user_id}' },\n { field: 'is_read', operator: 'equals', value: false },\n ],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n emptyState: { title: 'Inbox zero', message: 'No unread notifications.' },\n },\n mine: {\n type: 'grid',\n name: 'mine',\n label: 'Mine',\n data: { provider: 'object', object: 'sys_notification' },\n columns: ['type', 'title', 'is_read', 'created_at'],\n filter: [{ field: 'recipient_id', operator: 'equals', value: '{current_user_id}' }],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n all_notifications: {\n type: 'grid',\n name: 'all_notifications',\n label: 'All',\n data: { provider: 'object', object: 'sys_notification' },\n columns: ['type', 'title', 'recipient_id', 'is_read', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n },\n },\n\n fields: {\n id: Field.text({\n label: 'Notification ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n // ── Routing ──────────────────────────────────────────────────\n recipient_id: Field.lookup('sys_user', {\n label: 'Recipient',\n required: true,\n searchable: true,\n description: 'User the notification is delivered to',\n group: 'Routing',\n }),\n\n // ── Content ──────────────────────────────────────────────────\n type: Field.select(\n ['mention', 'assignment', 'comment_reply', 'lead_converted', 'task_due', 'system'],\n {\n label: 'Type',\n required: true,\n defaultValue: 'system',\n description: 'Notification category — drives icon + sort priority',\n group: 'Content',\n },\n ),\n\n title: Field.text({\n label: 'Title',\n required: true,\n maxLength: 255,\n searchable: true,\n group: 'Content',\n }),\n\n body: Field.textarea({\n label: 'Body',\n required: false,\n description: 'Optional secondary text (one-line summary)',\n group: 'Content',\n }),\n\n // ── Source linkage ───────────────────────────────────────────\n source_object: Field.text({\n label: 'Source Object',\n required: false,\n maxLength: 100,\n description: 'Object name of the related record (e.g. lead, opportunity)',\n group: 'Source',\n }),\n\n source_id: Field.text({\n label: 'Source Record',\n required: false,\n maxLength: 100,\n description: 'Record id within source_object',\n group: 'Source',\n }),\n\n url: Field.url({\n label: 'Deep Link',\n required: false,\n description: 'Optional URL to navigate to when clicked',\n group: 'Source',\n }),\n\n actor_id: Field.lookup('sys_user', {\n label: 'Actor',\n required: false,\n description: 'User who caused the notification (mentioner, assigner)',\n group: 'Source',\n }),\n\n actor_name: Field.text({\n label: 'Actor Name',\n required: false,\n group: 'Source',\n }),\n\n // ── Read state ───────────────────────────────────────────────\n is_read: Field.boolean({\n label: 'Read',\n defaultValue: false,\n description: 'True once recipient acknowledges',\n group: 'State',\n }),\n\n read_at: Field.datetime({\n label: 'Read At',\n required: false,\n group: 'State',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['recipient_id', 'is_read', 'created_at'] },\n { fields: ['recipient_id', 'created_at'] },\n { fields: ['source_object', 'source_id'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_email — Outbound Email Log\n *\n * Persistent record of every email the platform has tried to deliver.\n * Lets administrators audit campaigns, debug delivery failures, and\n * lets users see \"what was sent\" from a record's activity stream.\n *\n * The actual SMTP / API delivery is performed by an `IEmailTransport`\n * implementation injected into the EmailServicePlugin (e.g. nodemailer,\n * SendGrid, Resend). This object only stores the outcome.\n *\n * Typical writers: `IEmailService.send()`.\n * Typical readers: activity timeline, deliverability dashboard.\n *\n * @namespace sys\n */\nexport const SysEmail = ObjectSchema.create({\n name: 'sys_email',\n label: 'Email',\n pluralLabel: 'Emails',\n icon: 'mail',\n isSystem: true,\n managedBy: 'append-only',\n description: 'Outbound email delivery log',\n displayNameField: 'subject',\n titleFormat: '{subject}',\n compactLayout: ['subject', 'to', 'status', 'sent_at'],\n\n fields: {\n id: Field.text({\n label: 'Email ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n // ── Envelope ─────────────────────────────────────────────────\n message_id: Field.text({\n label: 'Message-ID',\n required: false,\n maxLength: 255,\n description: 'RFC-5322 Message-ID assigned by the transport',\n group: 'Envelope',\n }),\n\n from_address: Field.text({\n label: 'From',\n required: true,\n maxLength: 320,\n searchable: true,\n group: 'Envelope',\n }),\n\n to_addresses: Field.text({\n label: 'To',\n required: true,\n maxLength: 4000,\n searchable: true,\n description: 'Comma-separated recipient addresses',\n group: 'Envelope',\n }),\n\n cc_addresses: Field.text({\n label: 'Cc',\n required: false,\n maxLength: 4000,\n group: 'Envelope',\n }),\n\n bcc_addresses: Field.text({\n label: 'Bcc',\n required: false,\n maxLength: 4000,\n group: 'Envelope',\n }),\n\n reply_to: Field.text({\n label: 'Reply-To',\n required: false,\n maxLength: 320,\n group: 'Envelope',\n }),\n\n // ── Content ──────────────────────────────────────────────────\n subject: Field.text({\n label: 'Subject',\n required: true,\n maxLength: 998,\n searchable: true,\n group: 'Content',\n }),\n\n body_text: Field.textarea({\n label: 'Body (text)',\n required: false,\n searchable: true,\n group: 'Content',\n }),\n\n body_html: Field.textarea({\n label: 'Body (HTML)',\n required: false,\n group: 'Content',\n }),\n\n // ── Delivery state ───────────────────────────────────────────\n status: Field.select(\n ['queued', 'sent', 'failed'],\n {\n label: 'Status',\n required: true,\n defaultValue: 'queued',\n description: 'Lifecycle state — queued by IEmailService.send before transport call',\n group: 'State',\n },\n ),\n\n error: Field.textarea({\n label: 'Error',\n required: false,\n description: 'Transport error message when status=failed',\n group: 'State',\n }),\n\n attempt_count: Field.number({\n label: 'Attempts',\n required: false,\n defaultValue: 0,\n description: 'Number of delivery attempts performed by the service',\n group: 'State',\n }),\n\n sent_at: Field.datetime({\n label: 'Sent At',\n required: false,\n description: 'Set when status transitions to \"sent\"',\n group: 'State',\n }),\n\n // ── Source linkage ───────────────────────────────────────────\n related_object: Field.text({\n label: 'Related Object',\n required: false,\n maxLength: 100,\n description: 'Object name of the related record (e.g. lead, opportunity)',\n group: 'Source',\n }),\n\n related_id: Field.text({\n label: 'Related Record',\n required: false,\n maxLength: 100,\n description: 'Record id within related_object',\n group: 'Source',\n }),\n\n sent_by: Field.lookup('sys_user', {\n label: 'Sent By',\n required: false,\n group: 'Source',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['status', 'created_at'] },\n { fields: ['related_object', 'related_id'] },\n { fields: ['sent_by'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_email_template — Outbound Email Template (metadata row)\n *\n * Backing persistence for the `email_template` metadata type. Each\n * row is the runtime representation of an `EmailTemplate` Zod\n * envelope. Resolved by `(name, locale)`; the EmailService picks the\n * best-matching locale for the recipient, falling back to `en-US`.\n *\n * Authoring: built-in templates are seeded by `EmailServicePlugin`\n * on `kernel:ready`; administrators may edit subject/body in Studio\n * and tenants may overlay specific rows.\n *\n * @namespace sys\n */\nexport const SysEmailTemplate = ObjectSchema.create({\n name: 'sys_email_template',\n label: 'Email Template',\n pluralLabel: 'Email Templates',\n icon: 'mail',\n isSystem: true,\n managedBy: 'config',\n description: 'Outbound email template (subject + body + variables) resolved by name+locale',\n displayNameField: 'label',\n titleFormat: '{label}',\n compactLayout: ['name', 'label', 'category', 'locale', 'active'],\n\n fields: {\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n // ── Identity ─────────────────────────────────────────────────\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 128,\n description: 'Dotted snake_case identifier (e.g. auth.password_reset)',\n group: 'Identity',\n }),\n label: Field.text({\n label: 'Label',\n required: true,\n maxLength: 200,\n description: 'Human-readable name shown in Studio',\n group: 'Identity',\n }),\n category: Field.select(\n ['auth', 'notification', 'workflow', 'marketing', 'custom'],\n {\n label: 'Category',\n required: true,\n defaultValue: 'custom',\n group: 'Identity',\n },\n ),\n locale: Field.text({\n label: 'Locale',\n required: true,\n defaultValue: 'en-US',\n maxLength: 16,\n description: 'BCP-47 locale tag (en-US, zh-CN, …)',\n group: 'Identity',\n }),\n description: Field.textarea({\n label: 'Description',\n required: false,\n group: 'Identity',\n }),\n\n // ── Content ──────────────────────────────────────────────────\n subject: Field.text({\n label: 'Subject',\n required: true,\n maxLength: 500,\n description: 'Subject template; supports {{var.path}} placeholders',\n group: 'Content',\n }),\n body_html: Field.textarea({\n label: 'HTML Body',\n required: true,\n description: 'HTML body template; supports {{var.path}} placeholders',\n group: 'Content',\n }),\n body_text: Field.textarea({\n label: 'Plain Text Body',\n required: false,\n description: 'Optional plain-text alternative (auto-derived from HTML when blank)',\n group: 'Content',\n }),\n\n // ── Envelope overrides ───────────────────────────────────────\n from_name: Field.text({\n label: 'From Name',\n required: false,\n maxLength: 200,\n group: 'Envelope',\n }),\n from_address: Field.text({\n label: 'From Address',\n required: false,\n maxLength: 255,\n group: 'Envelope',\n }),\n reply_to: Field.text({\n label: 'Reply-To',\n required: false,\n maxLength: 255,\n group: 'Envelope',\n }),\n\n // ── Lifecycle ────────────────────────────────────────────────\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n group: 'Lifecycle',\n }),\n is_system: Field.boolean({\n label: 'System Template',\n required: false,\n defaultValue: false,\n readonly: true,\n description: 'Provided by a plugin / platform; tenants may edit but should not delete',\n group: 'Lifecycle',\n }),\n\n /**\n * Variables declared by the template author. Stored as JSON text\n * (array of {name,type,required,description}). Used by the Studio\n * authoring UI to render form hints and by sendTemplate() to\n * validate required vars at runtime.\n */\n variables_json: Field.textarea({\n label: 'Variables (JSON)',\n required: false,\n description: 'JSON array of {name,type,required,description}',\n group: 'Lifecycle',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['name', 'locale'], unique: true },\n { fields: ['category'] },\n { fields: ['active'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_saved_report — Reusable Report Definition\n *\n * A persisted query against a single object that can be re-executed\n * on demand or on a schedule. Acts as the bridge between ad-hoc\n * filtering in the UI and the structured report library administrators\n * curate.\n *\n * The query envelope (`query_json`) is the same shape ObjectQL accepts\n * — `{ filter, fields, orderBy, limit, groupBy }` — so a report can be\n * round-tripped between the list view and the report definition\n * without re-translation.\n *\n * Conventions:\n * - `object_name` is the short object the report queries.\n * - `format` controls how `IReportService.run()` renders the rows\n * (`csv` for downloads, `html_table` for email digests, `json`\n * for raw API consumption).\n *\n * @namespace sys\n */\nexport const SysSavedReport = ObjectSchema.create({\n name: 'sys_saved_report',\n label: 'Saved Report',\n pluralLabel: 'Saved Reports',\n icon: 'bar-chart',\n isSystem: true,\n managedBy: 'platform',\n description: 'Persisted ObjectQL report definition — re-runnable and schedulable',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'object_name', 'format', 'owner_id', 'updated_at'],\n\n fields: {\n id: Field.text({\n label: 'Report ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 200,\n searchable: true,\n group: 'Definition',\n }),\n\n description: Field.textarea({\n label: 'Description',\n required: false,\n group: 'Definition',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: true,\n maxLength: 100,\n description: 'Short object name the report queries',\n group: 'Definition',\n }),\n\n query_json: Field.textarea({\n label: 'Query',\n required: true,\n description: 'ObjectQL query envelope — { filter, fields, orderBy, limit, groupBy }',\n group: 'Definition',\n }),\n\n format: Field.select(\n ['csv', 'json', 'html_table'],\n {\n label: 'Format',\n required: true,\n defaultValue: 'csv',\n description: 'Rendering used by IReportService.run() and email digests',\n group: 'Definition',\n },\n ),\n\n owner_id: Field.lookup('sys_user', {\n label: 'Owner',\n required: false,\n description: 'User that owns the report definition (drives sharing)',\n group: 'Provenance',\n }),\n\n last_run_at: Field.datetime({\n label: 'Last Run',\n required: false,\n description: 'Stamped by IReportService.run() on successful execution',\n group: 'State',\n }),\n\n last_row_count: Field.number({\n label: 'Last Row Count',\n required: false,\n group: 'State',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['object_name'] },\n { fields: ['owner_id'] },\n { fields: ['name'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_report_schedule — Recurring Report Delivery\n *\n * Joins a `sys_saved_report` to an interval and a recipient list so\n * the reports plugin can deliver \"daily pipeline digest\" / \"weekly\n * lead summary\" without a separate workflow.\n *\n * Scheduling: MVP supports `interval_minutes` only (1440 = daily,\n * 10080 = weekly). The `cron_expression` field is reserved for the\n * follow-up that wires `CronJobAdapter` — when present and the\n * adapter is available, it wins over `interval_minutes`.\n *\n * Delivery: when the master dispatch job ticks (every minute by\n * default), every schedule with `next_run_at <= now` is loaded,\n * its report is executed, the result is rendered into the report's\n * `format`, and the rendered body is emailed to each address in\n * `recipients`. `next_run_at` is then advanced by `interval_minutes`.\n *\n * Conventions:\n * - `recipients` is a comma-separated list of RFC-5322 addresses to\n * keep the schema driver-agnostic. The reports plugin splits and\n * trims before handing the list to IEmailService.\n * - `active=false` disables the schedule without losing its history.\n *\n * @namespace sys\n */\nexport const SysReportSchedule = ObjectSchema.create({\n name: 'sys_report_schedule',\n label: 'Report Schedule',\n pluralLabel: 'Report Schedules',\n icon: 'clock',\n isSystem: true,\n managedBy: 'platform',\n description: 'Recurring delivery of a sys_saved_report via email',\n titleFormat: '{report_id} → {recipients}',\n compactLayout: ['report_id', 'recipients', 'interval_minutes', 'active', 'next_run_at'],\n\n fields: {\n id: Field.text({\n label: 'Schedule ID',\n required: true,\n readonly: true,\n group: 'System',\n }),\n\n report_id: Field.lookup('sys_saved_report', {\n label: 'Report',\n required: true,\n group: 'Schedule',\n }),\n\n name: Field.text({\n label: 'Name',\n required: false,\n maxLength: 200,\n description: 'Optional label for the digest — used in the email subject',\n group: 'Schedule',\n }),\n\n interval_minutes: Field.number({\n label: 'Interval (minutes)',\n required: false,\n defaultValue: 1440,\n description: 'How often to send (1440 = daily, 10080 = weekly)',\n group: 'Schedule',\n }),\n\n cron_expression: Field.text({\n label: 'Cron Expression',\n required: false,\n maxLength: 100,\n description: 'Optional 5/6-field cron — overrides interval_minutes when present',\n group: 'Schedule',\n }),\n\n timezone: Field.text({\n label: 'Timezone',\n required: false,\n maxLength: 64,\n defaultValue: 'UTC',\n group: 'Schedule',\n }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n group: 'Schedule',\n }),\n\n recipients: Field.text({\n label: 'Recipients',\n required: true,\n maxLength: 4000,\n description: 'Comma-separated email addresses',\n group: 'Delivery',\n }),\n\n format: Field.select(\n ['csv', 'html_table'],\n {\n label: 'Format',\n required: false,\n defaultValue: 'html_table',\n description: 'Render format — csv is attached, html_table is inlined',\n group: 'Delivery',\n },\n ),\n\n subject_template: Field.text({\n label: 'Subject Template',\n required: false,\n maxLength: 200,\n description: 'Email subject; {{name}} / {{date}} / {{rows}} are substituted',\n group: 'Delivery',\n }),\n\n owner_id: Field.lookup('sys_user', {\n label: 'Owner',\n required: false,\n group: 'Provenance',\n }),\n\n next_run_at: Field.datetime({\n label: 'Next Run',\n required: false,\n description: 'Dispatcher loads schedules where next_run_at <= now',\n group: 'State',\n }),\n\n last_sent_at: Field.datetime({\n label: 'Last Sent',\n required: false,\n group: 'State',\n }),\n\n last_status: Field.select(\n ['ok', 'failed', 'skipped'],\n {\n label: 'Last Status',\n required: false,\n group: 'State',\n },\n ),\n\n last_error: Field.textarea({\n label: 'Last Error',\n required: false,\n group: 'State',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n group: 'System',\n }),\n },\n\n indexes: [\n // Hot path for the dispatch loop.\n { fields: ['active', 'next_run_at'] },\n { fields: ['report_id'] },\n { fields: ['owner_id'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_approval_process — Approval Process Definition (runtime row).\n *\n * Persists an {@link ApprovalProcess} configuration so administrators\n * can author and version approval flows from the UI without code\n * changes. The Zod schema for the JSON envelope lives at\n * `@objectstack/spec/automation/approval` — this row simply stores\n * a serialised copy alongside the lookup metadata the engine needs to\n * route incoming submissions.\n *\n * One row per `name`. The dispatcher (the `approvals` service) finds\n * the active process for an `(object_name, recordId)` pair by querying\n * `active=true` rows where `object_name` matches.\n *\n * @namespace sys\n */\nexport const SysApprovalProcess = ObjectSchema.create({\n name: 'sys_approval_process',\n label: 'Approval Process',\n pluralLabel: 'Approval Processes',\n icon: 'check-square',\n isSystem: true,\n managedBy: 'config',\n // Authoring an approval process requires a visual step designer that\n // doesn't yet exist — the embedded `definition_json` textarea would\n // force admins to hand-write a multi-page ApprovalProcess envelope.\n // Suppress generic CRUD until the designer lands. Real authoring path:\n // call `defineApprovalProcess({...})` in code and seed via the\n // approvals service (`POST /api/v1/approvals/processes`) or commit the\n // definition as a fixture. Editing existing rows (e.g. toggling\n // `active`) is also suppressed for now because the same textarea would\n // appear; use the service API or a future designer instead.\n userActions: { create: false, edit: false, delete: false, import: false },\n description: 'Persisted approval process definition. Authored via defineApprovalProcess() in code; visual designer is on the roadmap.',\n displayNameField: 'name',\n titleFormat: '{label}',\n compactLayout: ['name', 'object_name', 'active', 'updated_at'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_approval_process' },\n columns: ['label', 'object_name', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_approval_process' },\n columns: ['label', 'object_name', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n by_object: {\n type: 'grid',\n name: 'by_object',\n label: 'By Object',\n data: { provider: 'object', object: 'sys_approval_process' },\n columns: ['object_name', 'label', 'active', 'updated_at'],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'label', order: 'asc' }],\n grouping: { fields: [{ field: 'object_name', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_processes: {\n type: 'grid',\n name: 'all_processes',\n label: 'All',\n data: { provider: 'object', object: 'sys_approval_process' },\n columns: ['label', 'object_name', 'active', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Process ID', required: true, readonly: true, group: 'System' }),\n\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 100,\n description: 'Unique snake_case name — referenced by submitters and audit rows',\n group: 'Definition',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: true,\n maxLength: 200,\n group: 'Definition',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: true,\n maxLength: 100,\n description: 'Short object name this process governs',\n group: 'Definition',\n }),\n\n description: Field.textarea({ label: 'Description', required: false, group: 'Definition' }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: false,\n description: 'Only active processes are dispatched on submission',\n group: 'Definition',\n }),\n\n definition_json: Field.textarea({\n label: 'Definition',\n required: true,\n description: 'Serialised ApprovalProcess JSON (see @objectstack/spec/automation/approval)',\n group: 'Definition',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['object_name'] },\n { fields: ['active', 'object_name'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_approval_request — Live approval instance.\n *\n * Created when a user invokes `IApprovalService.submit(...)` and\n * advanced as approvers act on each step. The row's lifecycle:\n *\n * `pending` → (per-step approvals) → `approved` | `rejected`\n * `pending` → recalled by submitter → `recalled`\n *\n * `current_step` / `current_step_index` mirror the index into the\n * process's `steps[]` array so the engine can resume after a restart\n * without re-deriving state from the audit log.\n *\n * `payload_json` captures a snapshot of the target record at submission\n * time — used by the email/feed actions so they can render before the\n * record is locked or changed.\n *\n * @namespace sys\n */\nexport const SysApprovalRequest = ObjectSchema.create({\n name: 'sys_approval_request',\n label: 'Approval Request',\n pluralLabel: 'Approval Requests',\n icon: 'inbox',\n isSystem: true,\n managedBy: 'system',\n description: 'Live approval instance tracked per submission',\n displayNameField: 'id',\n titleFormat: '{process_name} · {record_id}',\n compactLayout: ['process_name', 'object_name', 'record_id', 'status', 'current_step', 'submitter_id', 'updated_at'],\n\n // Curated built-in list views — render as segmented tabs in the console.\n // Filters use {current_user_id} substitution wired by the console.\n listViews: {\n my_pending: {\n type: 'grid',\n name: 'my_pending',\n label: 'My Pending',\n data: { provider: 'object', object: 'sys_approval_request' },\n columns: ['process_name', 'object_name', 'record_id', 'current_step', 'submitter_id', 'updated_at'],\n filter: [\n { field: 'status', operator: 'equals', value: 'pending' },\n { field: 'pending_approvers', operator: 'contains', value: '{current_user_id}' },\n ],\n sort: [{ field: 'updated_at', order: 'desc' }],\n pagination: { pageSize: 25 },\n emptyState: { title: 'No pending approvals', message: 'You\\'re all caught up.' },\n },\n submitted_by_me: {\n type: 'grid',\n name: 'submitted_by_me',\n label: 'I Submitted',\n data: { provider: 'object', object: 'sys_approval_request' },\n columns: ['process_name', 'object_name', 'record_id', 'status', 'current_step', 'updated_at'],\n filter: [{ field: 'submitter_id', operator: 'equals', value: '{current_user_id}' }],\n sort: [{ field: 'updated_at', order: 'desc' }],\n pagination: { pageSize: 25 },\n },\n completed: {\n type: 'grid',\n name: 'completed',\n label: 'Completed',\n data: { provider: 'object', object: 'sys_approval_request' },\n columns: ['process_name', 'object_name', 'record_id', 'status', 'submitter_id', 'completed_at'],\n filter: [{ field: 'status', operator: 'in', value: ['approved', 'rejected', 'recalled'] }],\n sort: [{ field: 'completed_at', order: 'desc' }],\n pagination: { pageSize: 25 },\n },\n all_requests: {\n type: 'grid',\n name: 'all_requests',\n label: 'All',\n data: { provider: 'object', object: 'sys_approval_request' },\n columns: ['process_name', 'object_name', 'record_id', 'status', 'current_step', 'submitter_id', 'updated_at'],\n sort: [{ field: 'updated_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Request ID', required: true, readonly: true, group: 'System' }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: false,\n group: 'System',\n description: 'Tenant that owns this approval request (propagated from submitter context)',\n }),\n\n process_name: Field.text({\n label: 'Process',\n required: true,\n maxLength: 100,\n description: 'sys_approval_process.name this request was opened against',\n group: 'Target',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: true,\n maxLength: 100,\n group: 'Target',\n }),\n\n record_id: Field.text({\n label: 'Record ID',\n required: true,\n maxLength: 100,\n group: 'Target',\n }),\n\n submitter_id: Field.lookup('sys_user', {\n label: 'Submitter',\n required: false,\n group: 'Target',\n }),\n\n submitter_comment: Field.textarea({\n label: 'Submitter Comment',\n required: false,\n group: 'Target',\n }),\n\n status: Field.select(\n ['pending', 'approved', 'rejected', 'recalled'],\n {\n label: 'Status',\n required: true,\n defaultValue: 'pending',\n description: 'Lifecycle state of the request',\n group: 'State',\n },\n ),\n\n current_step: Field.text({\n label: 'Current Step',\n required: false,\n maxLength: 100,\n description: 'Machine name of the step awaiting approval',\n group: 'State',\n }),\n\n current_step_index: Field.number({\n label: 'Current Step Index',\n required: false,\n defaultValue: 0,\n group: 'State',\n }),\n\n pending_approvers: Field.textarea({\n label: 'Pending Approvers',\n required: false,\n description: 'Comma-separated user ids who can act on the current step',\n group: 'State',\n }),\n\n payload_json: Field.textarea({\n label: 'Snapshot',\n required: false,\n description: 'Record snapshot at submission time',\n group: 'State',\n }),\n\n completed_at: Field.datetime({\n label: 'Completed At',\n required: false,\n group: 'State',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n // Look up \"is there a pending request for this record?\" — common\n // guard on submit and on edit-while-locked checks.\n { fields: ['object_name', 'record_id'] },\n { fields: ['status', 'object_name'] },\n // \"My approvals\" inbox — pending_approvers is a CSV string so this\n // index only helps with status pre-filtering; the engine does a\n // post-filter substring match per row.\n { fields: ['status', 'updated_at'] },\n { fields: ['submitter_id', 'status'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_approval_action — Audit trail row per approval action.\n *\n * Append-only: every `submit`, `approve`, `reject`, `recall`, or\n * `escalate` event lands here. The engine reads back per-step approval\n * rows to evaluate `behavior: 'unanimous'` (all approvers must approve\n * before advancing) versus `first_response` (any single approval\n * advances the step).\n *\n * @namespace sys\n */\nexport const SysApprovalAction = ObjectSchema.create({\n name: 'sys_approval_action',\n label: 'Approval Action',\n pluralLabel: 'Approval Actions',\n icon: 'check-circle',\n isSystem: true,\n managedBy: 'append-only',\n description: 'Append-only audit trail for approval actions',\n displayNameField: 'id',\n titleFormat: '{action} · {step_name}',\n compactLayout: ['request_id', 'step_name', 'action', 'actor_id', 'created_at'],\n\n listViews: {\n recent: {\n type: 'grid',\n name: 'recent',\n label: 'Recent',\n data: { provider: 'object', object: 'sys_approval_action' },\n columns: ['created_at', 'request_id', 'step_name', 'action', 'actor_id', 'comment'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n emptyState: { title: 'No approval actions yet', message: 'Actions are logged automatically when approvals progress.' },\n },\n by_actor: {\n type: 'grid',\n name: 'by_actor',\n label: 'By Actor',\n data: { provider: 'object', object: 'sys_approval_action' },\n columns: ['actor_id', 'created_at', 'request_id', 'step_name', 'action'],\n sort: [{ field: 'actor_id', order: 'asc' }, { field: 'created_at', order: 'desc' }],\n grouping: { fields: [{ field: 'actor_id', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_actions: {\n type: 'grid',\n name: 'all_actions',\n label: 'All',\n data: { provider: 'object', object: 'sys_approval_action' },\n columns: ['created_at', 'request_id', 'step_name', 'action', 'actor_id', 'comment'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Action ID', required: true, readonly: true, group: 'System' }),\n\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: false,\n group: 'System',\n description: 'Tenant that owns this action (mirrors the parent request)',\n }),\n\n request_id: Field.lookup('sys_approval_request', {\n label: 'Request',\n required: true,\n group: 'Target',\n }),\n\n step_name: Field.text({\n label: 'Step',\n required: false,\n maxLength: 100,\n description: 'Machine name of the step at the time of the action',\n group: 'Target',\n }),\n\n step_index: Field.number({\n label: 'Step Index',\n required: false,\n group: 'Target',\n }),\n\n action: Field.select(\n ['submit', 'approve', 'reject', 'recall', 'escalate'],\n {\n label: 'Action',\n required: true,\n group: 'Action',\n },\n ),\n\n actor_id: Field.lookup('sys_user', {\n label: 'Actor',\n required: false,\n group: 'Action',\n }),\n\n comment: Field.textarea({ label: 'Comment', required: false, group: 'Action' }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['request_id', 'created_at'] },\n { fields: ['request_id', 'step_index', 'action'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_job — Registered Background Jobs\n *\n * Catalogue row for every job currently scheduled by an `IJobService`\n * implementation. Lets ops see the full list of recurring/one-off tasks\n * (cron, interval, once) running on this ObjectStack instance, when each\n * last ran, and whether it is currently active.\n *\n * Writers: the active job adapter (`DbJobAdapter` upserts on `schedule()`).\n * Readers: Studio \"Background Jobs\" view, ops dashboards.\n *\n * @namespace sys\n */\nexport const SysJob = ObjectSchema.create({\n name: 'sys_job',\n label: 'Background Job',\n pluralLabel: 'Background Jobs',\n icon: 'clock',\n isSystem: true,\n managedBy: 'system',\n description: 'Catalogue of registered background jobs',\n displayNameField: 'name',\n titleFormat: '{name}',\n compactLayout: ['name', 'schedule_type', 'active', 'last_run_at', 'last_status'],\n\n fields: {\n id: Field.text({ label: 'Job ID', required: true, readonly: true, group: 'System' }),\n\n name: Field.text({\n label: 'Job Name',\n required: true,\n maxLength: 255,\n searchable: true,\n description: 'Unique job identifier (snake_case)',\n group: 'Identity',\n }),\n\n schedule_type: Field.select(['cron', 'interval', 'once'], {\n label: 'Schedule Type',\n required: true,\n group: 'Schedule',\n }),\n\n schedule_expression: Field.text({\n label: 'Expression',\n required: false,\n maxLength: 200,\n description: 'Cron expression / interval ms / ISO datetime',\n group: 'Schedule',\n }),\n\n timezone: Field.text({\n label: 'Timezone',\n required: false,\n maxLength: 100,\n group: 'Schedule',\n }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n description: 'Whether the scheduler is currently running this job',\n group: 'State',\n }),\n\n last_run_at: Field.datetime({ label: 'Last Run At', required: false, group: 'State' }),\n last_status: Field.select(\n ['success', 'failed', 'timeout', 'running'],\n { label: 'Last Status', required: false, group: 'State' },\n ),\n last_error: Field.textarea({ label: 'Last Error', required: false, group: 'State' }),\n run_count: Field.number({ label: 'Run Count', required: false, defaultValue: 0, group: 'State' }),\n failure_count: Field.number({ label: 'Failure Count', required: false, defaultValue: 0, group: 'State' }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['active'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_job_run — Background Job Execution History\n *\n * Each row is one execution of a registered job (`sys_job`). Stores\n * outcome, duration, error, and whether the run was a manual trigger or\n * a scheduled tick. Replaces the in-memory `executions[]` array from\n * `IntervalJobAdapter`.\n *\n * Writers: the active job adapter.\n * Readers: Studio \"Job Runs\" view, dashboards, alerting.\n *\n * @namespace sys\n */\nexport const SysJobRun = ObjectSchema.create({\n name: 'sys_job_run',\n label: 'Job Run',\n pluralLabel: 'Job Runs',\n icon: 'play',\n isSystem: true,\n managedBy: 'append-only',\n description: 'Background job execution audit trail',\n displayNameField: 'job_name',\n titleFormat: '{job_name} @ {started_at}',\n compactLayout: ['job_name', 'status', 'started_at', 'duration_ms', 'attempt'],\n\n fields: {\n id: Field.text({ label: 'Run ID', required: true, readonly: true, group: 'System' }),\n\n job_name: Field.text({\n label: 'Job',\n required: true,\n maxLength: 255,\n searchable: true,\n group: 'Identity',\n }),\n\n status: Field.select(\n ['running', 'success', 'failed', 'timeout'],\n { label: 'Status', required: true, defaultValue: 'running', group: 'State' },\n ),\n\n started_at: Field.datetime({ label: 'Started At', required: true, group: 'State' }),\n completed_at: Field.datetime({ label: 'Completed At', required: false, group: 'State' }),\n duration_ms: Field.number({ label: 'Duration (ms)', required: false, group: 'State' }),\n attempt: Field.number({\n label: 'Attempt',\n required: false,\n defaultValue: 1,\n description: '1 for first run, >1 for retries/replays',\n group: 'State',\n }),\n\n trigger: Field.select(\n ['schedule', 'manual', 'replay'],\n { label: 'Trigger', required: false, defaultValue: 'schedule', group: 'State' },\n ),\n\n error: Field.textarea({ label: 'Error', required: false, group: 'State' }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n },\n\n indexes: [\n { fields: ['job_name', 'started_at'] },\n { fields: ['status', 'started_at'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_job_queue — Durable Background Job / Message Queue + DLQ\n *\n * The persistent backing store for `DbQueueAdapter`. Each row is one\n * enqueued message — pending until a worker leases (`status='running'`),\n * then `completed`, `failed`, or finally `dlq` after exhausting retries.\n *\n * DLQ rows are simply `status='dlq'` rows in this same table; no separate\n * table needed. Listing/replay is a filter on `status`.\n *\n * Idempotency: `idempotency_key` + `queue` are deduplicated by the adapter\n * over a configurable window (default 24h) — the column is indexed.\n *\n * Concurrency: workers claim a row by CAS-updating `status` from `pending`\n * to `running` plus setting `locked_by`/`locked_until`. Reads only return\n * rows whose lock has not been claimed (or whose lease expired).\n *\n * Writers: `DbQueueAdapter` (publish/lease/complete/fail).\n * Readers: Studio DLQ view, ops dashboards, the adapter's worker loop.\n *\n * @namespace sys\n */\nexport const SysJobQueue = ObjectSchema.create({\n name: 'sys_job_queue',\n label: 'Job Queue Message',\n pluralLabel: 'Job Queue Messages',\n icon: 'inbox',\n isSystem: true,\n managedBy: 'system',\n description: 'Durable job/message queue including dead letters',\n displayNameField: 'queue',\n titleFormat: '{queue} #{id}',\n compactLayout: ['queue', 'status', 'attempts', 'scheduled_for', 'last_error'],\n\n fields: {\n id: Field.text({ label: 'Message ID', required: true, readonly: true, group: 'System' }),\n\n queue: Field.text({\n label: 'Queue',\n required: true,\n maxLength: 255,\n searchable: true,\n description: 'Logical queue name (snake_case)',\n group: 'Identity',\n }),\n\n idempotency_key: Field.text({\n label: 'Idempotency Key',\n required: false,\n maxLength: 255,\n description: 'Deduplication key within (queue, window)',\n group: 'Identity',\n }),\n\n payload_json: Field.textarea({\n label: 'Payload (JSON)',\n required: false,\n description: 'Serialized message body',\n group: 'Content',\n }),\n\n metadata_json: Field.textarea({\n label: 'Metadata (JSON)',\n required: false,\n description: 'Serialized metadata bag (tenant_id, source_record, ...)',\n group: 'Content',\n }),\n\n status: Field.select(\n ['pending', 'running', 'completed', 'failed', 'dlq'],\n {\n label: 'Status',\n required: true,\n defaultValue: 'pending',\n description: 'Lifecycle state',\n group: 'State',\n },\n ),\n\n priority: Field.number({\n label: 'Priority',\n required: false,\n defaultValue: 100,\n description: 'Lower = higher priority',\n group: 'Schedule',\n }),\n\n attempts: Field.number({ label: 'Attempts', required: false, defaultValue: 0, group: 'State' }),\n max_attempts: Field.number({ label: 'Max Attempts', required: false, defaultValue: 3, group: 'State' }),\n\n backoff_type: Field.select(\n ['fixed', 'exponential'],\n { label: 'Backoff', required: false, defaultValue: 'exponential', group: 'Schedule' },\n ),\n backoff_delay_ms: Field.number({\n label: 'Backoff Base (ms)',\n required: false,\n defaultValue: 1000,\n group: 'Schedule',\n }),\n backoff_max_delay_ms: Field.number({\n label: 'Backoff Cap (ms)',\n required: false,\n group: 'Schedule',\n }),\n\n scheduled_for: Field.datetime({\n label: 'Scheduled For',\n required: false,\n description: 'Earliest time a worker may lease this message',\n group: 'Schedule',\n }),\n\n locked_by: Field.text({\n label: 'Locked By',\n required: false,\n maxLength: 255,\n description: 'Worker id holding the lease',\n group: 'Lease',\n }),\n locked_until: Field.datetime({\n label: 'Locked Until',\n required: false,\n description: 'Lease expiry; if past, another worker may claim',\n group: 'Lease',\n }),\n\n last_error: Field.textarea({ label: 'Last Error', required: false, group: 'State' }),\n completed_at: Field.datetime({ label: 'Completed At', required: false, group: 'State' }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['queue', 'status', 'scheduled_for'] },\n { fields: ['idempotency_key', 'queue'] },\n { fields: ['status'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_webhook — Outbound HTTP integration configuration (runtime).\n *\n * Persists a single {@link Webhook} envelope per row so administrators\n * can author, enable/disable, and edit webhook subscriptions from the\n * Studio UI without code changes. The canonical Zod schema for the\n * `definition_json` envelope lives at `@objectstack/spec/automation/webhook`.\n *\n * One row per `name`. The HTTP connector plugin\n * (`@objectstack/service-automation/plugins/http-connector-plugin`) loads\n * active rows on boot + on `sys_webhook:changed` events, registers\n * `afterInsert` / `afterUpdate` / `afterDelete` listeners for the\n * targeted object, and dispatches outbound HTTP calls when matching\n * record events fire.\n *\n * Platform-wide on purpose: every project (standalone, single-tenant,\n * cloud) can integrate with external systems (Slack, Stripe, internal\n * services) the same way. The control-plane-only `sys_project*`\n * objects live in @objectstack/service-tenant; webhooks are\n * orthogonal and ship with every kernel.\n *\n * @namespace sys\n */\nexport const SysWebhook = ObjectSchema.create({\n name: 'sys_webhook',\n label: 'Webhook',\n pluralLabel: 'Webhooks',\n icon: 'webhook',\n isSystem: true,\n managedBy: 'config',\n // Authoring a webhook from the UI requires a structured form for the\n // headers / auth / retry / payload blocks — the generic JSON textarea\n // is acceptable as a v1 until a dedicated builder lands. Re-enable\n // create/edit/delete so admins can at least toggle `active` and edit\n // simple URL/method fields without round-tripping through code.\n userActions: { create: true, edit: true, delete: true, import: false },\n description: 'Outbound HTTP webhook subscription. Authored via defineWebhook() in code or the Studio editor; executed by the HTTP connector plugin.',\n displayNameField: 'name',\n titleFormat: '{label}',\n compactLayout: ['name', 'object_name', 'url', 'active', 'updated_at'],\n\n listViews: {\n active: {\n type: 'grid',\n name: 'active',\n label: 'Active',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: true }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n inactive: {\n type: 'grid',\n name: 'inactive',\n label: 'Inactive',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n filter: [{ field: 'active', operator: 'equals', value: false }],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n by_object: {\n type: 'grid',\n name: 'by_object',\n label: 'By Object',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['object_name', 'label', 'url', 'active', 'updated_at'],\n sort: [{ field: 'object_name', order: 'asc' }, { field: 'label', order: 'asc' }],\n grouping: { fields: [{ field: 'object_name', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 100 },\n },\n all_webhooks: {\n type: 'grid',\n name: 'all_webhooks',\n label: 'All',\n data: { provider: 'object', object: 'sys_webhook' },\n columns: ['label', 'object_name', 'url', 'method', 'active', 'updated_at'],\n sort: [{ field: 'label', order: 'asc' }],\n pagination: { pageSize: 50 },\n },\n },\n\n fields: {\n id: Field.text({ label: 'Webhook ID', required: true, readonly: true, group: 'System' }),\n\n name: Field.text({\n label: 'Name',\n required: true,\n maxLength: 100,\n description: 'Unique snake_case name — referenced in logs and audit',\n group: 'Definition',\n }),\n\n label: Field.text({\n label: 'Display Label',\n required: false,\n maxLength: 200,\n group: 'Definition',\n }),\n\n object_name: Field.text({\n label: 'Object',\n required: false,\n maxLength: 100,\n description: 'Short object name whose events fire this webhook (blank = manual / API-triggered)',\n group: 'Definition',\n }),\n\n triggers: Field.text({\n label: 'Triggers',\n required: false,\n maxLength: 200,\n description: 'Comma-separated event list: create,update,delete,undelete,api',\n group: 'Definition',\n }),\n\n url: Field.text({\n label: 'Target URL',\n required: true,\n maxLength: 2048,\n description: 'External endpoint that receives the POST',\n group: 'Definition',\n }),\n\n method: Field.text({\n label: 'HTTP Method',\n required: true,\n defaultValue: 'POST',\n maxLength: 10,\n description: 'GET / POST / PUT / PATCH / DELETE',\n group: 'Definition',\n }),\n\n description: Field.textarea({ label: 'Description', required: false, group: 'Definition' }),\n\n active: Field.boolean({\n label: 'Active',\n required: true,\n defaultValue: true,\n description: 'Inactive webhooks are skipped by the dispatcher',\n group: 'Definition',\n }),\n\n definition_json: Field.textarea({\n label: 'Definition',\n required: true,\n description: 'Serialised Webhook JSON (see @objectstack/spec/automation/webhook) — full headers/auth/retry/payload config',\n group: 'Definition',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: true,\n defaultValue: 'NOW()',\n readonly: true,\n group: 'System',\n }),\n\n updated_at: Field.datetime({ label: 'Updated At', required: false, group: 'System' }),\n },\n\n indexes: [\n { fields: ['name'], unique: true },\n { fields: ['object_name'] },\n { fields: ['active', 'object_name'] },\n ],\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_metadata — System Metadata Object\n *\n * Canonical ObjectStack object definition for the metadata persistence table.\n * Stores all platform-scope and user-scope metadata records (Objects, Views,\n * Flows, etc.) using the MetadataRecordSchema envelope.\n *\n * This is a system object (isSystem: true) — protected from deletion and\n * automatically provisioned by the DatabaseLoader on first use.\n *\n * @see MetadataRecordSchema in metadata-persistence.zod.ts\n */\nexport const SysMetadataObject = ObjectSchema.create({\n name: 'sys_metadata',\n label: 'System Metadata',\n pluralLabel: 'System Metadata',\n icon: 'settings',\n isSystem: true,\n // managedBy: 'system' — the metadata table backs every other config\n // object. Writing rows directly here bypasses the typed Zod APIs and\n // would let an admin inject malformed payloads. The \"All Metadata\"\n // menu is therefore a read-only debug surface (Export only); typed\n // edits flow through the dedicated per-type pages (Approval Process,\n // Sharing Rule, etc.).\n managedBy: 'system',\n description: 'Stores platform and user-scope metadata records (objects, views, flows, etc.)',\n\n fields: {\n /** Primary Key (UUID) */\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n /** Machine name — unique identifier used in code references */\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n maxLength: 255,\n }),\n\n /** Metadata type (e.g. \"object\", \"view\", \"flow\") */\n type: Field.text({\n label: 'Metadata Type',\n required: true,\n searchable: true,\n maxLength: 100,\n }),\n\n /** Namespace / module grouping (e.g. \"crm\", \"core\") */\n namespace: Field.text({\n label: 'Namespace',\n required: false,\n defaultValue: 'default',\n maxLength: 100,\n }),\n\n /** Package that owns/delivered this metadata (legacy string identifier, kept for compat) */\n package_id: Field.text({\n label: 'Package ID',\n required: false,\n maxLength: 255,\n description: 'Legacy package manifest ID string. Use package_version_id for new records.',\n }),\n\n /**\n * FK → sys_package_version (UUID). Set for metadata that belongs to a specific\n * package release snapshot. NULL = platform-built-in or environment override.\n */\n package_version_id: Field.lookup('sys_package_version', {\n label: 'Package Version',\n required: false,\n description:\n 'Foreign key to sys_package_version (UUID). Null = platform-built-in or env-level override.',\n }),\n\n /** Who manages this record: package, platform, or user */\n managed_by: Field.select(['package', 'platform', 'user'], {\n label: 'Managed By',\n required: false,\n }),\n\n /** Scope: system (code), platform (admin DB), user (personal DB) */\n scope: Field.select(['system', 'platform', 'user'], {\n label: 'Scope',\n required: true,\n defaultValue: 'platform',\n }),\n\n /** JSON payload — the actual metadata configuration */\n metadata: Field.textarea({\n label: 'Metadata',\n required: true,\n description: 'JSON-serialized metadata payload',\n }),\n\n /** Parent metadata name for extension/override */\n extends: Field.text({\n label: 'Extends',\n required: false,\n maxLength: 255,\n }),\n\n /** Merge strategy when extending parent metadata */\n strategy: Field.select(['merge', 'replace'], {\n label: 'Strategy',\n required: false,\n defaultValue: 'merge',\n }),\n\n /** Owner user ID (for user-scope items) */\n owner: Field.text({\n label: 'Owner',\n required: false,\n maxLength: 255,\n }),\n\n /** Lifecycle state */\n state: Field.select(['draft', 'active', 'archived', 'deprecated'], {\n label: 'State',\n required: false,\n defaultValue: 'active',\n }),\n\n /** Organization ID for multi-tenant isolation */\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: false,\n description: 'Organization for multi-tenant isolation.',\n }),\n\n /**\n * @deprecated ADR-0005 (revised 2026-05): per-env DBs replace per-project\n * isolation. `project_id` is no longer written by saveMetaItem and not\n * consulted by overlay reads. Kept for legacy rows; new writes leave it\n * NULL. Will be dropped in a future schema migration.\n */\n project_id: Field.lookup('sys_project', {\n label: 'Project (deprecated)',\n required: false,\n description: 'DEPRECATED. Use organization_id for tenant isolation.',\n }),\n\n /** Version number for optimistic concurrency */\n version: Field.number({\n label: 'Version',\n required: false,\n defaultValue: 1,\n }),\n\n /** Content checksum for change detection */\n checksum: Field.text({\n label: 'Checksum',\n required: false,\n maxLength: 64,\n }),\n\n /** Origin of this metadata record */\n source: Field.select(['filesystem', 'database', 'api', 'migration'], {\n label: 'Source',\n required: false,\n }),\n\n /** Classification tags (JSON array) */\n tags: Field.textarea({\n label: 'Tags',\n required: false,\n description: 'JSON-serialized array of classification tags',\n }),\n\n /** Audit fields */\n created_by: Field.lookup('sys_user', {\n label: 'Created By',\n required: false,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n required: false,\n readonly: true,\n }),\n\n updated_by: Field.lookup('sys_user', {\n label: 'Updated By',\n required: false,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n required: false,\n }),\n },\n\n indexes: [\n // ADR-0005 (revised 2026-05): overlay uniqueness is scoped by\n // (type, name, organization_id), restricted to active rows so resets\n // / archived versions don't collide. project_id is deprecated and\n // not part of the discriminator. The runtime layer (protocol.ts\n // ensureOverlayIndex) issues a DROP-then-CREATE migration to\n // replace any pre-existing legacy composite index in-place.\n {\n name: 'idx_sys_metadata_overlay_active',\n fields: ['type', 'name', 'organization_id'],\n unique: true,\n partial: \"state = 'active'\",\n },\n { name: 'idx_sys_metadata_org_type', fields: ['organization_id', 'type'] },\n { fields: ['type', 'scope'] },\n { fields: ['package_version_id'] },\n { fields: ['state'] },\n { fields: ['namespace'] },\n ],\n\n enable: {\n trackHistory: true,\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list', 'create', 'update', 'delete'],\n trash: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_metadata_history — Metadata Version History Object\n *\n * Stores historical snapshots of metadata changes for version tracking,\n * audit trail, and rollback capabilities.\n *\n * This is a system object (isSystem: true) — protected from deletion and\n * automatically provisioned when metadata history is enabled.\n *\n * Each record represents a single version snapshot of a metadata item,\n * created whenever the metadata is modified, published, or reverted.\n *\n * @see MetadataHistoryRecordSchema in metadata-persistence.zod.ts\n */\nexport const SysMetadataHistoryObject = ObjectSchema.create({\n name: 'sys_metadata_history',\n label: 'Metadata History',\n pluralLabel: 'Metadata History',\n icon: 'history',\n isSystem: true,\n managedBy: 'system',\n description: 'Version history and audit trail for metadata changes',\n\n fields: {\n /** Primary Key (UUID) */\n id: Field.text({\n label: 'ID',\n required: true,\n readonly: true,\n }),\n\n /** Foreign key to sys_metadata.id */\n metadata_id: Field.lookup('sys_metadata', {\n label: 'Metadata',\n required: true,\n readonly: true,\n }),\n\n /** Machine name (denormalized for easier querying) */\n name: Field.text({\n label: 'Name',\n required: true,\n searchable: true,\n readonly: true,\n maxLength: 255,\n }),\n\n /** Metadata type (denormalized for easier querying) */\n type: Field.text({\n label: 'Metadata Type',\n required: true,\n searchable: true,\n readonly: true,\n maxLength: 100,\n }),\n\n /** Version number at this snapshot */\n version: Field.number({\n label: 'Version',\n required: true,\n readonly: true,\n }),\n\n /** Type of operation that created this history entry */\n operation_type: Field.select(['create', 'update', 'publish', 'revert', 'delete'], {\n label: 'Operation Type',\n required: true,\n readonly: true,\n }),\n\n /** Historical metadata snapshot (JSON payload) */\n metadata: Field.textarea({\n label: 'Metadata',\n required: true,\n readonly: true,\n description: 'JSON-serialized metadata snapshot at this version',\n }),\n\n /** SHA-256 checksum of metadata content */\n checksum: Field.text({\n label: 'Checksum',\n required: true,\n readonly: true,\n maxLength: 64,\n }),\n\n /** Checksum of the previous version */\n previous_checksum: Field.text({\n label: 'Previous Checksum',\n required: false,\n readonly: true,\n maxLength: 64,\n }),\n\n /** Human-readable description of changes */\n change_note: Field.textarea({\n label: 'Change Note',\n required: false,\n readonly: true,\n description: 'Description of what changed in this version',\n }),\n\n /** Organization ID for multi-tenant isolation */\n organization_id: Field.lookup('sys_organization', {\n label: 'Organization',\n required: false,\n readonly: true,\n description: 'Organization for multi-tenant isolation.',\n }),\n\n /** Environment ID — null = platform-global, set = env-scoped */\n project_id: Field.text({\n label: 'Environment ID',\n required: false,\n readonly: true,\n maxLength: 255,\n description: 'Scopes this history entry to a specific environment.',\n }),\n\n /** User who made this change */\n recorded_by: Field.lookup('sys_user', {\n label: 'Recorded By',\n required: false,\n readonly: true,\n }),\n\n /** When was this version recorded */\n recorded_at: Field.datetime({\n label: 'Recorded At',\n required: true,\n readonly: true,\n }),\n },\n\n indexes: [\n { fields: ['metadata_id', 'version'], unique: true },\n { fields: ['metadata_id', 'recorded_at'] },\n { fields: ['type', 'name'] },\n { fields: ['recorded_at'] },\n { fields: ['operation_type'] },\n { fields: ['organization_id'] },\n { fields: ['project_id'] },\n ],\n\n enable: {\n trackHistory: false, // Don't track history of history records\n searchable: false,\n apiEnabled: true,\n apiMethods: ['get', 'list'], // Read-only via API\n trash: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_setting — Generic K/V store backing the SettingsManifest contract\n *\n * Single physical table that holds *every* value for *every* settings\n * namespace declared by a `SettingsManifest`. Plugins MUST NOT define\n * per-namespace tables (e.g. `sys_mail_config`); they declare a manifest\n * and the value persists here.\n *\n * Row identity: (namespace, key, scope, user_id?).\n *\n * Resolution order (handled by `SettingsService.get`):\n * 1. process.env override (source='env', locked=true)\n * 2. sys_setting WHERE scope='global' (source='global')\n * 3. sys_setting WHERE scope='tenant' (source='tenant')\n * 4. sys_setting WHERE scope='user' (source='user')\n * 5. manifest specifier.default (source='default')\n *\n * Encryption: rows with `encrypted=true` store ciphertext in `value_enc`\n * and leave `value` null. The plain value is never written to audit log\n * or history snapshots — only an `'<encrypted>'` placeholder + a digest.\n *\n * managedBy: 'system' — the admin grid in Setup is a diagnostic surface\n * only; all writes flow through `SettingsService.set()` so the resolver\n * stays the single source of truth.\n *\n * See ADR-0007 (Settings Manifest + K/V Store + Resolver).\n *\n * @namespace sys\n */\nexport const SysSetting = ObjectSchema.create({\n name: 'sys_setting',\n label: 'Setting',\n pluralLabel: 'Settings',\n icon: 'sliders',\n isSystem: true,\n managedBy: 'system',\n description: 'Generic K/V store backing the SettingsManifest contract.',\n displayNameField: 'key',\n titleFormat: '{namespace}.{key}',\n compactLayout: ['namespace', 'key', 'scope', 'updated_at'],\n\n listViews: {\n by_namespace: {\n type: 'grid',\n name: 'by_namespace',\n label: 'By Namespace',\n data: { provider: 'object', object: 'sys_setting' },\n columns: ['namespace', 'key', 'scope', 'encrypted', 'updated_by', 'updated_at'],\n sort: [{ field: 'namespace', order: 'asc' }, { field: 'key', order: 'asc' }],\n grouping: { fields: [{ field: 'namespace', order: 'asc', collapsed: false }] },\n pagination: { pageSize: 200 },\n },\n tenant_only: {\n type: 'grid',\n name: 'tenant_only',\n label: 'Tenant',\n data: { provider: 'object', object: 'sys_setting' },\n columns: ['namespace', 'key', 'encrypted', 'updated_by', 'updated_at'],\n filter: [{ field: 'scope', operator: 'equals', value: 'tenant' }],\n sort: [{ field: 'namespace', order: 'asc' }, { field: 'key', order: 'asc' }],\n pagination: { pageSize: 200 },\n },\n user_only: {\n type: 'grid',\n name: 'user_only',\n label: 'User',\n data: { provider: 'object', object: 'sys_setting' },\n columns: ['user_id', 'namespace', 'key', 'updated_at'],\n filter: [{ field: 'scope', operator: 'equals', value: 'user' }],\n sort: [{ field: 'user_id', order: 'asc' }, { field: 'namespace', order: 'asc' }],\n pagination: { pageSize: 200 },\n },\n all_settings: {\n type: 'grid',\n name: 'all_settings',\n label: 'All',\n data: { provider: 'object', object: 'sys_setting' },\n columns: ['namespace', 'key', 'scope', 'user_id', 'encrypted', 'updated_at'],\n sort: [{ field: 'updated_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n },\n },\n\n fields: {\n id: Field.text({\n label: 'Setting ID',\n required: true,\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n updated_at: Field.datetime({\n label: 'Updated At',\n defaultValue: 'NOW()',\n readonly: true,\n }),\n\n namespace: Field.text({\n label: 'Namespace',\n required: true,\n maxLength: 64,\n description: 'Manifest namespace (e.g. mail, branding, feature_flags).',\n }),\n\n key: Field.text({\n label: 'Key',\n required: true,\n maxLength: 128,\n description: 'Specifier key inside the namespace (snake_case).',\n }),\n\n scope: Field.select(\n [\n { label: 'Global', value: 'global' },\n { label: 'Tenant', value: 'tenant' },\n { label: 'User', value: 'user' },\n { label: 'Runtime',value: 'runtime' },\n ],\n {\n label: 'Scope',\n required: true,\n defaultValue: 'tenant',\n description: 'Which layer of the config-resolution hierarchy this row belongs to.',\n },\n ),\n\n user_id: Field.lookup('sys_user', {\n label: 'User',\n description: 'Owning user when scope=user; null otherwise.',\n }),\n\n value: Field.json({\n label: 'Value',\n description: 'JSON-encoded value. Null when encrypted=true (see value_enc).',\n }),\n\n encrypted: Field.boolean({\n label: 'Encrypted',\n defaultValue: false,\n description: 'When true, the value is stored encrypted-at-rest in value_enc; value column is null.',\n }),\n\n locked: Field.boolean({\n label: 'Locked',\n defaultValue: false,\n description:\n 'When true, lower-scope rows cannot override this value; writes against lower scopes return 409. ' +\n 'Used by platform administrators to pin a global value for all tenants (Phase 2 cascade).',\n }),\n\n locked_reason: Field.text({\n label: 'Lock Reason',\n description: 'Human-readable explanation surfaced in the UI tooltip when locked=true.',\n }),\n\n value_enc: Field.text({\n label: 'Encrypted Value',\n readonly: true,\n description: 'Ciphertext payload (KMS-wrapped). Set only when encrypted=true.',\n }),\n\n updated_by: Field.lookup('sys_user', {\n label: 'Updated By',\n readonly: true,\n description: 'Last actor who wrote this row via SettingsService.set().',\n }),\n },\n\n indexes: [\n // Primary lookup path: (namespace, key, scope, user_id?) is what\n // SettingsService.get hits on every resolve. The composite UNIQUE\n // covers both the row-identity constraint and the read path.\n { fields: ['namespace', 'key', 'scope', 'user_id'], unique: true },\n // Common range read: full namespace dump for SettingsService.getNamespace.\n { fields: ['namespace', 'scope'], unique: false },\n // Per-user listing on the user-prefs scope.\n { fields: ['user_id', 'namespace'], unique: false },\n ],\n\n enable: {\n // History on settings is opt-in per namespace (handled at service\n // layer when needed) to avoid bloating sys_history with churn from\n // feature flags and similar high-frequency toggles.\n trackHistory: false,\n searchable: false,\n apiEnabled: true,\n // Direct data API exposed for the admin grid view, but writes from\n // the UI MUST go through /api/settings/:namespace so the resolver\n // and audit hooks fire. The grid is diagnostic-only.\n apiMethods: ['get', 'list'],\n trash: false,\n mru: false,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_secret — Separated cipher store for sensitive settings values.\n *\n * Phase 3 of the settings roadmap splits secret material out of\n * `sys_setting` so they can carry their own retention/rotation/KMS\n * policies without bloating the regular settings audit trail. The\n * value column in `sys_setting` for an encrypted specifier holds a\n * *handle* (the `id` of a row here), never the ciphertext itself —\n * the resolver dereferences on read.\n *\n * Why split:\n * 1. **Key rotation.** KMS adapters (AWS/GCP) rotate keys on a\n * different cadence than user-visible settings; tracking\n * `kms_key_id` + `version` per cipher lets us re-wrap without\n * touching the value lifecycle.\n * 2. **Backup hygiene.** Operators can replicate `sys_setting` to\n * analytics/lower environments while keeping `sys_secret` pinned\n * to the primary KMS region.\n * 3. **Audit symmetry.** Every secret read can record an access row\n * (Phase 4) without polluting `sys_setting_audit` with plaintext\n * reads of e.g. feature flags.\n *\n * managedBy: 'system' — never edited from a generic Object grid. All\n * writes flow through `SettingsService` and an `ICryptoProvider`.\n *\n * @namespace sys\n */\nexport const SysSecret = ObjectSchema.create({\n name: 'sys_secret',\n label: 'Secret',\n pluralLabel: 'Secrets',\n icon: 'key',\n isSystem: true,\n managedBy: 'system',\n description: 'Cipher store referenced by sys_setting handles. Never holds plaintext.',\n scope: 'tenant',\n compactLayout: ['namespace', 'key', 'kms_key_id', 'version', 'rotated_at'],\n defaultViewName: 'all',\n views: {\n all: {\n type: 'list',\n name: 'all',\n label: 'All Secrets',\n columns: ['namespace', 'key', 'kms_key_id', 'version', 'rotated_at', 'created_at'],\n },\n },\n\n fields: {\n id: Field.text({\n label: 'ID',\n readonly: true,\n description: 'Opaque handle referenced by `sys_setting.value_enc`.',\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n readonly: true,\n description: 'When the cipher was first written.',\n }),\n\n rotated_at: Field.datetime({\n label: 'Rotated At',\n readonly: true,\n description: 'When the cipher was last re-wrapped under a new KMS key.',\n }),\n\n /**\n * Namespace/key duplicated from `sys_setting` for forensic\n * convenience — lets operators answer \"which secret backs\n * mail.api_key right now?\" without joining the K/V table.\n * The authoritative link is `sys_setting.value_enc → sys_secret.id`.\n */\n namespace: Field.text({\n label: 'Namespace',\n required: true,\n maxLength: 128,\n description: 'Settings namespace this secret belongs to.',\n }),\n\n key: Field.text({\n label: 'Key',\n required: true,\n maxLength: 128,\n description: 'Specifier key within the namespace.',\n }),\n\n /** Identifier of the KMS key used to wrap `ciphertext`. */\n kms_key_id: Field.text({\n label: 'KMS Key ID',\n required: true,\n maxLength: 256,\n description: 'External KMS handle (ARN, GCP resource id, or `local`).',\n }),\n\n /** Algorithm tag (e.g. `aes-256-gcm`). Used by the provider on decrypt. */\n alg: Field.text({\n label: 'Algorithm',\n required: true,\n defaultValue: 'aes-256-gcm',\n maxLength: 64,\n description: 'Cipher/AEAD algorithm tag.',\n }),\n\n /** Wrapping version — bumps on every rotate(). */\n version: Field.number({\n label: 'Version',\n required: true,\n defaultValue: 1,\n description: 'Bumps each time rotateKey() re-wraps this row.',\n }),\n\n ciphertext: Field.text({\n label: 'Ciphertext',\n required: true,\n readonly: true,\n description:\n 'Provider-encoded ciphertext blob (base64 / JSON). Implementation-defined; only the matching ICryptoProvider can read it.',\n }),\n },\n\n indexes: [\n // Operators frequently look up by (namespace, key) to inspect or rotate.\n { fields: ['namespace', 'key'], unique: false },\n { fields: ['kms_key_id'], unique: false },\n ],\n\n enable: {\n trackHistory: false, // rotation events are recorded by sys_setting_audit\n audit: true,\n },\n});\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { ObjectSchema, Field } from '@objectstack/spec/data';\n\n/**\n * sys_setting_audit — Append-only audit trail for every settings mutation.\n *\n * Phase 3 of the settings roadmap. Each call to `SettingsService.set()`\n * (and any other mutation hook) writes a row here BEFORE returning to\n * the caller. The row records who, when, where (scope), and what\n * changed — but never the plaintext value of an encrypted field; only\n * a content digest is stored so an operator can verify \"this is the\n * same value as last week\" without exposing the secret.\n *\n * Why separate from `sys_audit_log`:\n * - The generic audit log is a high-traffic firehose (every CRUD\n * on every business object). Settings rows are low-traffic and\n * operationally critical, so they deserve dedicated retention and\n * indexing.\n * - The schema here carries settings-specific fields (`scope`,\n * `cascade_source`) that don't make sense on a generic row.\n *\n * Append-only contract: enforced at the application layer (the only\n * writer is SettingsService). Operators MUST NOT delete rows; instead\n * use lifecycle policies to archive cold rows to a separate bucket.\n *\n * @namespace sys\n */\nexport const SysSettingAudit = ObjectSchema.create({\n name: 'sys_setting_audit',\n label: 'Setting Audit Entry',\n pluralLabel: 'Setting Audit',\n icon: 'history',\n isSystem: true,\n managedBy: 'system',\n description: 'Append-only audit trail for SettingsService mutations.',\n scope: 'tenant',\n compactLayout: ['namespace', 'key', 'scope', 'action', 'actor_id', 'created_at'],\n defaultViewName: 'recent',\n views: {\n recent: {\n type: 'list',\n name: 'recent',\n label: 'Recent',\n columns: ['created_at', 'namespace', 'key', 'scope', 'action', 'actor_id', 'source'],\n sort: [{ field: 'created_at', order: 'desc' }],\n },\n },\n\n fields: {\n id: Field.text({\n label: 'ID',\n readonly: true,\n }),\n\n created_at: Field.datetime({\n label: 'Created At',\n readonly: true,\n description: 'When the mutation was recorded.',\n }),\n\n namespace: Field.text({\n label: 'Namespace',\n required: true,\n maxLength: 128,\n }),\n\n key: Field.text({\n label: 'Key',\n required: true,\n maxLength: 128,\n }),\n\n scope: Field.select(\n [\n { label: 'Global', value: 'global' },\n { label: 'Tenant', value: 'tenant' },\n { label: 'User', value: 'user' },\n ],\n {\n label: 'Scope',\n required: true,\n description: 'Cascade layer the row was written to.',\n },\n ),\n\n action: Field.select(\n [\n { label: 'Set', value: 'set' },\n { label: 'Reset', value: 'reset' },\n { label: 'Lock', value: 'lock' },\n { label: 'Unlock', value: 'unlock' },\n { label: 'Rotate', value: 'rotate' },\n ],\n {\n label: 'Action',\n required: true,\n description: 'Mutation kind.',\n },\n ),\n\n actor_id: Field.lookup('sys_user', {\n label: 'Actor',\n description: 'User who performed the mutation; null for system jobs.',\n }),\n\n /**\n * Where the write originated. Lets operators distinguish admin UI\n * activity from migration jobs and bulk imports during incident\n * analysis.\n */\n source: Field.select(\n [\n { label: 'UI', value: 'ui' },\n { label: 'API', value: 'api' },\n { label: 'Migration', value: 'migration' },\n { label: 'Import', value: 'import' },\n { label: 'System', value: 'system' },\n ],\n {\n label: 'Source',\n required: true,\n defaultValue: 'api',\n description: 'Mutation entry-point.',\n },\n ),\n\n /** Optional free-text reason (Phase 3+ change-management hook). */\n reason: Field.text({\n label: 'Reason',\n description: 'Free-text justification provided by the actor (optional).',\n }),\n\n /**\n * Content digest of the previous value. Never the plaintext —\n * lets operators detect duplicate writes without leaking secrets.\n * Format: hex SHA-256 of the canonicalised JSON, or null when\n * the previous value was unset.\n */\n old_hash: Field.text({\n label: 'Old Hash',\n readonly: true,\n maxLength: 128,\n description: 'SHA-256 of the previous value (canonicalised). Null when previously unset.',\n }),\n\n /** Content digest of the new value. Null on `reset`. */\n new_hash: Field.text({\n label: 'New Hash',\n readonly: true,\n maxLength: 128,\n description: 'SHA-256 of the new value (canonicalised). Null on reset.',\n }),\n\n /** True when the field is encrypted — flags secret rotation events. */\n encrypted: Field.boolean({\n label: 'Encrypted',\n defaultValue: false,\n description: 'True when the field carries secret material (rotation is interesting).',\n }),\n\n /** Request id from the originating HTTP/CLI invocation. */\n request_id: Field.text({\n label: 'Request ID',\n maxLength: 128,\n description: 'Correlates with sys_audit_log / tracing.',\n }),\n },\n\n indexes: [\n // Most common query: \"what changed for namespace X in the last 7 days?\"\n { fields: ['namespace', 'created_at'], unique: false },\n // Per-actor lookup for compliance reviews.\n { fields: ['actor_id', 'created_at'], unique: false },\n ],\n\n enable: {\n trackHistory: false,\n audit: false, // this IS the audit; no recursion\n },\n});\n","// 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"]}