Files
ResolveSpec/todo.md
T
warkanum f259df1258 feat(spectypes): add support for PostGIS and pgvector types
* 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
2026-08-29 21:27:42 +02:00

4.0 KiB

ResolveSpec - TODO List

This document tracks incomplete features and improvements for the ResolveSpec project.

In Progress

Database Layer

  • SQLite schema translation (schema.table → schema_table)
  • Driver name normalization across adapters
  • Database Connection Manager (dbmanager) package

Documentation

  • Add dbmanager to README
  • Add WebSocketSpec to top-level intro
  • Add MQTTSpec to top-level intro
  • 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)

    • 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)

    • 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 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)

    • Custom types: SqlGeometry/SqlGeography (GeoJSON I/O), SqlHalfVector, SqlSparseVector, SqlBitVector
    • Spatial filter operators (st_dwithin, st_intersects, bbox, …) in resolvespec + restheadspec
    • Vector similarity filter operators (l2_within, cosine_within, ip_within)
    • KNN structured option (options.vector_search / X-Vector-Search-* headers)
    • Metadata + OpenAPI report geometry/vector column types
    • Integration tests against a PostGIS + pgvector database (needs test DB with extensions)
  4. 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)