Skip to content

[Priority 3] Add access control and governance layer #63

@marknutter

Description

@marknutter

Problem

No way to mark memories as:

  • Private (don't include in shared contexts)
  • Sensitive (require human approval before loading)
  • Excluded from recall (manual-access-only)
  • Redacted fields (API keys, passwords)

All memory entries are treated equally regardless of content sensitivity.

Proposal (from AIGNE paper analysis)

Extend memory schema with access metadata:

{
  "id": "m_sensitive_data",
  "summary": "Production API keys",
  "tags": ["credentials", "prod"],
  "access": {
    "visibility": "private",
    "exclude_from": ["recall"],
    "require_human_approval": true,
    "redact_fields": ["api_key", "password"]
  }
}

Enforce in:

  • Search: skip entries with exclude_from: ["recall"]
  • Display: redact sensitive fields unless approved
  • Recall: prompt for confirmation before loading require_human_approval entries

Implementation

  1. Add access JSON field to memory schema
  2. Update search logic to respect exclude_from
  3. Add redaction logic to memory_extract
  4. CLI: rlm memory set-access <entry_id> --visibility private
  5. User prompts for approval when needed

Impact

  • Security (prevent accidental leakage)
  • Privacy (GDPR/HIPAA compliance)
  • Trust (explicit control over sensitive data)
  • Multi-user support (team vs private memories)

Effort

2-3 days

Related

  • Access control/governance from 'Everything is Context' paper
  • Metadata-driven permissions

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions