Skip to main content

Release Notes 2023-09-21

Christian Krahn
Product Owner priint:cloud

These changes have been deployed to priint:cloud on September 21st, 2023.

Authentication

Property Parameter Replaced in Token Requests

Prefer the new parameter scope in requests to POST /tenants/{tenant}/tokens over the old parameter role.

  • scope has the same semantics as role
  • role is deprecated and may be removed in the next major release

Rendering Service

New Priority Rules for Renderings

  • For each project a maximum of parallel renderers is set.
  • This maximum depends on the plan that is attached to the tenant or project.
  • Effectively, the system monitors the average rendering time (with higher weight on the more recent renderings).
  • The system will schedule the renderings in a project specific queue depending on the average rendering time so that the maximum of parallel renderers is not exceeded.
  • This means that if a mass rendering is started then only a few renderings will start immediately while the others will wait in a queue and only render when they expiry from that queue.
  • This also means that if the queue is still busy from a previous mass rendering request, then new rendering requests will just be added to the tail of the queue.
  • Users will get an HTTP status of 429 Too Many Requests if the queue is already full.

New Endpoint to List Open Tickets

GET /rest/tenants/{tenant}/projects/{project}/tickets
  • Requires JOBS or ADMIN role on the project.
  • Returns a JSON array of ticket IDs of jobs that have not yet completed.
  • Not completed means that the ticket is still being processed in a queue or waiting to be processed and the final status is not yet defined. Since tickets may be rescheduled several times with delays in between depending on the configuration this can last for minutes or even hours in some cases, although it will be fast in most standard configurations.
  • For details see the openapi specification.

New Endpoint to Get Ticket Status

GET /rest/tenants/{tenant}/projects/{project}/tickets/{ticket}/status
  • Requires JOBS or ADMIN role on the project.
  • Returns JSON object of type TicketStatusView containing fields like complete, created, updated, errorCode, next, processingMsecs, processingPages, redeliveries, status, etc.
  • For open tickets the most interesting information may be in next property (the next step in the processing queue for this ticket like priint-grid/queue/error) and in the status property (the completion status of the previous step in the queue for this ticket like renderpdf.failed).
  • For details see the openapi specification.

New Endpoints to Get Ticket Artifact

GET /rest/tenants/{tenant}/projects/{project}/tickets/{ticket}/artifact
Content-Type: application/pdf
  • Requires JOBS or ADMIN role on the project.
  • Returns the PDF data in a stream.
  • This is an alternative for the similar call to GET /tenants/{tenant}/projects/{project}/storage/{filename}.
  • For details see the openapi specification.
GET /rest/tenants/{tenant}/projects/{project}/tickets/{ticket}/artifact
Content-Type: application/zip
  • Requires JOBS or ADMIN role on the project.
  • Returns all artifacts generated during rendering packed into a zip file.
  • Which files are collected depends on the kind and success opf the rendering job. In case of a failed rendering it will contain comet.log, product data as xml, and optionally product list as xml. In case of success the PDF will also be part of this.
  • For details see the openapi specification.

New Endpoint for renderpdf including images within a zip

POST /tenants/{tenant}/projects/{project}/renderpdf
Content-Type: application/zip
Accept: application/json
  • Requires JOBS or ADMIN role on the project.
  • Supports the same query parameters as the other calls to POST /renderpdf.
  • The payload MUST be a zip file
    • The zip MUST contain a file data.xml in the root.
    • The zip MAY contain other resource files like images (png, jpg, pdf) or data (xml) in the root or in subfolders.
  • Returns the same tickets list as result as the other calls to POST /renderpdf when called with Accept: application/json.
  • For details see the openapi specification.

How to use the files in Comet?

  • Comet users can retrieve the files within the zip using the GRID_DATA_DIR environment variable in CSCRIPT or PYTHON.

New Endpoint for renderpdf for Synchronous Rendering

POST /tenants/{tenant}/projects/{project}/renderpdf
Content-Type: application/xml (or application/zip)
Accept: application/pdf
  • Requires JOBS or ADMIN role on the project.
  • Supports the same query parameters as the other calls to POST /renderpdf.
  • Requires an additional query parameter timeToWait in msec (min is 6000 for 6 sec, max is 1200000 for 20 min).
  • The payload can be XML or ZIP. For details see the other variants for POST /renderpdf.
  • Returns the generated PDF as result in case that the rendering succeeds before timeout.
  • In case of timeout (HTTP_408) it returns the list of ticket IDs as the default POST /renderpdf does. Behaving as an asynchronous job from then on.
  • For details see the openapi specification.

General

Tenant Name Requirements

We detailed the rules for checking tenant names.

  • Tenant names should contain lowercase alphanumeric ASCII characters only with the following extensions:
    • dash and underscore are allowed
    • dot '.' is allowed as delimiter, i.e. each dot must be preceded and followed by one of the above characters

User Name Requirements

We detailed the rules for checking usernames.

  • Usernames should contain lowercase alphanumeric ASCII characters only with the following extensions:
    • dash and underscore are allowed
    • dot '.' is allowed as delimiter, i.e. each dot must be preceded and followed by one of the above characters
    • a single '@' character is allowed to delimit username and domain part if usernames are in email address style

Breaking Changes

  • None

All Deprecations

  • See Property Parameter Replaced in Token Requests (use 'scope' instead of 'role')