concrete-datastore
is a highly versatile HTTP REST Datastore based on the web framework Django.
It is used mainly as a HTTP database server for single page web application (SPA).
As opposed to a classic database server such as PostgreSQL or MySQL where queries are performed using SQL language, each operation is performed using plain HTTP requests. concrete-datastore
abstracts the database layer.
concrete-datastore
can be seen as a NoSQL server or as a Firebase alternative.
git clone https://github.com/Netsach/concrete-datastore.git
cd concrete-datastore
docker run --name postgres-concrete-datastore -e POSTGRES_DB=db-concrete-datastore -e POSTGRES_USER=user-concrete-datastore -e POSTGRES_PASSWORD=pwd-concrete-datastore -d -p XXXX:5432 postgis/postgis:12-master
export POSTGRES_PORT=XXXX
export DATAMODEL_FILE=./docs/assets/sample-datamodel.yml
python3 -m venv env
source env/bin/activate
pip install -e ".[full]"
concrete-datastore makemigrations
concrete-datastore migrate
concrete-datastore createsuperuser
concrete-datastore runserver
Now browse to http://127.0.0.1:8000/concrete-datastore-admin/
You can now create a token to use the API (or use the login endpoint).
concrete-datastore
comes with a lot of built-in features such as:
- User and permission management
- Automatically generated backoffice for administrators
- Fully REST API using JSON as serialization format
- Simple statistics generation
- Email sending capabilities from the API
- ...
In order to describe the database schema, the developer has to write a datamodel
file in YAML or JSON. This datamodel
file allows concrete-datastore
to manage the underlying database using PostgreSQL.
Each API requests is controlled by this datamodel
file as it acts as a specification of what is in the database and what should be allowed per user.
You can create manually the datamodel
file following the examples and the documentation or use the online editor microservices.rest
If you have questions, they may have already been answered in the FAQS.md
See the official documentation
You can find the french version here