Skip to main content

Protobuf files for Agatha project

Project description

Agatha Protobuf

Shared gRPC contracts for the Agatha monorepo. Source .proto files live in src/agatha_protobuf/; generated stubs are committed under build/ (Go) and dist/ / installable Python package agatha-protobuf (Python).

  • Package name (Python/PyPI): agatha-protobuf
  • Go module: github.com/blueprint-ai-org/protobuf
  • Current version: see pyproject.toml (version)

Service domains (src/agatha_protobuf/)

activity_ingestor/   auth/                 knowledge_graph/
lms_connector/       manager/              metrics_engine/
notification/        payment/              analysis/

Each subdirectory contains the .proto files for that service's gRPC contracts (messages + services). Edit these and regenerate.

Make targets

make install-deps    # install protoc-gen-go, protoc-gen-go-grpc, build/twine helpers
make proto           # compile .proto → Python (src/, with .pyi stubs and grpc_python_out)
make proto-go        # compile .proto → Go under build/, then git-add + bump patch version
make clean           # remove dist/ build/ *.egg-info and *_pb2*.py(i) files
make build           # proto + python sdist/wheel into dist/
make publish         # clean + build + upload to PyPI (twine)

Version management:

make patch                # bump 1.1.x
make minor                # bump 1.x.0
make major                # bump x.0.0
make release VERSION=1.2.3  # set explicit version

make proto-go automatically git add ./build and runs make patch. Commit afterwards.

Prerequisites

  • Python 3.8+ with a venv at .venv/ (the Makefile invokes .venv/bin/python3)
  • Go 1.24+ with protoc-gen-go and protoc-gen-go-grpc on PATH (installed by make install-deps)
  • protoc available via grpc_tools.protoc (Python) and protoc (Go)

Consuming from services

Go

import "github.com/blueprint-ai-org/protobuf/build/agatha_protobuf/auth"

Most services vendor this module — bump the dependency, then go mod tidy (GOPRIVATE=github.com/blueprint-ai-org/*, GITHUB_TOKEN).

Python

pip install agatha-protobuf
# or, in pyproject.toml:
# dependencies = ["agatha-protobuf>=1.1.0"]
from agatha_protobuf.auth import auth_pb2, auth_pb2_grpc

Workflow

  1. Edit .proto files under src/agatha_protobuf/<domain>/.
  2. make proto (Python) and/or make proto-go (Go).
  3. Bump version via make patch|minor|major|release.
  4. Commit src/, build/, pyproject.toml.
  5. make publish to push the Python package to PyPI; for Go, consumers update via go get github.com/blueprint-ai-org/protobuf@<tag>.

Changelog

Pipeline: tenant_user_id added (plan 2026-05-13-notification-tenant-refactor, step-11)

Adds a raw (non-hashed) tenant_user_id field — FK to <tenantID>.user._id — across the cross-monorepo Pub/Sub pipeline that runs journal-createdbehavioral-events-rawrisk-alerts. Producers (agent, activity-ingestor) populate from Journal.user; consumers (metrics-engine, notification) read alongside the existing person_id.

Schemas touched:

  • knowledge_graph/event.protoIngestEventRequest.tenant_user_id (field 9).
  • notification/notification.protoRiskAlert.tenant_user_id (field 16); RiskAlert.person_id (field 3) marked [deprecated = true].
  • activity_ingestor/journal.protoJournal.user documented as the canonical source of tenant_user_id (no wire change).

JSON Pub/Sub structs (non-proto, in consuming services):

  • metrics-engine/internal/risk/alert_event.goRiskAlertEvent.TenantUserID.
  • metrics-engine/internal/infra/pubsub/event.goBehavioralEvent.TenantUserID.
  • knowledge-graph/internal/infra/pubsub/publisher.goEventMessage.TenantUserID.

person_id is kept for one release cycle as a [deprecated = true] alias; removal is a follow-up plan once all consumers have migrated.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agatha_protobuf-1.2.0.tar.gz (102.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agatha_protobuf-1.2.0-py3-none-any.whl (194.6 kB view details)

Uploaded Python 3

File details

Details for the file agatha_protobuf-1.2.0.tar.gz.

File metadata

  • Download URL: agatha_protobuf-1.2.0.tar.gz
  • Upload date:
  • Size: 102.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agatha_protobuf-1.2.0.tar.gz
Algorithm Hash digest
SHA256 87574bda9e767a3f5854accff338fdf5387e4374e241997f3c8d586ad31c707a
MD5 7d00b651df406f6241ba4ccfbce34242
BLAKE2b-256 d207ff0f153a703f3454cee1842ae87e9c251b38492ea255d1a5a71db3aedb50

See more details on using hashes here.

File details

Details for the file agatha_protobuf-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: agatha_protobuf-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 194.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agatha_protobuf-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c69fa342266f9a111ee863dad3ac8d6a3a9b139cff7dc97ab7599d37adde7e3
MD5 0aa2417e25edb8b4610ac7cd45b87911
BLAKE2b-256 5a84d2a724e56e7c9daf8c1b2c4dc5a7d499305505ea53010242d91d58b450f3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page