ProCon
ProCon
Section titled “ProCon”- Updated client (1.0.0) with new import statement
- Renamed the module from
processing-container-coretopinexq-procon! - Moved the
proconmodule into thepinexqnamespace - Fixed missing version string escaping
- Extended the CI/Cd pipeline to publish to PyPI
- More verbose internal exception handling
- Fixed missing string escaping of version numbers
- System environment variables are now masked for the running Step function
- Added a
versiondecorator to specify a function’s version alongside with the code
- Bugfix for wrong version comparison
- Fixes clean shutdown after internal error
- Updated documentation to changes in v2
- Fixed missing log messages in Worker
- Function versions can now specified individually via CLI parameter
- The version can be appended to the
--function/-fparameters (e.g.-f my_func:1.0.0)
- The version can be appended to the
- New Dockerfile
- UV as build tool
- Explicit definition of user and group for more security
- Replaced deprecated functions for Python 3.14 compatibility
- Better internal exception management
- ProCon will shutdown, if internal tasks fail
- Add
idle_timeoutparameter so ProCon shuts down when no jobs are available - Generate API client with caching enabled
- On exception write all dataslots (best effort)
- except return DataSlot since function will not return on exception
- If no function can connect to its RabbitMQ queues, shut down ProCon
- Rework of RabbitMQ routes (requires JMA >= 20251104.151 (API v8.6.0))
- Fixes naming collisions between users and organization
- Introduce context id which represents the users context with remote platform (private or organization)
- Option to use TLS for remote connection
- UV is now used for managing / building the package
- Rework RabbitMQ communication
- Fix JobOffer queues did not use versions to listen in some cases
- Remove unused worker queues
- No JobOffer and Job queues are created by ProCon, on startup check if expected queue exists if not do not connect (with log message)
- Remove possibility to listen to “all” versions of a function (-av, —allversions)
- Introduce naming conventions: functions (all valid python function names) and versions (a-Z, 0-9, ’.’, ’_’ ’-‘)
- added filename property of WorkData to DataSlots metadata
- added API helper functions
get_client,get_job,get_entrypoint_hco,get_grants - added unit and integration tests for api-helper functions
- extended parameter definitions, type annotations and docstrings for all
dataslotdecorators
- Adapt ProCon to use AccessToken in JobOffer or get it from environment.
- Add API Helper function to access user grants when executing steps.
- fix signature of collection reader type
- Update packages to get fixed pinexq-client
- Fix missing check to get pinexq-client in step
- DataSlots can now be used with Pydantic BaseClasses.
- For input DataSlots the file content is deserialized in to the given type.
- For output DataSlots ProCon creates a instance passed to the Step-function. This instance will be written to file after the function completes.
- For result DataSlots ProCon writes the returned function to the file.
- Collection DataSlots now have a collection reader and writer. This allows full control what happens on read write.
- You can now deserialize multiple files into a single parameter, or - vice versa - write data from one DataSlot into multiple files.
- Note: This feature is in alpha stage and the behavior might change in future releases!
- Fixed order of parameters (DataSlots) was sometimes mixed up in manifest. Now the order in the manifest is the same as in the step function
- add new method to retrieve remote client which uses env variables
get_client()
0.4.2.20241028
Section titled “0.4.2.20241028”- Customizable messages for user-facing Exceptions
- “register” command to remotely register step function manifests at the JMA
- Configurable timeouts for HTTP-requests in DataSlots
- Step functions have now a version when being registered and run
0.4.0.20240722
Section titled “0.4.0.20240722”- Reworked RabbitMQ connection handling
- Retry connecting until server is available
- Fixes crashes on server disconnects during runtime
- Fixes deletion of ‘job.command’ queues
- Refactoring to separate communication and execution logic
- Several fixes for race conditions for many consecutive job-offer messages
- More unit test for error cases