asyncio transactional server to build REST API / Websocket with ZODB
Project description
This is the working project of the next generation plone server based on asyncio.
depends on python 3.5
Getting started
We use buildout of course:
python3.5 bootstrap-buildout.py ./bin/buildout
The buildout installs the app itself, code analysis tools, and a test runner.
Run the zeo
To run the zeo on a different terminal:
./bin/runzeo -C zeo.cfg
Run the server
By default it mounts a zeo server and a ZODB so you need the ZEO server running.
To run the server:
./bin/server
Creating default content
Once started, you will require to add at least a Plone site to start fiddling around:
curl -X POST -H "Accept: application/json" --user root:root -H "Content-Type: application/json" -d '{ "@type": "Site", "title": "Plone 1", "id": "plone", "description": "Description" }' "http://127.0.0.1:8080/zodb1/"
and give permissions to add content to it:
curl -X POST -H "Accept: application/json" --user root:root -H "Content-Type: application/json" -d '{ "prinrole": { "Anonymous User": ["plone.Member", "plone.Reader"] } }' "http://127.0.0.1:8080/zodb1/plone/@sharing"
and create actual content:
curl -X POST -H "Accept: application/json" --user root:root -H "Content-Type: application/json" -d '{ "@type": "Item", "title": "News", "id": "news" }' "http://127.0.0.1:8080/zodb1/plone/"
Run tests
We’re using py.test:
./bin/py.test src
and for test coverage:
./bin/py.test --cov=plone.server src/
Default
Default root access can be done with AUTHORIZATION header : Basic admin
Running dependency graph
Using buildout:
./bin/buildout -c dependency-graph.cfg ./bin/dependencies-eggdeps > docs/dependency-graph.txt
1.0a8 (2016-12-18)
On deserialization errors, provide error info on what fields could not be deserialized in the api response. [vangheem]
Be able to provide data from serializable exception data to be used with ErrorResponse objects with Exceptions that implement ISerializableException. [vangheem]
Add Events to enable audit of activity [ramonnb]
Add the JSON Field [ramonnb]
Fix various function naming standard issues to not use camel case. [vangheem]
Fix imports with isort. [gforcada]
remove local component registry [vangheem]
GET @search(plone.SearchContent) passed to search method and POST @search(plone.RawSearchContent) passed to query method on ICatalogUtility. GET is now meant to be query the search utility will do something clever with and POST is meant to be a raw query passed to utility [vangheem]
provide new plone.SearchContent, plone.RawSearchContent and plone.ManageCatalog permissions [vangheem]
provide IConstrainTypes adapter interface to override allowed types in a folder [vangheem]
provide dynamic behavior for objects [ramonnb]
provide basic command line utility to interact with APIs [vangheem]
fix fallback cors check [vangheem]
Added zope.event async version on plone.server.events (notify and async handlers) [ramonnb]
Improve code analysis, add configurations for it and remove all tabs. [gforcada]
1.0a7 (2016-11-24)
add jwt token validator [vangheem]
Add to finalize an AsyncUtil when its finishing the software [ramonnb]
Remove AUTH_USER_PLUGINS and AUTH_EXTRACTION_PLUGINS. Authentication now consists of auth extractors, user identifiers and token validators. [vangheem]
Correctly check parent object for allowed addable types [vangheem]
Get default values from schema when attribute on object is not set [ramonnb]
1.0a6 (2016-11-21)
Move authorization to after traversal [vangheem]
Fix issue where you could not save data with the API [vangheem]
1.0a5 (2016-11-21)
Adding zope.event compatible async handlers for ElasticSearch and other events handlers [@bloodbare]
Adding PostCommit and PreCommit Hooks that can be async operations [@bloodbare]
1.0a4 (2016-11-19)
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.