Skip to content

v0.35.1

Choose a tag to compare

@github-actions github-actions released this 26 Aug 13:52
· 206 commits to main since this release
5a9da93

Release Notes

v0.35.1

Prelude

qiskit_serverless v0.35.1 is a bug-fix release with a few improvements
over v0.35.0; upgrading is advised but not required.
GET /api/v1/jobs/provider now scopes its results to the requested
provider, running a Qiskit Function with a large batch of arguments no
longer fails with a 500 error, and get_runtime_service() is now
compatible with VPE configurations. The author of a provider function is
also now treated as an admin of that function for the provider
operations, so an automated publisher can manage the functions it
uploads.

Upgrade Notes

  • Two new settings, both also exposed as chart values under
    gateway.application.limits: MAX_REQUEST_BODY_SIZE_MB
    (maxRequestBodySizeMb, 50) and MAX_ARGUMENTS_LENGTH_MB
    (maxArgumentsLengthMb, 32). Size them against the pod's memory and
    worker count, since a body costs about three times its size in the
    worker holding it and every worker can hold one at once.
    specs/ARGUMENTS_LIMIT.md has the table.
  • The author of a provider function is now treated as an admin of that
    one function for the six provider operations: uploading a new version,
    listing the function's jobs, reading its provider logs, and the three
    provider file operations. This lets an automated publisher manage the
    functions it uploads without extra grants.

    The grant is scoped to that single function. It does not list the
    function in the catalog, does not grant the right to run it, and does
    not make the author an admin of the provider as a whole. Creating a
    brand-new provider function still requires the upload permission, and
    access that worked before is unaffected.

Bug Fixes

  • Running a Qiskit Function with a large batch of arguments no longer
    fails with 500 Internal server error. The gateway now accepts
    request bodies of up to 50 MB, and reports going over that as
    413 Request Entity Too Large naming the limit.
  • Raised the maximum length of the arguments validated against a
    function's arguments_schema from 1 MB to 32 MB. The old figure fit
    only about twenty-five encoded circuits, fewer than callers send in a
    single batch.
  • get_runtime_service() now honours the QISKIT_IBM_PRIVATE_ENDPOINT
    environment variable, forwarding it to QiskitRuntimeService as
    private_endpoint. Previously the helper ignored it, so a Qiskit
    Function configured for a private endpoint still connected through
    public URLs. Set it to true and the service connects through private
    URLs; the instance must be a CRN for the private host to resolve.
    Existing usage is unchanged.

    Example usage from within a Qiskit Function, with the variable set in
    the environment:

    from qiskit_serverless import get_runtime_service
    
    service = get_runtime_service()
    backend = service.backend("my_backend")
    
  • GET /api/v1/jobs/provider now scopes its results to the requested
    provider. Because function titles are unique per provider rather than
    globally, a title alone could match same-named functions under other
    providers, so the listing could include jobs outside the requested
    provider. It now returns only jobs belonging to that provider. The
    response carries job metadata only (id, status, timestamps and the
    function's id, title and provider); retrieving a job, its results or
    its provider logs is authorized separately against the job's own
    provider and is unchanged.
  • GET /api/v1/jobs?filter=catalog&provider=<name> no longer returns
    500 Internal server error when the provider is given by name.

Changes