Understand the foundational concepts of the Appfarm platform.
There are a number of foundational concepts that you will come across as you develop and deploy apps on the Appfarm platform. You will find that development is easier and faster if you first understand how these concepts fit together.
When you are signed into Appfarm Create, you are in the context of a solution. If you have access to multiple solutions this is indicated by an arrow (
) next to the name of your current solution.
A solution is a distinct development environment which contains apps and services that share a global data model. The apps and services in a solution share a common root URL for end-user access, relative to the deployment environment in use.
Visual representation of the key concepts in a solution where apps and services leverage a shared global data model.
The global data model is where you define all your business objects, or object classes. The global data model is shared across all the apps and services in a solution. This enables different views into your business data by creating applications tailored to different roles and use cases.
On top of the global data model, you can define a granular security layer controlling who can create, read, update and delete data.
An app is a web application composed of a user interface, data sources, and actions. Data sources provide access to the data in the 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.
Apps can range from advanced desktop business applications to lightweight mobile web apps.
A service can be thought of as an app without a user interface. A service is composed of one or more endpoints, data sources, and optionally actions. An endpoint acts as the external interface of the service, facilitating which data is returned and what actions, if any, are triggered.
Services are triggered by external web requests, by schedules, or by other services and apps.
You define which objects from your global data model you want to use in an app or service by creating data sources. A data source may hold one or many objects. This is referred to as cardinality. A data source with a cardinality of many can be configured with a filter to contain a subset of objects. You can create multiple data sources that point to the same object class.
An action is where you define application flow and business logic such as navigation, data manipulation and iterations, conditional logic, file import/export, web requests to external APIs, and more.
In apps, actions are triggered by events such as when a user first loads an app, clicks a button, or uses a keyboard shortcut. In services, actions are triggered when an endpoint is called.
An action consists of one or more action nodes, which are pre-built logic and function blocks that you can easily combine and configure. Many action nodes are common for apps and services, but some are only relevant for one of them, such as navigation logic for apps.
Appfarm implements a layered approach to security through users, roles and permissions. For a user, whether they are a human or an external API, to access and use an app or service, they must be assigned a role that has been granted the necessary permissions.
A user exists at the solution level and spans all enabled deployment environments. Each user can be assigned one or more roles, for example
Editor. Each role is granted permissions, which are granular definitions of what environments, functionality, and data that role can interact with. The sum of the permissions granted to a user's roles determines their access.
A solution can be deployed across four environments: Development, Test, Staging, and Production. The environments available in a given solution depend on your solution tier. The Development, Test, and Production environments each have their own separate databases. The Staging environment uses the Production database.
All changes are automatically deployed to the Development environment as you make changes in Appfarm Create. In order to push changes to another environment you must manually deploy them.