Designed to perform a group of coordinated functions, tasks, or activities for the benefit of End Users, a Platform 6 application runs on a Platform 6 instance and is composed of:
- Service items related to built-in services (such as scripts, routes, workflow steps, views, reports…) - and custom services if applicable.
- Any additional bundled resources such as custom Java JAR files, data files (CSV, Excel…) that are used by service items.
- Custom services (optional)
An application publisher or app publisher is any entity creating, packaging and distributing a Platform 6 application.
An application profile is a file with an .app extension that contains a signing key, a unique application key and general information about the application publisher.
The application profile is used to uniquely name all service items created with Platform 6 while developing a given application.
An application profile must be installed on a Platform 6 instance to allow (i) the creation of services items linked to the application and (ii) the packaging of the application. There can be one or more of these application profiles on any P6 Instance.
Some time ago, P6 Core used to be called b2box. As habits tend to stick, don’t be surprise if you hear or read the word (specially when referring to versions inferior to 6.0).
The data exchange between Platform 6 services is conducted through what is called common messages. A common message is a generic message with headers and attachments. It consists of a unique identifier, the sender’s identifier and content.
Common Message Bus¶
A P6 instance is the logical deployment unit of Platform 6; it comprises:
- A P6 Core instance, composed of several specialized services (known as Platform 6 built-in services), communicating via the P6 Common Message Bus and exposed to the outside world via a REST API
- A PostgreSQL database for persisting service items, transactions and workflow tasks.
P6 Console (also known as P6 Management Console or P6 MC) is the solution available via platform6.io (or directly at console.platform6.io) where any organization using Platform 6 can create and manage its account(s).
P6 MC is part of the Platform 6 Infrastructure.
P6 Core is the basic unit of deployment that any organization using Platform 6 shall install and run (or have installed and run by a third party).
P6 Portal is Platform 6’s default user interface for administrators, application developers and end users. It’s the easiest unified access to manage one or multiple Platform 6 instances (potentially belonging to different organizations).
P6 Portal is part of the Platform 6 Infrastructure.
P6 Sync is a utility that can extract configuration (Scripts, Routes, Data Models etc.) from one or more Platform 6 instances and represent them as file(s) on a developer’s desktop filesystem.
Package an Application¶
Packaging an application means bundling the application’s components in a container for installation on multiple Platform 6 instances or distribution to other companies.
Packaged/Unpackaged Service Item¶
A packaged item is a service item with an none empty application key, thus belonging to a specific P6 application.
If you do not intend to distribute the items you create locally on your instance, you can leave them un-associated to any P6 application. Hence, an unpackaged item is a service item with an empty application key.
A permission is a string of characters structured as follows
feature=action and which allows the user to perform a specific action on a specific feature.
Platform 6 Infrastructure¶
A service is a discrete unit of functionality that can be accessed remotely via a RESTful API or via P6 Portal. It can be acted upon and updated independently.
Platform 6 offers built-in services (like Scripts, Routes, Workflow Steps…) and supports the creation of custom services.
A transaction is an electronic business document exchanged between different organizations or trading partners. Transactions flow in the system through routes.
A transaction uses the following concepts:
- a data model, used to validate the transaction content when conducting operations (ie. saving, importing).
- a data type, used to distinguish the transaction using a typology. Used inside the view definition to filter on this data type.