{"id":13725544,"url":"https://github.com/ergo/ziggurat_foundations","last_synced_at":"2025-07-25T00:05:27.579Z","repository":{"id":10171135,"uuid":"12255047","full_name":"ergo/ziggurat_foundations","owner":"ergo","description":"Framework agnostic set of sqlalchemy classes that make building applications that require permissions an easy task.","archived":false,"fork":false,"pushed_at":"2023-03-08T11:08:09.000Z","size":732,"stargazers_count":71,"open_issues_count":6,"forks_count":22,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-03T03:11:11.900Z","etag":null,"topics":["authentication","authorization","flask","mixins","permission","permissions","pyramid","python","security","sqlalchemy"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ergo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst"}},"created_at":"2013-08-20T21:47:33.000Z","updated_at":"2024-03-23T08:12:31.000Z","dependencies_parsed_at":"2024-01-03T01:20:38.361Z","dependency_job_id":"d25e1725-09cc-47a3-9a49-85ee40e83fa2","html_url":"https://github.com/ergo/ziggurat_foundations","commit_stats":{"total_commits":467,"total_committers":23,"mean_commits":"20.304347826086957","dds":0.30406852248394,"last_synced_commit":"dd6bcca8b1d2b633d13567bb9b8b89f96f111a29"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergo%2Fziggurat_foundations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergo%2Fziggurat_foundations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergo%2Fziggurat_foundations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergo%2Fziggurat_foundations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ergo","download_url":"https://codeload.github.com/ergo/ziggurat_foundations/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161274,"owners_count":21057555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","authorization","flask","mixins","permission","permissions","pyramid","python","security","sqlalchemy"],"created_at":"2024-08-03T01:02:26.843Z","updated_at":"2025-04-10T05:10:32.026Z","avatar_url":"https://github.com/ergo.png","language":"Python","funding_links":[],"categories":["Python","Authorization"],"sub_categories":[],"readme":"# Ziggurat Foundations\n\n[![Build Status]](https://travis-ci.org/ergo/ziggurat_foundations) [![logo]](https://gitter.im/ergo/ziggurat_foundations)\n\n**DOCUMENTATION**: http://readthedocs.org/docs/ziggurat-foundations/en/latest/\n\n**BUG TRACKER**: https://github.com/ergo/ziggurat_foundations\n\nHigh level mixins for adding authorization, resource ownership and permission management\nfast, simple and easy. In summary, Ziggurat Foundations is a set of framework agnostic\nset of SQLAalchemy classes, so it can be used with Flask, Pyramid or other popular frameworks.\nIt is the perfect solution for handling complex login and user\nmanagement systems, from e-commerce systems, to private intranets or large CMS systems.\nIt can easily be extended to support any additional features you may need (explained\nfurther in the documentation)\n\nZigg has been used (at scale) for very large implementations (millions of real users) and\nhas been extended for custom applications such as geo-location applications that rely\non pin-point accuracy for a users location. Zigg has been designed to work for\nhigh end environments, where the user(s) are at the main focus of the application\n(for example Zigg could become the backbone for a social media style application).\n\nThe aim of this project is to supply set of generic models that cover the most\ncommon needs in application development when it comes to authorization - using\nflat and tree like data structures. We provide most commonly needed features in a \"standard\"\napplication, but provide them as mixins as we understand that every implementation\nhas its own use case and in doing so, extending the base models is very easy.\n\nZigg supplies extendable, robust and well tested models that include:\n\n- User - base for user accounts\n- Group - container for many users\n- Resource - Arbitrary database entity that can represent various object hierarchies -\n  blogs, forums, cms documents, pages etc.\n\nZigg provides standard functions that let you:\n\n- Assign arbitrary permissions directly to users (ie. access certain views)\n- Assign users to groups\n- Assign arbitrary permissions to groups\n- Assign arbitrary resource permissions to users (ie. only user X can access private forum)\n- Assign arbitrary resource permissions to groups\n- Manage nested resources with tree service\n- Assign a user o an external identity (such as facebook/twitter)\n- Manage the sign in/sign out process\n- Change users password and generate security codes\n- Example root context factory for assigning permissions per request (framework integration)\n\n\nZiggurat Foundations is BSD Licensed\n\n# Local development using docker\n\n    docker-compose run --rm app bash\n    cd ../application;\n\nTo run sqlite tests:\n    \n    tox\n\nTo run postgres tests:\n\n    DB_STRING=\"postgresql://test:test@db:5432/test\" DB=postgres tox\n\nTo run mysql tests:\n\n    DB_STRING=\"mysql+mysqldb://test:test@db_mysql/test\" DB=mysql tox\n\n[Build Status]: https://travis-ci.org/ergo/ziggurat_foundations.svg?branch=master\n[logo]: https://badges.gitter.im/ergo/ziggurat_foundations.svg\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fergo%2Fziggurat_foundations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fergo%2Fziggurat_foundations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fergo%2Fziggurat_foundations/lists"}