Skip to main content

Data Models and Storage

KeyNetra persists state in relational tables with Alembic migration control.

This page maps high-level authorization concepts to concrete database tables.

Core Tables

Defined in keynetra/domain/models/:

  • tenant.py: tenants
  • rbac.py: users, roles, permissions, user_roles, role_permissions
  • relationship.py: relationships
  • acl.py: resource_acl
  • policy_versioning.py: policies, policy_versions
  • auth_model.py: auth_models
  • audit.py: audit_logs
  • idempotency.py: idempotency_records

Concept to Table Mapping

  • Tenancy and revisions: tenants
  • RBAC: users, roles, permissions, user_roles, role_permissions
  • ReBAC edges: relationships
  • ACL rules: resource_acl
  • Policy history: policies, policy_versions
  • Schema modeling: auth_models
  • Decision audit: audit_logs
  • Idempotent write replay: idempotency_records

Migration System

  • Alembic config: alembic.ini
  • Runtime env: alembic/env.py
  • Revisions: alembic/versions/*.py

Current revision history includes baseline plus tenant policy versioning, relationships, ACL, auth model, audit explainability, and idempotency support.

See Migrations for execution details.

Repository Pattern

Storage access is routed through repository implementations in:

  • keynetra/infrastructure/repositories/

Services use protocol interfaces from:

  • keynetra/services/interfaces.py