2.2 KiB
2.2 KiB
Immutable Audit Log for AI Interactions
Module
AdvisoryAI
Status
IMPLEMENTED
Description
DSSE-signed audit envelope builder for chat interactions with prompts, tool calls, and model fingerprints is implemented.
Implementation Details
- Modules:
src/AdvisoryAi/StellaOps.AdvisoryAI/Chat/Audit/,src/AdvisoryAi/StellaOps.AdvisoryAI.WebService/ - Key Classes:
AdvisoryChatAuditEnvelopeBuilder(src/AdvisoryAi/StellaOps.AdvisoryAI/Chat/Audit/AdvisoryChatAuditEnvelopeBuilder.cs) - builds DSSE-signed audit envelopes for chat interactionsChatAuditRecords(src/AdvisoryAi/StellaOps.AdvisoryAI/Chat/Audit/ChatAuditRecords.cs) - audit record models (prompts, responses, tool calls, model fingerprints)PostgresAdvisoryChatAuditLogger(src/AdvisoryAi/StellaOps.AdvisoryAI/Chat/Services/PostgresAdvisoryChatAuditLogger.cs) - persists audit records to PostgreSQLNullAdvisoryChatAuditLogger(src/AdvisoryAi/StellaOps.AdvisoryAI/Chat/Services/NullAdvisoryChatAuditLogger.cs) - no-op audit logger for testingAttestationEndpoints(src/AdvisoryAi/StellaOps.AdvisoryAI.WebService/Endpoints/AttestationEndpoints.cs) - REST endpoints for attestation/audit retrievalNullEvidencePackSigner(src/AdvisoryAi/StellaOps.AdvisoryAI/Evidence/NullEvidencePackSigner.cs) - no-op evidence pack signer for developmentAdvisoryPipelineMetrics(src/AdvisoryAi/StellaOps.AdvisoryAI/Metrics/AdvisoryPipelineMetrics.cs) - metrics collection for audit visibility
- Interfaces: None (uses concrete audit pipeline)
- Source: Feature matrix scan
E2E Test Plan
- Send a chat message and verify
AdvisoryChatAuditEnvelopeBuildercreates a DSSE-signed envelope containing the prompt, response, and model fingerprint - Verify
ChatAuditRecordscaptures tool call invocations with parameters and results - Verify
PostgresAdvisoryChatAuditLoggerpersists audit records and they are retrievable viaAttestationEndpoints - Verify audit envelopes are immutable: attempting to modify a persisted record fails
- Verify audit records include model identifier, temperature setting, and token counts
- Verify audit log entries are queryable by user, session, and time range