feat(orchestration): add default folder, service and packages to bare installation

Closes #363

Incidentally, also closes #207 (closed)

Changes:

  1. Added new service constants for shared service/bucket and kept legacy device constants for compatibility.
  2. Updated orchestration settings defaults:
    1. Added shared as a default service (with proxy installation enabled). -> Ignored if a device service is configured
    2. Added a default shared bucket.
  3. Added install_proxy to service settings with validation so only compatible IPython services can be installed as Jupyter Server Proxy kernels.
  4. Updated proxy kernel installation to be driven by service config (install_proxy) instead of hardcoded service-name filtering.(#207 (closed))
  5. Added license_folder support in data folder settings and data folder creation:
    1. Creates license directory.
    2. Applies permissions and ownership.
    3. Injects OQS_LICENSE_DIR and bind mount into uv environments.
  6. Updated/added tests to cover:
    1. Legacy device-to-shared migration behavior.
    2. Default bucket selection and legacy bucket preservation.
    3. Proxy installation behavior (shared-only by default path).
    4. Environment/system service counts after new default service behavior.
    5. Task manager service tests to patch monitor dependencies.

Compatibility and migration notes

  1. Legacy device service definitions are still accepted.
  2. New installs/default configs now use shared service/bucket semantics.
  3. Proxy kernels are now installed based on install_proxy settings.
Edited by Koushik Kumaran

Merge request reports

Loading