Metadata-Version: 2.1
Name: concrete-datastore
Version: 1.0.0
Summary: A highly versatile REST Datastore
Home-page: https://datastore.microservices.rest
Author: Netsach
Author-email: contact@netsach.org
License: GNU GENERAL PUBLIC LICENSE Version 3
Project-URL: Bug Tracker, https://github.com/Netsach/concrete-datastore/issues
Project-URL: Documentation, https://github.com/Netsach/concrete-datastore/blob/master/README.md
Project-URL: Source Code, https://github.com/Netsach/concrete-datastore/
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/markdown
Requires-Dist: Django (<2.3,>=2.2)
Requires-Dist: django-cors-headers (<2,>=1.3.1)
Requires-Dist: django-extensions (<2,>=1.7)
Requires-Dist: django-filter (<3,>=2.1.0)
Requires-Dist: django-otp (<1,>=0.7.0)
Requires-Dist: djangorestframework (==3.10.2)
Requires-Dist: social-auth-app-django (<3.2,>=3.1.0)
Requires-Dist: social-auth-core (<3.3,>=3.2.0)
Requires-Dist: psycopg2-binary (<3,>=2.8.1)
Requires-Dist: concrete-mailer (<3,>=2.13.0)
Requires-Dist: pendulum (<1,>=0.8)
Requires-Dist: Pillow (<5,>=4.3)
Requires-Dist: pytz (>=2018.5)
Requires-Dist: requests (<3,>=2.13.0)
Requires-Dist: pyyaml (<6,>=5.1.2)
Requires-Dist: uritemplate (<4,>=3.0.0)
Requires-Dist: six (<2,>=1.12)
Requires-Dist: python-slugify (<4,>=3.0.3)
Requires-Dist: celery (<5,>=4.3)
Requires-Dist: redis (<4,>=3.2)
Provides-Extra: dev
Requires-Dist: ipython ; extra == 'dev'
Requires-Dist: django-debug-toolbar ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs (<2,>=1.0.4) ; extra == 'docs'
Requires-Dist: mkdocs-material (<4.5,>=4.4.3) ; extra == 'docs'
Provides-Extra: full
Requires-Dist: ipython ; extra == 'full'
Requires-Dist: django-debug-toolbar ; extra == 'full'
Requires-Dist: mock ; extra == 'full'
Requires-Dist: pytest-django ; extra == 'full'
Requires-Dist: pytest-cov ; extra == 'full'
Requires-Dist: pytest ; extra == 'full'
Requires-Dist: codecov ; extra == 'full'
Requires-Dist: bandit ; extra == 'full'
Requires-Dist: pylint ; extra == 'full'
Requires-Dist: black ; extra == 'full'
Provides-Extra: quality
Requires-Dist: pylint ; extra == 'quality'
Requires-Dist: black ; extra == 'quality'
Provides-Extra: security
Requires-Dist: bandit ; extra == 'security'
Provides-Extra: tests
Requires-Dist: mock ; extra == 'tests'
Requires-Dist: pytest-django ; extra == 'tests'
Requires-Dist: pytest-cov ; extra == 'tests'
Requires-Dist: pytest ; extra == 'tests'
Requires-Dist: codecov ; extra == 'tests'

# README

## Code Quality

![GitHub Workflow Status](https://img.shields.io/github/workflow/status/Netsach/concrete-datastore/Check%20Bandit?label=security)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/Netsach/concrete-datastore/Check%20Black?label=black)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/Netsach/concrete-datastore/Lint?label=lint)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/Netsach/concrete-datastore/Tests?label=tests)
![Codecov](https://img.shields.io/codecov/c/github/Netsach/concrete-datastore?logo=coedcov)
![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)
![Python](https://img.shields.io/badge/python-3.6-3473A7?logo=python&logoColor=FED646)

## Description

`concrete-datastore` is a highly versatile HTTP REST Datastore based on the web framework [Django](https://djangoproject.com/).

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.

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

## Official documentation

See the [official documentation](http://concrete-datastore.netsach.org/)


