Skip to main content

asyncio REST API Resource database

Project description

Introduction

https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat https://travis-ci.org/plone/guillotina.svg?branch=master Test Coverage Python Versions https://img.shields.io/pypi/v/guillotina.svg License Chat Docker Cloud Build Status

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.

https://www.herokucdn.com/deploy/button.svg

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.13 (2020-11-23)

  • Allowing to define Owner roles users on creation [bloodbare]

6.0.12 (2020-11-15)

  • Fixing workflow subscriber for state history [bloodbare]

  • Allow to search on basic workflow state publish [bloodbare]

6.0.11 (2020-11-08)

  • Adding Vocabularies API compatible to Plone REST API [bloodbare]

  • Adding Workflow contrib package with API compatible to Plone REST API [bloodbare]

  • Adding languages and contrib vocabulary [bloodbare]

  • Avoid default value check on get for each get operation [bloodbare]

  • Adding post serialize mechanism to modify JSON responses based on packages [bloodbare]

6.0.10 (2020-11-01)

  • Fix conflict cors response. [bloodbare]

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]

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

guillotina-6.0.13.tar.gz (6.7 MB view hashes)

Uploaded Source

Built Distribution

guillotina-6.0.13-cp37-cp37m-macosx_10_15_x86_64.whl (5.9 MB view hashes)

Uploaded CPython 3.7m macOS 10.15+ x86-64

Supported by

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