2020-12-04 14:00:47 +03:00
Build Apps
==========
This section describes how CCF applications can be developed and deployed to a CCF network.
2022-09-12 11:33:14 +03:00
.. tip :: The `ccf-app-template <https://github.com/microsoft/ccf-app-template> `_ repository can be used to quickly build and run a sample CCF application and provides a minimal template to create new CCF apps.
2022-07-15 11:16:26 +03:00
Applications can be written in JavaScript/TypeScript or C++. An application consists of a collection of endpoints that can be triggered by :term: `Users` . Each endpoint can define an :ref: `build_apps/example_cpp:API Schema` to validate user requests.
2020-12-04 14:00:47 +03:00
2022-03-28 15:48:39 +03:00
These endpoints can read or mutate the state of a unique :ref: `build_apps/kv/index:Key-Value Store` that represents the internal state of the application. Applications define a set of `` Maps `` (see :doc: `kv/kv_how_to` ), mapping from a key to a value. When an application endpoint is triggered, the effects on the Store are committed atomically.
2020-12-04 14:00:47 +03:00
.. panels ::
2022-11-19 02:42:20 +03:00
:fa: `rocket` :doc: `get_started`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Get Started: Application Development using CCF.
---
2021-01-05 22:04:12 +03:00
:fa: `download` :doc: `install_bin`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Install CCF on Linux.
---
2020-12-04 14:00:47 +03:00
.. image :: ../img/cpp.svg
:alt: C++
:align: left
2022-01-28 18:11:05 +03:00
:class: ccf-tile-icon
2021-01-05 22:04:12 +03:00
2020-12-04 14:00:47 +03:00
:doc: `example`
2022-01-18 17:58:30 +03:00
^^^^^^^^^^^^^^
2020-12-04 14:00:47 +03:00
Sample CCF application written in C++.
---
.. image :: ../img/ts.svg
2022-01-18 17:58:30 +03:00
:alt: TypeScript
2020-12-04 14:00:47 +03:00
:align: left
2022-01-28 18:11:05 +03:00
:class: ccf-tile-icon
2021-01-05 22:04:12 +03:00
2022-01-18 17:58:30 +03:00
:doc: `js_app_ts`
^^^^^^^^^^^^^^^
Sample CCF application written in TypeScript, using the API specified in :typedoc:package: `ccf-app` .
---
:fa: `luggage-cart` :doc: `js_app_bundle`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2020-12-04 14:00:47 +03:00
2022-01-18 17:58:30 +03:00
Description of the bundle format for JS applications in CCF.
2020-12-04 14:00:47 +03:00
---
:fa: `tools` :doc: `build_app`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Building a CCF application.
---
2022-05-20 15:47:03 +03:00
:fa: `rocket` :doc: `run_app`
2020-12-04 14:00:47 +03:00
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2022-05-20 15:47:03 +03:00
Running a CCF application demo in a sandbox environment.
2020-12-04 14:00:47 +03:00
---
:fa: `users` :doc: `auth/index`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
User authentication mechanisms in CCF.
---
:fa: `database` :doc: `kv/index`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Transactional access to state is provided by the Key-Value store.
---
:fa: `terminal` :doc: `api`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
C++ API reference.
2022-01-13 12:57:26 +03:00
---
:fa: `rocket` :doc: `release_policy`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2022-09-12 11:33:14 +03:00
CCF release cadence and compatibility commitments.
2022-01-13 12:57:26 +03:00
2020-12-04 14:00:47 +03:00
.. toctree ::
:hidden:
2022-11-19 02:42:20 +03:00
get_started
2021-01-05 22:04:12 +03:00
install_bin
2020-12-04 14:00:47 +03:00
example
2022-01-18 17:58:30 +03:00
js_app_ts
js_app_bundle
2022-07-15 11:16:26 +03:00
logging
2020-12-04 14:00:47 +03:00
build_app
run_app
auth/index
kv/index
2021-03-10 18:07:29 +03:00
api
2022-01-13 12:57:26 +03:00
crypto
2022-11-19 02:42:20 +03:00
release_policy