Skip to content

PLOSSYS Mobile Client


Introduction

With the PLOSSYS Mobile Client, you can use your PLOSSYS Output Engine (formerly PLOSSYS 5) even more flexibly. The app allows you to start print jobs directly from your mobile device via PLOSSYS Output Engine and PLOSSYS Print Client. This enables you to design your mobile printing processes efficiently and securely. The focus is on seamless integration into your existing corporate infrastructure and meeting modern requirements for security and user-friendliness.


System Architecture

┌─────────────────┐
│  Mobile Client  │
│   (Flutter App) │
└────────┬────────┘
         │ HTTPS (OpenID Connect)
         ▼
┌─────────────────┐
│     Operator    │
│   (SEAL Server) │
└────────┬────────┘
         │ IPP
         ▼
┌─────────────────┐
│  Output Engine  │
└────────┬────────┘
         │ Print Jobs
         ▼
┌─────────────────┐
│     Printers    │
└─────────────────┘

Note

The Mobile Client communicates only with the Operator. There is no direct connection to the Output Engine.


Requirements


Key features

  • Mobile printing: The app allows you to send print jobs directly from your mobile device to company printers. You can use files on your smartphone or share output data from other apps via PLOSSYS Mobile Client.

  • Pickup printing: Print jobs are stored and only released at the printer once the user has authenticated themselves. Pickup printing increases the security of confidential documents and helps to reduce unnecessary printing.


Application

  1. When you start the app, log in with your username and password. If the server URL is not pre-filled, you will also need to enter it.

Logging in

  1. On the homepage, you will find jobs that are currently being printed and your most recently printed ones. For a complete list of all your printed jobs, click on View all at the bottom right.

Homepage

  1. The Explore menu item provides an overview of the functions. To receive a pickup job, click on Pickup Jobs and scan the QR code on the printer to start printi

The Explore menu item provides an overview of the functions.

  1. To start a print job directly, select Mobile Printing. You can upload one or more files here.

Mobile Printing

  1. Language, system design, printer settings, and server connection are managed via the Settings menu item. You can choose English or German as language.

Settings

  1. Under Custom Theme, you can choose between light or dark design for the app.

Custom Theme

  1. Under Print Settings, you can set the defaults for color mode, duplex printing, number of copies, etc.

Print Settings


Configuration via MDM

Example (iOS)

To configure the app via MDM, provide the following keys in your Managed App Configuration (Apple Plist format):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>sealClientUrl</key>
    <string>https://demo.operator.sealsystems.local/server-api/v1</string>

    <key>allowManualUrlConfigFallback</key>
    <string>false</string>
  </dict>
</plist>
Key Type Description
sealClientUrl String Base URL of the Operator server.
allowManualUrlConfigFallback Boolean (true/false) If true, the user can enter the Operator URL manually in the app. Set to false to enforce MDM-provided URL.

Note

The sealClientUrl must include the full path including /server-api/v1.


Authentication (OpenID Connect)

Parameter Value
Protocol HTTPS
Auth Method OpenID Connect
Discovery URL {baseUrl}/auth/realms/SEAL/.well-known/openid-configuration
Client ID seal-print-client
Client Secret IDP_CLIENT_SECRET (build-time)
Scopes openid, profile, email
Token Storage flutter_secure_storage

Base URL Configuration

  1. MDM (preferred) – Key: sealClientUrl, retrieved via platform channel
  2. Manual fallback – Enabled via allowManualUrlConfigFallback in MDM

API Endpoints

Service Discovery

GET /ui                          → Discover services (finds operator-p5)

Tasks (/services/operator-p5/tasks)

POST   /tasks                    → Create print task
GET    /tasks/{taskId}           → Get task status
POST   /tasks/{taskId}/action    → Start / pause / resume / abort
POST   /tasks/{taskId}/input     → Add file input
GET    /tasks?status={s}&embed=metadata

Pickup Jobs (/services/operator-p5/function/)

POST  getPickupJobs              → List pickup jobs
POST  moveJob                    → Move job to printer
POST  fetchJob                   → Get job details
POST  pauseJob / resumeJob / abortJob
POST  getOtpSeed                 → Get OTP seed

Printer & Config

POST  getCapabilities?params=Printer::{printerId}
GET   /services/operator-p5      → Service config schema
GET   /ui/{serviceId}            → Print config schema
POST  /function/{providedBy}     → Get printers / provided items

File Upload (/services/operator-fileupload/)

POST  /repo                      → Create file repository entry
PUT   /repo/{uuid}/content       → Upload file content

Communication & Error Handling

  • All traffic: HTTPS, Bearer token authentication
  • Token is refreshed automatically on expiry
HTTP Status Behavior
401 / 403 Automatic logout
500+ Error toast (rate-limited)
Network err Connection error message

Ports

Ports are part of the Operator URL – no separate config needed.

Setup Example URL Port
Standard HTTPS https://operator.example.com 443
Custom port https://operator.example.com:8443 8443

Back to top