.. /* * This file is part of the SavaPage project . * Copyright (c) 2026 Datraverse B.V. * Author: Rijk Ravestein. * * SPDX-FileCopyrightText: (c) 2020 Datraverse B.V. * SPDX-License-Identifier: CC-BY-SA-4.0 * * For more information, please contact Datraverse B.V. at this * address: info@datraverse.com */ .. _ch-webapp-admin-queues: Queues ------ .. contents:: |RST_TABLE_OF_CONTENTS| :depth: 2 :local: .. _ch-webapp-admin-queues-list-intro: Introduction ~~~~~~~~~~~~ Queues are Print-in channels for acquiring :ref:`SafePages `. .. note:: :ref:`Rate Limiting ` is applied to unauthorized access and invalid requests. .. _ch-webapp-admin-queues-list: Queue List ~~~~~~~~~~ After a *tap* on the |RST_BUTTON_QUEUES| button in the main menu this panel is shown. See :ref:`Menu `. .. _ss-admin-queue-list: .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-list.png :alt: Admin Web App: Queue - List :width: 400 Admin Web App: Queue - List - All non-deleted queues are listed alphabetically by default. A different selection and sorting can be entered: see :ref:`Admin Web App: Queue - Select and Sort `. - Press the |RST_BUTTON_NEW| button to create and :ref:`edit ` a new queue. - The list can be traversed by tapping one of the buttons at the *pager* at the top or bottom of the page. - An entry is displayed for each queue, with identifying data and some usage statistics. From top to bottom: - The queue's trust or status (at the top right corner). - The URL Path of the queue. The path is relative to the :ref:`/printers ` URL base. - An inline Line-Graph showing the day pagometers of the printed pages over the last 30 days. - The full IPPS :ref:`URL variant ` of the queue. - SavaPage takes the first IPv4 address of the first network interface on the server platform as URL host. You can overrule this behavior by setting a fixed IPv4 address or DNS name in configuration item ``system.server.dns-name``. - Optionally, the allowed client IPv4 and/or IPv6 addresses as a :ref:`CIDR Set `. - The period in which activity was accumulated on the pagometer. - The pagometer of the queue including the number of jobs and bytes printed. - Tap the |RST_BUTTON_EDIT| button to change or delete the queue. See :ref:`Edit Queue ` - The |RST_BUTTON_LOG| button brings you to the list of documents printed to the queue. See :ref:`Admin Web App: Document - List ` .. note:: Due to :ref:`Admin Privileges ` certain buttons might *not* be visible. .. tip:: The pagometers of all queues can be reset at :ref:`Options > Advanced > Reset Pagometers ` When applicable, the following icons are shown: .. table:: Queue Icon +-----------+----------------------------------------------------------------+ | |image30| | IPP Printer Queue. | +-----------+----------------------------------------------------------------+ | |image31| | Basic Authentication enabled. | | | | | | - See :ref:`Edit Queue `. | +-----------+----------------------------------------------------------------+ | |image32| | |QUEUE_JOURNAL| enabled. | | | | | | - See :ref:`this section `. | +-----------+----------------------------------------------------------------+ .. _ch-webapp-admin-queue-journal: |QUEUE_JOURNAL| ^^^^^^^^^^^^^^^ The |QUEUE_JOURNAL| is the ``doc.store.journal.in.print`` branch of the :ref:`Document Store `. It must explicitly be enabled. .. _ch-webapp-admin-queues-list-select-sort: Select and Sort ^^^^^^^^^^^^^^^ .. _ss-admin-queue-select-and-sort: .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-select-and-sort.png :alt: Admin Web App: Queue - Select and Sort :width: 400 Admin Web App: Queue - Select and Sort - Queues can be selected by entering the containing text (fragment) of their URL Path |RST_GUILABEL_NAME|. - Select the queue's |RST_GUILABEL_TRUST| and (|RST_GUILABEL_DELETED|) |RST_GUILABEL_STATUS|. The |RST_BUTTON_MINUS_SYMBOL| button will select both option values. - The list can be sorted |RST_BUTTON_ASCENDING| or |RST_BUTTON_DESCENDING| on URL Path Name. - *Tap* the |RST_BUTTON_APPLY| button to (re)display the list. - A *tap* on the |RST_BUTTON_DEFAULT| button resets the selection and sort fields to their default values. .. _ch-webapp-admin-queue-edit: Edit Queue ~~~~~~~~~~ .. _ss-admin-queue-edit: .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-edit.png :alt: Admin Web App: Queue - Edit :width: 400 Admin Web App: Queue - Edit - The |RST_GUILABEL_URL_PATH| is editable for non-reserved queues. Renaming the URL path name will permanently overwrite the old name in all related job history records with the new name. - In response to an IPP Get-Printer-Attributes request the “printer-name” and “printer-make-and-model” are returned as “SavaPage-urlpath”. So, in this example the IPP printer-name will be “SavaPage-public”. The UUID of the Queue, in this case ``4b357fd2-23a2-4b6d-947d-316e21e66c95``, is used for IPP attribute “printer-uuid”. - Enter IPv4 and/or IPv6 address ranges as a :ref:`CIDR Set ` at |RST_GUILABEL_IP_ADDRESSES_ALLOWED| to restrict access to the queue based on requesting IP address. If the field is empty all requesting IP addresses from private networks are allowed to print to the queue [6]_ . See :ref:`HTTP XFF Header Settings `. - For |RST_GUILABEL_AUTHENTICATION|, select the |RST_BUTTON_NONE| option to make this a :ref:`Trusted Queue `. If this option is *not* selected, the queue will be a :ref:`Public Queue ` with :ref:`Standard IP Based Authentication ` or :ref:`Basic Authentication `. - |RST_GUILABEL_IPP_ROUTING_OPTIONS| are discussed in the :ref:`section below `. - Tick the |RST_CHECKBOX_DISABLED| checkbox to disable access to the queue for all users. - When the Queue |RST_GUILABEL_JOURNAL| function is enabled it can be |RST_CHECKBOX_DISABLED| for this queue. See :ref:`Document Store `. - Tick the |RST_CHECKBOX_DELETE| checkbox to delete the Queue. This will be a logical delete as long as related job history is present. Any logical deleted Queue will be physically deleted from the database when no related job history is present anymore. This situation will automatically occur when you enabled automatic backup in combination with the delete of old document logs. See :ref:`Backups `. - Press the |RST_BUTTON_OK| button to commit the changes and return to the Queue List. - The |RST_BUTTON_CANCEL| button brings you back to the Queue List without changing anything. .. important:: Some reserved queues like |WEBPRINT| and |MAILPRINT| can not be edited. Other reserved queues like :ref:`AirPrint ` and :ref:`Internet Print ` are untrusted by nature, hence Authentication |RST_BUTTON_NONE| cannot be selected. .. note:: IPP printing from public IP addresses is denied by default. You can override this behavior by setting specific public IP address ranges at |RST_GUILABEL_IP_ADDRESSES_ALLOWED|. .. [6] `IANA `__ reserved the following :ref:`CIDR ` ranges for private networks: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16. .. _ch-webapp-admin-queue-ipp-routing: |IPP_ROUTING| ~~~~~~~~~~~~~ With |IPP_ROUTING| the PDF of incoming PostScript documents on a **non** :ref:`reserved ` and :ref:`driver-print ` Queue is routed to a :ref:`Proxy Printer `. There are two options for referring to this printer: 1. |RST_BUTTON_TERMINAL| : refers to the |RST_GUILABEL_SINGLE_PRINTER| Target in the |RST_BUTTON_CUSTOM_PROXY_PRINT| of the :ref:`Terminal ` that matches the client IP address. 2. |RST_BUTTON_PRINTER| : refers to the printer as configured in this |IPP_ROUTING| dialog. If the ``ipp.routing.enable`` configuration property and both ``ipp.routing.*.enable`` options are enabled (see table below), the following section appears in the :ref:`Edit Queue ` dialog: .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-edit-ipp-routing-terminal.png :alt: Admin Web App: Account - List - Select and Sort :width: 400 Admin Web App: Queue - IPP Routing Terminal Options Select the |RST_BUTTON_TERMINAL| option to enable “IPP Routing by Terminal” for this Queue. .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-edit-ipp-routing-printer.png :alt: Admin Web App: Queue - IPP Routing Printer Options :width: 400 Admin Web App: Queue - IPP Routing Printer Options Select the |RST_BUTTON_PRINTER| option to enable “IPP_Routing to Printer” and enter the target printer using the quick search field below it. Optionally enter an IPP key/value map in ``JSON`` format to override printer defaults. In this example IPP attribute ``media-source`` is assigned value ``tray-1``. .. important:: Use IPP attributes for routing and optionally use :ref:`PPD to IPP Mappings ` in the printer :ref:`PPD Extension File ` for the target printer. For example: .. code-block:: json {"copies":"1", "media-color":"white", "print-color-mode":"monochrome", "sides":"two-sided-long-edge", "media":"iso_a4_210x297mm"} .. note:: If |IPP_ROUTING| leads to a |JOBTICKETPRINTER| or to a :ref:`Hold Print Mode ` Printer, the print job is handled accordingly. |IPP_ROUTING| Queues are marked with a small printer icon in the :ref:`Queue List ` with an additional icon in case of an |IPP_ROUTING| Printer Queue. .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-list-ipp-routing-terminal.png :alt: Admin Web App: Queue - List - IPP Routing: Terminal Queue :width: 400 Admin Web App: Queue - List - IPP Routing: Terminal Queue .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-list-ipp-routing-printer.png :alt: Admin Web App: Queue - List - IPP Routing: Printer Queue :width: 400 Admin Web App: Queue - List - IPP Routing: Printer Queue .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-list-ipp-routing-printer-hold.png :alt: Admin Web App: Queue - List - IPP Routing: Printer Hold Queue :width: 400 Admin Web App: Queue - List - IPP Routing: Printer Hold Queue .. figure:: ../images/manual/screenshots/admin/sp-01-03-queue-list-ipp-routing-printer-jobticket.png :alt: Admin Web App: Queue - List - IPP Routing: Job Ticket Print Queue :width: 400 Admin Web App: Queue - List - IPP Routing: Job Ticket Print Queue For a sample screenshot of the financial transaction see :ref:`User Web App: Log - IPP Routing Transaction `. .. list-table:: Configuration Properties for |IPP_ROUTING| :width: 100% :widths: 20 80 :header-rows: 1 * - Configuration property - Description * - ipp.routing.enable - Enable |IPP_ROUTING|: ``Y`` or ``N`` (default). * - ipp.routing.terminal.enable - Enable |IPP_ROUTING| to Terminal: ``Y`` (default) or ``N``. * - ipp.routing.printer.enable - Enable |IPP_ROUTING| to Printer: ``Y`` (default) or ``N``. See |RST_LINK_CONFIG_EDITOR| on how to set these items. .. important:: :ref:`IPP Routing Plug-in ` instances are called on an |IPP_ROUTING| event, just before the PDF is send to the |PROXYPRINTER|. These plug-ins edit the PDF, for example by adding a header, footer and `QR code `__ image. .. _ch-webapp-admin-queue-ipp-routing-script-terminal: |IPP_ROUTING| Script - Terminal ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Alice logs into a computer at the Reception. - The computer has fixed IP address 192.168.1.50 2. Alice prints the “Sales Report” document to |PRODUCT_NAME| Queue ``/tray1`` 3. The PostScript content is received by |PRODUCT_NAME| and converted to PDF. 4. |PRODUCT_NAME| notices that ... - ``/tray1`` is configured for IPP routing. - The requester's IP address 192.168.1.50 is linked to Terminal “Reception”. - Terminal “Reception” defines a Custom Proxy Print to the Single Printer Target “HP-Reception”. 5. |PRODUCT_NAME| decides to print the PDF to Proxy Printer “HP-Reception”. 6. |PRODUCT_NAME| notices that an :ref:`IPP_Routing Plug-in ` instance is present. Therefore, it calls the plug-in with the print job parameters (User id "Alice", Client IP address 192.168.1.50, CUPS printer name “HP-Reception”, Print Job Name “Sales Report”, date/time of the print) together with the PDF to be printed. 7. The |IPP_ROUTING| Plug-in calls a RESTful service of a third-party QR code provider, passes the print job parameters, obtains the QR code in return, and draws an image of the QR-code on the PDF to be printed. 8. |PRODUCT_NAME| prints the PDF as edited by the |IPP_ROUTING| Plug-in to Proxy Printer “HP-Reception” using the |IPP_ROUTING| Options of ``/tray-1``. 9. Alice collects the printed “Sales Report” document from the “HP-Reception” printer next to her desk. .. _ch-webapp-admin-queue-ipp-routing-script-hold-printer: |IPP_ROUTING| Script - Hold Printer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Bob logs into the :ref:`User Web App ` to make sure he can print to untrusted SavaPage Queue ``/tray2`` with :ref:`IP Based Authentication `. 2. Bob prints the “Sales Report” document from his BYOD to ``/tray2``. 3. |PRODUCT_NAME| notices that the requester's IP address 192.168.1.51 is authenticated and converts the PostScript content to PDF. 4. |PRODUCT_NAME| notices that ``/tray2`` is configured for |IPP_ROUTING| to Printer “RICOH-PRO-8310-MOD”. 5. |PRODUCT_NAME| notices that “RICOH-PRO-8310-MOD” is a :ref:`Hold Print Mode ` Printer and holds the print job using the IPP_ROUTING Options of ``/tray-2``. 6. Bob walks to the “RICOH-PRO-8310-MOD” printer and swipes his NFC token along the reader next to it. As a result the held job is printed. .. _ch-webapp-admin-queue-ipp-routing-script-jobticket: |IPP_ROUTING| Script - Job Ticket Printer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Alice prints 100 copies of the “Event Flyer” from her BYOD to untrusted |PRODUCT_NAME| Queue ``/tray3`` with :ref:`Basic Authentication `. 2. A dialog pops up and Alice enters her user name and password. SavaPage notices that the requester's IP address 192.168.1.52 is authenticated, that Alice has role :ref:`Job Ticket Creator ` and converts the PostScript content to PDF. 3. |PRODUCT_NAME| notices that ``/tray3`` is configured for |IPP_ROUTING| to Printer “TICKET”. 4. |PRODUCT_NAME| notices that “TICKET” is a Job Ticket Printer and uses the |IPP_ROUTING| Options of ``/tray-3`` to create a Job Ticket assigned to Alice. 5. Bob is a :ref:`Job Ticket Operator ` in the Print Room. He notices Alice's Job Ticket in the :ref:`Job Ticket Web App `, approves the ticket and prints the job to one of the printers in the room. 6. Alice walks to the Print Room to pick up the printed result. .. _ch-webapp-admin-queues-reserved: Reserved Queues ~~~~~~~~~~~~~~~ Dedicated queues are reserved and pre-installed for: - The default IPP “``/``” queue. - The Raw IP Printer (Port 9100) queue “``/raw``” - :ref:`AirPrint ` - :ref:`Mail Print ` - :ref:`Web Print ` - :ref:`Internet Print ` - :ref:`RESTful Print ` .. /* * Images */ .. |image30| image:: ../images/manual/savapage-ipp-printer.png :width: 16px .. |image31| image:: ../images/manual/famfamfam-silk_user_gray-no-alpha.png :width: 16px .. |image32| image:: ../images/manual/journal-32x32.png :width: 16px