Skip to content

Commit dbbf263

Browse files
authored
Merge pull request #683 from objectstack-ai/copilot/evaluate-object-designer-optimizations
2 parents 98938bf + a1bd206 commit dbbf263

File tree

5 files changed

+1213
-9
lines changed

5 files changed

+1213
-9
lines changed

ROADMAP.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ObjectStack Protocol — Road Map
22

3-
> **Last Updated:** 2026-02-13
3+
> **Last Updated:** 2026-02-15
44
> **Current Version:** v3.0.2
55
> **Status:** Protocol Specification Complete · Runtime Implementation In Progress
66
@@ -70,13 +70,13 @@ These are the backbone of ObjectStack's enterprise capabilities.
7070
| Packages (total) | 23 |
7171
| Apps | 2 (Studio, Docs) |
7272
| Examples | 4 (Todo, CRM, Host, BI Plugin) |
73-
| Zod Schema Files | 175 |
73+
| Zod Schema Files | 176 |
7474
| Exported Schemas | 1,100+ |
75-
| `.describe()` Annotations | 7,111 |
75+
| `.describe()` Annotations | 7,111+ |
7676
| Service Contracts | 25 |
7777
| Contracts Implemented | 7 (28%) |
78-
| Test Files | 195 |
79-
| Tests Passing | 5,269 / 5,269 |
78+
| Test Files | 197 |
79+
| Tests Passing | 5,363 / 5,363 |
8080
| `@deprecated` Items | 3 |
8181
| Protocol Domains | 15 (Data, UI, AI, API, Automation, Cloud, Contracts, Identity, Integration, Kernel, QA, Security, Shared, Studio, System) |
8282

@@ -309,7 +309,11 @@ These are the backbone of ObjectStack's enterprise capabilities.
309309
310310
### 8.1 Studio IDE
311311

312-
- [ ] Object Designer — visual field editor, relationship mapper
312+
- [x] Object Designer Protocol — field editor, relationship mapper, ER diagram, object manager schemas defined (`studio/object-designer.zod.ts`)
313+
- [ ] Object Designer Runtime — visual field editor with inline editing, drag-reorder, type-aware property panels
314+
- [ ] Relationship Mapper — visual lookup/master-detail/tree creation with drag-to-connect
315+
- [ ] ER Diagram — interactive entity-relationship diagram with force/hierarchy/grid layouts, minimap, zoom, export (PNG/SVG)
316+
- [ ] Object Manager — unified object list with search, filter, card/table/tree views, quick preview, statistics
313317
- [ ] View Builder — drag-and-drop list/form/dashboard designers
314318
- [ ] Flow Builder — visual automation flow editor
315319
- [ ] Security Console — permission matrix, RLS policy editor

apps/studio/ROADMAP.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ObjectStack Studio — Development Roadmap
22

3-
> **Last Updated:** 2026-02-09
3+
> **Last Updated:** 2026-02-15
44
> **Version:** 2.0.0 → 3.0.0
55
> **Goal:** Transform Studio from a metadata inspector into a full-featured visual IDE for the ObjectStack platform.
66
@@ -44,6 +44,8 @@
4444

4545
**Spec defines 100+ metadata types. Studio has specialized viewers for only 1 (Object).** All other types fall back to the generic JSON inspector. The plugin system is ready — it just needs content.
4646

47+
**Object Designer Protocol:** The `ObjectDesignerConfigSchema` (in `@objectstack/spec/studio`) now defines the full specification for the visual object design experience, including field editor, relationship mapper, ER diagram, object manager, and object preview configurations. The runtime implementation should consume these schemas.
48+
4749
---
4850

4951
## 🗺️ Roadmap
@@ -71,8 +73,18 @@
7173
7274
| # | Task | Plugin ID | Priority |
7375
|---|------|-----------|----------|
74-
| 1.1 | **Object Designer — Edit Mode** | `objectstack.object-designer` | 🔴 P0 |
75-
| | Add field creation/editing inline. Support drag-and-drop field reordering. Validate field schemas via Zod. | | |
76+
| 1.0 | **Object Designer Protocol**| `@objectstack/spec` | ✅ Done |
77+
| | Zod schemas for field editor, relationship mapper, ER diagram, object manager, and object preview configs. `ObjectDesignerConfigSchema`, `ERDiagramConfigSchema`, `FieldEditorConfigSchema`, etc. 46 tests passing. | | |
78+
| 1.1 | **Object Designer — Visual Field Editor** | `objectstack.object-designer` | 🔴 P0 |
79+
| | Inline field creation/editing with type-aware property panel (6 sections: basics, constraints, relationship, display, security, advanced). Drag-and-drop field reordering. Field grouping by `field.group`. Batch add/remove operations. Validate field schemas via Zod. Usage statistics (views/formulas referencing each field). Pagination for 50+ field objects. | | |
80+
| 1.1a | **Object Designer — Relationship Mapper** | `objectstack.object-designer` | 🔴 P0 |
81+
| | Visual relationship creation via drag-from-source-to-target. Support lookup, master_detail, and tree relationship types. Show reverse relationships (child → parent). Cascade delete behavior warnings. Configurable line styles and colors per relationship type. | | |
82+
| 1.1b | **Object Designer — ER Diagram** | `objectstack.object-designer` | 🟡 P1 |
83+
| | Interactive entity-relationship diagram with 4 layout algorithms (force-directed, hierarchy, grid, circular). Entity nodes show field list with type badges and required indicators. Minimap for large schemas. Zoom controls (0.1x–3x). Click-to-navigate to object detail. Drag-to-connect for relationship creation. Hover highlighting of connected entities. Export to PNG/SVG/JSON. Auto-fit on initial load. Optional orphan hiding. | | |
84+
| 1.1c | **Object Manager — Unified List** | `objectstack.object-designer` | 🟡 P1 |
85+
| | Object list with table/card/tree display modes. Search across name, label, description. Filter by package, tags, field types, relationships. Sort by name, label, field count, last updated. Quick-preview tooltip with field list on hover. Statistics summary bar (total objects, fields, relationships). Side-by-side object comparison mode. ER diagram toggle from toolbar. | | |
86+
| 1.1d | **Object Preview — Enhanced Tabs** | `objectstack.object-designer` | 🟡 P1 |
87+
| | 8-tab object detail view: Fields, Relationships, Indexes, Validations, Capabilities, Data, API, Code. Configurable tab ordering and enable/disable. Object summary header with namespace, owner package, field count. Breadcrumb navigation. | | |
7688
| 1.2 | **Dataset Editor** | `objectstack.dataset-editor` | 🔴 P0 |
7789
| | Visual seed data editor. Import CSV/JSON. Preview before apply. Environment scoping (dev/test/prod). | | |
7890
| 1.3 | **Datasource Manager** | `objectstack.datasource-manager` | 🟡 P1 |
@@ -336,6 +348,8 @@ export const myPlugin: StudioPlugin = {
336348
| Metric | Current | Phase 2 Target | v3.0 Target |
337349
|--------|---------|----------------|-------------|
338350
| Metadata types with dedicated viewer | 1 / 30+ | 15 / 30+ | 30+ / 30+ |
351+
| Object Designer protocol schemas | 16 schemas |||
352+
| Object Designer protocol tests | 46 tests |||
339353
| Component test coverage | 0% | 50% | 80% |
340354
| Deep-linkable views | 0 | All | All |
341355
| Plugin count (built-in) | 7 | 20 | 35+ |

packages/spec/src/studio/index.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
*
88
* Defines the extension model that allows metadata types to contribute
99
* custom viewers, designers, sidebar groups, actions, and commands.
10+
* Also includes the Object Designer protocol for visual field editing,
11+
* relationship mapping, and ER diagram configuration.
1012
*/
1113

1214
export {
@@ -38,3 +40,44 @@ export {
3840
// Helpers
3941
defineStudioPlugin,
4042
} from './plugin.zod';
43+
44+
export {
45+
// Object Designer Schemas
46+
FieldPropertySectionSchema,
47+
FieldGroupSchema,
48+
FieldEditorConfigSchema,
49+
RelationshipDisplaySchema,
50+
RelationshipMapperConfigSchema,
51+
ERLayoutAlgorithmSchema,
52+
ERNodeDisplaySchema,
53+
ERDiagramConfigSchema,
54+
ObjectListDisplayModeSchema,
55+
ObjectSortFieldSchema,
56+
ObjectFilterSchema,
57+
ObjectManagerConfigSchema,
58+
ObjectPreviewTabSchema,
59+
ObjectPreviewConfigSchema,
60+
ObjectDesignerDefaultViewSchema,
61+
ObjectDesignerConfigSchema,
62+
63+
// Object Designer Types
64+
type FieldPropertySection,
65+
type FieldGroup,
66+
type FieldEditorConfig,
67+
type RelationshipDisplay,
68+
type RelationshipMapperConfig,
69+
type ERLayoutAlgorithm,
70+
type ERNodeDisplay,
71+
type ERDiagramConfig,
72+
type ObjectListDisplayMode,
73+
type ObjectSortField,
74+
type ObjectFilter,
75+
type ObjectManagerConfig,
76+
type ObjectPreviewTab,
77+
type ObjectPreviewConfig,
78+
type ObjectDesignerDefaultView,
79+
type ObjectDesignerConfig,
80+
81+
// Object Designer Helpers
82+
defineObjectDesignerConfig,
83+
} from './object-designer.zod';

0 commit comments

Comments
 (0)