asyncio REST API Resource database
Project description
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…
Or, better yet, use postman to start playing with API.
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.0.1 (2018-06-07)
Implement minimal passing mypy compatibility [vangheem]
Rename BaseObject.__annotations__ to BaseObject.__gannotations__ to prevent namespace clashes with mypy and other things [vangheem]
4.0.0 (2018-06-05)
guillotina.browser.Response moved to guillotina.response.Response
move guillotina.browser.ErrorResponse to guillotina.response.ErrorResponse
guillotina.browser.UnauthorizedResponse removed
guillotina.response.Response no longer supports wrapping aiohttp responses
guillotina.response.Response can now be raised as an exception
returned or raised aiohttp responses now bypass guillotina renderer framework
raising any Response as an exception aborts current transaction
remove IFrameFormatsJson
remove IRenderFormats, IRendered is now a named adapter lookup
remove app_settings.renderers setting. Use the lookups
remove IDownloadView
remove TraversableDownloadService
remove IForbiddenAttribute
remove ISerializableException
remove IForbidden
by default, provide an async queue utility
move guillotina.files.CloudFileField to guillotina.fields.CloudFileField
fix deserialization with BucketListField
fix required field of PatchField
3.3.12 (2018-05-30)
Reindex security of group object even if we aren’t going to reindex it’s children [vangheem]
Refactor indexing so we can index security, provide guillotina.catalog.index.index_object function [vangheem]
3.3.11 (2018-05-30)
Move TRASHED annotation objects check to application logic instead of the query. This helps performance and query planer issue for cockroach [vangheem]
3.3.10 (2018-05-29)
Handle missing root object for database [vangheem]
3.3.9 (2018-05-29)
Fix cache key format [vangheem]
3.3.8 (2018-05-29)
Add more utilities: execute, safe_unidecode, run_async, get_object_by_oid [vangheem]
Prevent db cache poisening between containers of dynamic databases [vangheem]
Do not reuse transaction objects with get_containers [vangheem]
3.3.7 (2018-05-23)
async pool should commit when using transaction [vangheem]
3.3.6 (2018-05-23)
async pool should execute futures of request [vangheem]
3.3.5 (2018-05-22)
specify acl field name for access_users and access_roles indexer so we can easily reindex security [vangheem]
prevent running the same indexer multiple times [vangheem]
be able to manually index object by using guillotina.catalog.index.add_object(ob, modified=True, payload={}) [vangheem]
Fix bug in CORS with tus when guillotina was on different domain than web application calling it [vangheem]
3.3.4 (2018-05-21)
Make sure we write to a non-shared txn when creating db object [vangheem]
3.3.3 (2018-05-21)
Use exists instead of get_names for dynamic dbs [vangheem]
3.3.2 (2018-05-20)
Cockroachdb supports cascade and jsonb now [vangheem]
3.3.1 (2018-05-19)
only return task on request.execute_futures if there are futures to run [vangheem]
3.3.0 (2018-05-19)
Change reindexing security to futures, not queue for more consistent performance [vangheem]
Remove IBeforeObjectAssignedEvent as it wasn’t used [vangheem]
Rename directives.index to directives.index_field [vangheem]
Be able to specify priority on @configure.subscriber. Lower is higher priority. [vangheem]
Indexer now sends full object for ICatalogUtility.remove instead of tuple of data [vangheem]
3.2.7 (2018-05-15)
Indexing gathers all data on update instead of overwriting indexed data [vangheem]
3.2.6 (2018-05-12)
Provide IDatabaseManager.exists for dummy db impelementation [vangheem]
3.2.5 (2018-05-12)
add IDatabaseManager.exists method to be able to check if db exists [vangheem]
3.2.4 (2018-05-11)
Fix dynamic storage urls for cockroach [vangheem]
deserialize value before validation on patch fields [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
Hashes for guillotina-4.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 791a0bb335c0b673b2ae170a2160a101aaf6cb2e5998c0f173f5ff4bc9adf0f7 |
|
MD5 | 87e41c44b0db8deab690b3d0f0494555 |
|
BLAKE2b-256 | a632e1da1457138f9ebfc69fe701c3bbe0e09a899e352fc1b662cef1db3d776c |