Documentation
¶
Index ¶
- Constants
- Variables
- func EncodeBlocks(blocks []Block) (string, error)
- func EncodeText(content string) (string, error)
- func EncodeToolResults(results []ToolResult) (string, error)
- type Account
- type AccountID
- type AccountSummary
- type Block
- type BlockType
- type ComplianceAnalysisEnvelope
- type ComplianceCategorySummary
- type CompliancePolicy
- type ContextEntity
- type ContextSource
- type Conversation
- type ConversationID
- type DatadogAccountID
- type DatadogRegion
- type DatadogSite
- type Message
- type MessageID
- type Organization
- type OrganizationID
- type PHILeakageAnalysis
- type PIILeakageAnalysis
- type PaymentDataLeakageAnalysis
- type PolicyCategoryStatus
- type PolicyLogStatus
- type Role
- type SecretsLeakageAnalysis
- type SensitiveField
- type ServiceHealth
- type ServiceID
- type ServiceStatus
- type TextBlock
- type Thinking
- type ToolInputDelta
- type ToolResult
- type ToolUse
- type WastePolicy
- type WorkosOrganizationID
- type Workspace
- type WorkspaceID
Constants ¶
const ( CategoryTypeCompliance = "compliance" // Legal/security risk CategoryTypeWaste = "waste" // Cost reduction )
CategoryType constants. Drives which tab owns a category.
const ( CategoryPIILeakage = "pii_leakage" CategorySecretsLeakage = "secrets_leakage" CategoryPHILeakage = "phi_leakage" CategoryPaymentDataLeakage = "payment_data_leakage" )
Compliance category constants matching control plane schema.
const ( PIITypeEmail = "email" PIITypeName = "name" PIITypePhone = "phone" PIITypeAddress = "address" PIITypeSSN = "ssn" PIITypeNationalID = "national_id" PIITypeIPAddress = "ip_address" PIITypeDateOfBirth = "date_of_birth" PIITypeDriverLicense = "driver_license" )
PII type constants for display and filtering.
const ( SecretTypeAPIKey = "api_key" SecretTypeBearerToken = "bearer_token" SecretTypeOAuthToken = "oauth_token" SecretTypePassword = "password" SecretTypePasswordHash = "password_hash" SecretTypeDatabaseCredential = "database_credential" SecretTypeConnectionString = "connection_string" SecretTypePrivateKey = "private_key" SecretTypeCertificate = "certificate" SecretTypeEncryptionKey = "encryption_key" SecretTypeSigningKey = "signing_key" SecretTypeWebhookSecret = "webhook_secret" SecretTypeSessionToken = "session_token" )
Secret type constants for display and filtering.
const ( PHITypeDiagnosisCode = "diagnosis_code" PHITypeProcedureCode = "procedure_code" PHITypePrescription = "prescription" PHITypeLabResult = "lab_result" PHITypeMedicalRecordNumber = "medical_record_number" PHITypePatientIdentifier = "patient_identifier" PHITypeHealthInsuranceID = "health_insurance_id" PHITypeBiometric = "biometric" PHITypeGeneticData = "genetic_data" )
PHI type constants for display and filtering.
const ( PaymentTypeCreditCard = "credit_card" PaymentTypeCVV = "cvv" PaymentTypePIN = "pin" PaymentTypeBankAccount = "bank_account" PaymentTypeRoutingNumber = "routing_number" PaymentTypePaymentToken = "payment_token" PaymentTypeMagneticStripe = "magnetic_stripe" )
Payment data type constants for display and filtering.
Variables ¶
var DatadogRegions = []DatadogRegion{ {DatadogSiteUS1, "US1 (datadoghq.com)", "United States"}, {DatadogSiteUS3, "US3 (us3.datadoghq.com)", "United States"}, {DatadogSiteUS5, "US5 (us5.datadoghq.com)", "United States"}, {DatadogSiteEU1, "EU1 (datadoghq.eu)", "Europe"}, {DatadogSiteAP1, "AP1 (ap1.datadoghq.com)", "Asia Pacific"}, {DatadogSiteUS1Fed, "US1-FED (ddog-gov.com)", "US Government"}, }
DatadogRegions is the list of available Datadog regions.
Functions ¶
func EncodeBlocks ¶
EncodeBlocks serializes blocks to JSON string for storage.
func EncodeText ¶
EncodeText is a convenience function to encode a single text block.
func EncodeToolResults ¶
func EncodeToolResults(results []ToolResult) (string, error)
EncodeToolResults encodes tool results as blocks for storage.
Types ¶
type Account ¶
Account represents a billing/Datadog account within an organization.
func (Account) FilterValue ¶
FilterValue returns the string used for filtering/searching.
type AccountSummary ¶ added in v1.14.0
type AccountSummary struct {
ReadyForUse bool
// Health.
Health ServiceHealth
Error string
ErrorAt string
Warning string
WarningAt string
// Service counts.
ServiceCount int64
ActiveServices int64
OkServices int64
ErrorServices int64
DisabledServices int64
InactiveServices int64
// Event counts.
EventCount int64
AnalyzedCount int64
QuarantinedCount int64
// Policy counts.
PendingPolicyCount int64
ApprovedPolicyCount int64
DismissedPolicyCount int64
// Service-level throughput (ground truth).
TotalServiceVolumePerHour *float64
TotalServiceCostPerHour *float64
// Log event throughput (discovered events). Nil when unmeasured.
TotalCostPerHour *float64
TotalCostPerHourBytes *float64
TotalCostPerHourVolume *float64
TotalVolumePerHour *float64
TotalBytesPerHour *float64
// Estimated savings from pending policies. Nil when unmeasured.
EstimatedCostPerHour *float64
EstimatedCostPerHourBytes *float64
EstimatedCostPerHourVolume *float64
EstimatedVolumePerHour *float64
EstimatedBytesPerHour *float64
// Observed impact from approved policies (before/after). Nil when unmeasured.
ObservedCostBefore *float64
ObservedCostBeforeBytes *float64
ObservedCostBeforeVolume *float64
ObservedCostAfter *float64
ObservedCostAfterBytes *float64
ObservedCostAfterVolume *float64
ObservedVolumeBefore *float64
ObservedVolumeAfter *float64
ObservedBytesBefore *float64
ObservedBytesAfter *float64
}
AccountSummary mirrors datadog_account_statuses_cache aggregated across all Datadog accounts. All columns included; callers pick what they need.
func (AccountSummary) AnalysisReady ¶ added in v1.16.0
func (s AccountSummary) AnalysisReady() bool
AnalysisReady returns true when enough discovered events have been analyzed for waste and compliance numbers to be meaningful.
type Block ¶
type Block struct {
Index int `json:"index"`
Type BlockType `json:"type"`
Text *TextBlock `json:"text,omitempty"`
Thinking *Thinking `json:"thinking,omitempty"`
ToolUse *ToolUse `json:"tool_use,omitempty"`
ToolResult *ToolResult `json:"tool_result,omitempty"`
}
Block is one element in a message's content array. Exactly one of the typed fields is populated, determined by Type.
func ParseBlocks ¶
ParseBlocks parses a JSON string into content blocks.
type ComplianceAnalysisEnvelope ¶ added in v1.16.0
type ComplianceAnalysisEnvelope struct {
PIILeakage *PIILeakageAnalysis `json:"pii_leakage,omitempty"`
SecretsLeakage *SecretsLeakageAnalysis `json:"secrets_leakage,omitempty"`
PHILeakage *PHILeakageAnalysis `json:"phi_leakage,omitempty"`
PaymentDataLeakage *PaymentDataLeakageAnalysis `json:"payment_data_leakage,omitempty"`
}
ComplianceAnalysisEnvelope wraps the category-keyed analysis JSON from the database. Each field corresponds to one compliance category.
type ComplianceCategorySummary ¶ added in v1.16.0
type ComplianceCategorySummary struct {
Category string // One of the 4 compliance categories
LeakingCount int64 // Policies with observed sensitive data
AtRiskCount int64 // Policies without observed data (but flagged)
FixedCount int64 // Approved policies
VolumePerHour float64 // Total volume across all policies in this category
ServiceCount int // Number of unique services affected
UniqueServices []string
}
ComplianceCategorySummary provides counts and stats for a single compliance category.
type CompliancePolicy ¶ added in v1.16.0
type CompliancePolicy struct {
Category string // One of: pii_leakage, secrets_leakage, phi_leakage, payment_data_leakage
LogEventName string // Log event name
ServiceName string // Service name
Fields []SensitiveField // Parsed from analysis JSON
VolumePerHour *float64 // Log event volume; nil when unmeasured
AnyObserved bool // True if any field has observed sensitive data
}
CompliancePolicy represents a single compliance finding (any category) with context from joined tables.
type ContextEntity ¶
type ContextEntity struct {
EntityType string `json:"entity_type"` // "service", "log_event", "policy", etc.
EntityID string `json:"entity_id"`
}
ContextEntity is an entity attached to a conversation for the AI to reference. The client sends entity IDs; the server loads full entity data for the system prompt.
type ContextSource ¶
type ContextSource string
ContextSource indicates who added an entity to context.
const ( ContextSourceUser ContextSource = "user" ContextSourceAssistant ContextSource = "assistant" )
type Conversation ¶
type Conversation struct {
ID ConversationID `json:"id"`
WorkspaceID WorkspaceID `json:"workspace_id"`
Title string `json:"title"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
Conversation represents a chat conversation.
type ConversationID ¶
type ConversationID string
ConversationID is a typed identifier for conversations.
func NewConversationID ¶
func NewConversationID() ConversationID
NewConversationID generates a new unique ConversationID.
func (ConversationID) String ¶
func (id ConversationID) String() string
String returns the string representation of the ConversationID.
type DatadogAccountID ¶
type DatadogAccountID string
DatadogAccountID is a unique identifier for a Datadog account integration.
func (DatadogAccountID) String ¶
func (id DatadogAccountID) String() string
type DatadogRegion ¶
type DatadogRegion struct {
Site DatadogSite
Name string
Desc string
}
DatadogRegion contains display information for a Datadog site.
type DatadogSite ¶
type DatadogSite string
DatadogSite represents a Datadog datacenter region.
const ( DatadogSiteUS1 DatadogSite = "US1" DatadogSiteUS3 DatadogSite = "US3" DatadogSiteUS5 DatadogSite = "US5" DatadogSiteEU1 DatadogSite = "EU1" DatadogSiteAP1 DatadogSite = "AP1" DatadogSiteUS1Fed DatadogSite = "US1_FED" )
func (DatadogSite) String ¶
func (s DatadogSite) String() string
type Message ¶
type Message struct {
ID MessageID `json:"id"`
ConversationID ConversationID `json:"conversation_id"`
Role Role `json:"role"`
Content []Block `json:"content"`
Model string `json:"model,omitempty"`
StopReason string `json:"stop_reason,omitempty"`
CreatedAt time.Time `json:"created_at"`
}
Message represents a chat message.
type Organization ¶
type Organization struct {
ID OrganizationID `json:"id"`
Name string `json:"name"`
WorkosOrganizationID WorkosOrganizationID `json:"workos_organization_id,omitempty"`
}
Organization represents a customer organization.
func (Organization) FilterValue ¶
func (o Organization) FilterValue() string
FilterValue returns the string used for filtering/searching.
type OrganizationID ¶
type OrganizationID string
OrganizationID is a unique identifier for an organization.
func NewOrganizationID ¶
func NewOrganizationID() OrganizationID
NewOrganizationID generates a new unique OrganizationID.
func (OrganizationID) String ¶
func (id OrganizationID) String() string
type PHILeakageAnalysis ¶ added in v1.16.0
type PHILeakageAnalysis struct {
Rationale string `json:"rationale"`
Fields []SensitiveField `json:"fields"`
}
PHILeakageAnalysis is the category-specific analysis for PHI leakage policies.
type PIILeakageAnalysis ¶ added in v1.15.0
type PIILeakageAnalysis struct {
Rationale string `json:"rationale"`
Fields []SensitiveField `json:"fields"`
}
PIILeakageAnalysis is the category-specific analysis for PII leakage policies.
type PaymentDataLeakageAnalysis ¶ added in v1.16.0
type PaymentDataLeakageAnalysis struct {
Rationale string `json:"rationale"`
Fields []SensitiveField `json:"fields"`
}
PaymentDataLeakageAnalysis is the category-specific analysis for payment data leakage policies.
type PolicyCategoryStatus ¶
type PolicyCategoryStatus struct {
Category string
PendingCount int64
ApprovedCount int64
DismissedCount int64
// Estimated impact from pending policies.
EstimatedVolumePerHour *float64
EstimatedBytesPerHour *float64
EstimatedCostPerHour *float64
EstimatedCostPerHourBytes *float64
EstimatedCostPerHourVolume *float64
// Observed impact from approved policies (before/after).
ObservedVolumeBefore *float64
ObservedVolumeAfter *float64
ObservedBytesBefore *float64
ObservedBytesAfter *float64
ObservedCostBefore *float64
ObservedCostBeforeBytes *float64
ObservedCostBeforeVolume *float64
ObservedCostAfter *float64
ObservedCostAfterBytes *float64
ObservedCostAfterVolume *float64
// Volume discovery coverage.
EventsWithVolumes int64 // Log events in this category that have volume data
TotalEvents int64 // Total log events in this category
// How policies in this category reduce cost.
ImpactType string // "volume" (drops events) or "attribute" (strips fields)
}
PolicyCategoryStatus is the per-category policy breakdown. Float pointers are nil when no data exists (e.g. no pending/approved policies contribute).
func (PolicyCategoryStatus) DisplayName ¶ added in v1.15.0
func (c PolicyCategoryStatus) DisplayName() string
DisplayName returns a human-readable name for the category. Converts slugs like "bot_traffic" to "Bot Traffic".
func (PolicyCategoryStatus) ImpactLabel ¶ added in v1.16.0
func (c PolicyCategoryStatus) ImpactLabel() string
ImpactLabel returns a human-readable description of how this category reduces cost.
func (PolicyCategoryStatus) ReducesVolume ¶ added in v1.16.0
func (c PolicyCategoryStatus) ReducesVolume() bool
ReducesVolume reports whether this category's policies drop entire events.
type PolicyLogStatus ¶
type PolicyLogStatus string
PolicyLogStatus is the lifecycle status for a policy.
const ( PolicyLogStatusPending PolicyLogStatus = "PENDING" PolicyLogStatusApproved PolicyLogStatus = "APPROVED" PolicyLogStatusDismissed PolicyLogStatus = "DISMISSED" )
func (PolicyLogStatus) String ¶
func (s PolicyLogStatus) String() string
type SecretsLeakageAnalysis ¶ added in v1.16.0
type SecretsLeakageAnalysis struct {
Rationale string `json:"rationale"`
Fields []SensitiveField `json:"fields"`
}
SecretsLeakageAnalysis is the category-specific analysis for secrets leakage policies.
type SensitiveField ¶ added in v1.16.0
type SensitiveField struct {
Path []string `json:"path"` // Attribute path, e.g. ["attributes", "user", "email"]
Types []string `json:"types"` // Types of sensitive data this field could contain
Observed bool `json:"observed"` // True if actual sensitive data was seen in log values
}
SensitiveField identifies a field that may contain sensitive data. Matches control plane's SensitiveField struct used across all compliance categories.
type ServiceHealth ¶ added in v1.15.0
type ServiceHealth string
ServiceHealth is the health status for a service or account.
const ( ServiceHealthDisabled ServiceHealth = "DISABLED" ServiceHealthInactive ServiceHealth = "INACTIVE" ServiceHealthError ServiceHealth = "ERROR" ServiceHealthOK ServiceHealth = "OK" )
func (ServiceHealth) String ¶ added in v1.15.0
func (s ServiceHealth) String() string
type ServiceID ¶ added in v1.15.0
type ServiceID string
ServiceID is a unique identifier for a service.
type ServiceStatus ¶
type ServiceStatus struct {
Name string
Health ServiceHealth
// Error / warning state.
Error string
ErrorAt string
Warning string
WarningAt string
// Event counts.
LogEventCount int64
LogEventAnalyzedCount int64
LogEventQuarantinedCount int64
// Policy counts.
PolicyPendingCount int64
PolicyApprovedCount int64
PolicyDismissedCount int64
// Service-level throughput (ground truth from service_log_volumes). Nil when unmeasured.
ServiceVolumePerHour *float64
ServiceDebugVolumePerHour *float64
ServiceInfoVolumePerHour *float64
ServiceWarnVolumePerHour *float64
ServiceErrorVolumePerHour *float64
ServiceOtherVolumePerHour *float64
ServiceCostPerHourVolumeUSD *float64
// Log event throughput (discovered events subset). Nil when unmeasured.
LogEventVolumePerHour *float64
LogEventBytesPerHour *float64
LogEventCostPerHourUSD *float64
LogEventCostPerHourBytesUSD *float64
LogEventCostPerHourVolumeUSD *float64
// Estimated savings from pending policies. Nil when unmeasured.
EstimatedVolumeReductionPerHour *float64
EstimatedBytesReductionPerHour *float64
EstimatedCostReductionPerHourUSD *float64
EstimatedCostReductionPerHourBytes *float64
EstimatedCostReductionPerHourVolume *float64
// Observed impact from approved policies (before/after). Nil when unmeasured.
ObservedVolumePerHourBefore *float64
ObservedVolumePerHourAfter *float64
ObservedBytesPerHourBefore *float64
ObservedBytesPerHourAfter *float64
ObservedCostPerHourBeforeUSD *float64
ObservedCostPerHourBeforeBytesUSD *float64
ObservedCostPerHourBeforeVolumeUSD *float64
ObservedCostPerHourAfterUSD *float64
ObservedCostPerHourAfterBytesUSD *float64
ObservedCostPerHourAfterVolumeUSD *float64
}
ServiceStatus mirrors service_statuses_cache. All columns included; callers pick what they need.
type TextBlock ¶
type TextBlock struct {
Content string `json:"content"`
}
TextBlock is prose content.
type Thinking ¶
type Thinking struct {
Content string `json:"content"`
}
Thinking is the AI's internal reasoning.
type ToolInputDelta ¶
ToolInputDelta is a streaming fragment of tool input JSON.
type ToolResult ¶
type ToolResult struct {
ToolUseID string `json:"tool_use_id"`
IsError bool `json:"is_error,omitempty"`
Error string `json:"error,omitempty"`
Content map[string]any `json:"content,omitempty"`
}
ToolResult is the outcome of a tool call (wire/storage format).
type ToolUse ¶
type ToolUse struct {
ID string `json:"id"`
Name string `json:"name"`
Input json.RawMessage `json:"input"`
InputComplete bool `json:"-"` // True when input is fully received (after content_block_stop)
}
ToolUse represents the AI calling a tool.
type WastePolicy ¶ added in v1.15.0
type WastePolicy struct {
LogEventName string
ServiceName string
VolumePerHour *float64 // Current throughput in events/hour; nil when unmeasured
BytesPerHour *float64 // Current throughput in bytes/hour; nil when unmeasured
EstimatedCostPerHour *float64 // Estimated cost reduction (total); nil when unmeasured
EstimatedCostPerHourBytes *float64 // Estimated cost reduction from bytes; nil when unmeasured
EstimatedCostPerHourVolume *float64 // Estimated cost reduction from volume; nil when unmeasured
EstimatedBytesPerHour *float64 // Estimated bytes reduction; nil when unmeasured
EstimatedVolumePerHour *float64 // Estimated volume reduction; nil when unmeasured
}
WastePolicy is a single pending waste policy with context from joined tables. Float pointers are nil when the underlying data hasn't been measured yet.
type WorkosOrganizationID ¶
type WorkosOrganizationID string
WorkosOrganizationID is the external ID from WorkOS.
func (WorkosOrganizationID) String ¶
func (id WorkosOrganizationID) String() string
type Workspace ¶
type Workspace struct {
ID WorkspaceID `json:"id"`
Name string `json:"name"`
}
Workspace represents a workspace within an account.
func (Workspace) FilterValue ¶
FilterValue returns the string used for filtering/searching.
type WorkspaceID ¶
type WorkspaceID string
WorkspaceID is a unique identifier for a workspace.
func NewWorkspaceID ¶
func NewWorkspaceID() WorkspaceID
NewWorkspaceID generates a new unique WorkspaceID.
func (WorkspaceID) String ¶
func (id WorkspaceID) String() string
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package domaintest provides factories for creating domain objects in tests.
|
Package domaintest provides factories for creating domain objects in tests. |
|
Package tools defines tool input/output types.
|
Package tools defines tool input/output types. |