Releasetrain Client is an open source front end and REST API for tracking software version updates, component activity, Reddit discussions, and CVE-related entries.
- Node.js (LTS recommended)
- MongoDB database (Atlas or self-hosted)
git clone https://github.com/antrunner/releasetrain-client.git
cd releasetrain-client
npm installnpm run devFront End: http://127.0.0.1:8080
API Backend: http://localhost:3000
Set environment variables or edit constants in the server file.
| Variable | Description |
|---|---|
MONGODB_URI |
MongoDB connection string |
DB_NAME |
Database name (default: releasetrain) |
PORT |
Server port (default: 3000) |
All endpoints return JSON.
Groups:
- Versions —
/api/v - Components —
/api/c - Reddit —
/api/reddit - Aggregates —
/api/aggregate - Test Utilities —
/api/test
Base URLs:
- Local:
http://localhost:3000 - Prod:
https://releasetrain.io/api
| Endpoint | Example | Description |
|---|---|---|
/api/v |
/api/v?q=chrome,firefox |
Recent versions for given components (last 2 years). |
/api/v/count |
/api/v/count |
Total versions in last 2 years. |
/api/v/fc |
/api/v/fc?q=mongodb |
Forecast next release date for a component. |
/api/v/fcc |
/api/v/fcc?q=chrome,firefox |
Predict coincide release dates. |
/api/v/:id |
/api/v/66fd52eaf1f36a17ad1e59c9 |
Version by MongoDB _id. |
/api/v/versionId/:versionId |
/api/v/versionId/20250217lobe-chat1.60.2 |
Version by versionId. |
/api/v/aggregate/byDate |
/api/v/aggregate/byDate?date=20250715 |
Count releases on a specific date. |
/api/aggregate/v/updateTypeCount |
/api/aggregate/v/updateTypeCount?timestamp=20250715 |
Count by update type (major/minor/patch). |
/api/aggregate/v/componentTypeCount |
/api/aggregate/v/componentTypeCount?timestamp=20250715 |
Count by classification type. |
/api/aggregate/v/versionCountByDay |
/api/aggregate/v/versionCountByDay?start=20250701&end=20250730 |
Total releases per day in a range. |
/api/aggregate/v/missingFields |
/api/aggregate/v/missingFields?field=versionNumber |
Docs missing a field (sample). |
/api/aggregate/v/sourceCountByType |
/api/aggregate/v/sourceCountByType?sourceType=patch×tamp=20250715 |
Count by source type (e.g., CVE, patch). |
/api/aggregate/v/classificationSummary |
/api/aggregate/v/classificationSummary?timestamp=20250715 |
Summary of security/breaking tags. |
/api/aggregate/v/oldestTimestamp |
/api/aggregate/v/oldestTimestamp?count=1000 |
Oldest release date among last N. |
| Endpoint | Example | Description |
|---|---|---|
/api/component/ |
/api/component/?q=linux |
Components with optional text filter (last 2 years). |
/api/c/name/:componentName/:versionNumber? |
/api/c/name/linux/6.10.5 |
Versions for a component (optional exact version). |
/api/c/os |
/api/c/os |
OS components in last 2 years. |
/api/c/count |
/api/c/count |
Distinct component count (last 2 years). |
/api/c/names |
/api/c/names |
Distinct component names (last 2 years). |
/api/c/frequency |
/api/c/frequency |
High-frequency components and those updated today. |
| Endpoint | Example | Description |
|---|---|---|
/api/reddit |
/api/reddit?limit=100&page=1 |
Reddit posts with pagination and filters. |
/api/reddit/:redditId |
/api/reddit/1nq0h33 |
Single post by redditId or _id. |
/api/reddit/by-subreddit |
/api/reddit/by-subreddit?q=firefox&minScore=50 |
Posts for subreddit(s), optional score/comments filters. |
/api/reddit/query/positive |
/api/reddit/query/positive |
Posts with positive predicted score > 0.5. |
/api/reddit/count |
/api/reddit/count |
Total posts in last 2 years. |
| Endpoint | Example | Description |
|---|---|---|
/api/test/endpoints |
/api/test/endpoints |
List all routes. |
/api/test/endpoints/html |
/api/test/endpoints/html |
HTML table of routes with examples. |
/api/test/all |
/api/test/all |
Run GET checks across endpoints. |
| Param | Description |
|---|---|
q |
Comma-separated components (e.g., chrome,firefox). |
limit, page |
Pagination controls. |
cursor |
Base64 cursor for Reddit pagination. |
start, end |
Date range YYYYMMDD. |
timestamp, date |
Single date YYYYMMDD. |
fields |
CSV of fields to include (Reddit endpoints). |
minScore, minComments |
Numeric Reddit filters. |
curl "http://localhost:3000/api/v?q=chrome,firefox"{
"versions": [
{
"versionProductName": "Chrome",
"versionNumber": "126.0.0",
"versionReleaseDate": "20240612"
},
{
"versionProductName": "Firefox",
"versionNumber": "127.0.0",
"versionReleaseDate": "20240611"
}
]
}Pull requests are welcome. Keep PRs focused, include tests or reproducible steps, and follow project conventions.
Issues: https://github.com/antrunner/releasetrain-client/issues
See LICENSE in the repository.
If you paste this directly into README.md, GitHub will render it correctly.