# narendrakumarnutalapati/licitra-execution-gateway architecture

> Architecture diagram of the GitHub repository narendrakumarnutalapati/licitra-execution-gateway, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/narendrakumarnutalapati/licitra-execution-gateway
- Repository: https://github.com/narendrakumarnutalapati/licitra-execution-gateway

## Overview

LICITRA is an execution gateway that mediates AI-agent actions: it scans intent, evaluates policy, issues a signed ticket, verifies the attempted action, and records the decision with tamper-evident audit evidence. The React dashboard exposes audit, integrity, OWASP metrics, proof verification, evidence, and attack demos. The README documents the complete workflow; sampled source confirms key package behavior and API routes, but omitted API sections limit certainty about some internal call wiring.

Main entry points: [`apps/api/main.py`](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/api/main.py) (Gateway API), [`apps/web/src/pages`](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/tree/main/apps/web/src/pages) (Dashboard pages), [`packages/intent/intent.py`](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/intent/intent.py) (Intent scan), [`packages/verifier/verifier.py`](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/verifier/verifier.py) (Action verification)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_gateway["Execution gateway"]
  node_api["Gateway API<br/>[main.py]"]
end

subgraph group_controls["Authorization controls"]
  node_intent["Intent scan<br/>[intent.py]"]
  node_patterns["Injection patterns<br/>[patterns.py]"]
  node_policy["Policy evaluation<br/>[policy.py]"]
  node_ticket["Signed tickets<br/>[tickets.py]"]
  node_verify["Action verification<br/>[verifier.py]"]
end

subgraph group_audit["Audit and evidence"]
  node_audit_chain["Audit chain<br/>[audit_chain.py]"]
  node_mmr["MMR ledger<br/>[mmr.py]"]
  node_evidence["Evidence records<br/>[evidence.py]"]
end

subgraph group_storage["Persistent state"]
  node_database[("PostgreSQL<br/>[models.py]")]
  node_db_session["DB sessions<br/>[database.py]"]
end

subgraph group_dashboard["Operator dashboard"]
  node_dashboard["Dashboard pages"]
  node_web_api["Web API client<br/>[api.js]"]
  node_attack_demos["Attack demos"]
end

node_agent(("AI agent"))
node_operator(("Operator"))

node_agent -->|"submits action"| node_api
node_api -->|"creates scanned intent"| node_intent
node_intent -->|"checks patterns"| node_patterns
node_api -->|"evaluates policy"| node_policy
node_api -->|"issues ticket"| node_ticket
node_api -->|"verifies attempt"| node_verify
node_verify -->|"checks signature and binding"| node_ticket
node_api -->|"records decision"| node_audit_chain
node_audit_chain -->|"appends event"| node_mmr
node_api -->|"generates evidence"| node_evidence
node_api -->|"uses sessions"| node_db_session
node_db_session -->|"reads and writes"| node_database
node_mmr -->|"stores leaves and peaks"| node_database
node_operator -->|"reviews controls"| node_dashboard
node_dashboard -->|"requests data"| node_web_api
node_web_api -->|"calls endpoints"| node_api
node_dashboard -->|"runs browser demos"| node_api
node_attack_demos -->|"exercises attacks"| node_api

click node_api "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/api/main.py"
click node_intent "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/intent/intent.py"
click node_patterns "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/intent/patterns.py"
click node_policy "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/policy/policy.py"
click node_ticket "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/tickets/tickets.py"
click node_verify "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/verifier/verifier.py"
click node_audit_chain "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/audit_chain/audit_chain.py"
click node_mmr "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/mmr/mmr.py"
click node_evidence "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/evidence/evidence.py"
click node_database "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/api/models.py"
click node_db_session "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/api/database.py"
click node_dashboard "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/tree/main/apps/web/src/pages"
click node_web_api "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/web/src/api.js"
click node_attack_demos "https://github.com/narendrakumarnutalapati/licitra-execution-gateway/tree/main/apps/demo-agent"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_api toneBlue
class node_intent,node_patterns,node_policy,node_ticket,node_verify toneAmber
class node_audit_chain,node_mmr,node_evidence toneMint
class node_database,node_db_session toneRose
class node_dashboard,node_web_api,node_attack_demos,node_agent,node_operator toneIndigo
```

## Components

### Execution gateway

- [Gateway API](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/api/main.py): `apps/api/main.py`

### Authorization controls

- [Intent scan](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/intent/intent.py): `packages/intent/intent.py`
- [Injection patterns](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/intent/patterns.py): `packages/intent/patterns.py`
- [Policy evaluation](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/policy/policy.py): `packages/policy/policy.py`
- [Signed tickets](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/tickets/tickets.py): `packages/tickets/tickets.py`
- [Action verification](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/verifier/verifier.py): `packages/verifier/verifier.py`

### Audit and evidence

- [Audit chain](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/audit_chain/audit_chain.py): `packages/audit_chain/audit_chain.py`
- [MMR ledger](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/mmr/mmr.py): `packages/mmr/mmr.py`
- [Evidence records](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/packages/evidence/evidence.py): `packages/evidence/evidence.py`

### Persistent state

- [PostgreSQL](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/api/models.py): `apps/api/models.py`
- [DB sessions](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/api/database.py): `apps/api/database.py`

### Operator dashboard

- [Dashboard pages](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/tree/main/apps/web/src/pages): `apps/web/src/pages`
- [Web API client](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/blob/main/apps/web/src/api.js): `apps/web/src/api.js`
- [Attack demos](https://github.com/narendrakumarnutalapati/licitra-execution-gateway/tree/main/apps/demo-agent): `apps/demo-agent`

### Other components

- **AI agent**
- **Operator**

## Connections

- AI agent → Gateway API: submits action
- Gateway API → Intent scan: creates scanned intent
- Intent scan → Injection patterns: checks patterns
- Gateway API → Policy evaluation: evaluates policy
- Gateway API → Signed tickets: issues ticket
- Gateway API → Action verification: verifies attempt
- Action verification → Signed tickets: checks signature and binding
- Gateway API → Audit chain: records decision
- Audit chain → MMR ledger: appends event
- Gateway API → Evidence records: generates evidence
- Gateway API → DB sessions: uses sessions
- DB sessions → PostgreSQL: reads and writes
- MMR ledger → PostgreSQL: stores leaves and peaks
- Operator → Dashboard pages: reviews controls
- Dashboard pages → Web API client: requests data
- Web API client → Gateway API: calls endpoints
- Dashboard pages → Gateway API: runs browser demos
- Attack demos → Gateway API: exercises attacks
