Skip to content

ProCon

  • Updated client (1.0.0) with new import statement
  • Renamed the module from processing-container-core to pinexq-procon!
  • Moved the procon module into the pinexq namespace
  • 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 version decorator 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/-f parameters (e.g. -f my_func:1.0.0)
  • 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_timeout parameter 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 dataslot decorators
  • 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()
  • 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
  • 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