You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ARCHITECTURE.md
+4-37Lines changed: 4 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ ObjectOS is a **metadata-driven runtime engine** that transforms declarative YAM
6
6
7
7
## Protocol Foundation: @objectstack/spec
8
8
9
-
ObjectOS is built on the **[@objectstack/spec](https://www.npmjs.com/package/@objectstack/spec)** protocol, which defines the "DNA" of the ObjectStack ecosystem. The spec provides:
9
+
ObjectOS is built on the **[@objectstack/spec](https://github.com/objectstack-ai/spec)** protocol, which defines the "DNA" of the ObjectStack ecosystem. The spec provides:
10
10
11
11
### 1. **Strict Type Definitions**
12
12
-**Zod Schemas**: Runtime validation for configuration and data
@@ -36,7 +36,7 @@ All ObjectOS plugins must conform to this lifecycle for consistency and predicta
-**Purpose**: Defines the protocol and type contracts
41
41
-**Key Exports**:
42
42
-`Data.*` - Object schemas, field types, queries
@@ -60,7 +60,6 @@ All ObjectOS plugins must conform to this lifecycle for consistency and predicta
60
60
-**Key Packages**:
61
61
-`@objectos/kernel` - Core execution engine
62
62
-`@objectos/server` - HTTP API layer
63
-
-`@objectos/ui` - React UI components
64
63
65
64
## Core Architectural Principle
66
65
@@ -302,41 +301,9 @@ export class ObjectDataController {
302
301
| DELETE | `/api/data/:object/:id` | Delete record |
303
302
| GET | `/api/metadata/:object` | Get object metadata |
304
303
305
-
## Layer 5: UI Layer (@objectos/ui)
304
+
## Layer 5: UI Layer
306
305
307
-
### Component Architecture
308
-
309
-
The UI layer provides **metadata-driven React components**:
310
-
311
-
```typescript
312
-
// Automatically generates a data grid from metadata
313
-
<ObjectGrid
314
-
objectName="contacts"
315
-
kernel={kernel}
316
-
/>
317
-
318
-
// Automatically generates a form from metadata
319
-
<ObjectForm
320
-
objectName="contacts"
321
-
recordId={id}
322
-
kernel={kernel}
323
-
/>
324
-
```
325
-
326
-
### Key Components
327
-
328
-
1. **ObjectGrid**: Airtable-like data grid with inline editing
329
-
2. **ObjectForm**: Salesforce-like detail form with sections
330
-
3. **ObjectChart**: Chart component for analytics
331
-
4. **FilterBuilder**: Visual query builder
332
-
333
-
### Design System
334
-
335
-
- **Framework**: React 18+ with TypeScript
336
-
- **Styling**: Tailwind CSS
337
-
- **Components**: Shadcn/ui
338
-
- **State**: React Query for server state
339
-
- **Grid**: TanStack Table
306
+
**Note**: The UI layer has been moved to a separate project and is no longer part of this monorepo. The UI components are developed independently and can be integrated with ObjectOS through the API layer.
**Note**: The UI components have been moved to a separate project and are no longer part of this monorepo. They are developed independently and can be integrated with ObjectOS through the API layer.
@@ -304,22 +303,9 @@ curl -X POST http://localhost:3000/api/data/contacts \
304
303
}'
305
304
```
306
305
307
-
## Using the UI Components
306
+
## Using UI Components
308
307
309
-
ObjectOS provides React components that automatically render based on metadata:
310
-
311
-
```tsx
312
-
import { ObjectGrid, ObjectForm } from '@objectos/ui';
313
-
314
-
function ContactsPage() {
315
-
return (
316
-
<div>
317
-
<h1>Contacts</h1>
318
-
{/* Automatically generates a data grid */}
319
-
<ObjectGrid objectName="contacts" />
320
-
</div>
321
-
);
322
-
}
308
+
> **Note**: The UI components have been moved to a separate project and are no longer part of this monorepo. They can be integrated with ObjectOS through the HTTP API layer (`@objectos/server`) which provides REST endpoints for metadata and data access.
Copy file name to clipboardExpand all lines: apps/site/content/docs/guide/logic-actions.mdx
+13-9Lines changed: 13 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -466,20 +466,24 @@ const result = await kernel.executeAction('contacts.sendEmail', {
466
466
467
467
### From UI
468
468
469
-
```typescript
470
-
import { useAction } from'@objectos/ui';
469
+
> **Note**: The UI components have been moved to a separate project. The example below shows the conceptual pattern for invoking actions from a UI application.
471
470
471
+
```typescript
472
+
// Example pattern for UI integration
472
473
function ContactDetail({ contactId }) {
473
-
const sendEmail =useAction('contacts.sendEmail');
474
-
475
474
const handleSendEmail =async () => {
476
-
const result =awaitsendEmail({
477
-
id: contactId,
478
-
subject: 'Follow up',
479
-
body: 'Thank you for your interest'
475
+
const result =awaitfetch('/api/actions/contacts.sendEmail', {
0 commit comments