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

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.2.tar.gz (176.9 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.2-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: civic_exchange_protocol-0.0.2.tar.gz
  • Upload date:
  • Size: 176.9 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.2.tar.gz
Algorithm Hash digest
SHA256 cd78392f8b004555bc27b1d93ad21a78c8a8ccc095c82e1506aed9129cc7883b
MD5 b0098af3c22a8a0b1fafc72a07907397
BLAKE2b-256 832fa013fe2680f42619d30c28dadca909aa465a8669c0b778a838f0a7e63cf2

See more details on using hashes here.

Provenance

The following attestation bundles were made for civic_exchange_protocol-0.0.2.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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for civic_exchange_protocol-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2dca70702e30cb92eaac0ff9d884a847076305fd9f18d446880182fe2791643e
MD5 873cc0e5ef18862e8ef3ccffcf035dfd
BLAKE2b-256 b3015caa5db1360f889505eefd1b59a708138bcf3d44229025cd78f3f080ff26

See more details on using hashes here.

Provenance

The following attestation bundles were made for civic_exchange_protocol-0.0.2-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