Kapp stands for Kinetic Application. At its most basic, a kapp is meant to be a specific application within a Space. Examples of kapps are Queue (a tasking appliaction) and Services (a Service Portal application).
Since the main component of a kapp is its forms**, the kapp has to provide the infrastructure to support them. In general, this includes:
- Categories. A way to organize and view forms
- Security Policies. Restrict access to forms
- Webhooks. Trigger actions around forms
- Submissions. View and report on form submissions
- Settings. How and where to display forms
Another key part of a kapp is how it's displayed. This is normally set in the Settings portion of the kapp, and includes locations for themes, attribute definitions, and other kapp specific support settings.
** a kapp like Calendar or Tech Bar, may have a slightly different focus, but the principles are the same.
The first part of Kapp details are
- a read only section that contains the Kapp name, slug, created at time, created by information (if you hover over the icon you will see the user id), updated at time, and updated by information
- the kapp name: This is the name, often used for display, for the kapp
- the kapp slug: This is the unique identifier, used for code references and the url, for the kapp
- the submission label: This is a default submission label for all the forms in the kapp. If blank, the submission label will default to the submission id.
- The display page information: This is either controlled by the space (if the space is set to single page app), Display Page, or Redirect URL
If the space is set to a single page app for its display page, you will not receive an option for display page in the kapp.
Setting the kapp to Display Page allows you to set the jsps used for the various pages for the kapp.
Setting the kapp to redirect URL allows you to set the URL you wish the kapp to redirect to when it is accessed.
The Attributes tab is where any kapp level attributes are set. Note that attributes are defined here (Kapp Attribute Definitions), but the values in each attribute are set in this tab.
The attributes defined here are generally things that will be used in workflow and/or the theme/bundle and are used across all kapps. Things such as:
- Bundle Package
Also here are fallback attributes for forms, in case attributes are not defined at that levels, such as:
- Approval Form Slug
- Submission Workflow
- Service Days Due
Kapp fields are special fields for the kapp that will allow you to search across forms. These fields are the only way to search across various forms via field values. For example, you can search for all form submissions requested by (content of "Requested By" field) a specific user, but you could not search for all forms with a specific user id in a field called "Contact" because "Contact" is not a kapp field.
It is not required that forms within the kapp contain the kapp fields, but they are a very powerful tool.
The Security section for the kapp contains 4 kapp settings and 4 default settings for forms within that kapp.
- Kapp Display: Who can display the kapp (see/render it)
- Kapp Modification: Who can make updates to the kapp
- Form Creation: Who can create forms within the kapp
- Submission Support: Provides some search and visibility features within the kapp
Form Display controls who can see (and therefore submit) the form. It is not possible at this level to allow someone access to see but not submit the form. That would need to be controlled with rules on the front-end, such as an advance condition, or within the workflow engine after submit (to not process or delete the submission).
Form Modification controls who can change/update the form. This is often set to a security definition that includes form developers and platform admins.
Submission Display controls who can see submissions. This is often set to the submitter of the submission and platform admins. Submission Display access also becomes important when retrieving search results. Searches will error if they contain too many (>25) submissions the user cannot access. This is something to keep in mind when determining access for various forms and when constructing search queries.
Submission Modification controls who can modify a particular submission. This is often set to the submitter of the submission and platform admins.