Implement /status Health Check Endpoint and Refactor Plugin Registration
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 42/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- typescript
Research direction
Start by reviewing root-status.controller.ts and homeserver.module.ts to understand the proposed plugin registration and error handling. Verify that GET / and GET /status return the described responses, and that an unknown route uses the custom not-found response; the issue does not mention a specific test file.
Written by the indexing model from the issue text.
Description
Description
Added a new root-status.controller.ts that provides two routes:
-
GET / — returns a simple welcome message
-
GET /status — returns server uptime, current timestamp, and status
-
Registered this controller plugin in
homeserver.module.ts. -
Also added a custom 404 error handler using app.onError for cleaner “not found” responses.
Key Code Snippets
root-status.controller.ts
import { Elysia } from 'elysia';
export const rootStatusPlugin = new Elysia()
.get('/', () => ({
message: 'Matrix server is live. Try /status.',
}))
.get('/status', () => ({
status: 'ok',
uptime: process.uptime(),
timestamp: new Date().toISOString(),
}));
homeserver.module.ts
app.onError(({ code }) => {
if (code === 'NOT_FOUND') {
return {
error: 'Route not found. Are you lost?',
};
}
});
If this looks good, I’d be happy to create a PR for these changes. Please assign it to me if so, happy to contribute!
- Dominant language
- TypeScript
- Stars
- 17
- Forks
- 18
- Avg merge
- 2h 11m
- Merged PRs (30d)
- 2
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from RocketChat/homeserver
-
pruneEventDict and signEvent's `prune` flag should go away entirely, replaced byMay be free again @sampaiodiego claimed this 75 days ago, and no pull request is open. Opentodo :spiral_notepad: type: feature
RocketChat/homeserver#411 · 1 comment · 1 assignee ·
-
Include banned and invited servers in event destination setPossibly taken @ggazzo claimed this 233 days ago. Opentype: bug
Difficulty 4/5 3-5 days Newbie friendliness 52/100
RocketChat/homeserver#388 ·
-
we need a map of rooms and destinations to avoid having to get rooms state just to send an event to all servers in the room.May be free again @sampaiodiego claimed this 249 days ago, and no pull request is open. Opentodo :spiral_notepad: type: feature
RocketChat/homeserver#342 · 4 comments · 1 assignee ·
-
this may not be the best place to do this validationMay be free again @sampaiodiego claimed this 326 days ago, and no pull request is open. Opentodo :spiral_notepad:
RocketChat/homeserver#322 · 1 comment · 1 reaction · 1 assignee ·
-
check if all sendEventToAllServersInRoom should be followed by an emitterMay be free again @ggazzo claimed this 359 days ago, and no pull request is open. Opentodo :spiral_notepad:
RocketChat/homeserver#304 · 1 assignee ·
All issues in RocketChat/homeserver
Similar issues
-
bug
Difficulty 2/5 Half a day Newbie friendliness 68/100
amosblomqvist/learnharness#758 ·
Maintainers usually reply within 2 days
-
Change WorkspacesOpen
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
bitfocus/companion-module-renewedvision-propresenter-api#134 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
rcpch/digital-growth-charts-react-component-library#304 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dsh-market/dsh-market#1210 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
trustjonathan/STUDY-HUB#13 ·