Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

guillotina_asyncom

POC of integrating a new Content-type DBFolder

  • A DBFolder represents a table on postgres with a related sqlalchemy model

Benefits

  • Use guillotina permission system
  • Use guillotina framework.
  • Lookup views on a context (a sqlalchemy object)
  • Integrate with the guillotina gmi interface

Howto use

  1. Create your regular sqlalchemy model, like, import your Base, from guillotina_asyncom.db
from guillotina_asyncom.db import Base
import sqlalchemy as sa

@implementer(IModel)
class Model(Base):
    __tablename__ = "extras"

    pk = sa.Column(sa.Integer, primary_key=True)
    value = sa.Column(sa.JSONB)

Add an object whenever you want of your guillotina content tree:

POST /db/guillotina/
{
    "@type": "DBFolder",
    "id", : "dbmodel",
    "model": "Model"
}

From here, we can just use the guillotina API with our new endpoint.

POST /db/guillotina/dbmodel/ { "value": {"prop", "value"} }

GET /db/guillotina/dbmodel/@search GET /db/guillotina/dbmodel/{pk} DELETE /db/guillotina/dbmodel/{pk} PATCH /db/guillotina/dbmodel/{pk}

Thought it should work registering services for instances...

POST /db/guillotina/dbmodel/{pk}/@requeue

  • Cool feature: It integrates with guillotina_react :)

IDEAS and TODOS

  • It's not hard to build a generic model explorer from here. All registered models on sqlalchemy live on Base.metadata... just build a small traversal around

  • Generate the expected schema for every new type, perhaps on the /db/guillotina/dbmodel/@schema taking it from declarative sqlalchemy models

  • Integrate the permission system on rows... Just implement an acl jsonb column in your models. (Setting the ownership, or whatever you want..)

  • The event system is still not implemented, perhaps could be implemented but with some new events. (If we do with the actuals we will mess with the catalog)

  • Implement a rich @search model (on the end we can just translate, the actual implementations to sqlalchemy querys). Also implement pagger, and the rest. This will make this fit so well with guillotina_react.

...

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.

Metadata

Release files for guillotina-asyncom 0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for guillotina-asyncom 0a1
File Size Uploaded
guillotina_asyncom-0a1.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for guillotina-asyncom 0a1
File Interpreter ABI Platform
guillotina_asyncom-0a1-py3-none-any.whl Python 3 none any Details

Total release size: 22.2 kB

Release files / guillotina_asyncom-0a1.tar.gz

Download URL guillotina_asyncom-0a1.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
446bf075e6fbf74fa93fbaa0ede2fed41104f0f80cfbb41e810fc2f152f3dfff
BLAKE2b-256 checksum
How to use checksums
9ca0175196f9049ada62502b86b3529a75aa0387de4b46780a9c19f9728e08bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.0

Release files / guillotina_asyncom-0a1-py3-none-any.whl

Download URL guillotina_asyncom-0a1-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f600b9c08eadf7049958b6c65171adf2f6472fd7cb849a5923f5ea38e4be4c98
BLAKE2b-256 checksum
How to use checksums
6378b877f51166bfd923b312cc6c29bf85b4f4903d3c11463845986587bbdd45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.0

Release history Release notifications | RSS feed

This release

0a1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page