Skip to content

Commit 1d9a509

Browse files
committed
feat: add multi-tenant project management system objects
- Introduced new object schemas for tenant management including sys_app, sys_package, sys_package_version, sys_package_installation, sys_project, sys_project_member, sys_project_credential, and sys_tenant_database. - Implemented control plane registry for packages and projects with detailed metadata fields. - Established relationships and constraints for project and package installations. - Added TypeScript configuration and build setup using tsup for the new package structure. - Included deprecation notice for sys_tenant_database in favor of a new environment-per-database model.
1 parent 40b837b commit 1d9a509

66 files changed

Lines changed: 535 additions & 328 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/metadata/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"dependencies": {
4141
"@objectstack/core": "workspace:*",
4242
"@objectstack/objectos": "workspace:*",
43+
"@objectstack/system-objects": "workspace:*",
4344
"@objectstack/spec": "workspace:*",
4445
"@objectstack/types": "workspace:*",
4546
"chokidar": "^5.0.0",

packages/metadata/src/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ export { RemoteLoader } from './loaders/remote-loader.js';
2323
export { DatabaseLoader, type DatabaseLoaderOptions } from './loaders/database-loader.js';
2424

2525
// Objects
26-
export { SysMetadataObject } from './objects/sys-metadata.object.js';
27-
export { SysMetadataHistoryObject } from './objects/sys-metadata-history.object.js';
26+
export { SysMetadataObject, SysMetadataHistoryObject } from '@objectstack/system-objects/metadata';
2827

2928
// Routes
3029
export { registerMetadataHistoryRoutes } from './routes/history-routes.js';

packages/metadata/src/loaders/database-loader.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ import type {
1919
MetadataRecord,
2020
MetadataHistoryRecord,
2121
} from '@objectstack/spec/system';
22-
import { SysMetadataObject } from '../objects/sys-metadata.object.js';
23-
import { SysMetadataHistoryObject } from '../objects/sys-metadata-history.object.js';
22+
import { SysMetadataObject, SysMetadataHistoryObject } from '@objectstack/system-objects/metadata';
2423
import type { IDataDriver, IDataEngine } from '@objectstack/spec/contracts';
2524
import type { MetadataLoader } from './loader-interface.js';
2625
import { calculateChecksum } from '../utils/metadata-history-utils.js';

packages/metadata/src/plugin.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ import { NodeMetadataManager } from './node-metadata-manager.js';
77
import { MemoryLoader } from './loaders/memory-loader.js';
88
import { DEFAULT_METADATA_TYPE_REGISTRY } from '@objectstack/spec/kernel';
99
import type { MetadataPluginConfig } from '@objectstack/spec/kernel';
10-
import { SysMetadataObject } from './objects/sys-metadata.object.js';
11-
import { SysMetadataHistoryObject } from './objects/sys-metadata-history.object.js';
10+
import { SysMetadataObject, SysMetadataHistoryObject } from '@objectstack/system-objects/metadata';
1211
import { SystemObjects } from '@objectstack/objectos';
1312

1413
// Map from ObjectStackDefinition field name to MetadataType name
@@ -122,7 +121,7 @@ export class MetadataPlugin implements Plugin {
122121

123122
ctx.logger.info('Registered system metadata objects', {
124123
metadata: ['sys_metadata', 'sys_metadata_history'],
125-
objectos: Object.keys(SystemObjects).map((name) => `sys_${name}`),
124+
objectos: Object.keys(SystemObjects),
126125
});
127126
} catch {
128127
// ObjectQL not loaded yet — objects will be discovered via legacy fallback

packages/objectos/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
},
4747
"dependencies": {
4848
"@objectstack/spec": "workspace:*",
49+
"@objectstack/system-objects": "workspace:*",
4950
"zod": "^4.3.6"
5051
},
5152
"engines": {
Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,3 @@
11
// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
22

3-
/**
4-
* System Objects Index
5-
*
6-
* Re-exports all system object definitions from the ObjectOS layer.
7-
*/
8-
9-
export { SysMetadata } from './sys-metadata.object';
10-
export { SysObject } from './sys-object.object';
11-
export { SysView } from './sys-view.object';
12-
export { SysAgent } from './sys-agent.object';
13-
export { SysTool } from './sys-tool.object';
14-
export { SysFlow } from './sys-flow.object';
3+
export * from '@objectstack/system-objects/metadata';

packages/objectos/src/objects/sys-metadata.object.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
22

33
import { describe, it, expect } from 'vitest';
4-
import { SysMetadata } from './sys-metadata.object';
4+
import { SysMetadata } from '@objectstack/system-objects/metadata';
55

66
describe('SysMetadata Object', () => {
77
it('should have correct object name', () => {
@@ -21,7 +21,6 @@ describe('SysMetadata Object', () => {
2121

2222
it('should have tracking capabilities enabled', () => {
2323
expect(SysMetadata.enable?.trackHistory).toBe(true);
24-
expect(SysMetadata.enable?.searchable).toBe(true);
2524
expect(SysMetadata.enable?.apiEnabled).toBe(true);
2625
});
2726
});

packages/objectos/src/objects/sys-metadata.object.ts

Lines changed: 0 additions & 205 deletions
This file was deleted.

packages/plugins/plugin-audit/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
},
1919
"dependencies": {
2020
"@objectstack/core": "workspace:*",
21-
"@objectstack/spec": "workspace:*"
21+
"@objectstack/spec": "workspace:*",
22+
"@objectstack/system-objects": "workspace:*"
2223
},
2324
"devDependencies": {
2425
"@types/node": "^25.6.0",
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
11
// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
22

3-
/**
4-
* Audit Plugin — System Object Definitions (sys namespace)
5-
*
6-
* Canonical ObjectSchema definitions for audit-related system objects.
7-
*/
8-
9-
export { SysAuditLog } from './sys-audit-log.object.js';
3+
export * from '@objectstack/system-objects/audit';

0 commit comments

Comments
 (0)