Repository navigation
v0.35.1
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) andMAX_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.mdhas 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 with500 Internal server error. The gateway now accepts
request bodies of up to 50 MB, and reports going over that as
413 Request Entity Too Largenaming the limit.
- Raised the maximum length of the arguments validated against a
function'sarguments_schemafrom 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 theQISKIT_IBM_PRIVATE_ENDPOINT
environment variable, forwarding it toQiskitRuntimeServiceas
private_endpoint. Previously the helper ignored it, so a Qiskit
Function configured for a private endpoint still connected through
public URLs. Set it totrueand 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/providernow 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 errorwhen the provider is given by name.
Changes
- update-version-0.35.1 @github-actions[bot] (#2432)
- Bump the gateway-dependencies group in /gateway with 3 updates @dependabot[bot] (#2430)
- Stabilize the flaky uniqueItems CPU budget test Alberto Vilches (@avilches) (#2426)
- Update boto3 requirement from >=1.43.72 to >=1.43.78 in /tests in the tests-dependencies group @dependabot[bot] (#2428)
- Wrap job creation in a database transaction Alberto Vilches (@avilches) (#2414)
- Allow get_runtime_service to use a private endpoint Marcelo Carneiro do Amaral (@marceloamaral) (#2424)
- Adapt the instances suite to function ownership granting the provider operations Alberto Vilches (@avilches) (#2425)
- Fleets: inject private URLs into job containers Elena Peña Tapia (@ElePT) (#2415)
- Fix/provider function author upload Dhruval P (@dpatel-ops) (#2397)
- Set an explicit request body size limit and report going over it as 413 Alberto Vilches (@avilches) (#2419)
- Simplify the release note for the removed default_compute_profile field Alberto Vilches (@avilches) (#2423)
- Keep the default_compute_profile column so a previous release can still be deployed Alberto Vilches (@avilches) (#2420)
- Scope provider job listings to the requested provider Dhruval P (@dpatel-ops) (#2416)
- T-shirt sizes - Adding models to the gateway ItamarGoldman (#2386)
- Arguments validation/docs: fix release note + spec Alberto Vilches (@avilches) (#2413)