Chenile 2.1.24 hardens the hosted service registry for production restarts and redeployments, and ships chenile-admin-ui as a consumable Maven module that can be mounted at /chenile/admin.
Highlights
Security auth framework and sample
chenile-securitynow contains a separatedauth-frameworkdirectory for the new auth server, gateway, starters, and shared auth contracts.- Existing Chenile security modules remain isolated under
legacy-securityso current users can continue with the existing framework. chenile-samplesnow includessecurity-auth-sample, a developer reference application with an auth implementation module, auth server, gateway app, two protected services, React UI, Docker runtime, and Postgres-backed seed data.- Framework properties use the
chenile.security.*namespace; sample-only properties usesample.security.*.
Service registry duplicate-write hardening
service-registry-servicenow treats(serviceId, serviceVersion)as an immutable registration key.- Registry startup republishing, service restarts, and concurrent deployments no longer create a new row for the same logical service version.
- If the same service definition is published again, the existing canonical row is reused.
- If a changed definition is published without a version bump, the registry logs a warning and keeps the existing canonical row instead of inserting a duplicate.
Cache and delegate robustness
ServiceRegistryCachenow uses semantic fingerprinting rather than fragile object equality for duplicate detection.- Cache storage now ignores null or invalid definitions instead of polluting the in-memory registry view.
- Latest-version selection is now numeric-aware, so versions like
2.1.10sort after2.1.9. service-registry-delegatenow tolerates failed remote writes more safely and avoids caching null write responses.
Registry diagnostics
service-registry-servicenow exposesGET /serviceregistry/diagnostics.- Diagnostics report:
- duplicate
serviceId + serviceVersiongroups - duplicate operation links
- duplicate parameter links
- changed definitions published under the same version
- invalid rows with blank
serviceIdorserviceVersion
- duplicate
- This endpoint is intended for both operational inspection and pre-migration cleanup.
Chenile Admin UI packaging
chenile-corenow publishesorg.chenile:chenile-admin-ui.- The module packages the built frontend inside the jar and serves it from
/chenile/admin. - The admin UI now surfaces service-registry diagnostics and makes duplicate or changed-same-version issues visible without manual SQL inspection.
Database changes
This release adds stronger database-level guarantees for the hosted service registry model.
Schema expectations
service_definition now requires:
service_idto be non-nullservice_versionto be non-null- a unique constraint on
(service_id, service_version)
Constraint name used by the JPA model:
uk_service_definition_service_version
Upgrade impact
Do not apply the uniqueness constraint blindly on an existing production registry database.
First clean up:
- duplicate rows for the same
service_idandservice_version - rows where either
service_idorservice_versionis blank or null - duplicate operation or parameter link rows if your database accumulated them
Recommended upgrade sequence:
- Deploy the application code with diagnostics available.
- Inspect
GET /serviceregistry/diagnostics. - Clean duplicate and invalid rows in the database.
- Apply the non-null and uniqueness constraints.
- Restart the registry host and verify diagnostics are clean.
Example duplicate discovery SQL
Use discovery SQL like this before adding the unique key:
select service_id, service_version, count(*) as row_count
from service_definition
group by service_id, service_version
having count(*) > 1;
And invalid-key discovery:
select id, service_id, service_version
from service_definition
where service_id is null
or trim(service_id) = ''
or service_version is null
or trim(service_version) = '';
Cleanup SQL is intentionally not prescribed here because the correct deletion strategy depends on your production data retention rules and foreign-key shape.
Upgrade notes
- Consumers hosting the central registry should plan a DB cleanup window before enforcing the unique key.
- Producers must bump
serviceVersionwhen the remotely visible contract changes. - Consumers that want the packaged admin UI can now add
org.chenile:chenile-admin-uiand expose/chenile/adminfrom the same Spring MVC application.
Documentation updates
The Chenile docs were updated to reflect:
- the
2.1.24release note page - service registry diagnostics and production-hardening behavior
- the database migration expectations for
service_definition - the packaged
chenile-admin-uiMaven module and/chenile/adminpath - the new security auth sample and Chenile auth/gateway framework integration pattern
keywords: chenile 2.1.24 release notes release alignment documentation tags: [chenile release notes documentation versioning] sidebar: codex_sidebar permalink: /codex-chenile-2-1-24-release-notes.html folder: codex-docs summary: Release notes for Chenile 2.1.24 covering release alignment, documentation refresh, and application parent upgrades. —
Chenile 2.1.24 is the current published framework baseline for this workspace and documentation set.
Highlights
Release alignment
- The standard 11 Chenile repositories are aligned on
2.1.24. chenile-gennow defaults generated projects to2.1.24.- Application repositories that inherit directly from
chenile-parentshould also move to2.1.24. chenile-javadocis aligned to the same parent release.
Documentation refresh
The documentation set was updated to reflect:
- the
2.1.24release baseline - the refreshed sidebar versions across the docs site
- the current release baseline in the architecture and modules overview pages
- the current
chenile-genexample dependency version
Upgrade notes
- Applications that inherit from
org.chenile:chenile-parentshould use2.1.24. - Generated or copied dependency examples should now prefer
2.1.24. - Older release notes remain available for historical context, but the active documentation baseline is now
2.1.24.