Skip to main content

asyncio REST API Resource database

Project description

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

Please read the detailed docs

This is the working project of the next generation Guillotina server based on asyncio.

Dependencies

  • python >= 3.6

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

Getting started with development

Using pip:

./bin/pip install requirements.txt
./bin/pip install -e .[test]

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 \
    guillotina/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

4.5.8 (2019-03-15)

  • Add container_id to jsonb data [vangheem]

  • Fix memory leak in security policy lookups [vangheem]

  • Introduce migrate command [vangheem]

  • Add vacuum command [vangheem]

  • Fix HEAD tus [bloodbare]

  • Define option to not purge DB on deletes [bloodbare]

  • Run request.execute_futures with managed_transaction context manager [vangheem]

  • Add code owners [bloodbare]

4.5.7 (2019-03-08)

  • Introduce UnionField schema type to allow fields to be one of multiple types of fields. [vangheem]

  • Fix dynamic field keyword values to work with single or array values. This helps integration with elasticsearch. [vangheem]

  • Fix GuillotinaDBRequester.make_request() not decoding json responses [masipcat]

  • Missing ‘db_schema’ in ‘tid_sequence’ table [masipcat]

  • Add ‘db_schema’ to postgresql storage config [masipcat]

4.5.6 (2019-02-18)

  • Fix CORS on tus [bloodbare]

  • Support tus upload for multifile field [bloodbare]

  • Ws token on application [bloodbare]

4.5.5 (2019-02-15)

  • Fix losing startup command setting hints after application configuration [vangheem]

  • Be able to provide additional metadata for dynamic fields [vangheem]

  • Bugfix: Raise HTTPUnauthorized if trying to modify a write_protected field [lferran]

  • Adding = to valid chars. [bloodbare]

  • Allowing to get user information of application [bloodbare]

  • Fixing SQL creation function [bloodbare]

4.5.4 (2019-02-07)

  • Fix serialization of json field to work with swagger [vangheem]

4.5.3 (2019-01-31)

  • Add get method to BucketListValue class [vangheem]

4.5.2 (2019-01-31)

  • Reusage of jwt decode [bloodbare]

4.5.1 (2019-01-30)

  • Fix read connection lock regression [vangheem]

4.5.0 (2019-01-30)

  • By default, do not serialize json data to postgresql anymore. If you were depending on store_json default to be true, you need to update [vangheem]

  • Provide guillotina.db.interfaces.IJSONDBSerializer to be able to override json stored in posgresql to be different than what is serialized in catalog/elasticsearch/etc [vangheem]

  • Improved PostgresqlStorage._check_bad_connection() [masipcat]

-fix typos in documentation

4.4.10 (2019-01-23)

  • postgresql storage needs to share connection lock [vangheem]

4.4.9 (2019-01-15)

  • Handle if no data to iterate on for downloads [vangheem]

4.4.8 (2019-01-15)

  • Fix release [vangheem]

4.4.7 (2019-01-15)

  • Defer preparing download response so http exceptions are handle correctly [vangheem]

4.4.6 (2019-01-15)

  • Fix getting binding file field for cloud files [vangheem]

  • provide guillotina.utils.get_url function that pays attention to X-VirtualHost-Monster header [vangheem]

  • Take X-Forwarded-Proto into account for request url [vangheem]

  • Implement multi attachments [masipcat]

4.4.5 (2019-01-11)

  • Allow to login on IApplication. [bloodbare]

4.4.4 (2019-01-11)

  • Be able to prevent closing database connection pools [vangheem]

4.4.3 (2019-01-11)

  • Implement db.storage.spg.PGConnectionManager class to allow safely sharing pool and read connections between multiple storages. [vangheem]

4.4.2 (2019-01-10)

  • Option to add different type of containers. [bloodbare]

4.4.1 (2019-01-09)

  • Postgresql storage accepts pool arguments [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

guillotina-4.5.8.tar.gz (5.9 MB view hashes)

Uploaded Source

Built Distribution

guillotina-4.5.8-py3-none-any.whl (5.4 MB view hashes)

Uploaded Python 3

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