Skip to content

Conversation

@clauspruefer
Copy link
Owner

@clauspruefer clauspruefer commented Jan 5, 2026

Pull Request

Description

Version 1.1 release candidate.

  • User based simple Service Call Routing
  • Modify Example02 to NoSQL (mongodb) approach
  • Add Example04 (short impementation README.md remark using NLAMP proxy and authentication)
  • JSONTransfromer.json_transform() / set_json_dict() also adds _SYSClassNames to self.json_dict to make hierarchy processing work correctly
  • Invention of BaseHandler property_dict member (excludes returning internal 'SYSServiceMethod' property and class references)
  • Recursive Class Hierarchy Object Deserialization (inside ServiceExecuter class)
  • Add unit and integration tests for recursive json_transform()
  • Update Documentation
  • Update CHANGELOG.md

Type of Change

  • Release Candidate
  • Examples Update

@clauspruefer clauspruefer added this to the Release 1.1 milestone Jan 5, 2026
@clauspruefer clauspruefer self-assigned this Jan 5, 2026
Copilot AI review requested due to automatic review settings January 5, 2026 05:54
@clauspruefer clauspruefer added the release-candidate Release candidate label Jan 5, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces version 1.1 of the Micro ESB framework with several significant enhancements including user-based service call routing, recursive class hierarchy object deserialization improvements, NoSQL (MongoDB) support in Example02, and documentation updates for Example04.

Key changes:

  • Introduces a new ServiceRouter module for user-defined service call routing
  • Simplifies JSON transformation by removing redundant recursive hierarchy connection logic
  • Adds property registration feature for internal system properties
  • Migrates Example02 to MongoDB for certificate management

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
src/router.py New module implementing ServiceRouter for dynamic user-defined service routing
src/transformer.py Simplified JSON transformation by removing copy-based recursive hierarchy logic; updated copyright
src/microesb.py Integrated ServiceRouter, added property registration, refactored ServiceExecuter with new hierarchy connection methods, narrowed exception handling
example/02-pki-management/user_routing.py New MongoDB-based routing implementation for certificate and keypair operations
example/02-pki-management/service_implementation.py Updated to use ServiceRouter for database operations, added internal property registration, improved logging
example/02-pki-management/main-server.py Added logging configuration
example/02-pki-management/main-client.py Added logging configuration
example/02-pki-management/main-ca.py Added logging configuration
doc/source/examples.rst Updated note to mention Service Authentication in Example04

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@clauspruefer
Copy link
Owner Author

@copilot: Please add another example in /example/04-nlap-integration containing a README.md as a template mentioning the future NLAP Proxy Authentication implementation (external link: https://github.com/WEBcodeX1/http-1.2). NLAP Proxy will: a) Not communicate unencrypted b) Not allow global communication c) Only allow communication by X.509 client certificates

Copy link
Contributor

Copilot AI commented Jan 6, 2026

@clauspruefer I've opened a new pull request, #29, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 6 commits January 6, 2026 05:27
Co-authored-by: clauspruefer <17313789+clauspruefer@users.noreply.github.com>
Add Example 04 NLAP Proxy Integration template
…zation) after a json_transform()

- add multiple improvements for service implementation processing (see example02)
- add a @Property decorated "property_dict" member to microesb.BaseHandler()
- add global "simple" user service routing
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 12 out of 13 changed files in this pull request and generated 8 comments.

Comments suppressed due to low confidence (6)

example/02-pki-management/2-main-client.py:13

  • Hardcoded IP address in example code. The MongoDB connection string uses a hardcoded private IP address (192.168.61.248). Consider using an environment variable or configuration file for the MongoDB connection string to make the example more portable and secure.
    example/02-pki-management/0-main-ca.py:39
  • Potential NameError if exception occurs. If an exception is caught on line 36, the error is printed but execution continues. Line 39 then tries to access res[0] which will not be defined, causing a NameError. Either return/exit after catching the exception, or initialize res to a default value before the try block.
    example/02-pki-management/2-main-client.py:39
  • Potential NameError if exception occurs. If an exception is caught on line 36, the error is printed but execution continues. Line 39 then tries to access res[0] which will not be defined, causing a NameError. Either return/exit after catching the exception, or initialize res to a default value before the try block.
    example/02-pki-management/0-main-ca.py:13
  • Hardcoded IP address in example code. The MongoDB connection string uses a hardcoded private IP address (192.168.61.248). Consider using an environment variable or configuration file for the MongoDB connection string to make the example more portable and secure.
    example/02-pki-management/1-main-server.py:13
  • Hardcoded IP address in example code. The MongoDB connection string uses a hardcoded private IP address (192.168.61.248). Consider using an environment variable or configuration file for the MongoDB connection string to make the example more portable and secure.
    example/02-pki-management/1-main-server.py:39
  • Potential NameError if exception occurs. If an exception is caught on line 36, the error is printed but execution continues. Line 39 then tries to access res[0] which will not be defined, causing a NameError. Either return/exit after catching the exception, or initialize res to a default value before the try block.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-candidate Release candidate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants