Skip to main content

Ziggurat Foundations

Build Status logo

DOCUMENTATION: http://readthedocs.org/docs/ziggurat-foundations/en/latest/

BUG TRACKER: https://github.com/ergo/ziggurat_foundations

High level mixins for adding authorization, resource ownership and permission management fast, simple and easy. In summary, Ziggurat Foundations is a set of framework agnostic set of SQLAalchemy classes, so it can be used with Flask, Pyramid or other popular frameworks. It is the perfect solution for handling complex login and user management systems, from e-commerce systems, to private intranets or large CMS systems. It can easily be extended to support any additional features you may need (explained further in the documentation)

Zigg has been used (at scale) for very large implementations (millions of real users) and has been extended for custom applications such as geo-location applications that rely on pin-point accuracy for a users location. Zigg has been designed to work for high end environments, where the user(s) are at the main focus of the application (for example Zigg could become the backbone for a social media style application).

The aim of this project is to supply set of generic models that cover the most common needs in application development when it comes to authorization - using flat and tree like data structures. We provide most commonly needed features in a "standard" application, but provide them as mixins as we understand that every implementation has its own use case and in doing so, extending the base models is very easy.

Zigg supplies extendable, robust and well tested models that include:

  • User - base for user accounts
  • Group - container for many users
  • Resource - Arbitrary database entity that can represent various object hierarchies - blogs, forums, cms documents, pages etc.

Zigg provides standard functions that let you:

  • Assign arbitrary permissions directly to users (ie. access certain views)
  • Assign users to groups
  • Assign arbitrary permissions to groups
  • Assign arbitrary resource permissions to users (ie. only user X can access private forum)
  • Assign arbitrary resource permissions to groups
  • Manage nested resources with tree service
  • Assign a user o an external identity (such as facebook/twitter)
  • Manage the sign in/sign out process
  • Change users password and generate security codes
  • Example root context factory for assigning permissions per request (framework integration)

Ziggurat Foundations is BSD Licensed

Local development using docker

docker-compose run --rm app bash
cd ../application;

To run sqlite tests:

tox

To run postgres tests:

DB_STRING="postgresql://test:test@db:5432/test" DB=postgres tox

To run mysql tests:

DB_STRING="mysql+mysqldb://test:test@db_mysql/test" DB=mysql tox

Release files for ziggurat-foundations 0.9.1

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

Source distribution (sdist)

Source distribution for ziggurat-foundations 0.9.1
File Size Uploaded
ziggurat_foundations-0.9.1.tar.gz 50.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ziggurat-foundations 0.9.1
File Interpreter ABI Platform
ziggurat_foundations-0.9.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 116.5 kB

Release files / ziggurat_foundations-0.9.1.tar.gz

Download URL ziggurat_foundations-0.9.1.tar.gz
Size 50.4 kB
Tags Source
SHA-256 checksum
How to use checksums
3447b12203b1a1e1d47da16eac3209cb4ff628baefc317075c07cf5022604758
BLAKE2b-256 checksum
How to use checksums
ac743c5fbd92586484544aa69259cb4cc5f5825b77c573d19ee7da6548983247
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / ziggurat_foundations-0.9.1-py2.py3-none-any.whl

Download URL ziggurat_foundations-0.9.1-py2.py3-none-any.whl
Size 66.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
b05c7e582c5933f946ef2efb762be6b796f5b56561733a99c62a9215e97d1979
BLAKE2b-256 checksum
How to use checksums
b69787f8b1668f151933ad1be97d857ea9f043ccbee3c1103d3a9de640b1371c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.9.1 This release

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.3

1 release file

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.8

1 release file

0.6.7

1 release file

0.6.5

1 release file

0.6.4

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.6

1 release file

0.5.5

1 release file

0.5.4

1 release file

0.5.3

0.5.2

1 release file

0.5.1

1 release file

0.5

1 release file

0.4.3

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

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