# Compliance Architecture

## Principles

1. **Compliance is independent** of UI fashion and optional modules — controls remain even if a feature UI changes.
2. Every business action that matters is **auditable** (`audit_logs`).
3. Financial postings only through **Posting Engine** ([ADR-010](adr/ADR-010.md)).
4. Regulated connectors (e.g. tax authority / سامانه مؤدیان) live behind Accounting/compliance adapters — never scatter across modules.

## Audit Log

Core `audit_logs` captures `tenant_id`, actor, action, resource, metadata, IP, user agent.

Modules should emit domain events and/or write their own audit trails for module-owned resources; never skip tenant context.

## Accounting Compliance (future)

- Double-entry integrity
- Cost centers / projects as dimensions
- Tax and e-invoicing providers via provider registry
- No direct `JournalEntry` creation outside Posting Engine

## Data Isolation

Cross-tenant reads for “support” require platform_admin controls and must be logged.

## Related Documents

- [Security Architecture](security-architecture.md)
- [ADR-010](adr/ADR-010.md)
- [Phases / Accounting](../phases/Accounting/README.md)
- [Project Principles](../development/project-principles.md)
