Anatomy of a Servable service
Project structure​
├── index.js
├── app
├── ├── ...
├── protocols
├── ├── ...
├── servable.config.js
├── .env
└── package.json
- The servable config is servable.config.js
- The servable app entry point is index.js
- The app protocol is in /app
- The local protocols are in /protocols
Anatomy of a protocol
Any protocol respects the following root folder structure:
┌── main.js
├── target
├──── class
├──── triggers
├── schema
├── config
├── models
├── jobs
├── seed
├── services
├── lib
├── assets
├── docs
├── livemodels.js
└── main.json
System design of a full-fledged local servable app​
A fully functional servable deployment will use a few other components to run alongside a main servable app. These components are installed and run automatically when using the quick start CLI command. They are defined in the app protocol system's docker-compose file.
Servable service​
The actual servable app Mandatory
Servable dashboard​
Servable Dashboard is a standalone dashboard for managing Servable services.
- Create, edit and delete schema (not available with Servable)
- Create, edit and delete security rules (not available with Servable)
- Create, edit and delete data
Github Optional
App database​
The mongodb or PostGreSQL database Mandatory
Minio​
Mandatory An S3 like bucket server for storing files
Utils database​
An utilitary database used by the arbiter to store migration status and current instances Mandatory
Redis cache​
Optional
Live Query Server​
Optional