Build production services
the contract-first way
A Go service framework for multi-tenant services. Define authorization and secrets
in your proto once — the framework enforces them at every layer.
Authorization enforcement
Annotate an RPC with (infoblox.authz.v1.rule). The framework builds the per-method rule table, enforces it fail-closed, and refuses to boot if any served method is undeclared.
Secret fields encrypted at rest
Mark a field secret in proto. Generated storage code hashes it for lookup and encrypts the ciphertext — AES-256-GCM in dev, HashiCorp Vault Transit in prod. Plaintext is never persisted and never returned.
Cross-account tenant isolation
Every query is scoped by account-id at the storage layer — in both GORM and ent. Principal B can never see Principal A’s resources, and seccheck proves it in CI.
gRPC server
server.New assembles the interceptor chain — request-ID, error mapping, tenant-ID, fail-closed authz, field-mask validation, ETag/412 preconditions — plus an optional HTTP/JSON gateway.
Codegen from your proto
protoc-gen-svc scaffolds the service, protoc-gen-storage emits a GORM repository, protoc-gen-ent emits an ent schema. The proto is the single source of truth.
Pluggable core
Core packages depend only on the standard library. No ORM, no policy-engine dependency. Every seam ships a dev-suitable default and swaps for a production backend without touching service code.