asyncio REST API Resource database
Project description
Introduction
Please read the detailed docs
This is the working project of the next generation Guillotina server based on asyncio.
Dependencies
Python >= 3.7
PostgreSQL >= 9.6
Quickstart
We use pip
pip install guillotina
Run PostgreSQL
If you don’t have a PostgreSQL server to play with, you can run one with Docker.
Download and start the Docker container by running
make run-postgres
Run the server
To run the server
g
Then…
curl http://localhost:8080
Or, better yet, use Postman to start playing with API.
You can also navigate in your Guillotina server with its built-in web admin interface by visiting http://localhost:8080/+admin/.
Deploy on Heroku
Read more Guillotina-Heroku.
Getting started with development
Using pip (requires Python > 3.7)
git clone git@github.com:plone/guillotina.git
cd guillotina
python3.7 -m venv .
./bin/pip install -r requirements.txt
./bin/pip install -r contrib-requirements.txt
./bin/pip install -e '.[test]'
./bin/pre-commit install
Run tests
We’re using pytest
./bin/pytest guillotina
and for test coverage
./bin/pytest --cov=guillotina guillotina/
With file watcher…
./bin/ptw guillotina --runner=./bin/py.test
To run tests with cockroach db
USE_COCKROACH=true ./bin/pytest guillotina
Default
Default root access can be done with AUTHORIZATION header : Basic root:root
Docker
You can also run Guillotina with Docker!
First, run PostgreSQL
docker run --rm \
-e POSTGRES_DB=guillotina \
-e POSTGRES_USER=guillotina \
-p 127.0.0.1:5432:5432 \
--name postgres \
postgres:9.6
Then, run Guillotina
docker run --rm -it \
--link=postgres -p 127.0.0.1:8080:8080 \
plone/guillotina:latest \
g -c '{"databases": [{"db": {"storage": "postgresql", "dsn": "postgres://guillotina:@postgres/guillotina"}}], "root_user": {"password": "root"}}'
This assumes you have a config.yaml in your current working directory
Chat
Join us to talk about Guillotina at https://gitter.im/plone/guillotina
CHANGELOG
6.0.9 (2020-10-30)
Change transaction strategy ‘simple’ [masipcat]
Fix bug on error deserialization
Fix transaction context manager doesn’t abort the txn when a exception is raised [masipcat]
Add id checker for move [qiwn]
6.0.8 (2020-09-24)
mailer: import ‘aiosmtplib’ and ‘html2text’ lazily [masipcat]
Cleanup travis logic from test fixtures [lferran]
settings: always convert ‘pool_size’ to int [masipcat]
6.0.7 (2020-09-09)
Add IFileNameGenerator adapter [qiwn]
6.0.6 (2020-08-25)
Pass ‘server_settings’ in ‘connection_options’ to asyncpg pool [masipcat]
6.0.5 (2020-08-11)
Fix register schema [bloodbare]
Fix async test without pytest mark [masipcat]
6.0.4 (2020-07-29)
fix release
6.0.3 (2020-07-29)
Cookiecutter: fix test_install.py [masipcat]
test deps: unpin pytest-asyncio [masipcat]
doc: fix md headers (h1 -> h2) and other small fixes [masipcat]
doc: fix example app [masipcat]
Fix sphinx-build [masipcat]
Make sure it does not fail on empty field [bloodbare]
6.0.2 (2020-07-10)
Set load_catalog=true in test settings [masipcat]
6.0.1 (2020-07-09)
Also allow JWT sub claim for loginid [allusa]
6.0.0 (2020-06-17)
Nothing changed yet.
6.0.0b6 (2020-06-17)
Undo datetime object renderization on guillotina_json_default. [lferran]
Be able to define optional requestBody [lferran]
Fix registry update, when type provided mismatch with the one specified by the schema return an error HTTP status code instead of throwing an exception. [pfreixes]
6.0.0b5 (2020-06-08)
Few fixes & improvements: [lferran] - Fix JSONField validation error - Add unit tests for middleware generate error response - Add path_qs to Request object - Add content_length to Request object - Fix datetime objects renderization
Optimize json schema ref resolution to not make so copies of all json schema definition for every validator instance [vangheem]
Fix json schema ref resolution for nested objects [vangheem]
Catalog subscribers conditional loading [bloodbre]
Allow arbitrary path parameter within the path parameters [dmanchon]
6.0.0b4 (2020-05-23)
Allow to delete elements with the same id at cockroach [bloodbare]
Split blob and objects initialization statements [bloodbare]
Allow to ovewrite object table name and blob table name [bloodbare]
Bug fix: handle raw strings in json payload [lferran]
swagger tags fixes [ableeb]
Move from travis to github actions [lferran]
6.0.0b3 (2020-04-24)
Provide patch operations for json field [vangheem]
Optimize extend operation for bucket list field [vangheem]
. and .. should be blocked as valid ids. The browser will auto translate them to what current dir and parent dir respectively which gives unexpected results. [vangheem]
Change in ISecurityPolicy that might improve performance during traversal for views with permission guillotina.Public [masipcat]
Fix Response object responding with ‘default_content’ when ‘content’ evaluates to False [masipcat]
Change log level for conflict errors to warning and fix locating tid of conflict error [vangheem]
Fix security policy not taking into account IInheritPermissionMap for principals [masipcat,bloodbare]
Fix use of int32 sql interpolation when it should have been bigint for tid [vangheem]
Restore task vars after usage of Content API
Zope.interface 5.0.1 upgrade [bloodbare]
6.0.0b2 (2020-03-25)
Fix move(obj) fires IBeforeObjectMovedEvent after modifying the object [masipcat]
Error handling: ValueDeserializationError editing registry value [vangheem]
Handle db transaction closed while acquiring transaction lock [vangheem]
Handle db transaction closed while acquiring lock [vangheem]
Handle connection errors on file head requests [vangheem]
Update README [psanlorenzo]
6.0.0b1 (2020-03-18)
Use orjson instead of json/ujson [masipcat]
AsgiStreamReader.read() can return bytes or bytearray [masipcat]
6.0.0a16 (2020-03-12)
Changes in ICatalogUtility, DefaultSearchUtility and @search endpoints [masipcat]
Update react-gmi v 0.4.0 [jordic]
Fix more antipatterns [lferran]
Fix integer query param validation [lferran]
6.0.0a15 (2020-03-02)
Handle http.disconnect (and other types of messages) while reading the request body [masipcat]
Be able to have async schema invariants [vangheem]
Provide better validation for json schema field [vangheem]
6.0.0a14 (2020-02-26)
Change AttributeError to HTTPPreconditionFailed in FileManager [masipcat]
Reverted “Replaced Response.content_{type,length} with Response.set_content_{type,length}”. Using setter to avoid breaking Response.content_{type,length} = … [masipcat]
Handle error when “None” value provided for behavior data [vangheem]
Handle connection reset errors on file download [vangheem]
…
You are seeing a truncated changelog.
You can read the changelog file for a complete list.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file guillotina-6.0.9.tar.gz.
File metadata
- Download URL: guillotina-6.0.9.tar.gz
- Upload date:
- Size: 6.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8e15b5716b1e43d3517b5e20c8648bcbbcb0c02f8b49c921c6b84a6564d887b
|
|
| MD5 |
375b02f0d3b325667eee3116295c3513
|
|
| BLAKE2b-256 |
e48692d374d9cc36244620bd9d7a3f79eb77f26db36a838f6098f47cb79455ea
|
File details
Details for the file guillotina-6.0.9-cp37-cp37m-macosx_10_15_x86_64.whl.
File metadata
- Download URL: guillotina-6.0.9-cp37-cp37m-macosx_10_15_x86_64.whl
- Upload date:
- Size: 5.9 MB
- Tags: CPython 3.7m, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
700d43a9a31f8699b82ddb748f852e663953b9961e4cf044bfb0c27b849e6bb8
|
|
| MD5 |
33ed6693fb394accbc8ffea974808ddc
|
|
| BLAKE2b-256 |
b7c879f461f159e0ba98885293973fab728252f57c52be70670ee98c87bcc919
|