mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2026-08-30 21:12:35 +00:00
* Implement custom types: SqlGeometry, SqlGeography, SqlHalfVector, SqlSparseVector, SqlBitVector * Add spatial filter operators and vector similarity operators * Include metadata and OpenAPI reporting for geometry/vector column types * Create tests for EWKB and WKT conversions
109 lines
4.0 KiB
Markdown
109 lines
4.0 KiB
Markdown
# ResolveSpec - TODO List
|
|
|
|
This document tracks incomplete features and improvements for the ResolveSpec project.
|
|
|
|
## In Progress
|
|
|
|
### Database Layer
|
|
|
|
- [x] SQLite schema translation (schema.table → schema_table)
|
|
- [x] Driver name normalization across adapters
|
|
- [x] Database Connection Manager (dbmanager) package
|
|
|
|
### Documentation
|
|
|
|
- [x] Add dbmanager to README
|
|
- [x] Add WebSocketSpec to top-level intro
|
|
- [x] Add MQTTSpec to top-level intro
|
|
- [x] Remove migration sections from README
|
|
- [ ] Complete API reference documentation
|
|
- [ ] Add examples for all supported databases
|
|
|
|
## Planned Features
|
|
|
|
### ResolveSpec JS Client Implementation & Testing
|
|
|
|
1. **ResolveSpec Client API (resolvespec-js)**
|
|
- [x] Core API implementation (read, create, update, delete, getMetadata)
|
|
- [ ] Unit tests for API functions
|
|
- [ ] Integration tests with server
|
|
- [ ] Error handling and edge cases
|
|
|
|
2. **HeaderSpec Client API (resolvespec-js)**
|
|
- [ ] Client API implementation
|
|
- [ ] Unit tests
|
|
- [ ] Integration tests with server
|
|
|
|
3. **FunctionSpec Client API (resolvespec-js)**
|
|
- [ ] Client API implementation
|
|
- [ ] Unit tests
|
|
- [ ] Integration tests with server
|
|
|
|
4. **WebSocketSpec Client API (resolvespec-js)**
|
|
- [x] WebSocketClient class implementation (read, create, update, delete, meta, subscribe, unsubscribe)
|
|
- [ ] Unit tests for WebSocketClient
|
|
- [ ] Connection handling tests
|
|
- [ ] Subscription tests
|
|
- [ ] Integration tests with server
|
|
|
|
5. **resolvespec-js Testing Infrastructure**
|
|
- [ ] Set up test framework (Jest or Vitest)
|
|
- [ ] Configure test coverage reporting
|
|
- [ ] Add test utilities and mocks
|
|
- [ ] Create test documentation
|
|
|
|
### ResolveSpec Python Client Implementation & Testing
|
|
|
|
See [`resolvespec-python/todo.md`](./resolvespec-python/todo.md) for detailed Python client implementation tasks.
|
|
|
|
### Core Functionality
|
|
|
|
1. **Enhanced Preload Filtering**
|
|
- [ ] Column selection for nested preloads
|
|
- [ ] Advanced filtering conditions for relations
|
|
- [ ] Performance optimization for deep nesting
|
|
|
|
2. **Advanced Query Features**
|
|
- [ ] Custom SQL join support
|
|
- [ ] Computed column improvements
|
|
- [ ] Recursive query support
|
|
|
|
3. **PostGIS & pgvector (PostgreSQL)**
|
|
- [x] Custom types: `SqlGeometry`/`SqlGeography` (GeoJSON I/O), `SqlHalfVector`, `SqlSparseVector`, `SqlBitVector`
|
|
- [x] Spatial filter operators (`st_dwithin`, `st_intersects`, `bbox`, …) in resolvespec + restheadspec
|
|
- [x] Vector similarity filter operators (`l2_within`, `cosine_within`, `ip_within`)
|
|
- [x] KNN structured option (`options.vector_search` / `X-Vector-Search-*` headers)
|
|
- [x] Metadata + OpenAPI report geometry/vector column types
|
|
- [ ] Integration tests against a PostGIS + pgvector database (needs test DB with extensions)
|
|
|
|
3. **Testing & Quality**
|
|
- [ ] Increase test coverage to 70%+
|
|
- [ ] Add integration tests for all ORMs
|
|
- [ ] Add concurrency tests for thread safety
|
|
- [ ] Performance benchmarks
|
|
|
|
### Infrastructure
|
|
|
|
- [ ] Improved error handling and reporting
|
|
- [ ] Enhanced logging capabilities
|
|
- [ ] Additional monitoring metrics
|
|
- [ ] Performance profiling tools
|
|
|
|
## Documentation Tasks
|
|
|
|
- [ ] Complete API reference
|
|
- [ ] Add troubleshooting guides
|
|
- [ ] Create architecture diagrams
|
|
- [ ] Expand database adapter documentation
|
|
|
|
## Known Issues
|
|
|
|
- [ ] Long preload alias names may exceed PostgreSQL identifier limit
|
|
- [ ] Some edge cases in computed column handling
|
|
- [ ] `GormResult.LastInsertId()` (`pkg/common/adapters/database/gorm.go:936`) always returns `0, nil` — GORM does not expose last insert ID via `sql.Result` for most dialects. Auto-generated IDs from GORM inserts are not propagated back through `LastInsertId`, which breaks the ID-retrieval path in `recursive_crud.go`. Fix: read the ID back from the model struct after `Create()` using reflection, or use GORM's `Statement.LastInsertId`.
|
|
|
|
---
|
|
|
|
**Last Updated:** 2026-08-29
|
|
**Updated:** Added PostGIS + pgvector support (types, filter operators, KNN, metadata/OpenAPI)
|