Skip to content
Back to skills

Framework Grpc

ASecurity

Fornece padrões de engenharia para gRPC e Protocol Buffers (proto3). Cobre RPCs unários e de streaming (Server, Client, Bidirectional), definição de arquivos .proto, transporte HTTP/2, interceptores (middlewares), tratamento rico de erros google.rpc.Status e gRPC-Web.

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
developmentpythonrustgogitapibackendsecurityperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add dandgabr/skills --skill framework-grpc --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Framework Grpc?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Framework Grpc
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dandgabr-framework-grpc/badge)](https://www.skillsdirectory.com/skills/dandgabr-framework-grpc)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "framework-grpc"
description: "Fornece padrões de engenharia para gRPC e Protocol Buffers (proto3). Cobre RPCs unários e de streaming (Server, Client, Bidirectional), definição de arquivos .proto, transporte HTTP/2, interceptores (middlewares), tratamento rico de erros google.rpc.Status e gRPC-Web."
---

# Habilidade de IA: Engenharia e Arquitetura gRPC (framework-grpc)

Esta skill orienta a inteligência artificial a atuar como especialista no framework de RPC de alta performance **gRPC** e na linguagem de IDL **Protocol Buffers (proto3)**, alinhada à documentação oficial da CNCF e gRPC.io ([grpc.io](https://grpc.io/)). Cobre modelagem de contratos de serviços, streaming bidirecional, transporte HTTP/2, interceptores, tratamento de erros e integração inter-serviços.

---

## 🧭 Especificação de Contratos com Protocol Buffers (proto3)

### 1. Padrões de Definição de Arquivos `.proto`
- Utilize a sintaxe `syntax = "proto3";`.
- Organize os pacotes logicamente para evitar colisões (`package empresa.servico.v1;`).
- Especifique atribuição numérica única e sequencial para campos (`1` a `15` consomem apenas 1 byte na codificação varint de campo).

```protobuf
syntax = "proto3";

package billing.v1;

import "google/protobuf/timestamp.proto";

option go_package = "github.com/empresa/billing/v1;billingv1";

service PaymentService {
  // RPC Unário
  rpc ProcessPayment (ProcessPaymentRequest) returns (ProcessPaymentResponse);
  
  // RPC de Streaming de Servidor
  rpc StreamTransactions (StreamTransactionsRequest) returns (stream TransactionEvent);
}

message ProcessPaymentRequest {
  string account_id = 1;
  int64 amount_cents = 2;
  string currency = 3;
  PaymentMethod method = 4;
}

enum PaymentMethod {
  PAYMENT_METHOD_UNSPECIFIED = 0;
  PAYMENT_METHOD_CREDIT_CARD = 1;
  PAYMENT_METHOD_PIX = 2;
}

message ProcessPaymentResponse {
  string transaction_id = 1;
  string status = 2;
  google.protobuf.Timestamp processed_at = 3;
}

message StreamTransactionsRequest {
  string account_id = 1;
}

message TransactionEvent {
  string transaction_id = 1;
  int64 amount_cents = 2;
  google.protobuf.Timestamp timestamp = 3;
}
```

---

## 🛠️ Padrões de Comunicação e Transporte HTTP/2

### 1. Modos de Operação RPC
1. **Unário (Unary RPC)**: Cliente envia uma única requisição e recebe uma resposta.
2. **Server Streaming RPC**: Cliente envia uma requisição e recebe um fluxo (*stream*) continuo de mensagens.
3. **Client Streaming RPC**: Cliente envia um fluxo de mensagens e aguarda uma única resposta final do servidor.
4. **Bidirectional Streaming RPC**: Cliente e servidor trocam fluxos independentes de mensagens sobre a mesma conexão multiplexada HTTP/2.

### 2. Interceptores (Middlewares)
Utilize interceptores unários e de streaming para:
- Autenticação e extração de credenciais via cabeçalhos de metadados (`metadata.MD`).
- Coleta de métricas e rastreamento distribuído (OpenTelemetry / Jaeger).
- Recuperação de pânico (*panic recovery*) e registro centralizado de chamadas.

---

## 🚨 Tratamento Rico de Erros (`google.rpc.Status`)

Evite utilizar apenas códigos gRPC brutos (`codes.Internal`, `codes.InvalidArgument`). Retorne payloads ricos de erro utilizando o modelo `google.rpc.Status`:

```json
{
  "code": 3,
  "message": "Argumentos inválidos fornecidos para a transação",
  "details": [
    {
      "@type": "type.googleapis.com/google.rpc.BadRequest",
      "field_violations": [
        {
          "field": "amount_cents",
          "description": "O valor deve ser maior que zero"
        }
      ]
    }
  ]
}
```

---

## 🔗 Integração com Outras Skills

- Para arquitetura de comunicação entre microsserviços de alta performance, consulte [backend-developer](../../roles/backend-developer/SKILL.md) e [software-architect](../../roles/software-architect/SKILL.md).
- Para implementar clientes/servidores gRPC em Go, Rust ou Python, consulte [lang-go](../../languages/lang-go/SKILL.md), [lang-rust](../../languages/lang-rust/SKILL.md) e [lang-python](../../languages/lang-python/SKILL.md).
- Para segurança da camada de transporte e autenticação mTLS em gRPC, consulte [network-security-onprem-cloud](../../security/grc-compliance/network-security-onprem-cloud/SKILL.md) e [auth-protocols-mfa](../../security/ops-architecture/auth-protocols-mfa/SKILL.md).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…