Skip to content

feat(settings): show the project id, read-only (mendixlabs/mxcli#1526) - #1429

Merged
ako merged 1 commit into
mainfrom
fix/1526-show-project-id
Oct 16, 2026
Merged

ako merged 1 commit into
mainfrom
fix/1526-show-project-id

Conversation

@ako

@ako ako commented Oct 16, 2026

Copy link
Copy Markdown
Owner

Addresses mendixlabs#1526 (#1408). The maintainer decided to show the project id read-only, with no re-ID command.

Cause

The project id is the Projects$Project root unit's $ID, which every module's ContainerID points to. No command printed it. The model-engine backend's GetProjectRootID was still the generated "unimplemented" stub; only CreateModule read it, directly from the reader.

Fix

  • The backend: Backend.GetProjectRootID now delegates to the reader. It is removed from the unreachableUnimplemented allowlist, as TestNoReachableUnimplementedBackendMethods requires.
  • describe settings prints -- Project ID: <uuid> (read-only; …) as a comment, so the output still executes.
  • show settings adds a Project row in table and JSON output.
  • No id: nothing is printed when the backend cannot provide one.

Tests

  • TestGetProjectRootID_IsTheModulesContainer: the id equals every module unit's ContainerID on the real fixture. It failed with "not implemented" before the fix.
  • TestGetProjectRootID_NotConnected.
  • TestDescribeSettings_ShowsProjectIDAsComment.
  • TestShowSettings_ShowsProjectID.
  • TestSettings_NoProjectID.

Revert check: with the id stubbed to "", the describe and show tests fail.

Real run: on expr-checker the printed id bf10dffa-… matches the Projects$Project .mxunit file name.

Also updated: the project-settings skill, docs-site/src/reference/settings/list-describe-settings.md, and a finding file. make build, make test, make lint and make check-findings pass.

Note

The comment says Business Events uses this id as the AppId. That is the reporter's claim; it was not measured here.

🤖 Generated with Claude Code

https://claude.ai/code/session_01W3x8Fyvir8kLyPgJs1BDmF


Generated by Claude Code

…abs#1526)

The project id — the $ID of the Projects$Project root unit every module
points to, which Business Events uses as the app id — was shown by no
command, so two apps made from one copied model could only be found to
share it by grepping mprcontents. The model-engine backend's
GetProjectRootID was still the generated "unimplemented" stub; only
CreateModule reached the reader's method directly.

Backend.GetProjectRootID now delegates to the reader (struck off the
unreachable-unimplemented allowlist). describe settings prints it as a
`-- Project ID: …` comment, so the output still executes, and show
settings (table and JSON) adds a Project row. Read-only: no re-ID
command.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W3x8Fyvir8kLyPgJs1BDmF
@ako
ako merged commit 0bbc838 into main Oct 16, 2026
33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants