Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Also see this tutorial to learn how to create an app in PIPEFORCE.

...

Typically, all properties (resources) of an app reside in the property store and having a property path with a prefix like this:

...

The path always starts with prefix global/app, followed by the name of the app <NAME>, whereas <NAME> must be a fully qualified, unique name as described below.

Qualified app naming

In order to avoid a naming clash with other apps from other users which could probably have the same naming as your app, as best practise, you should give the app always a name which follows the reversed domain name package conventions from the Java package specification, which works like this:

...

Info

The internet domain names of your app prefixes must be valid ones if you want your apps to become trusted in the marketplace.

App folders

Inside of an app path, there is a certain "folder" structure at top app level which defines the main resource types of an app. The typical folder structure looks like this (the folders could vary, depending on your setup):

...

Code Block
global/app/myApp/object/<NAME>/<VERSION>/schema

Whereas <NAME> is the name of the object.

...

Code Block
object/person/v1/schema

The schema property typically contains as value a JSON schema, which describes this object. For the person object, the schema could, for example, look like this:

Code Block
{
  "type": "object",

  "properties": {
    "firstName": {
      "type": "string"
    },
    "lastName": {
      "type": "string"
    },
    "age": {
      "type": "number"
    },
    "gender": {
      "type": "string",
      "enum": ["male", "female", "neutral"]
    }
  }
}

See the JSON schema specification for a description how to define JSON schema documents: https://json-schema.org/

...

Code Block
global/app/myApp/object/<NAME>/<VERSION>/instance/<UUID>

Whereas <NAME> is the name of the object.

...

Code Block
global/app/myApp/object/person/v1/instance/fa471958-fdb7-4bf6-a0a3-c5e8c782893e

Each instance property will contain as value the data of the object instance which matches the object schema, for example:

Code Block
{
  "firstName": "Homer",
  "lastName": "Simpson",
  "age": 48,
  "gender": "male"
}

/pipeline

This folder contains all pipeline configurations for the given app. A pipeline can be seen as the business logic part of an application.

...

Code Block
global/app/myApp/pipeline/informHR
global/app/myApp/pipeline/addToSAP
global/app/myApp/pipeline/addToActiveDirectory

Such a pipeline configuration could look like this:

Code Block
pipeline:
  - mail.send:
      to: hr@company.de
      subject: "A new employee was addded!"

/setup

This optional folder can contain pipelines. These pipelines will be executed in case the app will be installed using the app.install command.

...

Code Block
global/app/myApp/workflow/approveNewEmployee

App development

In its simple case you can manage all properties of an app in the property store with the property.* commands and the CLI using pi pipeline or using the online workbench.

But if you want to develop complex apps with forms, pipelines or workflows inside, we recommend you to use a local development & customization workspace. This workspace contains the properties of such an app stored as files inside a local folder. Any file created inside this folder can then easily be uploaded to the property store with a single command line call using the CLI. For example:

Code Block
pi publish

This CLI command scans your local folder and uploads only those resources which have been changed since the last upload or have been created since then. See here how to setup the CLI and how to create a local worskspace: Local Low-Code Workspace