@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.
- package/dist/apps/index.d.mts +16 -48
- package/dist/apps/index.d.ts +16 -48
- package/dist/apps/index.js +139 -215
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/index.mjs +140 -210
- package/dist/apps/index.mjs.map +1 -1
- package/dist/audit/index.d.mts +40249 -150
- package/dist/audit/index.d.ts +40249 -150
- package/dist/audit/index.js +1428 -0
- package/dist/audit/index.js.map +1 -1
- package/dist/audit/index.mjs +1417 -1
- package/dist/audit/index.mjs.map +1 -1
- package/dist/identity/index.d.mts +18792 -2520
- package/dist/identity/index.d.ts +18792 -2520
- package/dist/identity/index.js +1107 -6
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/index.mjs +1106 -7
- package/dist/identity/index.mjs.map +1 -1
- package/dist/index.d.mts +9 -7
- package/dist/index.d.ts +9 -7
- package/dist/index.js +3939 -1504
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3917 -1487
- package/dist/index.mjs.map +1 -1
- package/dist/integration/index.d.mts +2905 -0
- package/dist/integration/index.d.ts +2905 -0
- package/dist/integration/index.js +140 -0
- package/dist/integration/index.js.map +1 -0
- package/dist/integration/index.mjs +138 -0
- package/dist/integration/index.mjs.map +1 -0
- package/dist/metadata/index.d.mts +1426 -19092
- package/dist/metadata/index.d.ts +1426 -19092
- package/dist/metadata/index.js +29 -619
- package/dist/metadata/index.js.map +1 -1
- package/dist/metadata/index.mjs +30 -615
- package/dist/metadata/index.mjs.map +1 -1
- package/dist/security/index.d.mts +10759 -60
- package/dist/security/index.d.ts +10759 -60
- package/dist/security/index.js +786 -0
- package/dist/security/index.js.map +1 -1
- package/dist/security/index.mjs +782 -1
- package/dist/security/index.mjs.map +1 -1
- package/dist/system/index.d.mts +8409 -0
- package/dist/system/index.d.ts +8409 -0
- package/dist/system/index.js +395 -0
- package/dist/system/index.js.map +1 -0
- package/dist/system/index.mjs +391 -0
- package/dist/system/index.mjs.map +1 -0
- package/package.json +13 -8
- package/dist/tenant/index.d.mts +0 -16454
- package/dist/tenant/index.d.ts +0 -16454
- package/dist/tenant/index.js +0 -741
- package/dist/tenant/index.js.map +0 -1
- package/dist/tenant/index.mjs +0 -733
- package/dist/tenant/index.mjs.map +0 -1
- /package/dist/{state-machine.zod-BFg-VE0M.d-Ek3_yo9P.d.mts → state-machine.zod-BNanU03M.d-Ek3_yo9P.d.mts} +0 -0
- /package/dist/{state-machine.zod-BFg-VE0M.d-Ek3_yo9P.d.ts → state-machine.zod-BNanU03M.d-Ek3_yo9P.d.ts} +0 -0
package/dist/tenant/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../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"],"names":["ObjectSchema","Field"],"mappings":"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","file":"index.js","sourcesContent":["// 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"]}
|