Skip to content

v.5.152.0#

Changes

  • New Serving service has been added, which allows adding external HTTP services to the platform, making them available to users through a unified API service — without needing to access them directly.

    Serving saves users from manual configuration of load balancing, routing, and authorization: just register the service. All requests go through the API with authorization verification (BasicAuth or BearerAuth). Additionally, blacklists and whitelists can be configured in the token to restrict access to services.

    For example, integrating with LUNA Streams previously required writing a plugin. Now LUNA Streams can be used as a user service, which significantly simplifies the process.

    Key features:

    • Registration of user services via the Admin service (a unique name and address(es) are required; a description and public access to the service are optional).
    • Dynamic Traefik configuration — Serving provides the HTTP endpoint /traefik_config, which returns the current load balancer configuration based on registered services. Traefik offers a variety of settings, including an HTTP server polling interval, which defaults to 5 seconds. This means that after registering a service, it may take up to 5 seconds for it to become available for proxy requests.
    • Request proxying — After registering and updating the Traefik configuration, a user can access their service by requesting the /service-proxy resource in the API service. All request data will be sent to the Traefik load balancer, which will then forward it to the target service.

    Settings for interaction with the Traefik load balancer have also been added to the API service: BALANCER_ADDRESS and BALANCER_TIMEOUTS.

    For more information, see Serving Service and Serving service settings.

  • New permissions set in the token, service and service_usage, have been added.

    The service permission controls access to the /6/service resource and allows creating, viewing, and deleting user services.

    The service_usage permission controls access to proxying requests to user services (/6/service/{service_name}/proxy) and allows configuring whitelists and blacklists of service names.

    See the description of the create token request.

  • Pagination support has been added to requests for getting a list of objects or images from a folder (get list of folder images, get list of folder objects).

    Previously, all objects were returned at once when a request was made. If a folder contained a large number of objects (e.g., tens of thousands), this created excessive load on the server and led to increased response times.

    Now, objects can be retrieved in parts by specifying the limit parameter (the maximum number of objects per request) and continuation_token (a token for retrieving the next page). The token is returned in the X-Luna-Continuation-Token response header.

    Use example:

    • The user sends the first request with the parameter limit=100 (get the first 100 objects). In the response, the server returns the first 100 objects and the X-Luna-Continuation-Token header with the token value (e.g., "1ueGcxLPRx1Tr/XYExHnhbYLgveDs2J/wm36Hy4vbOwM=").

    • To get the next 100 objects, the user makes a second request, adding the continuation_token parameter with the X-Luna-Continuation-Token value returned by the server.

    • When all objects have been returned, the server returns an empty token ("").

  • The ability to run the Video Agent service in autonomous mode has been added.

    In this mode, the user has access to Video Agent to create and manage streams (see requests for the /streams resource of the Video Agent service) without using the Video Manager service included in the platform. This allows the use of Video Agent in cases where, for some reason, Video Manager is not available.

    However, there are a number of limitations compared to working via Video Manager: the following functionalities are unavailable — splittable streams, schedule templates, stream distribution between agents, stream grouping and automatic stream restart if the server on which the agent is running is unavailable.

    New settings for running agents in autonomous mode have also been added:

    • LUNA_VIDEO_AGENT_SETTINGS.max_direct_streams — the maximum number of simultaneous streams the agent can handle directly (an integer ≥ 0). Default value: 2. If set to 0, the agent will not process streams directly (i.e., autonomous mode is effectively disabled);
    • LUNA_VIDEO_AGENT_STREAMS_AUTORESTARTER_INTERVAL — the automatic stream restart interval;
    • LUNA_VIDEO_AGENT_LOGS_CLEAR_INTERVAL — the log clearing interval.

    For more information, see Autonomous Mode of Video Agent Service.

  • A warning has been added to the OpenAPI specification for the create stream request: using the stream type with a video file reference can lead to unexpected behavior (for example, endless file processing).

    The videofile type is intended for working with video files. If for some reason you must use the stream type, set the behavior_parameters.eof_retry.attempt_count = 0 parameter to disable reconnection attempts after reaching the end of the file.

  • The Video Agent service now supports switching to the previous version of the Liveness and Deepfake algorithms via the Configurator settings.

    Previously, changing the algorithm version required manually editing the configuration file inside the container. Version management has now been moved to the Configurator settings: the version parameter has been added to the LUNA_VIDEO_AGENT_LIVENESS_ESTIMATOR_SETTINGS and LUNA_VIDEO_AGENT_DEEPFAKE_ESTIMATOR_SETTINGS parameter groups. This parameter accepts integer values: 0 — the default algorithm version is used.

    This simplifies setting up and testing different versions of the algorithms. For more information, see Managing Liveness and Deepfake neural network versions.

  • The set of acceptable characters for stream names has been expanded.

    Previously, stream names could only contain Latin letters, numbers, hyphens, and underscores. This restriction has now been removed.

    See the descriptions of the create stream, put stream, and get streams requests.

  • New series have been added to the Streams Retranslator service monitoring: retranslate_stream_started and retranslate_stream_stopped, which record the start and end of the stream retranslation process.

    For more information, see the "Monitoring" section of the developer manual.

  • The ability to create a lambda in a disabled state (without immediately running) has been added.

    To achieve this, the disabled parameter has been added to the create lambda, put lambda, and import lambda requests. The parameter accepts the following values:

    • false — the lambda is loaded and runs immediately (default behavior);
    • true — the lambda is loaded in a disabled state. This allows you to first load the lambda, make sure that it is created without errors, and only at the right moment run it using the request switch lambda.
  • Now the user can independently specify which stream groups their Agent lambda will process.

    To do this, in the user_config section of the lambda, pass the luna_video_agent_groups parameter specifying the desired stream groups. This will override the LUNA_LAMBDA_AGENT_UNIT_GROUPS value in the Configurator.

    See the User settings section of the developer manual and description of create lambda, put lambda, import lambda and update lambda config.

  • The method for installing dependencies for lambda development has changed.

    Now, instead of manually installing individual dependencies, it is recommended to use the luna-lambda-package-helper library with the corresponding extension. It contains all the necessary libraries with with properly limited versions, ensuring correct lambda operation.

    Available extensions:

    • base — for the lpa-lambda-base image;
    • lambda — for the Lambda service;
    • agent — for the lpa-lambda-agent-base image;
    • fsdk — for the lpa-lambda-base-fsdk image.

    For more information and examples, see the "Luna lambda tools" section of the developer's guide.

  • The Lambda - base image requirements section of the Lambda developer documentation has been updated to include a description of the FSDK_ROOT environment variable for specifying the path to the FSDK.

  • The Lambda service now supports using uv as a dependency installation tool.

    Using uv is a more modern and performant way of managing dependencies, which can be useful for specific tasks (for example, compatibility issues with poetry).

    Note: The methods for installing dependencies via poetry and pip remain available.

    See the Python dependencies section in the Lambda service developer guide.

  • The pod_count parameter has been added to the patch lambda request.

    This parameter allows you to change the number of lambda pods (range: 0 to 32). Previously, this parameter for an existing lambda could only be changed via the put lambda request, but without the option to set it to 0. Setting pod_count: 0 will stop the lambda.

  • Starting with the current version of LUNA PLATFORM, generated lambdas ignore unknown configuration parameters, allowing them to function correctly when new parameters are added in future updates.

    However, previously created Agent-type lambdas may stop working, requiring updates. To update them, use the "update lambda" request.

  • A new parameter LUNA_BUILDER_BUILD_SETTINGS.K8S_BUILD_TASK_LIMIT has been added to the Builder service.

    This parameter limits the number of Docker image build tasks processed by a single Builder instance. If multiple Builder instances are running on the system, the setting applies to each instance independently (i.e., it limits the number of tasks for a specific instance, not the total number of tasks in the cluster). Valid values ​​are integers from 1 to 128; the default value is 10.

    See the Kubernetes cluster requirements section of the Builder service developer guide.

  • Support for matching general events (general_events) has been added to LUNA Vector Search Module — previously this feature was available only for regular events (events).

    When creating collections with the general_events object type, you must explicitly specify the descriptor parameters: descriptor_length and plat_scaling (for collections of the events type, these parameters are set automatically).

    For more information, see the Collections section in the LUNA Vector Search Module documentation.

Fixed errors

  • Fixed an error when create stream with the group_name specified if one or more fields in the location were explicitly set to null.

    Previously, such a request failed with error code 12022 and a detailed description of the problematic field.

  • Fixed an issue where extra parameters could be passed to analytics.parameters in a create stream request.

    Such parameters had no effect on processing, but could be misleading. Now, only parameters, callbacks, and targets are allowed in the analytics.parameters object. Passing any other additional fields will result in a validation error.

  • Fixed an issue where feedback was being sent too frequently in the Video Agent service: previously, the in_progress status was sent for every frame being processed, which created an excessive load on the system.

  • Fixed an issue with incorrect stream status display.

    Previously, if one analytics was paused while others were running, the entire stream's status would sometimes erroneously display as paused (instead of in_progress). Additionally, when all analytics were paused, the stream's status would cycle between in_progress and paused.

  • The previously missing retransmission_fallback and max_direct_streams parameters have been added to the LUNA_LAMBDA_AGENT_UNIT_SETTINGS settings group.

    • retransmission_fallback enables a mechanism for retransmitting streams using MediaMtx to expand compatibility with previously unsupported formats (e.g., WebRTC). See the "Retransmission fallback" section of the Video Agent service developer guide.
    • max_direct_streams defines the maximum number of simultaneous streams the agent processes in autonomous mode. For more information, see Autonomous Mode of Video Agent Service.

    These settings are similar to the Video Agent service settings of the same name.