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-goandprotoc-gen-go-grpconPATH(installed bymake install-deps) protocavailable viagrpc_tools.protoc(Python) andprotoc(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
- Edit
.protofiles undersrc/agatha_protobuf/<domain>/. make proto(Python) and/ormake proto-go(Go).- Bump version via
make patch|minor|major|release. - Commit
src/,build/,pyproject.toml. make publishto push the Python package to PyPI; for Go, consumers update viago 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-created → behavioral-events-raw → risk-alerts. Producers
(agent, activity-ingestor) populate from Journal.user; consumers
(metrics-engine, notification) read alongside the existing person_id.
Schemas touched:
knowledge_graph/event.proto—IngestEventRequest.tenant_user_id(field 9).notification/notification.proto—RiskAlert.tenant_user_id(field 16);RiskAlert.person_id(field 3) marked[deprecated = true].activity_ingestor/journal.proto—Journal.userdocumented as the canonical source oftenant_user_id(no wire change).
JSON Pub/Sub structs (non-proto, in consuming services):
metrics-engine/internal/risk/alert_event.go—RiskAlertEvent.TenantUserID.metrics-engine/internal/infra/pubsub/event.go—BehavioralEvent.TenantUserID.knowledge-graph/internal/infra/pubsub/publisher.go—EventMessage.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.
Metadata
Release files for agatha-protobuf 1.15.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| agatha_protobuf-1.15.0.tar.gz | 157.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agatha_protobuf-1.15.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 410.7 kB
Release files / agatha_protobuf-1.15.0.tar.gz
| Download URL | agatha_protobuf-1.15.0.tar.gz |
|---|---|
| Size | 157.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
69bee41a1739668f05e51c62e57ae079c4e661806e04880bdf9a8d4493df8487
|
|
BLAKE2b-256 checksum How to use checksums |
68889c96e2bf8017a91b243a82e29e776a7797a293198cc39c8312b3351544a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / agatha_protobuf-1.15.0-py3-none-any.whl
| Download URL | agatha_protobuf-1.15.0-py3-none-any.whl |
|---|---|
| Size | 253.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
587e945e061f9aba364949101988ff38b526fa2254a659d8f4a1aa1c8e52b1c9
|
|
BLAKE2b-256 checksum How to use checksums |
c931a51432b45e36321504dcc6986e1fa0cc5402aa0de05d75071a9b0052d745
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for agatha-protobuf 1.15.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.