Copy calm server to a separate package calm-server.#2167
Copy calm server to a separate package calm-server.#2167rocketstack-matt merged 22 commits intofinos:mainfrom
calm server to a separate package calm-server.#2167Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a new calm-server workspace package (@finos/calm-server) that provides a standalone Express HTTP server and CLI entrypoint for CALM architecture validation, alongside build/test/lint/CI wiring and documentation.
Changes:
- Added the
calm-serverworkspace package with Express server startup, routing (/health,/calm/validate), and a CLI entrypoint. - Added Vitest + ESLint + tsup configuration and initial test fixtures/specs for the server package.
- Added a dedicated GitHub Actions workflow plus root workspace scripts to build/test the new package.
Reviewed changes
Copilot reviewed 25 out of 26 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Adds calm-server to workspaces and introduces build/test/link scripts for it. |
| package-lock.json | Locks new workspace and dependency tree for @finos/calm-server. |
| calm-server/package.json | Defines the new package, its build/test/lint scripts, and runtime dependencies. |
| calm-server/src/index.ts | Implements the calm-server CLI entrypoint and server bootstrap. |
| calm-server/src/server/cli-server.ts | Starts the Express server and mounts routes. |
| calm-server/src/server/routes/routes.ts | Wires health + validation routers under their endpoints. |
| calm-server/src/server/routes/health-route.ts (+ spec) | Adds /health endpoint and tests. |
| calm-server/src/server/routes/validation-route.ts (+ spec) | Adds /calm/validate endpoint and tests/fixtures. |
| calm-server/vitest.config.ts | Adds Vitest configuration (node env + coverage). |
| calm-server/tsup.config.ts | Adds build bundling configuration and CLI shebang. |
| calm-server/tsconfig*.json | Adds TypeScript config for the new package. |
| calm-server/eslint.config.mjs | Adds ESLint flat config for the new package. |
| calm-server/README.md / AGENTS.md | Documents features, usage, endpoints, and developer workflow. |
| .github/workflows/build-calm-server.yml | Adds CI job to lint/build/test the new workspace. |
| .github/pull_request_template.md | Updates component checklist to include calm-server and other items. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
We should also add this project to the top level README and add CODEOWNERS |
|
@rocketstack-matt I've addressed all feedback |
rocketstack-matt
left a comment
There was a problem hiding this comment.
Two references to shared dist folder to still clean up
|
@rocketstack-matt that's all I also enabled strict mode compilation for |
Partially implements #2051
Description
This pull request introduces the new
@finos/calm-serverpackage, providing a standalone HTTP server for CALM architecture validation. It includes server implementation, configuration, API endpoints, documentation, and testing setup. The most important changes are grouped below.This PR does NOT remove
calm serverfunctionality yet, nor mark it deprecated. The PR does not yet introduce a publishing job for calm-server. Thecalm serverwill be deprecated once the publish job is introduced. I want the PR with the provenance publishing of the CLI to be successfully run before introducing publishing of calm-server.CALM Server Implementation
calm-servermodule with an Express-based server and CLI entry point insrc/index.ts, supporting bundled/dynamic CALM schemas, health check, validation endpoint, and rate limiting. [1] [2] [3] [4]/healthand/calm/validateendpoints, with schema validation logic shared via@finos/calm-shared. [1] [2]Build, Test, and Lint Setup
.github/workflows/build-calm-server.ymlfor automated build, lint, and test of the CALM Server module.eslint.config.mjsand Vitest unit tests for server entry point and routes. [1] [2] [3] [4] [5]Documentation
README.mdandAGENTS.mddescribing features, usage, endpoints, security, development, and relationship to CLI. [1] [2]Configuration and Packaging
package.jsonwith scripts for build, test, lint, schema copying, and global linking; defined dependencies and devDependencies.These changes collectively establish the CALM Server as a standalone, testable, and documented module for CALM architecture validation.
Type of Change
Affected Components
cli/)shared/)calm-server/)calm-widgets/)calm-hub/)calm-hub-ui/)docs/)calm-plugins/vscode/)Commit Message Format ✅
Testing
Checklist