specs/overview/S_PLAYER

Tulip Player

The Tulip Player is an Electron-based application built by Tulip for operators to run Tulip apps. These apps are created on the "App Editor" Page.

Once installed on a device and configured by a user with "create" permissions for Stations, it can run the set of apps and versions that are determined by the "Shop Floor" Page.

The Tulip Player is meant for "production" use cases, in other words, for running the published versions of apps in order to store production data.

Here are the environments that can run the Tulip Player:

Operating SystemMethodRequirements
WindowsDownloadable Application from Tulip WebsiteWindows 10, 64 bit processor, 4 GB RAM
WindowsChrome BrowserWindows 10, 64 bit processor, 4 GB RAM
MacOSDownloadable Application from Tulip Website64 bit processor, 4 GB RAM
MacOSChrome Browser64 bit processor, 4 GB RAM
iPadOSSafari browserRecommend testing for each class of device you intend to use.
iOSSafari browserRecommend testing for each class of device you intend to use.
AndroidDownloadable Application from Google Play StoreAndroid OS 5.1 or later. Recommend testing for each class of device you intend to use.
Thin ClientsDownloadable Application from Tulip WebsiteRecommend testing for each class of device you intend to use.

It supports the following devices on Windows with no external configuration:

  • RFID Scanners
  • Some barcode scanners
  • The default camera on the device running the Player
  • USB Footpedals

It supports the following devices on Android, macOS, iOS, iPadOS:

  • Barcode scanners that output as a keyboard

Initialization Process

The Tulip Player can be opened via two methods:

  1. By a machine via a URL string
  2. By a human on their computer's desktop or internet browser

By Machine

This method does not require authentication. The Player is automatically authenticated when it is installed on the machine, and can be opened via a URL string through other programs on the machine that the user has the appropriate credentials to access.

Human Input

There are two ways to initialize the Player via human input- either via the credentials of a Tulip user or via a single-use link that is provided by a Tulip user.

  1. Download the Tulip Player from download.tulip.co.

Tulip User Authentication

  1. Launch the Tulip Player Application on your tablet, laptop or phone.
  2. Type your Tulip account name into the open window (Ex: 'my_instance'.tulip.co is the account name)
  3. A user with "create" permissions for stations must enter their email and password to authenticate the device.
  4. Name the device (e.g 'Station 1 Touchscreen')
  5. Choose an existing Station or create a new one.
  6. If you would like to run the "Development Version" of the app in the Player, you must open up the "Shop Floor" page in Tulip and change the Station settings to run the "Development Version" of all permitted apps.

Operator Authentication

  1. Click the single-use Registration Link that has been provided by a Tulip user.
  2. Enter your badge ID to prove your identity.
  3. Name the device (e.g 'Station 1 Touchscreen')

Running Applications on the Tulip Player

The Tulip Player collects data from applications that were originally created by Tulip users. App data is stored in the Tulip database when the app is "completed". An app is "completed" when a Trigger with the "Complete App" transition is executed.

Once data is stored from an application, it cannot be modified or deleted. The main components of the Tulip Player:

  1. The menu screen - Individual apps are shown according to their location in the nested hierarchy of app groups. From this screen an operator can:
    • Change their preferred language
    • Sign out - When a user logs out the display will show the login screen. To login an operator must again input their username and password.
    • Search for an app by name (note, only apps assigned from the stations UI show up in this menu)
    • Mute Sounds - Mute all default sounds that are created by navigation buttons while running apps in the Player
  2. Timed Logout - If there are no user UI actions (button presses), or device inputs (barcode scanners), for a predetermined amount of time, the display will log the user out and show the login screen. The amount of time is determined on the Account Settings Page.
  3. Saving Data - Any time an application is run to completion a core data set is captured and stored in the database, along with any other variables that the User has configured to store into the application. For more information see the Application Audit Trail doc.

Page Connections

The Tulip Player Menu can be accessed by pressing the "Menu" button within any running Tulip app.

Model Connections

Here's how apps run in the Player can manipulate different Models in the Tulip system.

User

View

  • Within apps, a user can view all the values within User Fields associated with users that are included in an Embedded Table Widget.
  • Within apps, a user can view the name of the logged-in user via the Variable Text Widget.

Edit

  • Within apps, a user can edit the values of each individual User Field for a given user if they fire a Trigger with relevant actions.

Table

View

  • Within apps, a user can view an entire table via the Embedded Table Widget.

Table Record

View

  • Within apps, a user can view a single Table Record via the Table Record Text Widget.
  • Within apps, a user can view many Table Records from a single Table via the Embedded Table Widget.

Edit

  • Within apps, a user can edit the values of a Table Record when they run a Trigger with relevant actions.

Create

  • Within apps, a user can create a Table Record when they run a Trigger with relevant actions.

Delete

  • Within apps, a user can delete a Table Record when they run a Trigger with relevant actions.

Station

Create

  • A user can create a new station while they are initializing the Tulip Player by choosing "New Station" in the initialization flow and then entering a Station name.

View

  • Within apps, a user can view the name of the station where the app is being run via the Variable Text Widget.

Variable

View

  • Within apps, a user can view the value of the variable when the app is being run via the Variable Text Widget.

Step, Signature Step, Regular Step, Form Step

View

  • Within apps, a user can view the steps that they are sent to via Trigger logic.

Widget, Form Input

View

  • Within apps, a user can view Widgets and Form Inputs that have been embedded on the Step that they are currently viewing.

App Version Completion

Create

  • Within apps, a user can create an App Version Completion by firing a Trigger with a "Complete App" Transition.

View

  • Within apps, a user can view past App Version Completions via an embedded Table analysis.

Analysis

View

  • Within apps, a user can view analyses that are embedded on the current step via the Analysis Widget.

Player Device Mapping

Create

  • A user can create a new Player Device Mapping by clicking the "Tools" option in the navigation bar on a Windows operating system and selecting "Barcode Scanner".

Edit/View/Delete

  • A user can edit or replace a Player Device Mapping by clicking the "Tools" option in the navigation bar on a Windows operating system and selecting "Barcode Scanner" and then entering new values.

Player Install Details

These are the details associated with each unique install of the Player.

NameDescription
LanguageChoose the language for all the text in the Player Menu. Choices include English, German, Spanish, French, Italian and Japanese
App VersionThe installed version of the Tulip Player
DeviceThe name of this install of Tulip Player when referenced within Tulip
Serial NumberThe unique identifier for this install of the Tulip Player
Navigation AudioA boolean value to turn default navigation sounds on or off. This setting will inherit the global setting, but can be overitten.
Device Input LanguageChoose whether barcode scanners should attempt to output in English or the keyboard's default language
Clear All DataWhen a user chooses this option, all configuration settings will be discarded and a Tulip user will need to reauthenticate the Player as if it had just been installed for the first time

Tests

IDName
QA-T17User Management : 09 - Login to /player using new badge ID
QA-T62Variable widget : 07 - Testing variables and compound variables in app
QA-T98Record Placeholders : 04 - Load Table Records Trigger, and Table Record Widget
QA-T99Record Placeholders : 05 - Create and Load Table Record Trigger
QA-T100Record Placeholders : 06 - Table Data Tab
QA-T108Signature Step : 03 - Signature form should allow any user to submit it when configured so
QA-T109Signature Step : 04 - Signature form should allow only the current user to submit it when configured so
QA-T110Signature Step : 05 - Signature forms should only be submittable a single time per process run
QA-T112Signature Step : 07 - LDAP Signature Widgets should accept a correct username/password pair
QA-T135Custom Barcode Scanner : 01 - Add Custom Barcode Scanner dialog renders correctly (Windows)
QA-T137Custom Barcode Scanner : 02 - Add Custom Barcode Scanner validation works (Windows)
QA-T139Custom Barcode Scanner : 03 - Adding and removing devices (Windows)
QA-T140Custom Barcode Scanner : 04 - Vendor ID and Product ID fields can accept hexadecimal values (Windows)
QA-T148SQL Connectors : 02 - Add Function to SQL Connector
QA-T183Triggers - Print Using System Dialog Trigger
QA-T208Analytics - Analytics Widget
QA-T212General & Logs : 02 - Logs stored on user's OS (Windows)
QA-T213Toolbar functionality : 02 - About Dialog Box
QA-T219Player messages : 01 - Lost connection message
QA-T220Toolbar functionality : 01 - File, View, Tools
QA-T222Player registration : 01 - Registering Player
QA-T223Toolbar functionality : 03 - Developer options
QA-T224Proxy Testing : 1 - Auth'd credentials - with and without proxy (Windows)
QA-T225Touch and Scrolling : 2 - Onscreen Keyboard functionality
QA-T228Storage : 03 - Settings persist across restarts
QA-T230Localization : 08 - Localization - Proxy Login (Windows)
QA-T232Proxy Testing : 4 - Proxy Testing for Updater (Mac)
QA-T240HTTP Connectors : 02 - Add several functions to HTTP Connector
QA-T243Embedded Tables : 03 - Connect an embedded Tulip Table to a Table record
QA-T267User Roles : 08.1 / Viewers should be unable to run Apps or edit/modify Apps, Dashboards, and Analytics
QA-T299mobile : 17 - Camera Tests
QA-T305Configuration and Apps : 05A - Apps can use Vision Cameras and Regions
QA-T308Configuration and Apps : 07 - User permissions get checked when viewing video
QA-T312Configuration and Apps : 05C - Handling Plug Events and Player Online/Offline Events for Cameras page
QA-T314Configuration and Apps : 08B - Video stream keeps playing for 1 hour
QA-T332LDAP Tulip Managed : 02 - Users can log in via LDAP
QA-T334Stations Page - Player Authorization
QA-T335Stations Page - Station and Station Group Management
QA-T336Stations Page - Station App Configuration
QA-T337Stations Page - Live Preview and Player Control
QA-T347Form Step - Running the Form Step
QA-T349App Editor Misc - Player Menu
QA-T350App Editor Misc - Comments
QA-T372Single Install : 02 - Authentication
QA-T373Single Install : 01 - Login
QA-T374Single Install : 03 - Clear all data
QA-T375Single Install : 04 - Instance locking
QA-T376Device Drivers : 01 - Digital Caliper
QA-T394Configuration and Apps : 06 - Test Snapshot Feature with regions
QA-T404Configuration and Apps : 12 - Test Jig Enter/Exit region and Appear/Disappear events
QA-T415Driver Configuration : 03 - Enable Drivers from Factory (Mac)
QA-T422Localization : 05 - Player registration UI menu bar
QA-T423Configuration and Apps : 24 - Test color detection began/ended events
QA-T424Localizations : 01 - Pick Server
QA-T425Localizations : 04 - About dialog
QA-T426Localizations : 02 - Instance login
QA-T429Localizations : 06 - Update dialog
QA-T430Localizations : 03 - Network error page
QA-T431Device Drivers : 02 - Omega OS-MiniUSB temperature sensor
QA-T433mobile : 6 - Mobile Device Version Release
QA-T456Player messages : 02 - Unknown URL message
QA-T499Player registration : 02 - Running apps can change Player server
QA-T503Touch and Scrolling : 1 - Touch and Scroll tests
QA-T558Single Install : 06 - Migration to operator auth from badge Id mode
QA-T559Single Install : 05 - Migration to badge Id from operator auth mode
QA-T576Configuration and Apps : 18 - Test Person ROI enter and exit events
QA-T612Configuration and Apps : 16 - Test text detected events using OCR detector
QA-T614Configuration and Apps : 22A - Test datamatrix detected events using Datamatrix detector
QA-T633Edge IO : 01 - HDMI connection starts Player
QA-T634Edge IO : 02 - Player authentication with a mouse and keyboard
QA-T646Configuration and Apps : 20 - Test Barcode detected events using Barcode detector
QA-T651Signature Step : 07 / LDAP Signature Widgets should reject wrong/empty passwords
QA-T655LDAP Tulip Managed : 02 / Operators can't log into Factory via LDAP
QA-T665General & Logs : 01 - Quit hotkeys
QA-T666General & Logs : 03 - Logs stored on user's OS (Mac)
QA-T670Proxy Testing : 2 - Proxy Testing for Updater (Windows)
QA-T671Proxy Testing : 3 - Auth'd credentials - with and without proxy (Mac)
QA-T673General & Logs : 05 - Factory logger
QA-T674Storage : 01 - Storage path can be configured (Windows)
QA-T675Storage : 02 - Storage path can be configured (Mac)
QA-T676Update : 03 - Update from current prod version to new QA alpha version
QA-T677Update : 02 - Update from Beta version to Infinity release (Windows)
QA-T678Update : 04 - Update from Alpha version to Infinity release (Mac)
QA-T729HTTP Connectors : 06 - HTTP Connector Functions perform the same with TLS on/off
QA-T734Configuration and Apps : 04 - Test region filter in Factory
QA-T750Workspaces : 11 / - Failing to run an app from another workspace
QA-T751Workspaces : 12 / - Workspace owner cannot access other workspaces
QA-T752General : 03 - Windows digital signature
QA-T755General : 01 - Disable Developer Menu via Config file
QA-T805Android Only : 1 - Android - Hardware Back button takes you out of Tulip if Tulip Player not yet registered
QA-T806mobile : 31 - Mobile - Register Tulip Player
QA-T807Android Only : 2 - Android - Click on Hardware Back button before and after getting into an Open App
QA-T808Android Only : 3 - Android - Hardware Back button returns the user to App after navigating to a URL
QA-T809mobile : 34 - Mobile - Register Tulip Player on SAML enabled site
QA-T811mobile : 27 - Mobile - Using the Camera and QR Smoke Test App
QA-T837Display Devices Page : 06 - Shareable Link - One time use
QA-T838Display Devices Page : 07 - Shareable Link - Reusable Links
QA-T855General & Logs : 04 - Using the Camera on Player
QA-T857mobile : 51 - Join a Player Instance on a Mobile Device
QA-T866mobile : 46 - Settings drawer menu hides after logged in as Player user on Mobile Devices
QA-T867mobile : 45 - Settings drawer menu has a “Change Instance” option on Mobile Devices
QA-T870mobile : 20 - Support for Tulip URL deep linking on Mobile Device
QA-T874mobile : 24 - Viewport rotation tests of Tulip Player on Mobile Devices
QA-T875Update : 01 - Disable auto updates through global settings file (Windows)
QA-T910mobile : 19 - Login with Google
QA-T911mobile : 36 - Network Connection Detection - if WiFi is off
QA-T913mobile : 38 - Register device with link
QA-T915mobile : 50 - Open settings panel from within the Player settings
QA-T918mobile : 3 - Clear instance data
QA-T920mobile : 1 - App should open in horizontal view
QA-T923Embedded Tables : 03 / Only matching record placeholders can be selected
QA-T935Player registration : 03 - Registering Player with display device link
QA-T950mobile : 13 - Printing
QA-T1014Device Drivers : 03 - Zebra Printer - With LAN Port
QA-T1015Device Drivers : 04 - Telnet General
QA-T1020Device Drivers : 05 - Zebra Printer with Player Serial (RS232)
QA-T1036Device Drivers : 06 - Telnet - ZPL (Zebra) Printer
QA-T1039Driver Configuration : 02 - Disable Drivers from Factory (Windows)
QA-T1040Driver Configuration : 01 - Enable Drivers from Factory (Windows)
QA-T1070SSO : 01 - Azure AD SSO Integration
QA-T1122Configuration and Apps : 26 - Cognex Insight Camera - No Device Output, or Get Image
QA-T1159User Roles : 17.2 - Viewer (with Player Access) role - Player, Dashboards, Apps, Analytics
QA-T1163User Roles : 11.2 - Connector Supervisor role - Player, Dashboards, Apps, Analytics
QA-T1167User Roles : 12.2 - Tulip Table Supervisor role - Player, Dashboards, Apps, Analytics
QA-T1183User Roles : 13.2 - Station Operator role - Player, Dashboards, Apps, Analytics
QA-T1198User Roles : 14.2 - Station Supervisor role - Player, Dashboards, Apps, Analytics
QA-T1202User Roles : 15.2 - Administrator role - Player, Dashboards, Apps, Analytics
QA-T1206User Roles : 16.2 - Application Approver role - Player, Dashboards, Apps, Analytics
QA-T1212User Management: 21 - Account owner can register player
QA-T1217User Roles : 10.2 - Application Builder role - Player, Dashboards, Apps, Analytics
QA-T1236User Roles : 19.2 - Workspace Owner role - Player, Dashboards, Apps, Analytics
QA-T1255Misc Tests - Logged In User is displayed when logged into Factory and Player
QA-T1278Configuration and Apps : 14B - Test change detection
QA-T1355User Management: 21.1 - Account owner can assign player to an existing station

Requirements

IDRequirement
PLAT-8807 (32)All Users have to be uniquely identified.
PLAT-8874 (848)The ability to discern invalid or altered records. Ability to annotate data is changed. For GMP or critical data changes annotation can be configured as required.
PLAT-8883 (814)Ability to view, display and and print accurate and complete records, including any attachments, electronic signatures and their associated audit trails.
PLAT-8888 (811)All records, electronic signatures, and audit trails must be human readable and protected to ensure they are readily retrievable throughout a pre-defined retention period.
PLAT-8920 (802)All records shall be Original; all originally recorded data shall be maintained.
PLAT-8939 (35)Automatic logout user from system after a configurable amount of inactivity time.
PLAT-8946 (806)All records shall be Enduring, ie. stored, managed, accessible and unalterable for the full retention period.