domain

package
v1.17.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CategoryTypeCompliance = "compliance" // Legal/security risk
	CategoryTypeWaste      = "waste"      // Cost reduction
)

CategoryType constants. Drives which tab owns a category.

View Source
const (
	CategoryPIILeakage         = "pii_leakage"
	CategorySecretsLeakage     = "secrets_leakage"
	CategoryPHILeakage         = "phi_leakage"
	CategoryPaymentDataLeakage = "payment_data_leakage"
)

Compliance category constants matching control plane schema.

View Source
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.

View Source
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.

View Source
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.

View Source
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

View Source
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

func EncodeBlocks(blocks []Block) (string, error)

EncodeBlocks serializes blocks to JSON string for storage.

func EncodeText

func EncodeText(content string) (string, error)

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

type Account struct {
	ID   AccountID `json:"id"`
	Name string    `json:"name"`
}

Account represents a billing/Datadog account within an organization.

func (Account) FilterValue

func (a Account) FilterValue() string

FilterValue returns the string used for filtering/searching.

type AccountID

type AccountID string

AccountID is a unique identifier for an account.

func NewAccountID

func NewAccountID() AccountID

NewAccountID generates a new unique AccountID.

func (AccountID) String

func (id AccountID) String() string

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 NewTextBlock

func NewTextBlock(content string) Block

NewTextBlock creates a text block.

func ParseBlocks

func ParseBlocks(data string) ([]Block, error)

ParseBlocks parses a JSON string into content blocks.

type BlockType

type BlockType string

BlockType identifies the kind of content block.

const (
	// Persistable block types - stored in the database.
	BlockTypeText       BlockType = "text"
	BlockTypeThinking   BlockType = "thinking"
	BlockTypeToolUse    BlockType = "tool_use"
	BlockTypeToolResult BlockType = "tool_result"
)

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 LogEventStatus

type LogEventStatus struct {
	Name                string
	VolumePerHour       *float64
	BytesPerHour        *float64
	CostPerHourUSD      *float64
	PendingPolicyCount  int64
	ApprovedPolicyCount int64
}

LogEventStatus is a per-log-event status within a service. Used for the service detail drill-down in the statusbar drawer.

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 MessageID

type MessageID string

MessageID is a typed identifier for messages.

func NewMessageID

func NewMessageID() MessageID

NewMessageID generates a new unique MessageID.

func (MessageID) String

func (id MessageID) String() string

String returns the string representation of the MessageID.

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 Role

type Role string

Role identifies who sent a message.

const (
	RoleUser      Role = "user"
	RoleAssistant Role = "assistant"
)

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.

func (ServiceID) String added in v1.15.0

func (id ServiceID) String() string

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

type ToolInputDelta struct {
	ToolUseID string `json:"tool_use_id"`
	Delta     string `json:"delta"`
}

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

func (w Workspace) FilterValue() string

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL