{"id":28637505,"url":"https://github.com/jonatasoli/keyrunes","last_synced_at":"2025-06-21T13:38:35.484Z","repository":{"id":298203659,"uuid":"994573507","full_name":"jonatasoli/keyrunes","owner":"jonatasoli","description":"⚔️ A modern, attribute-aware access control engine written in Rust. Supports RBAC, ABAC, ReBAC, PBAC, and fine-grained multi-tenant policies. Built to rival Keycloak's authorization module.","archived":false,"fork":false,"pushed_at":"2025-06-02T06:36:33.000Z","size":17,"stargazers_count":4,"open_issues_count":9,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-19T01:53:24.801Z","etag":null,"topics":["abac","api","authentication","keyrunes","oauth2","oidc","pbac","permissions","rbac","rebac","rust","rust-lang","rustlang","saml"],"latest_commit_sha":null,"homepage":"https://keyrunes.com/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonatasoli.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-02T06:35:28.000Z","updated_at":"2025-06-17T21:41:48.000Z","dependencies_parsed_at":"2025-06-09T23:56:57.253Z","dependency_job_id":"eec0c1ae-141d-4e69-9f19-0012059569b4","html_url":"https://github.com/jonatasoli/keyrunes","commit_stats":null,"previous_names":["jonatasoli/keyrunes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonatasoli/keyrunes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasoli%2Fkeyrunes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasoli%2Fkeyrunes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasoli%2Fkeyrunes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasoli%2Fkeyrunes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonatasoli","download_url":"https://codeload.github.com/jonatasoli/keyrunes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonatasoli%2Fkeyrunes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261130717,"owners_count":23114025,"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":["abac","api","authentication","keyrunes","oauth2","oidc","pbac","permissions","rbac","rebac","rust","rust-lang","rustlang","saml"],"created_at":"2025-06-12T18:11:08.029Z","updated_at":"2025-06-21T13:38:30.470Z","avatar_url":"https://github.com/jonatasoli.png","language":null,"funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# 🛡️ KeyRunes — Modern Access Control Engine in Rust\n\n**KeyRunes** is a high-performance, extensible authorization system designed to compete with and surpass traditional solutions like Keycloak. It brings together advanced access control models such as **RBAC**, **ABAC**, **ReBAC**, and **PBAC**, while offering a great developer experience and enterprise-grade scalability.\n\n\u003e ⚙️ Built for Rust. Inspired by RPG systems. Designed for security-critical platforms.\n\n---\n\n## 🚀 Key Features\n\n### 🔐 Advanced Authorization Models\n\n- **RBAC** (Role-Based Access Control): Global (realm) and per-client roles, including role composition.\n- **ABAC** (Attribute-Based Access Control): Policies based on dynamic user/environment attributes (e.g. time, department, device).\n- **ReBAC** (Relationship-Based Access Control): Authorization through graph-based relationships (e.g. ownership, collaboration).\n- **PBAC** (Policy-Based Access Control): Combine RBAC + ABAC in unified policies.\n\n### 📈 Scalability \u0026 Performance\n\n- Lightweight **Policy Decision Point (PDP)** with \u003c10ms latency at enterprise scale.\n- Optional in-process or external microservice deployment.\n- Distributed cache support to reduce calls to external sources (e.g. Keycloak/LDAP).\n\n### 👨‍💻 Developer Experience\n\n- **Policy-as-Code** using YAML or Rego, versionable via Git.\n- CI/CD-ready: Run automated tests for policies.\n- Simulate access decisions before deployment with a rich UI.\n- SDKs (planned) for Rust, Java, Go, and Python for seamless integration.\n\n### 📊 Audit \u0026 Compliance\n\n- Complete decision logs with metadata (timestamp, policy, attributes).\n- Automated rollback for failed policies in production.\n- Compliance reports for standards like HIPAA and PCI.\n\n### 🔌 Integration \u0026 Extensibility\n\n- Federate identities from Keycloak, Okta and others via OIDC.\n- Map custom IdP attributes into policies.\n- Webhook support for access denial events.\n- Plugin system for sourcing attributes from internal systems (CRM, HR).\n\n### 🏢 Multi-Tenant Support\n\n- Isolated policies and data per tenant.\n- Delegated administration (e.g. department leads managing roles).\n\n### 💡 Real-World Use Cases\n\n- Hospitals (HIPAA): Role + location + shift access to medical records.\n- Banks: Enforce MFA outside corporate network.\n- E-commerce: Temporary supplier access.\n- IoT: Device-based publish/subscribe permissions.\n\n---\n\n## 📦 Roadmap (Milestones)\n\n| Phase | Focus |\n|-------|-------|\n| MVP   | RBAC, Policy-as-Code, SDKs, Keycloak integration |\n| V1    | ABAC, ReBAC, Simulators, Attribute Graphs |\n| V2    | Multi-tenancy, Audit, Compliance tooling |\n| V3    | Edge-case handling, IoT, Delegated access UI |\n\n---\n\n## 🧪 Quickstart (WIP)\n\n\u003e ⚠️ The implementation is still in progress. A `quickstart` guide will be available once the core engine is ready.\n\n---\n\n## 📂 Project Structure (Planned)\n\n/src\n/core # Policy engine\n/models # Roles, attributes, relationships\n/parser # Policy-as-code parser (YAML/Rego)\n/sdk # API bindings\n/tests\n/docs\n\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! If you’re interested in:\n- Access control systems\n- Graph-based security\n- High-performance Rust services\n\n…then feel free to open issues, suggest ideas, or contribute code once we’re live 🚀\n\n---\n\n## 📄 License\n\n[MIT](LICENSE)\n\n---\n\n## 🧙‍♂️ About the Name\n\nJust like magical runes control access to forbidden realms in fantasy worlds, **KeyRunes** grants or denies access to sensitive resources — through logic, context, and relationships.\n\n\u003e 🔒 **Security meets storytelling.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonatasoli%2Fkeyrunes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonatasoli%2Fkeyrunes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonatasoli%2Fkeyrunes/lists"}