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¶
- 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.

- 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 onView allat the bottom right.

- The
Explore menuitem provides an overview of the functions. To receive a pickup job, click onPickup Jobsand scan the QR code on the printer to start printi

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

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

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

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

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¶
- MDM (preferred) – Key:
sealClientUrl, retrieved via platform channel - Manual fallback – Enabled via
allowManualUrlConfigFallbackin 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 |