Skip to main content

Civic Exchange Protocol for Python projects

Project description

Civic Exchange Protocol (CEP)

PyPI Python versions License: Apache 2.0 CI Status Docs Security Policy Link Check

Interoperable data standards for describing entities, relationships, and value exchanges across civic systems.

Overview

The Civic Exchange Protocol defines a coherent, verifiable way to describe:

  • Entities (organizations, agencies, districts, people)
  • Relationships (grant awards, contracts, reporting relationships)
  • Exchanges of value (payments, disbursements, transfers)

CEP records are:

  • JSON Schema–validated
  • Fully typed
  • Deterministic and versioned
  • Extensible across jurisdictions and data ecosystems
  • Designed for cross-system interoperability

Documentation: https://civic-interconnect.github.io/civic-exchange-protocol/

Repository Structure

/
├── schema/                     # Official CEP JSON Schemas
│   ├── cep.entity.schema.json
│   ├── cep.relationship.schema.json
│   ├── cep.exchange.schema.json
│   └── cep.entity.identifier-scheme.schema.json
│
├── vocabulary/                 # Versioned controlled vocabularies
│   ├── entity-type.v1.0.0.json
│   ├── exchange-type.v1.0.0.json
│   ├── exchange-role.v1.0.0.json
│   ├── party-role.v1.0.0.json
│   ├── value-type.v1.0.0.json
│   └── resolution-method.v1.0.0.json
│
├── src/python/                 # Python reference implementation
│   ├── src/civic_exchange_protocol/
│   └── tests/
│
├── src/rust/                   # Rust reference implementation
│   ├── cep-core/
│   ├── cep-entity/
│   ├── cep-exchange/
│   └── cep-relationship/
│
├── docs/                       # MkDocs documentation site
└── .github/workflows/          # CI, Docs deploy, PyPI release

Python Reference Implementation

Install from PyPI:

pip install civic-exchange-protocol

CLI entrypoint:

cx --help

Includes:

  • Pydantic models for Entity / Relationship / Exchange
  • Deterministic record hashing
  • Attestation helpers
  • Built-in JSON Schema validator
  • Test vectors for conformance

Rust Reference Implementation

The repository includes a Rust workspace with:

  • cep-core
  • cep-entity
  • cep-exchange
  • cep-relationship

To build:

cd src/rust
cargo build

Each crate inherits version, license, and repository metadata from the workspace root.

Schemas

Official schemas live under /schema and are published with stable URLs such as:

https://raw.githubusercontent.com/civic-interconnect/civic-exchange-protocol/main/schema/cep.entity.schema.json

Documentation includes a browser-embedded validator using Ajv.

Security Policy

We support responsible disclosure through GitHub’s Private Vulnerability Report feature.

See: SECURITY.md

Contributing

Project details


Download files

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

Source Distribution

civic_exchange_protocol-0.0.4.tar.gz (227.1 kB view details)

Uploaded Source

Built Distribution

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

civic_exchange_protocol-0.0.4-py3-none-any.whl (48.6 kB view details)

Uploaded Python 3

File details

Details for the file civic_exchange_protocol-0.0.4.tar.gz.

File metadata

  • Download URL: civic_exchange_protocol-0.0.4.tar.gz
  • Upload date:
  • Size: 227.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for civic_exchange_protocol-0.0.4.tar.gz
Algorithm Hash digest
SHA256 f7415e4e0f7349b39518d5c919ae76b57b5222b551b8df8a031f98fc56e14c52
MD5 84ee17d4c62779f87692dde8318e0af2
BLAKE2b-256 a10abeab74b5636a67f134c8663a6db46eb69b32dc74190f471b4e5444da8e43

See more details on using hashes here.

Provenance

The following attestation bundles were made for civic_exchange_protocol-0.0.4.tar.gz:

Publisher: release-python.yml on civic-interconnect/civic-exchange-protocol

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file civic_exchange_protocol-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for civic_exchange_protocol-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5620d667c6923b342856475ead4e76336ac737d94a491a44618a2de636bdd151
MD5 d3d9a8a9551bf58a4942b25e71841001
BLAKE2b-256 894a6d3b9c9dfe52ab40bc59a3534c804b3bbffb2ac687394795d54f3e262bce

See more details on using hashes here.

Provenance

The following attestation bundles were made for civic_exchange_protocol-0.0.4-py3-none-any.whl:

Publisher: release-python.yml on civic-interconnect/civic-exchange-protocol

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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