Release notes

GAMS Engine 21.07.20

New features

  • Engine UI is updated
  • When inviting users, Engine now supports assigning quotas and user groups.
  • Speed up uploading temporary models

Bug fixes

  • Fix issue with assigning disk quota larger than 2,147,483,647 bytes to users.
  • Fix issue with leftover files if the database is down while sending a job/hypercube.

API Changes

  • Switched to a new JWT library as the old one is deprecated. Already existing unexpired tokens will be invalidated.
  • Defined caching options for endpoints
  • Namespace name length must be between 3-16 chars and it must consist of alphanumeric chars - and _. This change does not affect existing namespaces.
  • Model name length must be between 1-260 chars and it cannot contain / and \. This change does not affect existing models.
  • Jobs are limited to maximum of:
    • 100 text entries
    • 5 stream entries
    • 255 arguments
    • 2 labels
    • 100 dependent jobs
    • 5 MB inex file
  • Cleanup endpoint accepts 10 thousand files at once at most.
  • Registered models are limited to have 255 arguments at most.
  • Now invitations can have instances, user groups and quotas assigned Invitations are limited to maximum of:
    • 2 roles
    • 50 instances
    • 50 namespace permissions
    • 50 user groups
  • Now GET /usage/ endpoint is accessible by each user group.
  • Now GET /usage/ endpoint's return model's labels is changed to return a dictionary instead of an array
  • Now GET /usage/ endpoint also returns tolerations and node_selectors in labels.
  • Now users can specify token and hypercube_token to GET /usage/ endpoint in order to further limit the results.
  • Instances now have workspace_request, tolerations and node_selectors fields to have a better control over pod node assignment (related to Kubernetes version).
  • Jobs and Hypercubes accept workspace_request=n, tolerations=key=value, and node_selectors=key=value (related to Kubernetes version).
  • When querying a single job or Hypercube, information about workspace_request, tolerances and node_selectors assigned to that job is now provided (related to Kubernetes version).

GAMS Engine 21.06.09

New features

  • Quotas introduced. Quotas allow limiting the solve time and disk usage of users or groups of users.
  • Users can now be assigned to user groups. User groups allow you to see all other Engine users within your groups.
  • Admins can now get a disk usage report via the sigusr1 signal.
  • Admins can now manually trigger housekeeping via the sigusr2 signal.

Bug fixes

  • Improve performance when listing jobs with stream entries and when retrieving a single job with text entries
  • Fix issue that caused the accumulation of intermediate files.
  • Fix issue related to canceling dependent Hypercube jobs.
  • Containers connecting to PostgresSQL have been made more robust against connection failures.
  • API Documentation updated to solve issues in the auto-generated Python Client.
  • /cleanup/results enpoints: Operation ids added for auto-generated clients: listResults and removeResults.

API changes

  • DEPRECATED endpoint: GET /namespaces/permissions/me, use GET /namespaces/ instead.
  • DEPRECATED endpoint: DELETE/GET/PATCH/POST /namespaces/{namespace}/{model}, use /namespaces/{namespace}/models/{model} instead.
  • DEPRECATED endpoint: GET /namespaces/{namespace}/permissions/me, use GET /namespaces/{namespace}/permissions instead.
  • New endpoint: DELETE/GET/PUT /usage/quota available to modify user quotas.
  • New endpoint: DELETE/GET/PUT /namespaces/{namespace}/disk-quota available to modify namespace disk quotas.
  • New endpoint: DELETE/GET/POST /namespaces/{namespace}/user-groups available to delete/get/create user groups.
  • New endpoint: DELETE/POST /namespaces/{namespace}/user-groups/{label} available to change user groups of users.
  • New endpoint: GET /namespaces/{namespace}/permissions added to get permissions of a user on a namespace.
  • GET /namespaces/ is now accessible by inviters and users as well (not just admins).
  • Operation id for endpoint: POST /auth/login added: createJWTTokenJSON.
  • Updates in models
    • GET /version endpoint returns a new field in_kubernetes to indicate that Engine is running in Kubernetes (Kubernetes version is not released yet).
    • GET /cleanup/results has old_username field added to user object.
    • GET /hypercube/ returns a new field labels that returns the labels assigned to the job.
    • GET /usage/ now also returns new field labels of (Hypercube) jobs.
    • POST /hypercube/ returns new field quota_warning that lists the quotas that are at least 80% used.
    • POST /jobs/ returns new field quota_warning that lists the quotas that are at least 80% used.
    • GET /namespaces/permissions/me returns a new field disk_quota for the namespaces.
    • GET /namespaces/ returns a new field disk_quota for the namespaces.
    • GET /namespaces/{namespace} also returns length (size) of the models now.
  • Updates in request parsers
    • Admins can set quotas for namespaces while creating them: POST /namespaces/{namespace} accepts query parameter disk_quota.
  • Updates in responses
    • (Hypercube) job creation may fail with status code 402 to indicate that at least 1 quota has been exceeded.
    • Download/delete job result documentation model for 404 was incorrect, and changed to correct ones.
    • Uploading a new model may fail with 402 to indicate that namespace quota has been exceeded.
    • Patching an existing model may fail with 402 to indicate that namespace quota has been exceeded.

GAMS Engine 21.06.03

Update GAMS to version 35.2.0.

GAMS Engine 21.05.04

Update GAMS to version 35.1.0.

GAMS Engine 21.03.19

  • Fix issue that caused jobs to not get canceled when the GAMS process creates another GAMS process.

GAMS Engine 21.03.12

  • listJobs with show_only_active set now also returns jobs that are waiting for dependencies.
  • Inviters now have access to jobs submitted by invitees.
  • The Engine UI now has the option to display only jobs that are currently active.
  • Users can change registered models' files, arguments, inex file, run filename via PATCH /namespaces/{namespace}/{model}
  • Listing models provides run filename information as well
  • Deprecated creating JWT token via basic auth, use the other option instead
  • Users now can specify expiration time for JWT token, defaults to 4 hours
  • Dependency checker, hcube appender, hcube unpacker logging format changed
  • Restarting worker now handled by Container Runtime in connection error

GAMS Engine 21.02.03

First official release of GAMS Engine.