Pular para o conteúdo

Assine seu primeiro evento

Este tutorial te guia pela produção do seu primeiro evento CDS assinado criptograficamente. Você vai instalar o SDK, gerar um par de chaves RSA-4096, construir um evento em código e assiná-lo. O exercício inteiro leva menos de cinco minutos.

  • Python 3.12+ ou Node.js 20+
  • Um diretório de trabalho vazio
  1. Instale o SDK

    Terminal window
    pip install signeddata-cds
  2. Gere um par de chaves RSA-4096

    O produtor detém a chave privada. Consumidores só precisam da chave pública.

    from cds import generate_keypair
    import os
    os.makedirs("keys", exist_ok=True)
    generate_keypair("keys/private.pem", "keys/public.pem")
  3. Construa um evento CDS

    Este exemplo constrói um evento de clima para Londres usando o tipo de conteúdo canônico WEATHER_CURRENT.

    from cds import CDSEvent, SourceMeta, ContextMeta, CDSVocab, CDSSources
    from datetime import datetime, timezone
    event = CDSEvent(
    content_type = CDSVocab.WEATHER_CURRENT,
    source = SourceMeta(id=CDSSources.OPEN_METEO),
    occurred_at = datetime.now(timezone.utc),
    lang = "en",
    payload = {
    "location": {"city": "London", "lat": 51.51, "lon": -0.13},
    "temperature": {"current": 14.0, "feels_like": 12.0},
    "condition": "overcast",
    },
    event_context = ContextMeta(
    summary = "London: overcast, 14C (feels 12C).",
    model = "rule-based-v1",
    ),
    )
  4. Assine o evento

    from cds import CDSSigner
    signer = CDSSigner("keys/private.pem", issuer="https://myorg.example.com")
    signer.sign(event)
    print(event.integrity.hash) # sha256:...
    print(event.integrity.signed_by) # https://myorg.example.com
  5. Inspecione o JSON-LD assinado

    import json
    print(json.dumps(event.to_jsonld(), indent=2))

    Você deveria ver um documento JSON com @context, @type, @id e um bloco integrity contendo o hash SHA-256 e a assinatura RSA-PSS codificada em base64. Este é um evento CDS v0.2.0 completo e verificável.