Skip to main content

asyncio REST API Resource database

Project description

Introduction
============

.. image:: https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat
:target: http://guillotina.readthedocs.io/en/latest/

.. image:: https://travis-ci.org/plone/guillotina.svg?branch=master
:target: https://travis-ci.org/plone/guillotina

.. image:: https://codecov.io/gh/plone/guillotina/branch/master/graph/badge.svg
:target: https://codecov.io/gh/plone/guillotina/branch/master
:alt: Test Coverage

.. image:: https://img.shields.io/pypi/pyversions/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina/
:alt: Python Versions

.. image:: https://img.shields.io/pypi/v/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina

.. image:: https://img.shields.io/pypi/l/guillotina.svg
:target: https://pypi-hypernode.com/pypi/guillotina/
:alt: License

.. image:: https://badges.gitter.im/plone/guillotina.png
:target: https://gitter.im/plone/guillotina
:alt: Chat

Please `read the detailed docs <http://guillotina.readthedocs.io/en/latest/>`_


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


4.4.0 (2018-12-27)
------------------

New:

- Implement HEAD for `@download` endpoint
[vangheem]

- Be able to customize the table names used with `objects_table_name` and
`blobs_table_name` database configuration options.
[vangheem]

- Adding the option to define the reader for annotations
[bloodbare]

Fixes:

- Fix Resource.__getattr__() for empty fields with default values
[masipcat]


4.3.5 (2018-12-09)
------------------

- Added before render view event [lferran]
...

You are seeing a truncated changelog.

You can read the `changelog file <https://github.com/plone/guillotina/blob/master/CHANGELOG.rst>`_
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.6.tar.gz (5.9 MB view hashes)

Uploaded Source

Built Distribution

guillotina-4.5.6-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