Skip to content

Latest commit

 

History

History
99 lines (75 loc) · 3.93 KB

File metadata and controls

99 lines (75 loc) · 3.93 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Released sections are generated by semantic-release from Conventional Commit messages on main (see .releaserc.json), so they do not need to be written by hand. Anything merged but not yet released belongs under Unreleased; copy the template at the bottom of this file when starting a new section.

Added

  • In-memory TTL cache for the deterministic IoT readings. Entries are keyed solar:<projectId>:<hourSeed> and satellite:<projectId>:<hourSeed> and expire at the next hour boundary, so repeated reads within an hour no longer recompute the simulation. Disable with IOT_CACHE_DISABLED=true; cap retained entries with IOT_CACHE_MAX_SIZE (default 1000, oldest evicted first) (#221)
  • Upper bound on the :id project parameter. IDs outside 1..MAX_PROJECT_ID (default 1000000) are rejected with a 400, alongside the existing rejection of floats, signed and non-numeric values (#223)
  • bun run dev:no-watch, which keeps the previous non-watching development server (#222)
  • Changelog conventions and a copyable entry template, linked from the README (#224)

Changed

  • bun run dev now runs under node --watch, so the server restarts on save (#222)
  • src/routes/iot.ts re-exports the simulation from src/lib/iot.ts instead of keeping a second copy of it, so the HTTP routes and the hourly cron read through one implementation and therefore one cache (#221)

1.0.0 - 2026-07-29

Initial version.

Added

  • Health check endpoint with uptime and last cron run status
  • IoT simulation endpoints for solar panel and satellite readings
  • Soroban ProjectRegistry contract integration for impact score updates
  • Admin endpoint for batch score updates with Bearer token authentication
  • Hourly cron job for automatic on-chain score updates
  • GraphQL API layer via graphql-http
  • gRPC service layer with proto definitions
  • Rate limiting for public and admin endpoints
  • Swagger/OpenAPI documentation via swagger-ui-express
  • Load testing suite with k6 (smoke, average, stress, spike, GraphQL scenarios)
  • Jest test suite with ts-jest and Supertest
  • ESLint + Prettier code quality tooling
  • Husky pre-commit hooks with lint-staged
  • CI pipeline with GitHub Actions (build + test)
  • CORS configuration for frontend integration
  • WebSocket support with token-based authentication
  • Input sanitization and security headers

Changed

  • Upgraded to Express 5
  • Migrated to TypeScript strict mode

Security

  • Bearer token authentication for admin endpoints
  • Rate limiting to prevent abuse
  • Security policy documentation

Template

Copy this into a new ## [Unreleased] section and drop the categories that do not apply. Keep them in this order, and write entries for the person upgrading — what changed and what they need to do about it, rather than which files moved. Link the issue or PR at the end of each entry.

## [Unreleased]

### Added         <!-- new features -->
### Changed       <!-- changes in existing behaviour -->
### Deprecated    <!-- soon-to-be-removed features -->
### Removed       <!-- features removed in this release -->
### Fixed         <!-- bug fixes -->
### Security      <!-- vulnerabilities addressed -->