Skip to content

Audit اور Compliance

Triggerfish میں ہر policy فیصلہ مکمل context کے ساتھ logged ہوتا ہے۔ کوئی استثناء نہیں، کوئی "debug mode" نہیں جو logging غیر فعال کرے، اور LLM کے لیے audit records suppress کرنے کا کوئی طریقہ نہیں۔ یہ سسٹم کے ہر سیکیورٹی فیصلے کا مکمل، tamper-evident ریکارڈ فراہم کرتا ہے۔

کیا Recorded ہوتا ہے

Audit logging ایک مقررہ قاعدہ ہے — یہ ہمیشہ فعال ہے اور غیر فعال نہیں کیا جا سکتا۔ ہر enforcement hook execution ایک audit record تیار کرتا ہے جس میں شامل ہیں:

Fieldتفصیل
timestampفیصلہ کب کیا گیا (ISO 8601، UTC)
hook_typeکون سا enforcement hook چلا (PRE_CONTEXT_INJECTION، PRE_TOOL_CALL، POST_TOOL_RESPONSE، PRE_OUTPUT، SECRET_ACCESS، SESSION_RESET، AGENT_INVOCATION، MCP_TOOL_CALL)
session_idوہ session جس میں عمل ہوا
decisionALLOW، BLOCK، یا REDACT
reasonفیصلے کی انسانی زبان میں وضاحت
inputوہ ڈیٹا یا عمل جس نے hook کو trigger کیا
rules_evaluatedفیصلے تک پہنچنے کے لیے کون سے policy قواعد چیک کیے گئے
taint_beforeعمل سے پہلے session taint سطح
taint_afterعمل کے بعد session taint سطح (اگر تبدیل ہوئی)
metadatahook type کے لیے مخصوص اضافی context

Audit Record کی مثالیں

اجازت یافتہ Output

json
{
  "timestamp": "2025-01-29T10:23:47Z",
  "hook_type": "PRE_OUTPUT",
  "session_id": "sess_456",
  "decision": "ALLOW",
  "reason": "Classification check passed",
  "input": {
    "target_channel": "telegram",
    "recipient": "owner"
  },
  "rules_evaluated": [
    "no_write_down",
    "channel_classification"
  ],
  "taint_before": "INTERNAL",
  "taint_after": "INTERNAL"
}

Blocked Write-Down

json
{
  "timestamp": "2025-01-29T10:24:12Z",
  "hook_type": "PRE_OUTPUT",
  "session_id": "sess_456",
  "decision": "BLOCK",
  "reason": "Session taint (CONFIDENTIAL) exceeds effective classification (PUBLIC)",
  "input": {
    "target_channel": "whatsapp",
    "recipient": "external_user_789",
    "effective_classification": "PUBLIC"
  },
  "rules_evaluated": [
    "no_write_down",
    "channel_classification",
    "recipient_classification"
  ],
  "taint_before": "CONFIDENTIAL",
  "taint_after": "CONFIDENTIAL"
}

Taint Escalation کے ساتھ Tool Call

json
{
  "timestamp": "2025-01-29T10:23:45Z",
  "hook_type": "POST_TOOL_RESPONSE",
  "session_id": "sess_456",
  "decision": "ALLOW",
  "reason": "Tool response classified and taint updated",
  "input": {
    "tool_name": "salesforce.query_opportunities",
    "response_classification": "CONFIDENTIAL"
  },
  "rules_evaluated": [
    "tool_response_classification",
    "taint_escalation"
  ],
  "taint_before": "PUBLIC",
  "taint_after": "CONFIDENTIAL",
  "metadata": {
    "lineage_id": "lin_789xyz",
    "records_returned": 3
  }
}

Agent Delegation Blocked

json
{
  "timestamp": "2025-01-29T10:25:00Z",
  "hook_type": "AGENT_INVOCATION",
  "session_id": "sess_456",
  "decision": "BLOCK",
  "reason": "Agent ceiling (INTERNAL) below session taint (CONFIDENTIAL)",
  "input": {
    "caller_agent_id": "agent_abc",
    "callee_agent_id": "agent_def",
    "callee_ceiling": "INTERNAL",
    "task": "Generate public summary"
  },
  "rules_evaluated": [
    "delegation_ceiling_check",
    "delegation_allowlist",
    "delegation_depth"
  ],
  "taint_before": "CONFIDENTIAL",
  "taint_after": "CONFIDENTIAL"
}

Audit Trace Capabilities

Audit trace flow: forward trace, backward trace, and classification justification feed into compliance export

Audit records کو چار طریقوں سے query کیا جا سکتا ہے، ہر ایک مختلف compliance اور forensic ضرورت کو پورا کرتا ہے۔

Forward Trace

سوال: "Salesforce record opp_00123ABC کے ڈیٹا کا کیا ہوا؟"

Forward trace ایک ڈیٹا element کو اس کے اصل مقام سے ہر transformation، session، اور output تک trace کرتا ہے۔ یہ جواب دیتا ہے: یہ ڈیٹا کہاں گیا، کس نے دیکھا، اور کیا یہ کبھی organization سے باہر بھیجا گیا؟

Origin: salesforce.query_opportunities
  --> lineage_id: lin_789xyz
  --> classification: CONFIDENTIAL
  --> session: sess_456

Transformations:
  --> Extracted fields: name, amount, stage
  --> LLM summarized 3 records into pipeline overview

Outputs:
  --> Sent to owner via Telegram (ALLOWED)
  --> Blocked from WhatsApp external contact (BLOCKED)

Backward Trace

سوال: "10:24 UTC پر بھیجے گئے پیغام میں کون سے sources شامل تھے؟"

Backward trace ایک output سے شروع ہو کر lineage chain میں پیچھے جاتا ہے تاکہ ہر data source کی شناخت ہو جس نے output کو متاثر کیا۔ یہ سمجھنے کے لیے ضروری ہے کہ آیا classified ڈیٹا response میں شامل تھا۔

Output: Message sent to Telegram at 10:24:00Z
  --> session: sess_456
  --> lineage sources:
      --> lin_789xyz: Salesforce opportunity (CONFIDENTIAL)
      --> lin_790xyz: Salesforce opportunity (CONFIDENTIAL)
      --> lin_791xyz: Salesforce opportunity (CONFIDENTIAL)
      --> lin_792xyz: Weather API (PUBLIC)

Classification Justification

سوال: "یہ ڈیٹا CONFIDENTIAL کیوں marked ہے؟"

Classification justification اس قاعدے یا policy تک واپس trace کرتی ہے جس نے classification سطح تفویض کی:

Data: Pipeline summary (lin_789xyz)
Classification: CONFIDENTIAL
Reason: source_system_default
  --> Salesforce integration default classification: CONFIDENTIAL
  --> Configured by: admin_001 at 2025-01-10T08:00:00Z
  --> Policy rule: "All Salesforce data classified as CONFIDENTIAL"

Compliance Export

قانونی، regulatory، یا داخلی review کے لیے، Triggerfish کسی بھی ڈیٹا element یا time range کے لیے مکمل chain of custody export کر سکتا ہے:

Export request:
  --> Time range: 2025-01-29T00:00:00Z to 2025-01-29T23:59:59Z
  --> Scope: All sessions for user_456
  --> Format: JSON

Export includes:
  --> All audit records in the time range
  --> All lineage records referenced by audit records
  --> All session state transitions
  --> All policy decisions (ALLOW, BLOCK, REDACT)
  --> All taint changes
  --> All delegation chain records

Compliance exports structured JSON فائلیں ہیں جو SIEM systems، compliance

dashboards، یا legal review tools کے ذریعے ingest کی جا سکتی ہیں۔ Export format مستحکم اور versioned ہے۔ :::

Data Lineage

Audit logging Triggerfish کے data lineage system کے ساتھ مل کر کام کرتا ہے۔ Triggerfish کے ذریعے processed ہر ڈیٹا element provenance metadata رکھتا ہے:

json
{
  "lineage_id": "lin_789xyz",
  "content_hash": "sha256:a1b2c3d4...",
  "origin": {
    "source_type": "integration",
    "source_name": "salesforce",
    "record_id": "opp_00123ABC",
    "record_type": "Opportunity",
    "accessed_at": "2025-01-29T10:23:45Z",
    "accessed_by": "user_456",
    "access_method": "plugin_query"
  },
  "classification": {
    "level": "CONFIDENTIAL",
    "reason": "source_system_default",
    "assigned_at": "2025-01-29T10:23:45Z",
    "can_be_downgraded": false
  },
  "transformations": [
    {
      "type": "extraction",
      "description": "Selected fields: name, amount, stage",
      "timestamp": "2025-01-29T10:23:46Z",
      "agent_id": "agent_123"
    },
    {
      "type": "summarization",
      "description": "LLM summarized 3 records into pipeline overview",
      "timestamp": "2025-01-29T10:23:47Z",
      "input_lineage_ids": ["lin_789xyz", "lin_790xyz", "lin_791xyz"],
      "agent_id": "agent_123"
    }
  ],
  "current_location": {
    "session_id": "sess_456",
    "context_position": "assistant_response_3"
  }
}

Lineage records POST_TOOL_RESPONSE پر بنائے جاتے ہیں (جب ڈیٹا سسٹم میں داخل ہو) اور جیسے جیسے ڈیٹا transform ہوتا ہے، اپ ڈیٹ ہوتے ہیں۔ Aggregated ڈیٹا max(input classifications) inherit کرتا ہے — اگر کوئی بھی input CONFIDENTIAL ہو، تو output کم از کم CONFIDENTIAL ہے۔

EventLineage Action
Integration سے ڈیٹا پڑھناOrigin کے ساتھ lineage record بنانا
LLM کے ذریعے ڈیٹا transform کرناTransformation append کرنا، input lineages link کرنا
متعدد sources سے ڈیٹا aggregate کرناLineage merge کرنا، classification = max(inputs)
Channel کو ڈیٹا بھیجنامنزل record کرنا، classification verify کرنا
Session resetLineage records archive کرنا، context سے صاف کرنا

Storage اور Retention

Audit logs audit: namespace کے تحت StorageProvider abstraction کے ذریعے محفوظ کیے جاتے ہیں۔ Lineage records lineage: namespace کے تحت stored ہوتے ہیں۔

Data TypeNamespaceڈیفالٹ Retention
Audit logsaudit:1 سال
Lineage recordslineage:90 دن
Session statesessions:30 دن
Taint historytaint:Session retention سے مطابقت

سیکیورٹی Retention periods قابل ترتیب ہیں، لیکن audit logs compliance

requirements (SOC 2، GDPR، HIPAA) کو support کرنے کے لیے ڈیفالٹ 1 سال ہیں۔ Retention period کو آپ کی organization کی regulatory ضرورت سے کم کرنا administrator کی ذمہ داری ہے۔ :::

Storage Backends

TierBackendتفصیلات
PersonalSQLite~/.triggerfish/data/triggerfish.db پر WAL-mode database۔ Audit records تمام دیگر Triggerfish state کے ساتھ ایک ہی database میں structured JSON کے طور پر stored ہوتے ہیں۔
EnterprisePluggableEnterprise backends (Postgres، S3، وغیرہ) StorageProvider interface کے ذریعے استعمال کیے جا سکتے ہیں۔ یہ موجودہ log aggregation infrastructure کے ساتھ integration کی اجازت دیتا ہے۔

Immutability اور Integrity

Audit records append-only ہیں۔ ایک بار لکھے جانے کے بعد، سسٹم کا کوئی بھی component — بشمول LLM، agent، یا plugins — انہیں modify یا delete نہیں کر سکتا۔ Deletion صرف retention policy expiration کے ذریعے ہوتا ہے۔

ہر audit record میں ایک content hash ہوتا ہے جو integrity verify کرنے کے لیے استعمال کیا جا سکتا ہے۔ اگر records compliance review کے لیے export کیے جائیں، تو tampering detect کرنے کے لیے hashes stored records کے خلاف validate کیے جا سکتے ہیں۔

Enterprise Compliance Features

Enterprise deployments audit logging کو ان خصوصیات کے ساتھ بڑھا سکتے ہیں:

خصوصیتتفصیل
Legal holdمخصوص users، sessions، یا time ranges کے لیے retention-based deletion معطل کریں
SIEM integrationAudit events کو real time میں Splunk، Datadog، یا دیگر SIEM systems کو stream کریں
Compliance dashboardsPolicy decisions، blocked actions، اور taint patterns کا visual overview
Scheduled exportsRegulatory review کے لیے خودکار periodic exports
Alert rulesمخصوص audit patterns ہونے پر notifications trigger کریں (مثلاً، بار بار blocked write-downs)

متعلقہ صفحات