lowdefy/packages/docs/concepts/overview.yaml
2021-03-08 12:36:53 +02:00

49 lines
2.7 KiB
YAML

# Copyright 2020-2021 Lowdefy, Inc
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
_ref:
path: templates/general.yaml.njk
vars:
pageId: overview
pageTitle: Overview
section: Concepts
filePath: concepts/overview.yaml
content:
- id: md1
type: Markdown
properties:
content: |
Lowdefy apps are written as YAML configuration files. These files can be managed in source control, and multiple apps can be deployed with the same configuration. To serve an app, the configuration first needs to be built using the Lowdefy CLI. A Lowdefy server can then serve the build artifacts.
You need to host your own Lowdefy server. We want to enable you to host a Lowdefy anywhere and Lowdefy was designed to run in a serverless environment. Currently, you can host Lowdefy apps on Netlify, and as a Docker container.
The diagram below provides an overview of the Lowdefy app schematic:
![Lowdefy App Diagram](https://deploy-preview-481--lowdefy-docs.netlify.app/public/lowdefy_app_schema.png "Lowdefy App Diagram")
The Lowdefy server manages connections and executes requests, serves a web client, and serves the configuration for app pages to the client. The server does not have a data-store, but can connect to external data sources like APIs and databases.
The Lowdefy web client manages the layout and loading of Lowdefy blocks. Blocks are loaded to the client using _webpack Module Federation_. This means that Lowdefy blocks are external to your apps and can be hosted separately on any static file server, which allows you to extend Lowdefy's capabilities with custom Lowdefy blocks.
The client also manages each context in the app, executes actions that are triggered by events, and evaluates operators that allow for "live updates" to the UI.
Authentication for private pages in Lowdefy apps is implemented by connecting to your preferred, external OpenID Connect provider.
- _ref:
path: templates/navigation_buttons.yaml
vars:
previous_page_title: Tutorial
previous_page_id: tutorial-start
next_page_title: The CLI
next_page_id: cli