Skip to main content

A highly versatile REST Datastore

Project description

README

Code Quality

GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status Codecov Code Style Python Python Python

Description

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.

Quick start

Term sheet sample

git clone https://github.com/Netsach/concrete-datastore.git
cd concrete-datastore
docker run --name postgres-concrete-datastore -d -p 5432:5432 postgres
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).

Features

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
  • ...

How does it work ?

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

Official documentation

See the official documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concrete-datastore-1.23.0.tar.gz (173.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

concrete_datastore-1.23.0-py3-none-any.whl (122.7 kB view details)

Uploaded Python 3

File details

Details for the file concrete-datastore-1.23.0.tar.gz.

File metadata

  • Download URL: concrete-datastore-1.23.0.tar.gz
  • Upload date:
  • Size: 173.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.7.9

File hashes

Hashes for concrete-datastore-1.23.0.tar.gz
Algorithm Hash digest
SHA256 fd48f6cade73e824274eee8bb547169281cd038b5bccbec9ef53f8a2a209d73c
MD5 ecc766fb066b8f9700626bc1a4be7351
BLAKE2b-256 9e12bcf38bde1aeeb5e73d7e75da75cd807324ee860359982053a4c9da3cfaca

See more details on using hashes here.

File details

Details for the file concrete_datastore-1.23.0-py3-none-any.whl.

File metadata

  • Download URL: concrete_datastore-1.23.0-py3-none-any.whl
  • Upload date:
  • Size: 122.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.7.9

File hashes

Hashes for concrete_datastore-1.23.0-py3-none-any.whl
Algorithm Hash digest
SHA256 11af3b6e7957867423eda76d1f42935ebb7b106869936ed03c1d9f26a7280780
MD5 09ca9ee1d62f2da21d3ebbbdf2888d09
BLAKE2b-256 7d6e375017599d3f9ee31c5cbc3e102367bd7f3d68d7caaec4c427ca1b7c918e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page