@objectstack/platform-objects 11.1.0 → 11.3.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/audit/sys-notification.object.ts","../../src/audit/sys-attachment.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-job.object.ts","../../src/audit/sys-job-run.object.ts","../../src/audit/sys-job-queue.object.ts"],"names":["ObjectSchema","Field"],"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_notification — Notification Event (ADR-0030 Layer 2)\n *\n * **Re-modeled (ADR-0030)**: this object was previously a per-user inbox. It is\n * now the platform's notification **event** — one row per `emit()`, the single\n * ingress through which every producer (the flow `notify` node, collaboration\n * `@mention`, record assignment, system alerts) publishes. It carries no\n * recipient and no read-state: those live downstream in the delivery\n * materialization (`sys_inbox_message`) and the receipt\n * (`sys_notification_receipt`).\n *\n * Layering (ADR-0012 / ADR-0030):\n * L2 event → this object (`topic` / `payload` / `dedup_key` / `severity`)\n * L4 delivery → `sys_notification_delivery` (outbox; P1)\n * L5 materialize → `sys_inbox_message` (in-app), email/push/… per channel\n * L5 receipt → `sys_notification_receipt` (read/clicked/dismissed)\n *\n * Writers: `NotificationService.emit()` only — **no producer writes this row\n * directly** (single-ingress rule). Readers: the delivery pipeline; the admin\n * notification-event log. The Console bell reads `sys_inbox_message`, not this.\n *\n * @namespace sys\n */\nexport const SysNotification = ObjectSchema.create({\n name: 'sys_notification',\n label: 'Notification Event',\n pluralLabel: 'Notification Events',\n icon: 'bell',\n isSystem: true,\n managedBy: 'system',\n description: 'Notification events — one row per emit() (ADR-0030 Layer 2 ingress)',\n displayNameField: 'topic',\n titleFormat: '{topic}',\n compactLayout: ['topic', 'severity', 'source_object', 'created_at'],\n\n listViews: {\n recent: {\n type: 'grid',\n name: 'recent',\n label: 'Recent',\n data: { provider: 'object', object: 'sys_notification' },\n columns: ['topic', 'severity', 'actor_id', 'source_object', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n emptyState: { title: 'No events', message: 'No notification events have been emitted.' },\n },\n by_topic: {\n type: 'grid',\n name: 'by_topic',\n label: 'By Topic',\n data: { provider: 'object', object: 'sys_notification' },\n columns: ['topic', 'severity', 'source_object', 'source_id', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n grouping: { fields: [{ field: 'topic', order: 'asc', collapsed: false }] },\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 // ── Event identity ───────────────────────────────────────────\n topic: Field.text({\n label: 'Topic',\n required: true,\n maxLength: 200,\n searchable: true,\n description: 'Notification topic, e.g. task.assigned, collab.mention',\n group: 'Event',\n }),\n\n payload: Field.json({\n label: 'Payload',\n required: false,\n description: 'Template inputs carried to channels (title/body/url/actor/source/…)',\n group: 'Event',\n }),\n\n severity: Field.select(['info', 'warning', 'critical'], {\n label: 'Severity',\n required: false,\n defaultValue: 'info',\n description: 'Severity hint for rendering / filtering',\n group: 'Event',\n }),\n\n dedup_key: Field.text({\n label: 'Dedup Key',\n required: false,\n maxLength: 255,\n description: 'Idempotency key within a topic window; a repeat emit is a no-op',\n group: 'Event',\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 actor_id: Field.lookup('sys_user', {\n label: 'Actor',\n required: false,\n description: 'User who caused the event (mentioner, assigner)',\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\n indexes: [\n { fields: ['topic', 'created_at'] },\n // Idempotency spine (ADR-0030). UNIQUE so `emit()` dedup is race-safe: a\n // concurrent emit with the same dedup_key loses the insert and converges to\n // the winner (mirrors the delivery outbox). SQL treats NULLs as distinct, so\n // the (common) events with no dedup_key are unconstrained.\n { fields: ['dedup_key'], unique: true },\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_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_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: `interval_minutes` (1440 = daily, 10080 = weekly) or a\n * `cron_expression`. When a `cron_expression` is set it wins over\n * `interval_minutes` and is evaluated in `timezone` (default UTC) via\n * croner — so \"every weekday 09:00 local\" is expressible. `next_run_at`\n * is computed from whichever applies.\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_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"]}
1
+ {"version":3,"sources":["../../src/audit/sys-notification.object.ts","../../src/audit/sys-attachment.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-job.object.ts","../../src/audit/sys-job-run.object.ts","../../src/audit/sys-job-queue.object.ts"],"names":["ObjectSchema","Field"],"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_notification — Notification Event (ADR-0030 Layer 2)\n *\n * **Re-modeled (ADR-0030)**: this object was previously a per-user inbox. It is\n * now the platform's notification **event** — one row per `emit()`, the single\n * ingress through which every producer (the flow `notify` node, collaboration\n * `@mention`, record assignment, system alerts) publishes. It carries no\n * recipient and no read-state: those live downstream in the delivery\n * materialization (`sys_inbox_message`) and the receipt\n * (`sys_notification_receipt`).\n *\n * Layering (ADR-0012 / ADR-0030):\n * L2 event → this object (`topic` / `payload` / `dedup_key` / `severity`)\n * L4 delivery → `sys_notification_delivery` (outbox; P1)\n * L5 materialize → `sys_inbox_message` (in-app), email/push/… per channel\n * L5 receipt → `sys_notification_receipt` (read/clicked/dismissed)\n *\n * Writers: `NotificationService.emit()` only — **no producer writes this row\n * directly** (single-ingress rule). Readers: the delivery pipeline; the admin\n * notification-event log. The Console bell reads `sys_inbox_message`, not this.\n *\n * @namespace sys\n */\nexport const SysNotification = ObjectSchema.create({\n name: 'sys_notification',\n label: 'Notification Event',\n pluralLabel: 'Notification Events',\n icon: 'bell',\n isSystem: true,\n managedBy: 'system',\n description: 'Notification events — one row per emit() (ADR-0030 Layer 2 ingress)',\n displayNameField: 'topic',\n nameField: 'topic', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\n titleFormat: '{topic}',\n compactLayout: ['topic', 'severity', 'source_object', 'created_at'],\n\n listViews: {\n recent: {\n type: 'grid',\n name: 'recent',\n label: 'Recent',\n data: { provider: 'object', object: 'sys_notification' },\n columns: ['topic', 'severity', 'actor_id', 'source_object', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 50 },\n emptyState: { title: 'No events', message: 'No notification events have been emitted.' },\n },\n by_topic: {\n type: 'grid',\n name: 'by_topic',\n label: 'By Topic',\n data: { provider: 'object', object: 'sys_notification' },\n columns: ['topic', 'severity', 'source_object', 'source_id', 'created_at'],\n sort: [{ field: 'created_at', order: 'desc' }],\n pagination: { pageSize: 100 },\n grouping: { fields: [{ field: 'topic', order: 'asc', collapsed: false }] },\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 // ── Event identity ───────────────────────────────────────────\n topic: Field.text({\n label: 'Topic',\n required: true,\n maxLength: 200,\n searchable: true,\n description: 'Notification topic, e.g. task.assigned, collab.mention',\n group: 'Event',\n }),\n\n payload: Field.json({\n label: 'Payload',\n required: false,\n description: 'Template inputs carried to channels (title/body/url/actor/source/…)',\n group: 'Event',\n }),\n\n severity: Field.select(['info', 'warning', 'critical'], {\n label: 'Severity',\n required: false,\n defaultValue: 'info',\n description: 'Severity hint for rendering / filtering',\n group: 'Event',\n }),\n\n dedup_key: Field.text({\n label: 'Dedup Key',\n required: false,\n maxLength: 255,\n description: 'Idempotency key within a topic window; a repeat emit is a no-op',\n group: 'Event',\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 actor_id: Field.lookup('sys_user', {\n label: 'Actor',\n required: false,\n description: 'User who caused the event (mentioner, assigner)',\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\n indexes: [\n { fields: ['topic', 'created_at'] },\n // Idempotency spine (ADR-0030). UNIQUE so `emit()` dedup is race-safe: a\n // concurrent emit with the same dedup_key loses the insert and converges to\n // the winner (mirrors the delivery outbox). SQL treats NULLs as distinct, so\n // the (common) events with no dedup_key are unconstrained.\n { fields: ['dedup_key'], unique: true },\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_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_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 nameField: 'subject', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\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 nameField: 'label', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\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 nameField: 'name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\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: `interval_minutes` (1440 = daily, 10080 = weekly) or a\n * `cron_expression`. When a `cron_expression` is set it wins over\n * `interval_minutes` and is evaluated in `timezone` (default UTC) via\n * croner — so \"every weekday 09:00 local\" is expressible. `next_run_at`\n * is computed from whichever applies.\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_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 nameField: 'name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\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 nameField: 'job_name', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\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 nameField: 'queue', // [ADR-0079] canonical primary-title pointer (mirrors deprecated displayNameField)\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"]}
@@ -323,6 +323,7 @@ declare const SysUser: Omit<{
323
323
  summary: string;
324
324
  type?: string | undefined;
325
325
  }[] | undefined;
326
+ nameField?: string | undefined;
326
327
  displayNameField?: string | undefined;
327
328
  recordName?: {
328
329
  type: "text" | "autonumber";
@@ -803,6 +804,7 @@ declare const SysUser: Omit<{
803
804
  };
804
805
  readonly description: "User accounts for authentication";
805
806
  readonly displayNameField: "name";
807
+ readonly nameField: "name";
806
808
  readonly titleFormat: "{name}";
807
809
  readonly compactLayout: ["name", "email", "email_verified"];
808
810
  readonly actions: [{
@@ -4991,6 +4993,7 @@ declare const SysSession: Omit<{
4991
4993
  summary: string;
4992
4994
  type?: string | undefined;
4993
4995
  }[] | undefined;
4996
+ nameField?: string | undefined;
4994
4997
  displayNameField?: string | undefined;
4995
4998
  recordName?: {
4996
4999
  type: "text" | "autonumber";
@@ -5471,6 +5474,7 @@ declare const SysSession: Omit<{
5471
5474
  };
5472
5475
  readonly description: "Active user sessions";
5473
5476
  readonly displayNameField: "user_id";
5477
+ readonly nameField: "user_id";
5474
5478
  readonly titleFormat: "Session — {user_id}";
5475
5479
  readonly compactLayout: ["user_id", "ip_address", "expires_at"];
5476
5480
  readonly actions: [{
@@ -8319,6 +8323,7 @@ declare const SysAccount: Omit<{
8319
8323
  summary: string;
8320
8324
  type?: string | undefined;
8321
8325
  }[] | undefined;
8326
+ nameField?: string | undefined;
8322
8327
  displayNameField?: string | undefined;
8323
8328
  recordName?: {
8324
8329
  type: "text" | "autonumber";
@@ -11704,6 +11709,7 @@ declare const SysVerification: Omit<{
11704
11709
  summary: string;
11705
11710
  type?: string | undefined;
11706
11711
  }[] | undefined;
11712
+ nameField?: string | undefined;
11707
11713
  displayNameField?: string | undefined;
11708
11714
  recordName?: {
11709
11715
  type: "text" | "autonumber";
@@ -13571,6 +13577,7 @@ declare const SysOrganization: Omit<{
13571
13577
  summary: string;
13572
13578
  type?: string | undefined;
13573
13579
  }[] | undefined;
13580
+ nameField?: string | undefined;
13574
13581
  displayNameField?: string | undefined;
13575
13582
  recordName?: {
13576
13583
  type: "text" | "autonumber";
@@ -14051,6 +14058,7 @@ declare const SysOrganization: Omit<{
14051
14058
  };
14052
14059
  readonly description: "Organizations for multi-tenant grouping";
14053
14060
  readonly displayNameField: "name";
14061
+ readonly nameField: "name";
14054
14062
  readonly titleFormat: "{name}";
14055
14063
  readonly compactLayout: ["name", "slug"];
14056
14064
  readonly actions: [{
@@ -15910,6 +15918,7 @@ declare const SysMember: Omit<{
15910
15918
  summary: string;
15911
15919
  type?: string | undefined;
15912
15920
  }[] | undefined;
15921
+ nameField?: string | undefined;
15913
15922
  displayNameField?: string | undefined;
15914
15923
  recordName?: {
15915
15924
  type: "text" | "autonumber";
@@ -17698,6 +17707,7 @@ declare const SysInvitation: Omit<{
17698
17707
  summary: string;
17699
17708
  type?: string | undefined;
17700
17709
  }[] | undefined;
17710
+ nameField?: string | undefined;
17701
17711
  displayNameField?: string | undefined;
17702
17712
  recordName?: {
17703
17713
  type: "text" | "autonumber";
@@ -20250,6 +20260,7 @@ declare const SysTeam: Omit<{
20250
20260
  summary: string;
20251
20261
  type?: string | undefined;
20252
20262
  }[] | undefined;
20263
+ nameField?: string | undefined;
20253
20264
  displayNameField?: string | undefined;
20254
20265
  recordName?: {
20255
20266
  type: "text" | "autonumber";
@@ -20730,6 +20741,7 @@ declare const SysTeam: Omit<{
20730
20741
  };
20731
20742
  readonly description: "Teams within organizations for fine-grained grouping";
20732
20743
  readonly displayNameField: "name";
20744
+ readonly nameField: "name";
20733
20745
  readonly titleFormat: "{name}";
20734
20746
  readonly compactLayout: ["name", "organization_id"];
20735
20747
  readonly actions: [{
@@ -22039,6 +22051,7 @@ declare const SysTeamMember: Omit<{
22039
22051
  summary: string;
22040
22052
  type?: string | undefined;
22041
22053
  }[] | undefined;
22054
+ nameField?: string | undefined;
22042
22055
  displayNameField?: string | undefined;
22043
22056
  recordName?: {
22044
22057
  type: "text" | "autonumber";
@@ -23609,6 +23622,7 @@ declare const SysBusinessUnit: Omit<{
23609
23622
  summary: string;
23610
23623
  type?: string | undefined;
23611
23624
  }[] | undefined;
23625
+ nameField?: string | undefined;
23612
23626
  displayNameField?: string | undefined;
23613
23627
  recordName?: {
23614
23628
  type: "text" | "autonumber";
@@ -24084,6 +24098,7 @@ declare const SysBusinessUnit: Omit<{
24084
24098
  readonly managedBy: "platform";
24085
24099
  readonly description: "Canonical Business Unit tree — hierarchical org/data-partition node (company / division / department / region / office). ADR-0057 D2.";
24086
24100
  readonly displayNameField: "name";
24101
+ readonly nameField: "name";
24087
24102
  readonly titleFormat: "{name}";
24088
24103
  readonly compactLayout: ["name", "kind", "parent_business_unit_id", "manager_user_id"];
24089
24104
  readonly listViews: {
@@ -26804,6 +26819,7 @@ declare const SysBusinessUnitMember: Omit<{
26804
26819
  summary: string;
26805
26820
  type?: string | undefined;
26806
26821
  }[] | undefined;
26822
+ nameField?: string | undefined;
26807
26823
  displayNameField?: string | undefined;
26808
26824
  recordName?: {
26809
26825
  type: "text" | "autonumber";
@@ -29189,6 +29205,7 @@ declare const SysApiKey: Omit<{
29189
29205
  summary: string;
29190
29206
  type?: string | undefined;
29191
29207
  }[] | undefined;
29208
+ nameField?: string | undefined;
29192
29209
  displayNameField?: string | undefined;
29193
29210
  recordName?: {
29194
29211
  type: "text" | "autonumber";
@@ -29669,6 +29686,7 @@ declare const SysApiKey: Omit<{
29669
29686
  };
29670
29687
  readonly description: "API keys for programmatic access";
29671
29688
  readonly displayNameField: "name";
29689
+ readonly nameField: "name";
29672
29690
  readonly titleFormat: "{name}";
29673
29691
  readonly compactLayout: ["name", "prefix", "user_id", "expires_at", "revoked"];
29674
29692
  readonly actions: [{
@@ -32045,6 +32063,7 @@ declare const SysTwoFactor: Omit<{
32045
32063
  summary: string;
32046
32064
  type?: string | undefined;
32047
32065
  }[] | undefined;
32066
+ nameField?: string | undefined;
32048
32067
  displayNameField?: string | undefined;
32049
32068
  recordName?: {
32050
32069
  type: "text" | "autonumber";
@@ -34203,6 +34222,7 @@ declare const SysDeviceCode: Omit<{
34203
34222
  summary: string;
34204
34223
  type?: string | undefined;
34205
34224
  }[] | undefined;
34225
+ nameField?: string | undefined;
34206
34226
  displayNameField?: string | undefined;
34207
34227
  recordName?: {
34208
34228
  type: "text" | "autonumber";
@@ -34682,6 +34702,7 @@ declare const SysDeviceCode: Omit<{
34682
34702
  readonly docsUrl: "https://docs.objectstack.ai/adr/0010-metadata-protection";
34683
34703
  };
34684
34704
  readonly description: "OAuth 2.0 Device Authorization Grant (RFC 8628) pending requests";
34705
+ readonly nameField: "user_code";
34685
34706
  readonly titleFormat: "{user_code}";
34686
34707
  readonly compactLayout: ["user_code", "status", "client_id", "expires_at"];
34687
34708
  readonly fields: {
@@ -37124,6 +37145,7 @@ declare const SysUserPreference: Omit<{
37124
37145
  summary: string;
37125
37146
  type?: string | undefined;
37126
37147
  }[] | undefined;
37148
+ nameField?: string | undefined;
37127
37149
  displayNameField?: string | undefined;
37128
37150
  recordName?: {
37129
37151
  type: "text" | "autonumber";
@@ -37598,6 +37620,7 @@ declare const SysUserPreference: Omit<{
37598
37620
  readonly isSystem: true;
37599
37621
  readonly managedBy: "system";
37600
37622
  readonly description: "Per-user key-value preferences (theme, locale, etc.)";
37623
+ readonly nameField: "key";
37601
37624
  readonly titleFormat: "{key}";
37602
37625
  readonly compactLayout: ["user_id", "key"];
37603
37626
  readonly listViews: {
@@ -39058,6 +39081,7 @@ declare const SysOauthApplication: Omit<{
39058
39081
  summary: string;
39059
39082
  type?: string | undefined;
39060
39083
  }[] | undefined;
39084
+ nameField?: string | undefined;
39061
39085
  displayNameField?: string | undefined;
39062
39086
  recordName?: {
39063
39087
  type: "text" | "autonumber";
@@ -39538,6 +39562,7 @@ declare const SysOauthApplication: Omit<{
39538
39562
  };
39539
39563
  readonly description: "Registered OAuth/OIDC client applications";
39540
39564
  readonly displayNameField: "name";
39565
+ readonly nameField: "name";
39541
39566
  readonly titleFormat: "{name}";
39542
39567
  readonly compactLayout: ["name", "client_id", "type", "disabled"];
39543
39568
  readonly actions: [{
@@ -45340,6 +45365,7 @@ declare const SysOauthAccessToken: Omit<{
45340
45365
  summary: string;
45341
45366
  type?: string | undefined;
45342
45367
  }[] | undefined;
45368
+ nameField?: string | undefined;
45343
45369
  displayNameField?: string | undefined;
45344
45370
  recordName?: {
45345
45371
  type: "text" | "autonumber";
@@ -47908,6 +47934,7 @@ declare const SysOauthRefreshToken: Omit<{
47908
47934
  summary: string;
47909
47935
  type?: string | undefined;
47910
47936
  }[] | undefined;
47937
+ nameField?: string | undefined;
47911
47938
  displayNameField?: string | undefined;
47912
47939
  recordName?: {
47913
47940
  type: "text" | "autonumber";
@@ -50650,6 +50677,7 @@ declare const SysOauthConsent: Omit<{
50650
50677
  summary: string;
50651
50678
  type?: string | undefined;
50652
50679
  }[] | undefined;
50680
+ nameField?: string | undefined;
50653
50681
  displayNameField?: string | undefined;
50654
50682
  recordName?: {
50655
50683
  type: "text" | "autonumber";
@@ -52689,6 +52717,7 @@ declare const SysJwks: Omit<{
52689
52717
  summary: string;
52690
52718
  type?: string | undefined;
52691
52719
  }[] | undefined;
52720
+ nameField?: string | undefined;
52692
52721
  displayNameField?: string | undefined;
52693
52722
  recordName?: {
52694
52723
  type: "text" | "autonumber";
@@ -54385,6 +54414,7 @@ declare const SysSsoProvider: Omit<{
54385
54414
  summary: string;
54386
54415
  type?: string | undefined;
54387
54416
  }[] | undefined;
54417
+ nameField?: string | undefined;
54388
54418
  displayNameField?: string | undefined;
54389
54419
  recordName?: {
54390
54420
  type: "text" | "autonumber";
@@ -54870,6 +54900,7 @@ declare const SysSsoProvider: Omit<{
54870
54900
  };
54871
54901
  readonly description: "External SSO identity providers (OIDC / SAML) this environment federates login to";
54872
54902
  readonly displayNameField: "provider_id";
54903
+ readonly nameField: "provider_id";
54873
54904
  readonly titleFormat: "{provider_id}";
54874
54905
  readonly compactLayout: ["provider_id", "issuer", "domain"];
54875
54906
  readonly actions: [{
@@ -57366,6 +57397,7 @@ declare const SysScimProvider: Omit<{
57366
57397
  summary: string;
57367
57398
  type?: string | undefined;
57368
57399
  }[] | undefined;
57400
+ nameField?: string | undefined;
57369
57401
  displayNameField?: string | undefined;
57370
57402
  recordName?: {
57371
57403
  type: "text" | "autonumber";
@@ -57846,6 +57878,7 @@ declare const SysScimProvider: Omit<{
57846
57878
  };
57847
57879
  readonly description: "SCIM 2.0 connections (bearer tokens) external IdPs use to provision/deprovision this environment's users";
57848
57880
  readonly displayNameField: "provider_id";
57881
+ readonly nameField: "provider_id";
57849
57882
  readonly titleFormat: "{provider_id}";
57850
57883
  readonly compactLayout: ["provider_id", "organization_id"];
57851
57884
  readonly listViews: {