Skip to content

Define proto contracts for Tier 2 service interactions #71

@haasonsaas

Description

@haasonsaas

Context

The proto auto-bump workflow was rolled out today across all repos. Now we need to define the inter-service contracts that Tier 2 services will use to communicate. This unblocks parallel development — teams can code against proto interfaces before implementations exist.

Requirements

New proto packages needed

  • evalops.identity.v1Role, Permission, ApiKey, CheckPermissionRequest/Response
  • evalops.audit.v1QueryEventsRequest/Response, ComplianceReport, GenerateReportRequest
  • evalops.meter.v1Budget, SetBudgetRequest, CheckBudgetRequest/Response, ExportUsageRequest
  • evalops.governance.v1SafetyPolicy, PiiDetection, RetentionPolicy, EvaluatePolicy, CheckRetention
  • evalops.memory.v1Memory, StoreRequest, RecallRequest/Response (with similarity scores)
  • evalops.approvals.v1ApprovalRequest, ApprovalDecision, EscalationConfig, HabitRule
  • evalops.notifications.v1NotificationTemplate, SendRequest, DeliveryStatus, Preferences
  • evalops.pipeline.v1Deal, DealStage, Signal, PipelineMetrics

Cross-cutting proto additions

  • Define evalops.common.v1.PageRequest/PageResponse for consistent cursor-based pagination
  • Add permission annotation proto option for service method declarations
  • Define standard NATS event envelope extending CloudEvents for inter-service events

Guidelines

  • All RPCs should use google.protobuf.FieldMask for partial updates
  • Include google.protobuf.Timestamp for all temporal fields
  • Use oneof for polymorphic fields (e.g., budget scope: org vs team vs agent)
  • Add proto comments documenting expected behavior — these are the API contract

Why proto-first

The auto-bump workflow means once these are merged, every service gets the generated Go code automatically. This lets services develop against interfaces immediately, even before the implementing service is ready.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions