Skip to content

Commit e2561bb

Browse files
committed
chore: update version to 0.4.0 in package.json and enhance changelog with new features and fixes
1 parent 43b14d7 commit e2561bb

17 files changed

Lines changed: 136 additions & 101 deletions

CHANGELOG.md

Lines changed: 48 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
---
11+
12+
## [0.4.0] - 2025-09-14
13+
1014
### Added
1115

12-
- JSDoc docblocks and inline comments for the migrations CLI (`src/cli/index.ts`) to improve developer understanding of flags, commands, and edge cases. This change is documentation-only and does not modify runtime behavior.
16+
#### **Node-based CLI System**
17+
18+
- **Migration CLI** - Complete Node.js-based CLI for database migrations with comprehensive command support
19+
- **CLI Integration Tests** - Full test coverage for CLI commands and migration workflows
20+
- **Developer-friendly CLI** - Enhanced CLI with better error handling and user feedback
21+
22+
#### **Heroku Deployment Support**
23+
24+
- **Heroku Configuration** - Complete Heroku deployment support with environment variables and scripts
25+
- **Database Connection Utilities** - Enhanced database connection handling for cloud environments
26+
- **Production Optimizations** - Database configuration and logging setup optimized for production
1327

14-
### Quality
28+
#### **Authentication System Enhancements**
1529

16-
- Verified TypeScript typecheck, ESLint linting, and Prettier formatting after the documentation updates (`npm run check`).
30+
- **JWT Authentication** - Enhanced JWT-based authentication for analytics and database management routes
31+
- **Authentication Migration** - Updated authentication mechanism from API key to JWT for specific routes
32+
- **CORS Configuration** - Enhanced CORS configuration with updated allowed origins for development
33+
34+
#### **Development Experience Improvements**
35+
36+
- **JSON Error Handling** - Enhanced JSON parsing and error handling for invalid JSON requests
37+
- **Repository Guidelines** - Added comprehensive repository guidelines document
38+
- **Environment Variable Testing** - Comprehensive tests for environment variable validation and error handling
39+
- **Error Handling Tests** - Extensive error handling tests across config, analytics, database, AI service, and logger utilities
40+
41+
### Fixed
42+
43+
- **Database Integration Tests** - Resolved database integration test failures
44+
- **Password Field Consistency** - Updated password field handling in database queries and integration tests
45+
- **README Corrections** - Fixed repository links to point to correct API repository
46+
- **CI Workflow** - Updated CI workflow for unit tests and corrected performance test commands
47+
- **Dependency Management** - Fixed prepare script to handle missing husky installation and restored uuid dependency
48+
- **Release Commands** - Updated release command to run migration status instead of build
49+
- **SQL Query Optimization** - Updated SQL query in AnalyticsController to remove DISTINCT and group by query_text
1750

1851
### Changed
1952

20-
- README: corrected repository path (`cd core`), prefer `npm ci`, and updated required npm version to 10+
21-
- README: standardized migration CLI usage to `./bin/altus` (deprecated `./bin/migrate` references removed)
22-
- README: fixed health checks section (removed non-existent `/health/db` and `/health/redis` endpoints; pointed to `/health`)
23-
- README: adjusted Docker notes to clarify no app Dockerfile is present; recommend `npm run dev:start|stop|reset` for local MySQL/Redis
24-
- README: updated link to CLI docs (`docs/cli.md`)
25-
- README: updated health response example version to `0.3.0`
26-
- Package metadata: set `license` to `Apache-2.0` to match LICENSE file
27-
- README: corrected authentication columns for `/api/v1/keys/*` and `/api/v1/databases/*` (require JWT for management endpoints)
53+
#### **Code Quality & Refactoring**
54+
55+
- **Response Status Codes** - Refactored response status codes to use centralized constants
56+
- **Logging Improvements** - Updated logging messages and improved readability across scripts
57+
- **Connection Status Updates** - Enhanced connection status handling and fallback search logging
58+
- **Migration Scripts** - Added migration scripts to adjust API keys key_prefix column length
2859

29-
### Housekeeping
60+
#### **Documentation & Metadata**
3061

31-
- Relabeled the later `0.3.0` entry as `0.3.1` to resolve duplication.
62+
- **Version Updates** - Updated version number to 0.3.0 in middleware and routes
63+
- **Project Title** - Updated project title in README to include API reference
64+
- **CODEOWNERS** - Updated CODEOWNERS to assign ownership to @Thavarshan
65+
- **License** - Changed license to Apache-2.0 in package.json to match LICENSE file
66+
- **Documentation Exclusions** - Added 'docs/' to .gitignore to exclude documentation build outputs
3267

3368
---
3469

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ Expected response:
430430
{
431431
"status": "healthy",
432432
"timestamp": "2024-01-15T10:30:00.000Z",
433-
"version": "0.3.0",
433+
"version": "0.4.0",
434434
"uptime": 1234.567
435435
}
436436
```

bin/test/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ The script includes security-focused tests:
353353

354354
The script is designed to work with:
355355

356-
- **Altus 4 v0.3.0+** - Current version support
356+
- **Altus 4 v0.4.0+** - Current version support
357357
- **OpenAPI 3.0.3** - Specification format
358358
- **Node.js 20+** - Runtime compatibility
359359
- **MySQL 8.0+** - Database compatibility

openapi/altus4.openapi.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
openapi: 3.0.3
22
info:
33
title: Altus4 Core API
4-
version: 0.3.0
4+
version: 0.4.0
55
description: |
66
Complete API specification for Altus4 - AI-Enhanced MySQL Full-Text Search Engine.
77
@@ -475,7 +475,7 @@ paths:
475475
format: date-time
476476
version:
477477
type: string
478-
example: '0.3.0'
478+
example: '0.4.0'
479479
uptime:
480480
type: number
481481

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@altus4/core",
3-
"version": "0.3.0",
3+
"version": "0.4.0",
44
"description": "AI-Enhanced MySQL Full-Text Search Engine",
55
"main": "dist/src/index.js",
66
"bin": {

src/controllers/ApiKeyController.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ describe('ApiKeyController', () => {
149149
meta: {
150150
timestamp: expect.any(Date),
151151
requestId: 'unknown',
152-
version: '0.3.0',
152+
version: '0.4.0',
153153
},
154154
});
155155
});
@@ -263,7 +263,7 @@ describe('ApiKeyController', () => {
263263
meta: {
264264
timestamp: expect.any(Date),
265265
requestId: 'unknown',
266-
version: '0.3.0',
266+
version: '0.4.0',
267267
},
268268
});
269269
});
@@ -357,7 +357,7 @@ describe('ApiKeyController', () => {
357357
meta: {
358358
timestamp: expect.any(Date),
359359
requestId: 'unknown',
360-
version: '0.3.0',
360+
version: '0.4.0',
361361
},
362362
});
363363
});
@@ -456,7 +456,7 @@ describe('ApiKeyController', () => {
456456
meta: {
457457
timestamp: expect.any(Date),
458458
requestId: 'unknown',
459-
version: '0.3.0',
459+
version: '0.4.0',
460460
},
461461
});
462462
});
@@ -584,7 +584,7 @@ describe('ApiKeyController', () => {
584584
meta: {
585585
timestamp: expect.any(Date),
586586
requestId: 'unknown',
587-
version: '0.3.0',
587+
version: '0.4.0',
588588
},
589589
});
590590
});
@@ -674,7 +674,7 @@ describe('ApiKeyController', () => {
674674
meta: {
675675
timestamp: expect.any(Date),
676676
requestId: 'unknown',
677-
version: '0.3.0',
677+
version: '0.4.0',
678678
},
679679
});
680680
});

src/middleware/errorHandler.test.ts

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ describe('Error Handler Middleware', () => {
115115
meta: {
116116
timestamp: expect.any(Date),
117117
requestId: 'test-request-id',
118-
version: '0.3.0',
118+
version: '0.4.0',
119119
},
120120
});
121121
});
@@ -137,7 +137,7 @@ describe('Error Handler Middleware', () => {
137137
meta: {
138138
timestamp: expect.any(Date),
139139
requestId: 'test-request-id',
140-
version: '0.3.0',
140+
version: '0.4.0',
141141
},
142142
});
143143
});
@@ -162,7 +162,7 @@ describe('Error Handler Middleware', () => {
162162
meta: {
163163
timestamp: expect.any(Date),
164164
requestId: 'test-request-id',
165-
version: '0.3.0',
165+
version: '0.4.0',
166166
},
167167
});
168168
});
@@ -187,7 +187,7 @@ describe('Error Handler Middleware', () => {
187187
meta: {
188188
timestamp: expect.any(Date),
189189
requestId: 'test-request-id',
190-
version: '0.3.0',
190+
version: '0.4.0',
191191
},
192192
});
193193
});
@@ -212,7 +212,7 @@ describe('Error Handler Middleware', () => {
212212
meta: {
213213
timestamp: expect.any(Date),
214214
requestId: 'test-request-id',
215-
version: '0.3.0',
215+
version: '0.4.0',
216216
},
217217
});
218218
});
@@ -235,7 +235,7 @@ describe('Error Handler Middleware', () => {
235235
meta: {
236236
timestamp: expect.any(Date),
237237
requestId: 'test-request-id',
238-
version: '0.3.0',
238+
version: '0.4.0',
239239
},
240240
});
241241
});
@@ -259,7 +259,7 @@ describe('Error Handler Middleware', () => {
259259
meta: {
260260
timestamp: expect.any(Date),
261261
requestId: 'test-request-id',
262-
version: '0.3.0',
262+
version: '0.4.0',
263263
},
264264
});
265265
});
@@ -281,7 +281,7 @@ describe('Error Handler Middleware', () => {
281281
meta: {
282282
timestamp: expect.any(Date),
283283
requestId: 'test-request-id',
284-
version: '0.3.0',
284+
version: '0.4.0',
285285
},
286286
});
287287
});
@@ -305,7 +305,7 @@ describe('Error Handler Middleware', () => {
305305
meta: {
306306
timestamp: expect.any(Date),
307307
requestId: 'test-request-id',
308-
version: '0.3.0',
308+
version: '0.4.0',
309309
},
310310
});
311311
});
@@ -327,7 +327,7 @@ describe('Error Handler Middleware', () => {
327327
meta: {
328328
timestamp: expect.any(Date),
329329
requestId: 'test-request-id',
330-
version: '0.3.0',
330+
version: '0.4.0',
331331
},
332332
});
333333
});
@@ -356,7 +356,7 @@ describe('Error Handler Middleware', () => {
356356
meta: {
357357
timestamp: expect.any(Date),
358358
requestId: 'test-request-id',
359-
version: '0.3.0',
359+
version: '0.4.0',
360360
},
361361
});
362362
});
@@ -380,7 +380,7 @@ describe('Error Handler Middleware', () => {
380380
meta: {
381381
timestamp: expect.any(Date),
382382
requestId: 'test-request-id',
383-
version: '0.3.0',
383+
version: '0.4.0',
384384
},
385385
});
386386
});
@@ -459,7 +459,7 @@ describe('Error Handler Middleware', () => {
459459
meta: {
460460
timestamp: expect.any(Date),
461461
requestId: 'test-request-id',
462-
version: '0.3.0',
462+
version: '0.4.0',
463463
},
464464
});
465465
});
@@ -476,7 +476,7 @@ describe('Error Handler Middleware', () => {
476476
meta: {
477477
timestamp: expect.any(Date),
478478
requestId: 'unknown',
479-
version: '0.3.0',
479+
version: '0.4.0',
480480
},
481481
});
482482
});
@@ -514,7 +514,7 @@ describe('Error Handler Middleware', () => {
514514
meta: {
515515
timestamp: expect.any(Date),
516516
requestId: 'test-request-id',
517-
version: '0.3.0',
517+
version: '0.4.0',
518518
},
519519
});
520520

@@ -540,7 +540,7 @@ describe('Error Handler Middleware', () => {
540540
meta: {
541541
timestamp: expect.any(Date),
542542
requestId: 'test-request-id',
543-
version: '0.3.0',
543+
version: '0.4.0',
544544
},
545545
});
546546

@@ -566,7 +566,7 @@ describe('Error Handler Middleware', () => {
566566
meta: {
567567
timestamp: expect.any(Date),
568568
requestId: 'test-request-id',
569-
version: '0.3.0',
569+
version: '0.4.0',
570570
},
571571
});
572572

@@ -595,7 +595,7 @@ describe('Error Handler Middleware', () => {
595595
meta: {
596596
timestamp: expect.any(Date),
597597
requestId: 'test-request-id',
598-
version: '0.3.0',
598+
version: '0.4.0',
599599
},
600600
});
601601

@@ -626,7 +626,7 @@ describe('Error Handler Middleware', () => {
626626
meta: {
627627
timestamp: expect.any(Date),
628628
requestId: 'test-request-id',
629-
version: '0.3.0',
629+
version: '0.4.0',
630630
},
631631
});
632632
});
@@ -650,7 +650,7 @@ describe('Error Handler Middleware', () => {
650650
meta: {
651651
timestamp: expect.any(Date),
652652
requestId: 'test-request-id',
653-
version: '0.3.0',
653+
version: '0.4.0',
654654
},
655655
});
656656
});
@@ -672,7 +672,7 @@ describe('Error Handler Middleware', () => {
672672
meta: {
673673
timestamp: expect.any(Date),
674674
requestId: 'unknown',
675-
version: '0.3.0',
675+
version: '0.4.0',
676676
},
677677
});
678678
});
@@ -715,7 +715,7 @@ describe('Error Handler Middleware', () => {
715715
meta: {
716716
timestamp: expect.any(Date),
717717
requestId: 'test-request-id',
718-
version: '0.3.0',
718+
version: '0.4.0',
719719
},
720720
});
721721
});
@@ -740,7 +740,7 @@ describe('Error Handler Middleware', () => {
740740
meta: {
741741
timestamp: expect.any(Date),
742742
requestId: 'test-request-id',
743-
version: '0.3.0',
743+
version: '0.4.0',
744744
},
745745
});
746746
});

src/middleware/errorHandler.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export const errorHandler = (
6363
meta: {
6464
timestamp: new Date(),
6565
requestId: req.get('X-Request-ID') || 'unknown',
66-
version: process.env.npm_package_version || '0.3.0',
66+
version: process.env.npm_package_version || '0.4.0',
6767
},
6868
};
6969

@@ -140,7 +140,7 @@ export const errorHandler = (
140140
meta: {
141141
timestamp: new Date(),
142142
requestId: req.get('X-Request-ID') || 'unknown',
143-
version: process.env.npm_package_version || '0.3.0',
143+
version: process.env.npm_package_version || '0.4.0',
144144
},
145145
};
146146

0 commit comments

Comments
 (0)