Skip to content

Commit ce3feac

Browse files
initial commit
0 parents  commit ce3feac

Some content is hidden

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

41 files changed

+106307
-0
lines changed

.gitignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Node modules
2+
node_modules/
3+
4+
# Compiled output
5+
out/
6+
7+
# TypeScript cache
8+
*.tsbuildinfo
9+
10+
# VSCode settings
11+
.vscode/
12+
13+
# Extension packaging output
14+
*.vsix
15+
16+
# Temporary files
17+
*.log
18+
*.tmp
19+
20+
# Webview temp files (if any)
21+
webview/libs/*.map
22+
23+
directives.graphql

.vscodeignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
node_modules/**
2+
out/**
3+
!out/extension.js
4+
src/**
5+
*.ts
6+
tsconfig.json
7+
.vscode/**

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 IBM Corp.
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

enhancements.md

Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,257 @@
1+
# StepZen Tools Enhancement Roadmap
2+
3+
## ✅ Completed Enhancements
4+
5+
### ✅ TypeScript Type Safety
6+
- ✅ Improved type safety throughout the codebase
7+
- ✅ Replaced most `any` types with specific interfaces
8+
- ✅ Proper use of TypeScript interfaces for structured data
9+
10+
### TypeScript Type Improvements
11+
- Refine interfaces in `stepzenProjectScanner.ts` to remove `as any` assertions:
12+
- Update `FieldInfo` interface to include the `isDeprecated` property that's being used in `generateOperations.ts`
13+
- Standardize the structure of `fieldIndex` across the codebase to ensure consistent access patterns
14+
- Add proper type annotations for data structures returned by utility functions
15+
- Consider implementing a distinct interface for field data as consumed by operation generators
16+
17+
### ✅ Error Handling and Diagnostics
18+
- ✅ Implement a consistent error handling strategy across all commands
19+
- ✅ Add more detailed error reporting in the output channel for debugging
20+
- ✅ Centralized error utilities with StepZenError class
21+
- ✅ Consistent error formatting and logging
22+
23+
### ✅ Project Initialization
24+
- ✅ Implement a "StepZen: Initialize Project" command that creates a new stepzen.config.json file
25+
- ✅ Add directory selection dialog for new project location
26+
- ✅ Implement validation for existing projects and prompt for decision (overwrite/create new directory)
27+
- ✅ Add endpoint name specification with validation and suggestions
28+
- ✅ Create default config templates with best practices
29+
30+
## Core Functionality Improvements
31+
- Provide directive-specific validation errors and suggestions
32+
- Add schema-level validation reporting for GraphQL schemas
33+
34+
### Schema Explorer Enhancements
35+
- Link codelens to the schema definition
36+
- Add "Go to Schema" buttons for fields and types in results
37+
- Improve navigation and overall UI/UX of the schema visualizer
38+
- Add search functionality within the visualizer
39+
- Highlight types and fields with directives differently
40+
- Add directive details on hover or in a dedicated panel
41+
42+
### Schema Visualizer Improvements
43+
- Add "Compare to Deployed Schema" feature showing differences between local and deployed schemas
44+
- Implement filtering system for types/fields with specific directives
45+
- Add visual indicators for types that use directives like @mock, @connector, @rest, etc.
46+
- Create a collapsible tree view of schema relationships
47+
48+
### Code Organization
49+
- Consider using a class-based approach for the main extension functionality
50+
- Move shared utilities into dedicated files to reduce duplication
51+
- Organize code by feature area (deployment, directives, visualizer, etc.)
52+
53+
### Configuration Options
54+
- Expose more settings to users (e.g., timeout values, default behaviors)
55+
- Add a dedicated settings section in package.json
56+
- Allow configuring different environments (dev, staging, prod)
57+
58+
## Directive Support Enhancements
59+
60+
### Directive Management and Insertion
61+
- Enhance the existing "Add Materializer" command with more intelligent recommendations
62+
- Add commands for inserting other common StepZen directives (@value, @sdl, @sequence, etc.)
63+
- Create a directive management UI to view and edit directives across the schema
64+
- Implement validation for directive arguments based on directive type
65+
- Add context-aware directive suggestions based on schema position
66+
- Create templates with completion suggestions for directive arguments
67+
68+
### Directive Visualization
69+
- Create a "Directive Explorer" view showing all directives in the project
70+
- Add directive-specific highlighting in the editor
71+
- Implement quick navigation between related directives
72+
- Add validation and quick-fixes for directive arguments
73+
74+
### @sdl Directive Support
75+
- Add support for creating and managing SDL files referenced by @sdl directives
76+
- Implement tools to manage executable documents from @sdl(executables:) argument
77+
- Add validation of @sdl visibility patterns
78+
- Create management UI for @sdl-based schema composition
79+
80+
### @mock and @mockfn Support
81+
- Create commands to add @mock and @mockfn directives to types and fields
82+
- Generate mock data preview based on @mock directives in the schema
83+
- Add intellisense for available mock functions in @mockfn directive
84+
- Implement a mock data testing UI to preview mock data without deploying
85+
86+
### @dbquery Support
87+
- Add templates for common database queries and tables
88+
- Implement SQL validation for @dbquery query arguments
89+
- Create a database schema visualization that maps to GraphQL types
90+
- Add code generation for filter input types based on database schema
91+
92+
### @rest Support
93+
- Add support for managing connector configurations
94+
- Create templates for common REST API patterns
95+
- Implement validation for connector configurations
96+
- Add testing UI for REST endpoints without deployment
97+
98+
## Executable Documents Integration
99+
100+
### Schema Testing Features
101+
- Add detection of deprecated field usage in operations
102+
- Implement validation checks beyond standard GraphQL validation
103+
- Generate comprehensive test suites from schema structure
104+
- Track which executable documents have been run and their results
105+
- Compare results between runs for regression testing
106+
- Validate executable documents against the current schema
107+
- Add performance metrics for executable document runs
108+
109+
### Executable Document Management
110+
- Create feature to auto-generate executable documents for root fields
111+
- Build a UI for managing executable documents as "unit tests" for schema
112+
- Provide tooling to update executable documents when schema changes
113+
- Store and manage variables specifically for executable documents
114+
- Allow saving different variable sets for different environments (dev/staging/prod)
115+
- Add batch testing of multiple executable documents
116+
117+
## Results Panel Enhancements
118+
119+
### Data Visualization
120+
- Add search functionality within large result sets
121+
- Add visualization options for certain result types
122+
- Replace grouped view with OTEL viewer
123+
- Add filtering options for response data
124+
- Implement exportable test reports from result data
125+
126+
### Performance Metrics
127+
- Add detailed timing information for requests
128+
- Visualize performance metrics over time
129+
- Compare performance between different queries
130+
- Add bottleneck identification for complex queries
131+
132+
## Security Features
133+
134+
### Field Policies Management
135+
- Create a visual editor for StepZen Field Policies
136+
- Provide a policy testing tool with simulated JWT tokens
137+
- Implement policy validation against schema structure
138+
- Add security analyzer to identify sensitive fields needing protection
139+
- Include templates for common security patterns (admin-only, public, etc.)
140+
141+
### JWT Integration and Testing
142+
- Provide JWT token visualization and debugging
143+
- Create test environment for policy evaluation with different JWT claims
144+
- Add policy effectiveness reporting
145+
- Implement automation for policy deployment across environments
146+
147+
## Multi-Environment Support
148+
149+
### Environment Management
150+
- Add profiles for different environments (dev, staging, prod)
151+
- Allow switching between different StepZen endpoints
152+
- Create environment-specific variable sets
153+
- Add deployment workflows for different environments
154+
155+
### Collaborative Features
156+
- Share queries with team members
157+
- Export/import operation collections
158+
- Share executable document test suites with team
159+
160+
## Documentation and Productivity
161+
162+
### Documentation Generator
163+
- Create a feature to generate documentation from your GraphQL schema
164+
- Export as Markdown or HTML
165+
- Generate visualizations of schema relationships for documentation
166+
- Add directive documentation to schema documentation
167+
168+
### GraphQL Snippets
169+
- Add code snippets for common GraphQL patterns
170+
- Create template operations for the current schema
171+
- Add snippets for common directive patterns
172+
- Generate starter queries based on schema analysis
173+
174+
## Project Setup and Import
175+
176+
### Schema Import Features
177+
- Create UI for "StepZen: Import Schema" with source type selection
178+
- Implement specialized import forms for each data source type:
179+
- REST API import with curl-style configuration
180+
- GraphQL subgraph import with endpoint and header configuration
181+
- Database schema import (MySQL, PostgreSQL, Snowflake, DB2, Oracle)
182+
- StepZen flow expressions import
183+
- Add argument validation specific to each import source type
184+
- Provide visual feedback during import operations
185+
- Support for storing and managing import credentials securely
186+
- Implement template selection for common import patterns
187+
- Add preview feature to show expected schema result before finalizing import
188+
189+
### Import Result Management
190+
- Add post-import schema validation and error reporting
191+
- Create schema diff view to compare before/after import changes
192+
- Implement undo/rollback functionality for imports
193+
- Add import history tracking for project
194+
- Provide suggestions for next steps after successful import
195+
196+
## Architecture and Infrastructure
197+
198+
### Command Pattern Implementation
199+
- Consider implementing a command pattern for better testability
200+
- This would make unit testing much easier
201+
202+
### Extension API
203+
- Create a proper API for other extensions to leverage your functionality
204+
- This could enable ecosystem growth around your extension
205+
206+
### Testing Infrastructure
207+
- Add unit tests for core functionality
208+
- Implement integration tests for the extension
209+
210+
### Telemetry
211+
- Add optional telemetry to track feature usage
212+
- This could help prioritize future development
213+
214+
### Modular Architecture
215+
- Separate core StepZen functionality from VS Code integration
216+
- This could enable building other tools on the same core
217+
218+
## Prioritized Next Steps Recommendation
219+
220+
Based on the analysis of the current codebase and StepZen directives, these improvements would be most beneficial:
221+
222+
1. **Project Setup and Import**
223+
- Implement "StepZen: Initialize Project" command to streamline project creation
224+
- Create UI-based import flows for all supported data sources
225+
- Build validation and template systems for import operations
226+
227+
2. **Comprehensive Directive Support**
228+
- Implement support for all StepZen directives
229+
- Add directive-specific validation and suggestions
230+
- Create a directive explorer/management UI
231+
232+
3. **Schema Testing with Executable Documents**
233+
- Leverage the "executables" argument in SDL directives
234+
- Create tools to generate test operations for all root-level entries
235+
- Implement checks for deprecated field usage in operations
236+
237+
4. **Schema Visualizer Improvements**
238+
- Enhance navigation and visual design of the schema visualizer
239+
- Add directive-based highlighting and filtering
240+
- Implement "Compare to Deployed Schema" functionality
241+
242+
5. **Field Policy Management**
243+
- Create visual editor for configuring field policies
244+
- Add policy testing with JWT simulation
245+
- Implement security analysis for sensitive fields
246+
247+
6. **Database Integration Tools**
248+
- Add support for @dbquery directive
249+
- Create database schema to GraphQL type mapping tools
250+
- Implement query builders for common database operations
251+
252+
7. **Mock Data Generation**
253+
- Implement @mock and @mockfn directive support
254+
- Create a mock data preview feature
255+
- Build testing tools that use mock data
256+
257+
These focused improvements would enhance the developer experience while promoting schema stability through better testing and visualization capabilities, along with improved directive management. The new project setup features will make it significantly easier for developers to get started with StepZen projects directly from VS Code.

0 commit comments

Comments
 (0)