Product Glossary

Platform Concepts

The following key concepts related to the Appfarm platform are relevant to every product subscription tier and are fundamental to evaluate platform capabilities and commercial arrangements.

Appfarm Create

A modern, full-stack, web-based tool for the design, development, and management of cloud-based software in the form of progressive web applications (PWAs). Appfarm Create provides full flexibility to express complex visual designs, functionality, and integrations tailored to an organization’s unique needs and circumstances. Appfarm Create is made available, and used directly, through modern web browsers. All customers have access to Appfarm Create, regardless of whether the subscription is with Appfarm directly or through a certified Appfarm partner in a reseller agreement.

Appfarm Cloud

The managed cloud infrastructure designed exclusively for the deployment, hosting, and maintenance of software created with Appfarm Create. In the subscription agreement, the Appfarm Cloud may be referred to as the Appfarm Platform. Together, Appfarm Create and Appfarm Cloud are typically referred to as “the Service” in our legal agreements with customers.

Solution

A distinct development environment for creating and managing Apps (responsive web apps for mobile, tablet, and desktop interfaces) and Services (server-side workflows) that rely on a shared global data model. A Solution features advanced configuration across many dimensions as well as user management possibilities.

The definition of a Solution’s global data model, Apps, Services, and other Solution-specific metadata generated within Appfarm Create, is referred to as the solution model.

A Solution can run up to four deployment environments for development, testing, and production purposes. Apps and Services deployed from within the same Solution share a common root URL. For example, yoursolution.appfarm.app or a custom domain.

Most Appfarm subscription tiers are associated with one Appfarm Solution that can manage a principally unlimited number of applications, users, and integrations. An organization on the Dedicated subscription tier has the option to use multiple Solutions in order to facilitate differing development needs across and within departments.

The amount of cloud resources allocated to a Solution is determined by subscription tier. These resources are distributed across your Solution infrastructure in accordance with actual utilization and scale dynamically to stabilize performance under increased load. Resource allocation and scaling are further described in the Acceptable Use Policy.

Environment

A deployment environment for a Solution’s Apps and Services. Up to four Environments are available: Development, Test, Staging, and Production. Each Environment has its own URL, database, and configuration, with the exception of Staging, which uses the Production database as per usual practice. The Production Environment is allocated a significantly higher percentage of a Solution’s available cloud resources.

As changes are made in Appfarm Create, they are instantly deployed to the Development Environment. In order to push changes to another Environment, they can be manually deployed with one click, either instantly or at a scheduled time.

Registered users exist across all Environments, but access can be restricted and controlled as required.

Each subscription tier is allocated a given number of Environments. Access to additional Environments can be purchased separately.

App

An end-user application. An App is a fully customizable responsive web app composed of a user interface, data sources, and logic. Data sources provide access to the data in the shared global data model as well as other application-specific data. Actions enable application flow and business logic. The user interface is connected to data sources and actions to display data and collect and respond to user input.

A fundamental feature of Appfarm is that there are no restrictions on application complexity in any subscription tier. Apps can be restricted to internal use, opened to external registered users such as customers and suppliers, or made publicly available with unauthenticated access. Apps can be restricted based on interface (mobile, tablet, desktop) or be configured and offered on all interfaces with responsive design capabilities.

There are no restrictions on the complexity of an App, although it is common and recommended to create separate apps for different user groups or purposes. For example, a mobile app for data collection in the field and a desktop app for analysis and reporting.

There are no restrictions on the number of integrations that can be implemented in an App (or Service). There is also no limit on the number of requests sent to external API endpoints.

Each subscription tier is allocated a given number of Apps, and additional Apps are available for purchase through App Bundles. The number of Apps in a Solution is calculated based on the maximum number of applications in use within a calendar month. The Dedicated subscription tier includes an unlimited number of Apps. Apps not deployed outside the Development environment (“Dev Only Apps”), and apps made available only for Developer users (“Config Apps” and “Admin Apps”), are not counted for billing purposes.

Service

A fully customizable server-side workflow to automate business logic and/or provide a flexible API. A Service is composed of one or more HTTP endpoints, data sources, and logic. An endpoint acts as the external interface of the service, defining the request format, facilitating which data is returned in response, and what logic is to be run.

Services can be triggered by external API calls (including webhooks), by schedules, or by other Services and Apps.

Users

A user is categorized into one of three groups.

  1. Developer user: A user with access to Appfarm Create. This includes both built-in roles (Owner, Maintainer, Developer) and custom roles granted permission to access Appfarm Create.

  2. Registered user: A user with an account registered in a Solution. Registered users include developer users.

  3. Guest user: A user that interacts with a public App without having an authenticated user session.

Active users

A registered user that has had at least one authenticated user session in Appfarm Create or any Environment within a calendar month.

For billing purposes, Appfarm prefers counting active registered users. We believe that active registered users are a fairer and more customer-oriented metric compared to simply registered users, which is better connected to value created and return on investment for the customer. It also facilitates, without escalating costs, solving use cases that can potentially reach many registered users but with a low number of expected active users per month. Appfarm does not separate between internal and external users.

Each subscription tier is allocated a quota of active users. The activity of guest users does not count towards your subscription's active user quota.

Additional users are available for purchase through Active User Bundles. Active User Bundles follow a volume-based pricing structure, meaning that the price for additional active users becomes lower as the total number of active users increases.


Subscription Tier-Based Resource Quotas

The resource quota granted for each of the following platform resources is determined by subscription tier.

Database Storage

The amount of database storage dedicated to Solution data read and manipulated by Apps and Services. For example, customer data, order data, or project data. Files uploaded in file objects are not included (see File storage). Each subscription tier is allocated a certain amount of database storage, and additional storage can be purchased.

BasicEssentialProfessionalDedicated

Allocated database storage

100 MB

1 GB

3 GB

10 GB

File Storage

The amount of database storage dedicated to files uploaded in file objects from Apps and Services, and static resource files uploaded under Files in Appfarm Create. Example files include pictures (e.g., JPEG, PNG), documents (e.g., DOCX, PDF), and spreadsheets (XLSX, CSV). Each subscription tier is allocated an amount of file storage, and additional storage can be purchased.

Archive Files

The integrated file archive component enables the creation of archive files (.zip files) containing one or more files stored in file objects. Developers can configure file hierarchy within an archive file through fully customizable file names and file paths. Each Solution can archive up to 1 GB of files per month using the integrated component. Increased quotas for high-volume usage can be purchased. Archive files can be downloaded or stored as a file object. Archive files stored as file objects count towards a Solution’s file storage allocation.

Consumable Services

Integrated messaging services to send email and SMS messages from Apps and Services. Use of these services is subject to Appfarm’s Email, SMS, and Integrated Messaging and Notification Policy (ESINP).

Email

Each Solution can send up to 500 emails per month using the integrated email component, with no additional configuration, via the default Appfarm email service. To send emails in excess of this limit, and to apply further customization, a custom email provider must be configured within Appfarm Create. A custom email provider can be easily configured for each enabled Environment.

SMS

Each Solution can send up to 50 SMS messages per day and up to 500 SMS messages per month using the integrated SMS component. Refer to the documentation for sending SMS for information on how the amount and type of characters can affect the number of messages sent. A higher quota of SMS messages can be arranged upon request.

API Integrations

An API integration is classified by the destination of the HTTP request. There are no restrictions on the number of integrations that can be implemented in an App or Service.

  • External integration: Outbound HTTP requests sent to external API endpoints. For example to send data to, or retrieve data from, a third-party CRM, ERP, or database.

  • Solution integration: Inbound HTTP requests received by a Solution API endpoint. Solution API endpoints include custom-defined endpoints (Services) and built-in endpoints (for example, Time Series, Data Extract, and GraphQL). Requests include those generated from external hosts, scheduled Services in Appfarm, and other Services and Apps. Solution integrations are subject to Appfarm’s Acceptable Use Policy.

API integration quotas are defined in four tiers.

IntegrationTier 1Tier 2Tier 3Tier 4

External (outbound)

Unlimited

Unlimited

Unlimited

Unlimited

Solution (inbound), per 24 hours*

500

1.500

15.000

50.000

*A higher allocation may be accommodated by custom agreement.


Subscription Tier-Based Platform Capabilities

The right to use the following platform capabilities is determined by subscription tier.

Advanced Data Visualization

A collection of premium UI components with advanced customization options for visualizing data, including Heatmap and Gantt charts. Any use of advanced charting in billable applications will trigger the additional monthly fee (if not already included in your subscription tier). Basic charting capabilities are included in all subscription tiers.

The capability to run full-text search directly in the database. Advanced Search enables more complex and performant queries of persisted data. Fuzzy matching is supported to generate search results incorporating likely matches in addition to exact matches. Search results are ranked by relevance score. Typical use cases include searching within multiple properties, searching across a large volume of data, and searching within long-form content.

Advanced Search functions through the indexing of selected object class properties at the database level. The functionality is similar to that provided by tools such as Elasticsearch and Solr.

Conditional Permissions

Conditional Permissions are available through a private beta program from release 102.

The capability to employ an additional layer of data access control at the Solution level. Conditional permissions enable the granular definition of user access to read and manipulate data within a single object based on a user’s roles and data stored within the object. These permissions are evaluated prior to database operations regardless of origin, ensuring the security and integrity of data across Apps, Services, and GraphQL.

Conditional permissions are required in order to implement multi-tenant solution architecture optimally.

Custom Authentication

The capability to configure third-party authentication for Apps with providers such as Microsoft Entra ID (Azure AD), Auth0, and Google, using OAuth 2.0. With this integration, users can be automatically registered in Appfarm when they first log in to an app using a configured third-party authentication provider. There are three levels of custom authentication:

  • Basic: Includes the built-in Appfarm user authentication options, and one (1) third-party authentication provider.

  • Standard: Includes the built-in Appfarm user authentication options, and support for multiple third-party authentication providers.

  • Advanced: Includes the Standard capabilities, and the capability to use role credentials from third-party authentication providers (for example Microsoft Entra ID), to interact with other linked services (for example Sharepoint).

Custom Domain

The capability to configure a custom domain for a Solution. By connecting a domain (yourdomain.com) or subdomain (subdomain.yourdomain.com) to a Solution, the Apps and Services in Production can be accessed using the custom domain. By default, every Solution is assigned an appfarm.app subdomain (yoursolution.appfarm.app) and this URL is used to access Apps and Services when a custom domain is not configured.

Custom UI Integrations

The capability to create custom-coded interactive UI components in Apps that can leverage the shared global data model and application logic. A custom UI Integration can utilize third-party JavaScript and CSS resources.

Typical use cases include implementing interactive components such as maps, audio/video playback, and 3D viewers, or integrating third-party widgets where using the Iframe component is undesirable.

Data Extract API

The capability to efficiently extract large volumes of data from the Solution database. It is designed for transferring data into data warehouses and data lakes for further analysis and storage.

Data can be exported at the object class level, allowing for targeted data extraction. For each object class where data export is enabled, a unique endpoint is activated. These endpoints use cursor-based pagination, a method that enables efficient extraction of large datasets. Calling an endpoint requires an API key configured with explicit permissions, ensuring data security.

Offline Apps

The capability to create Apps that can be opened and used without network connectivity. Typical use cases involve mobile workforces operating in environments without an internet connection, such as remote fieldwork, at sea, or in tunnels and large buildings under construction.

Public release: 23-08-2023

Sandbox Solution

A Solution dedicated to experimental, innovation, and product development use. A sandbox Solution has one deployment environment, Development. The Test environment may be activated upon request.

Scheduled Workflows

The capability to automate Services to run on a recurring schedule. Common use cases are running batch and recurring jobs such as synchronizing data with an external system, polling for changes, and sending notifications.

Time Series Data

The capability to efficiently store and query time series data in a Solution. This is particularly useful for storing data related to IoT sensors, machine usage and performance, warehouse inventory levels, and financial or other volume-based transactions.

An additional type of object class is enabled specifically for modeling time series data. Data storage features include the ability to specify time granularity, handle duplicate records, and configure rule-based automatic data deletion. Querying time series data includes support for data aggregation.

Time series data counts towards a Solution's database storage quota. Data usage that exceeds the quota requires upgrading to the Dedicated subscription tier. For organizations on the Dedicated subscription tier, additional data storage can be purchased.


Subscription Tier-Based Platform Add-Ons

The right to subscribe to the following platform add-ons is determined by subscription tier.

Client Data Service

An additional platform service allocated to a specific Solution, dedicated to the transfer of data between the Solution’s Apps and the database. Typically, a data service is shared between a Solution’s Apps and Services. For Solutions that process a lot of data using Services concurrently with end-user App activity, a dedicated client data service will provide Apps with a performance boost.

Production-Grade QA Environment

Additional resources granted to a Test or Staging environment in order to replicate Production-level performance. By default, Test and Staging environments have fewer resources available due to their significantly lower usage patterns. However, additional resources may be required in cases where it has been deemed necessary to run operations that utilize frequent API requests and/or have large data processing requirements on the Test and/or Staging environment.


Dedicated Subscription Tier Platform Capabilities

The Dedicated subscription tier has the option to use multiple Solutions. In this case:

  • Dedicated infrastructure is shared across all Solutions.

  • Platform capabilities are included in all Solutions. This includes the available Environments, advanced data visualization, custom authentication, and scheduled workflows.

  • Resource quotas are shared across Solutions. This includes the number of Apps, Active Users, file storage, and database storage.

Dedicated Database Infrastructure

A dedicated database cluster designed for high availability and performance, isolated from other Appfarm customers. A database cluster consists of multiple database servers that store the same data set. This architecture provides durability, redundancy, and automatic failover.

Dedicated database infrastructure provides more stable and reliable database performance in comparison to shared infrastructure where other customers can trigger high resource utilization. It also allows for increased robustness, scalability, and customization through custom resource provisioning and custom data backup policies, if required.

An organization on the Dedicated subscription tier can elect to add further dedicated database infrastructure and transfer one or several existing Solutions to the new cluster.


Dedicated Subscription Tier Add-Ons

The following platform add-ons are available exclusively in the Dedicated subscription tier.

Backup Testing

Regular testing of both solution data backups and solution model backups to verify the integrity of data stored in the Production environment database. Testing frequency can be monthly or quarterly.

Dedicated Cloud Infrastructure

A dedicated Kubernetes cluster of virtual machines to host one or more Solutions, designed for optimal platform performance, isolated from other Appfarm customers. This includes dedicated load balancing with cloud resources provisioned to only manage traffic to that cluster.

Dedicated cloud infrastructure provides more stable and reliable Solution performance in comparison to shared infrastructure where other customers can trigger high resource utilization. Additionally, there is greater flexibility afforded to the allocation of resources which can be tailored to align directly with the requirements of the Solution(s) running on the infrastructure.

Dedicated Network (with encryption key management)

Must be combined with Dedicated Cloud Infrastructure.

A dedicated network is provisioned to host the dedicated cloud infrastructure, entirely separate from other Appfarm infrastructure. With full separation on a network level, there is no possibility for interaction with other Appfarm customer Solutions, providing an additional layer of robustness and security. The dedicated network also includes the ability to manage encryption keys in a separate Key Management Service (KMS) system within GCP, AWS, or Azure.

Revision history

VersionDateRevisionApproved By

1.0

23.01.2024

Document published.

Marius Tuft, CEO

1.0.1

04.06.2024

Users: Clarified that the activity of guest users does not count towards the active user quota.

Marius Tuft, CEO

1.1

24.09.2024

Added allocated database storage per subscription tier, and definitions for Archive Files, Time Series Data, and Data Extract API. Clarified that Solution integrations include requests received by all custom and built-in endpoints.

Marius Tuft, CEO

Last updated