Skip to content

Commit 3a8f960

Browse files
Refactor: Use generic property names (data/ui/system) instead of product names
Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
1 parent f1633c0 commit 3a8f960

File tree

4 files changed

+60
-60
lines changed

4 files changed

+60
-60
lines changed

content/docs/objectos/runtime-capabilities.mdx

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ ObjectStack capabilities are organized into three subsystems that correspond to
5050
import type { ObjectStackCapabilities } from '@objectstack/spec';
5151

5252
const capabilities: ObjectStackCapabilities = {
53-
objectql: { /* ObjectQL capabilities */ },
54-
objectui: { /* ObjectUI capabilities */ },
55-
objectos: { /* ObjectOS capabilities */ },
53+
data: { /* ObjectQL capabilities */ },
54+
ui: { /* ObjectUI capabilities */ },
55+
system: { /* ObjectOS capabilities */ },
5656
};
5757
```
5858

@@ -249,7 +249,7 @@ The **System Layer** capabilities define runtime, API, security, and platform se
249249
import type { ObjectStackCapabilities } from '@objectstack/spec';
250250

251251
const productionCapabilities: ObjectStackCapabilities = {
252-
objectql: {
252+
data: {
253253
queryFilters: true,
254254
queryAggregations: true,
255255
querySorting: true,
@@ -272,7 +272,7 @@ const productionCapabilities: ObjectStackCapabilities = {
272272
bulkOperations: true,
273273
supportedDrivers: ['postgresql', 'mongodb', 'mysql'],
274274
},
275-
objectui: {
275+
ui: {
276276
listView: true,
277277
formView: true,
278278
kanbanView: true,
@@ -289,7 +289,7 @@ const productionCapabilities: ObjectStackCapabilities = {
289289
mobileOptimized: true,
290290
accessibility: true,
291291
},
292-
objectos: {
292+
system: {
293293
version: '1.0.0',
294294
environment: 'production',
295295
restApi: true,
@@ -326,7 +326,7 @@ const productionCapabilities: ObjectStackCapabilities = {
326326

327327
```typescript
328328
const developmentCapabilities: ObjectStackCapabilities = {
329-
objectql: {
329+
data: {
330330
// Basic query operations
331331
queryFilters: true,
332332
queryAggregations: true,
@@ -350,7 +350,7 @@ const developmentCapabilities: ObjectStackCapabilities = {
350350
bulkOperations: true,
351351
supportedDrivers: ['memory', 'sqlite'],
352352
},
353-
objectui: {
353+
ui: {
354354
listView: true,
355355
formView: true,
356356
kanbanView: false,
@@ -367,7 +367,7 @@ const developmentCapabilities: ObjectStackCapabilities = {
367367
mobileOptimized: false,
368368
accessibility: false,
369369
},
370-
objectos: {
370+
system: {
371371
version: '0.1.0',
372372
environment: 'development',
373373
restApi: true,
@@ -406,25 +406,25 @@ const developmentCapabilities: ObjectStackCapabilities = {
406406
// Helper: Check if a capability is enabled
407407
function hasCapability(
408408
capabilities: ObjectStackCapabilities,
409-
subsystem: 'objectql' | 'objectui' | 'objectos',
409+
subsystem: 'data' | 'ui' | 'system',
410410
capability: string
411411
): boolean {
412412
const subsystemCaps = capabilities[subsystem] as any;
413413
return subsystemCaps?.[capability] === true;
414414
}
415415

416416
// Check if vector search is available
417-
if (hasCapability(capabilities, 'objectql', 'vectorSearch')) {
417+
if (hasCapability(capabilities, 'data', 'vectorSearch')) {
418418
console.log('✅ Vector search is available for RAG workflows');
419419
}
420420

421421
// Check if GraphQL API is enabled
422-
if (hasCapability(capabilities, 'objectos', 'graphqlApi')) {
422+
if (hasCapability(capabilities, 'system', 'graphqlApi')) {
423423
console.log('✅ GraphQL endpoint is available');
424424
}
425425

426426
// Check if Kanban view is supported
427-
if (hasCapability(capabilities, 'objectui', 'kanbanView')) {
427+
if (hasCapability(capabilities, 'ui', 'kanbanView')) {
428428
console.log('✅ Kanban boards are available');
429429
}
430430
```
@@ -442,9 +442,9 @@ The capabilities schema is typically exposed via the `/api/discovery` endpoint:
442442
"version": "1.0.0",
443443
"environment": "production",
444444
"capabilities": {
445-
"objectql": { /* ... */ },
446-
"objectui": { /* ... */ },
447-
"objectos": { /* ... */ }
445+
"data": { /* ... */ },
446+
"ui": { /* ... */ },
447+
"system": { /* ... */ }
448448
},
449449
"routes": {
450450
"data": "/api/data",
@@ -471,7 +471,7 @@ Design your application to gracefully handle missing capabilities:
471471

472472
```typescript
473473
// Good: Check before using advanced features
474-
if (capabilities.objectql.vectorSearch) {
474+
if (capabilities.data.vectorSearch) {
475475
await performSemanticSearch(query);
476476
} else {
477477
await performTextSearch(query); // Fallback
@@ -484,7 +484,7 @@ When generating code, AI agents should respect capability constraints:
484484

485485
```typescript
486486
// AI Agent checks capabilities before generating code
487-
if (!capabilities.objectql.queryWindowFunctions) {
487+
if (!capabilities.data.queryWindowFunctions) {
488488
// Don't generate ROW_NUMBER queries
489489
// Use alternative implementation
490490
}

examples/capabilities-example.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const productionCapabilities: ObjectStackCapabilities = {
2525
// ============================================================================
2626
// ObjectQL: Data Layer Capabilities
2727
// ============================================================================
28-
objectql: {
28+
data: {
2929
// Query Operations
3030
queryFilters: true,
3131
queryAggregations: true,
@@ -63,7 +63,7 @@ export const productionCapabilities: ObjectStackCapabilities = {
6363
// ============================================================================
6464
// ObjectUI: User Interface Layer Capabilities
6565
// ============================================================================
66-
objectui: {
66+
ui: {
6767
// View Types
6868
listView: true,
6969
formView: true,
@@ -93,7 +93,7 @@ export const productionCapabilities: ObjectStackCapabilities = {
9393
// ============================================================================
9494
// ObjectOS: System Layer Capabilities
9595
// ============================================================================
96-
objectos: {
96+
system: {
9797
// System Identity
9898
version: '1.0.0',
9999
environment: 'production',
@@ -153,7 +153,7 @@ export const productionCapabilities: ObjectStackCapabilities = {
153153
* Many advanced features are disabled to simplify the runtime.
154154
*/
155155
export const developmentCapabilities: ObjectStackCapabilities = {
156-
objectql: {
156+
data: {
157157
// Basic query operations only
158158
queryFilters: true,
159159
queryAggregations: true,
@@ -188,7 +188,7 @@ export const developmentCapabilities: ObjectStackCapabilities = {
188188
supportedDrivers: ['memory', 'sqlite'],
189189
},
190190

191-
objectui: {
191+
ui: {
192192
// Basic views
193193
listView: true,
194194
formView: true,
@@ -215,7 +215,7 @@ export const developmentCapabilities: ObjectStackCapabilities = {
215215
accessibility: false,
216216
},
217217

218-
objectos: {
218+
system: {
219219
version: '0.1.0',
220220
environment: 'development',
221221

@@ -273,7 +273,7 @@ export const developmentCapabilities: ObjectStackCapabilities = {
273273
* Configuration optimized for AI/ML workloads with RAG and vector search.
274274
*/
275275
export const aiCapabilities: ObjectStackCapabilities = {
276-
objectql: {
276+
data: {
277277
queryFilters: true,
278278
queryAggregations: true,
279279
querySorting: true,
@@ -304,7 +304,7 @@ export const aiCapabilities: ObjectStackCapabilities = {
304304
supportedDrivers: ['postgresql', 'pinecone', 'chromadb'],
305305
},
306306

307-
objectui: {
307+
ui: {
308308
// Standard UI capabilities
309309
listView: true,
310310
formView: true,
@@ -327,7 +327,7 @@ export const aiCapabilities: ObjectStackCapabilities = {
327327
accessibility: false,
328328
},
329329

330-
objectos: {
330+
system: {
331331
version: '1.2.0',
332332
environment: 'production',
333333

@@ -374,7 +374,7 @@ export const aiCapabilities: ObjectStackCapabilities = {
374374
*/
375375
export function hasCapability(
376376
capabilities: ObjectStackCapabilities,
377-
subsystem: 'objectql' | 'objectui' | 'objectos',
377+
subsystem: 'data' | 'ui' | 'system',
378378
capability: string
379379
): boolean {
380380
const subsystemCaps = capabilities[subsystem] as any;
@@ -386,7 +386,7 @@ export function hasCapability(
386386
*/
387387
export function getEnabledCapabilities(
388388
capabilities: ObjectStackCapabilities,
389-
subsystem: 'objectql' | 'objectui' | 'objectos'
389+
subsystem: 'data' | 'ui' | 'system'
390390
): string[] {
391391
const subsystemCaps = capabilities[subsystem] as any;
392392
return Object.keys(subsystemCaps).filter((key) => subsystemCaps[key] === true);
@@ -397,20 +397,20 @@ export function getEnabledCapabilities(
397397
// ============================================================================
398398

399399
// Example: Check if vector search is available
400-
if (hasCapability(productionCapabilities, 'objectql', 'vectorSearch')) {
400+
if (hasCapability(productionCapabilities, 'data', 'vectorSearch')) {
401401
console.log('✅ Vector search is available for RAG workflows');
402402
}
403403

404404
// Example: Get all enabled ObjectUI capabilities
405-
const uiFeatures = getEnabledCapabilities(productionCapabilities, 'objectui');
405+
const uiFeatures = getEnabledCapabilities(productionCapabilities, 'ui');
406406
console.log('Enabled UI features:', uiFeatures);
407407

408408
// Example: Compare capabilities between environments
409409
console.log(
410410
'Production has GraphQL?',
411-
hasCapability(productionCapabilities, 'objectos', 'graphqlApi')
411+
hasCapability(productionCapabilities, 'system', 'graphqlApi')
412412
);
413413
console.log(
414414
'Development has GraphQL?',
415-
hasCapability(developmentCapabilities, 'objectos', 'graphqlApi')
415+
hasCapability(developmentCapabilities, 'system', 'graphqlApi')
416416
);

packages/spec/src/stack.test.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ describe('ObjectOSCapabilitiesSchema', () => {
258258
describe('ObjectStackCapabilitiesSchema', () => {
259259
it('should accept complete ObjectStack capabilities with all subsystems', () => {
260260
const capabilities: ObjectStackCapabilities = {
261-
objectql: {
261+
data: {
262262
queryFilters: true,
263263
queryAggregations: true,
264264
querySorting: true,
@@ -281,7 +281,7 @@ describe('ObjectStackCapabilitiesSchema', () => {
281281
bulkOperations: true,
282282
supportedDrivers: ['postgresql', 'mongodb'],
283283
},
284-
objectui: {
284+
ui: {
285285
listView: true,
286286
formView: true,
287287
kanbanView: true,
@@ -298,7 +298,7 @@ describe('ObjectStackCapabilitiesSchema', () => {
298298
mobileOptimized: true,
299299
accessibility: false,
300300
},
301-
objectos: {
301+
system: {
302302
version: '1.0.0',
303303
environment: 'production',
304304
restApi: true,
@@ -336,16 +336,16 @@ describe('ObjectStackCapabilitiesSchema', () => {
336336

337337
expect(() =>
338338
ObjectStackCapabilitiesSchema.parse({
339-
objectql: {},
340-
objectui: {},
339+
data: {},
340+
ui: {},
341341
})
342342
).toThrow();
343343

344344
expect(() =>
345345
ObjectStackCapabilitiesSchema.parse({
346-
objectql: {},
347-
objectui: {},
348-
objectos: {
346+
data: {},
347+
ui: {},
348+
system: {
349349
version: '1.0.0',
350350
environment: 'development',
351351
},
@@ -355,9 +355,9 @@ describe('ObjectStackCapabilitiesSchema', () => {
355355

356356
it('should allow minimal valid configuration', () => {
357357
const minimal: ObjectStackCapabilities = {
358-
objectql: {},
359-
objectui: {},
360-
objectos: {
358+
data: {},
359+
ui: {},
360+
system: {
361361
version: '0.1.0',
362362
environment: 'development',
363363
},
@@ -366,18 +366,18 @@ describe('ObjectStackCapabilitiesSchema', () => {
366366
const result = ObjectStackCapabilitiesSchema.parse(minimal);
367367

368368
// Check that defaults are applied
369-
expect(result.objectql.queryFilters).toBe(true);
370-
expect(result.objectui.listView).toBe(true);
371-
expect(result.objectos.restApi).toBe(true);
369+
expect(result.data.queryFilters).toBe(true);
370+
expect(result.ui.listView).toBe(true);
371+
expect(result.system.restApi).toBe(true);
372372
});
373373

374374
it('should preserve subsystem-specific optional fields', () => {
375375
const capabilities = ObjectStackCapabilitiesSchema.parse({
376-
objectql: {
376+
data: {
377377
supportedDrivers: ['postgresql', 'sqlite'],
378378
},
379-
objectui: {},
380-
objectos: {
379+
ui: {},
380+
system: {
381381
version: '1.0.0',
382382
environment: 'production',
383383
systemObjects: ['user', 'role'],
@@ -387,9 +387,9 @@ describe('ObjectStackCapabilitiesSchema', () => {
387387
},
388388
});
389389

390-
expect(capabilities.objectql.supportedDrivers).toEqual(['postgresql', 'sqlite']);
391-
expect(capabilities.objectos.systemObjects).toEqual(['user', 'role']);
392-
expect(capabilities.objectos.limits?.maxObjects).toBe(100);
390+
expect(capabilities.data.supportedDrivers).toEqual(['postgresql', 'sqlite']);
391+
expect(capabilities.system.systemObjects).toEqual(['user', 'role']);
392+
expect(capabilities.system.limits?.maxObjects).toBe(100);
393393
});
394394
});
395395

packages/spec/src/stack.zod.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -276,17 +276,17 @@ export const ObjectOSCapabilitiesSchema = z.object({
276276
* Unified ObjectStack Capabilities Schema
277277
*
278278
* Complete capability descriptor for an ObjectStack instance.
279-
* Organized by subsystem for clarity and maintainability.
279+
* Organized by architectural layer for clarity and maintainability.
280280
*/
281281
export const ObjectStackCapabilitiesSchema = z.object({
282-
/** ObjectQL: Data Layer Capabilities */
283-
objectql: ObjectQLCapabilitiesSchema.describe('Data Layer capabilities'),
282+
/** Data Layer Capabilities (ObjectQL) */
283+
data: ObjectQLCapabilitiesSchema.describe('Data Layer capabilities'),
284284

285-
/** ObjectUI: User Interface Layer Capabilities */
286-
objectui: ObjectUICapabilitiesSchema.describe('UI Layer capabilities'),
285+
/** User Interface Layer Capabilities (ObjectUI) */
286+
ui: ObjectUICapabilitiesSchema.describe('UI Layer capabilities'),
287287

288-
/** ObjectOS: System Layer Capabilities */
289-
objectos: ObjectOSCapabilitiesSchema.describe('System/Runtime Layer capabilities'),
288+
/** System/Runtime Layer Capabilities (ObjectOS) */
289+
system: ObjectOSCapabilitiesSchema.describe('System/Runtime Layer capabilities'),
290290
});
291291

292292
export type ObjectQLCapabilities = z.infer<typeof ObjectQLCapabilitiesSchema>;

0 commit comments

Comments
 (0)