MCPcopy Index your code
hub / github.com/Netsach/concrete-datastore

github.com/Netsach/concrete-datastore @1.58.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.58.4 ↗ · + Follow
1,852 symbols 8,662 edges 295 files 135 documented · 7%
What it actually does AI analysis from the code graph — generated when you open this
loading…
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 -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).

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

F.A.Q

If you have questions, they may have already been answered in the FAQS.md

Official documentation

See the official documentation

Freanch version

You can find the french version here

Core symbols most depended-on inside this repo

get
called by 866
concrete_datastore/routes/views.py
post
called by 823
concrete_datastore/api/v1/views.py
create
called by 744
concrete_datastore/api/v1/views.py
save
called by 742
concrete_datastore/concrete/models.py
create_user
called by 356
concrete_datastore/concrete/models.py
set_level
called by 165
concrete_datastore/concrete/models.py
update
called by 88
concrete_datastore/api/v1/views.py
get_model_name
called by 46
concrete_datastore/parsers/models.py

Shape

Method 1,297
Class 413
Function 139
Route 3

Languages

Python100%

Modules by API surface

concrete_datastore/concrete/models.py92 symbols
concrete_datastore/api/v1/views.py85 symbols
tests/tests_api_v1_1/test_filters.py68 symbols
concrete_datastore/api/v1/filters.py55 symbols
tests/tests_api_v1_0/test_filters.py40 symbols
concrete_datastore/api/v1_1/views.py38 symbols
concrete_datastore/api/v1/serializers.py37 symbols
concrete_datastore/interfaces/openapi_schema_generator.py32 symbols
tests/tests_api_v1_1/test_api_v1_1_register.py29 symbols
concrete_datastore/concrete/password.py29 symbols
concrete_datastore/parsers/exceptions.py28 symbols
tests/tests_api_v1_1/test_api_v1_1_user.py22 symbols

For agents

$ claude mcp add concrete-datastore \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page