Skip to content

fix(calm-hub): declare CALM 1.3 in the seed patterns - #3513

Merged
rocketstack-matt merged 5 commits into
finos:mainfrom
rocketstack-matt:fix/calm-hub-seed-2025-03-refs
Oct 27, 2026
Merged

rocketstack-matt merged 5 commits into
finos:mainfrom
rocketstack-matt:fix/calm-hub-seed-2025-03-refs

Conversation

@rocketstack-matt

@rocketstack-matt rocketstack-matt commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

Description

Step 6 of #3240. The CALM Hub seed patterns and one Cypress fixture declared https://calm.finos.org/calm/schemas/2025-03/meta/.... That is the 2025-03 draft on a CALM Hub path, and it never resolved on calm.finos.org. Both seeds now declare CALM 1.3. That covers the Mongo seed (API Gateway, Conference Signup and Conference Secure Signup patterns) and the Nitrite seed, which builds hub.calm.finos.org (the same three, Conference Signup 2.0.0, and the three Demo Pattern versions).

The migration is the same as in #3468 for the shared fixture copies of these patterns:

2025-03 1.3
interface.json#/defs/url-interface, host-port-interface, port-interface, container-image-interface interface.json#/defs/interface-type, with the fields and required list of the old definition (url; host, port; port; image)
Every other calm/schemas/2025-03/meta/ ref The same file and definition under release/1.3/meta/
Control keys in the Mongo secure signup pattern: control-requirement-url, control-config-url requirement-url, config-url (the 1.0 names)

Gotchas:

  • Only the changed interface objects are re-serialized, so the rest of each seed keeps its format.
  • The Nitrite Conference Secure Signup pattern names its second relationship load-balancer-attendees-service, and the Mongo copy names it load-balancer-attendees. This PR does not change that difference.
  • The shared document-loader tests still use the old URL as a mocked request. Nothing fetches it.
  • The traderx flow "Add or Update Account" keeps its old control keys. CALM Hub seed: the AI governance control requirements and architecture are not valid CALM #3469 covers it.
  • The pattern visualizer took the interface type from the name of the $ref definition. A 1.3 interface refers to the generic interface-type, so the visualizer no longer shows interface-type or interface-definition as a type.

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📚 Documentation update
  • 🎨 Code style/formatting changes
  • ♻️ Refactoring (no functional changes)
  • ⚡ Performance improvements
  • ✅ Test additions or updates
  • 🔧 Chore (maintenance, dependencies, CI, etc.)

Affected Components

  • CLI (cli/)
  • Schema (calm/)
  • CALM AI (calm-ai/)
  • CALM Hub (calm-hub/)
  • CALM Hub UI (calm-hub-ui/)
  • CALM Lab (calm-lab/)
  • CALM Models (calm-models/)
  • CALM Server (calm-server/)
  • CALM Studio (calm-studio/)
  • CALM Widgets (calm-widgets/)
  • CALMGuard (calm-guard/)
  • Documentation (docs/)
  • Shared (shared/)
  • VS Code Extension (calm-plugins/vscode/)
  • Dependencies
  • CI/CD

Commit Message Format ✅

One commit for each package, and one for the visualizer fix. None releases the CLI.

Testing

  • I have tested my changes locally

  • I have added/updated unit tests

  • All existing tests pass

  • ajv with the 1.3 meta-schemas from @finos/calm-schema: all 11 changed patterns are valid against calm.json and compile, so every $ref resolves.

  • The 1.3 conference signup architecture in shared/test_fixtures is valid against each changed Conference Signup pattern, and the 1.3 secure signup architecture is valid against the Mongo Conference Secure Signup pattern. Against the Nitrite copy it is valid once its second relationship has that pattern's ID.

  • init-mongo.js in a mongo:latest container: the seed completes, and no seeded document refers to the old path. scripts/validate-mongo-seed-counters.js passes.

  • init-nitrite.sh against a standalone CALM Hub: the seed completes with no errors. A GET of every readable resource returns 278 responses, all 200, and none refers to calm.finos.org/calm/schemas/ or calm.finos.org/draft/.

Checklist

  • My commits follow the conventional commit format
  • I have updated documentation if necessary
  • I have added tests for my changes (if applicable)
  • My changes follow the project's coding standards

🤖 Generated with Claude Code

The API Gateway, Conference Signup, Conference Secure Signup and Demo patterns referred to https://calm.finos.org/calm/schemas/2025-03/meta/, which never resolved. Each named 2025-03 interface is now interface-type with the same fields, and the secure signup pattern uses the 1.0 control keys. Refs finos#3240.
markscott-ms
markscott-ms previously approved these changes Oct 26, 2026

@markscott-ms markscott-ms left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. One side effect to fix here or in a new issue:

extractInterfaces in calm-hub-ui/src/visualizer/components/reactflow/utils/patternTransformer.ts takes the interface type from the last segment of the $ref. All the seeded refs now end in interface-type, so the visualizer shows every interface as interface-type, not url-interface, host-port-interface and so on. patternTransformer.test.ts tests only the old form, so no test catches this.

@rocketstack-matt

Copy link
Copy Markdown
Member Author

@markscott-ms Confirmed, fixed in 805c809.

@rocketstack-matt
rocketstack-matt merged commit f68a223 into finos:main Oct 27, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

calm-hub Affects `calm-hub` calm-hub-ui Affects `calm-hub-ui`

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants