Skip to content

Audit & Compliance

Triggerfish ನಲ್ಲಿ ಪ್ರತಿ policy ನಿರ್ಧಾರ ಸಂಪೂರ್ಣ context ನೊಂದಿಗೆ logged ಆಗುತ್ತದೆ. ಯಾವ ಅಪವಾದ ಇಲ್ಲ, logging ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವ "debug mode" ಇಲ್ಲ, ಮತ್ತು LLM audit records suppress ಮಾಡಲು ಯಾವ ಮಾರ್ಗ ಇಲ್ಲ. ಇದು ವ್ಯವಸ್ಥೆ ಮಾಡಿದ ಪ್ರತಿ ಭದ್ರತಾ ನಿರ್ಧಾರದ ಸಂಪೂರ್ಣ, tamper-evident ದಾಖಲೆ ಒದಗಿಸುತ್ತದೆ.

ಏನು ದಾಖಲಿಸಲ್ಪಡುತ್ತದೆ

Audit logging ಸ್ಥಿರ ನಿಯಮ -- ಇದು ಯಾವಾಗಲೂ active ಮತ್ತು disable ಮಾಡಲಾಗದು. ಪ್ರತಿ 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ನಿರ್ಧಾರದ human-readable ವಿವರಣೆ
inputHook trigger ಮಾಡಿದ ಡೇಟಾ ಅಥವಾ ಕ್ರಿಯೆ
rules_evaluatedನಿರ್ಧಾರ ತಲುಪಲು ಯಾವ policy rules ಪರಿಶೀಲಿಸಲ್ಪಟ್ಟವು
taint_beforeಕ್ರಿಯೆ ಮೊದಲು session taint ಮಟ್ಟ
taint_afterಕ್ರಿಯೆ ನಂತರ session taint ಮಟ್ಟ (ಬದಲಾಗಿದ್ದರೆ)
metadataHook ಪ್ರಕಾರಕ್ಕೆ ನಿರ್ದಿಷ್ಟ ಹೆಚ್ಚುವರಿ 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"
}

ತಡೆಯಲ್ಪಟ್ಟ 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

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 ಸಾಮರ್ಥ್ಯಗಳು

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

Audit records ನಾಲ್ಕು ವಿಧಗಳಲ್ಲಿ query ಮಾಡಬಹುದು, ಪ್ರತಿಯೊಂದು ವಿಭಿನ್ನ compliance ಮತ್ತು forensic ಅಗತ್ಯಗಳನ್ನು ಪೂರೈಸುತ್ತದೆ.

ಮುಂದಕ್ಕೆ Trace

ಪ್ರಶ್ನೆ: "Salesforce record opp_00123ABC ನಿಂದ ಡೇಟಾಗೆ ಏನಾಯಿತು?"

Forward trace ಡೇಟಾ element ಅನ್ನು ಅದರ ಮೂಲ ಬಿಂದುವಿನಿಂದ ಪ್ರತಿ transformation, session, ಮತ್ತು output ಮೂಲಕ ಅನುಸರಿಸುತ್ತದೆ. ಇದು ಉತ್ತರಿಸುತ್ತದೆ: ಈ ಡೇಟಾ ಎಲ್ಲಿ ಹೋಯಿತು, ಯಾರು ನೋಡಿದರು, ಮತ್ತು ಇದು ಎಂದಾದರೂ ಸಂಸ್ಥೆ ಹೊರಗೆ ಕಳುಹಿಸಲ್ಪಟ್ಟಿತೇ?

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)

ಹಿಂದಕ್ಕೆ Trace

ಪ್ರಶ್ನೆ: "10:24 UTC ನಲ್ಲಿ ಕಳುಹಿಸಲ್ಪಟ್ಟ ಸಂದೇಶಕ್ಕೆ ಯಾವ ಮೂಲಗಳು ಕೊಡುಗೆ ನೀಡಿದವು?"

Backward trace output ನಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು output ಮೇಲೆ ಪ್ರಭಾವ ಬೀರಿದ ಪ್ರತಿ ಡೇಟಾ ಮೂಲ ಗುರುತಿಸಲು lineage chain ಮೂಲಕ ಹಿಂತಿರುಗಿ ನಡೆಯುತ್ತದೆ. Response ನಲ್ಲಿ classified ಡೇಟಾ ಸೇರಿಸಲ್ಪಟ್ಟಿತೇ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಇದು ಅಗತ್ಯ.

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 ಎಂದು ಏಕೆ ಗುರುತಿಸಲ್ಪಟ್ಟಿದೆ?"

Classification justification classification level ನಿಯೋಜಿಸಿದ ನಿಯಮ ಅಥವಾ policy ಗೆ ಹಿಂತಿರುಗಿ trace ಮಾಡುತ್ತದೆ:

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

ಕಾನೂನು, ನಿಯಂತ್ರಕ, ಅಥವಾ ಆಂತರಿಕ ಪರಿಶೀಲನೆಗಾಗಿ, Triggerfish ಯಾವುದೇ ಡೇಟಾ element ಅಥವಾ ಸಮಯ ವ್ಯಾಪ್ತಿಗೆ ಸಂಪೂರ್ಣ 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 SIEM systems, compliance dashboards, ಅಥವಾ legal review tools ನಿಂದ

ಒಳಗೊಳ್ಳಬಹುದಾದ structured JSON files. Export format stable ಮತ್ತು versioned. :::

ಡೇಟಾ Lineage

Audit logging Triggerfish ನ data lineage system ನೊಂದಿಗೆ ಕೈಜೋಡಿಸಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. Triggerfish ಪ್ರಕ್ರಿಯೆ ಮಾಡಿದ ಪ್ರತಿ ಡೇಟಾ 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 ಆದಂತೆ update ಆಗುತ್ತವೆ. ಒಟ್ಟಾಗಿ ಸೇರಿಸಿದ ಡೇಟಾ max(input classifications) ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ -- ಯಾವ input CONFIDENTIAL ಆಗಿದ್ದರೂ, output ಕನಿಷ್ಟ CONFIDENTIAL.

ಘಟನೆLineage ಕ್ರಿಯೆ
Integration ನಿಂದ ಡೇಟಾ ಓದಿOrigin ನೊಂದಿಗೆ lineage record ರಚಿಸಿ
LLM ಯಿಂದ ಡೇಟಾ transformTransformation append ಮಾಡಿ, input lineages ಲಿಂಕ್ ಮಾಡಿ
ಅನೇಕ ಮೂಲಗಳಿಂದ ಡೇಟಾ ಒಟ್ಟುಗೂಡಿಸಿLineage ವಿಲೀನ ಮಾಡಿ, classification = max(inputs)
Channel ಗೆ ಡೇಟಾ ಕಳುಹಿಸಿಗಮ್ಯಸ್ಥಾನ ದಾಖಲಿಸಿ, classification ಪರಿಶೀಲಿಸಿ
Session ಮರುಹೊಂದಿಸಿLineage records archive ಮಾಡಿ, context ನಿಂದ clear ಮಾಡಿ

Storage ಮತ್ತು Retention

Audit logs audit: namespace ಅಡಿ StorageProvider abstraction ಮೂಲಕ persist ಮಾಡಲ್ಪಡುತ್ತವೆ. Lineage records lineage: namespace ಅಡಿ ಸಂಗ್ರಹಿಸಲ್ಪಡುತ್ತವೆ.

ಡೇಟಾ ಪ್ರಕಾರNamespaceಡಿಫಾಲ್ಟ್ ಉಳಿಕೆ
Audit logsaudit:1 ವರ್ಷ
Lineage recordslineage:90 ದಿನಗಳು
Session statesessions:30 ದಿನಗಳು
Taint historytaint:Session ಉಳಿಕೆ ಹೊಂದಾಣಿಕೆ

SECURITY Retention periods configurable, ಆದರೆ audit logs compliance requirements

ಬೆಂಬಲಿಸಲು (SOC 2, GDPR, HIPAA) 1 ವರ್ಷಕ್ಕೆ default ಆಗುತ್ತವೆ. ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ನಿಯಂತ್ರಕ requirement ಗಿಂತ ಕಡಿಮೆ retention period ಕಡಿಮೆ ಮಾಡುವುದು administrator ಜವಾಬ್ದಾರಿ. :::

Storage Backends

TierBackendವಿವರಗಳು
PersonalSQLite~/.triggerfish/data/triggerfish.db ನಲ್ಲಿ WAL-mode database. Audit records ಎಲ್ಲ ಇತರ Triggerfish state ಅದೇ database ನಲ್ಲಿ structured JSON ಆಗಿ ಸಂಗ್ರಹಿಸಲ್ಪಡುತ್ತವೆ.
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 integrity ಪರಿಶೀಲಿಸಲು ಬಳಸಬಹುದಾದ content hash ಒಳಗೊಂಡಿದೆ. Records compliance review ಗಾಗಿ export ಮಾಡಿದ್ದರೆ, hashes stored records ವಿರುದ್ಧ validate ಮಾಡಿ tampering ಪತ್ತೆ ಮಾಡಬಹುದು.

Enterprise Compliance ವೈಶಿಷ್ಟ್ಯಗಳು

Enterprise deployments audit logging ವಿಸ್ತರಿಸಬಹುದು:

ವೈಶಿಷ್ಟ್ಯವಿವರಣೆ
Legal holdನಿರ್ದಿಷ್ಟ users, sessions, ಅಥವಾ ಸಮಯ ವ್ಯಾಪ್ತಿಗಾಗಿ retention-based deletion suspend ಮಾಡಿ
SIEM integrationReal time ನಲ್ಲಿ Splunk, Datadog, ಅಥವಾ ಇತರ SIEM systems ಗೆ audit events stream ಮಾಡಿ
Compliance dashboardsPolicy decisions, blocked actions, ಮತ್ತು taint patterns ದೃಶ್ಯ ಅವಲೋಕನ
Scheduled exportsನಿಯಂತ್ರಕ ಪರಿಶೀಲನೆಗಾಗಿ ಸ್ವಯಂಚಾಲಿತ ಆವರ್ತಕ exports
Alert rulesನಿರ್ದಿಷ್ಟ audit patterns ಆದಾಗ notifications trigger ಮಾಡಿ (ಉದಾ., ಪುನರಾವರ್ತಿತ blocked write-downs)

ಸಂಬಂಧಿತ ಪುಟಗಳು