Skip to main content

Frontmatter schema, signing, and validation tools for .ds.md workflow files

Project description

dossier-tools

Validation, signing, and verification tools for .ds.md files.

A .ds.md file is a markdown document with structured YAML frontmatter containing metadata like title, version, checksum, and cryptographic signature. This package provides tools to validate the frontmatter schema, verify content integrity via SHA256 checksums, and sign/verify files using Ed25519.

---
schema_version: "1.0.0"
title: Deploy to Production
version: "1.0.0"
status: stable
objective: Deploy application to production with validation
authors:
  - name: Alice
checksum:
  algorithm: sha256
  hash: a3b5c8d9...
signature:
  algorithm: ed25519
  public_key: RWT...
  signed_by: alice@example.com
---

# Deploy to Production

Your markdown content here...

Installation

pip install dossier-tools

Or with uv:

uv add dossier-tools

Quick Start

# Initialize and generate keys
dossier init
dossier generate-keys

# Create a dossier from markdown
dossier create workflow.md --title "My Workflow" --objective "Do something" --author "you@example.com"

# Validate, sign, and verify
dossier validate workflow.ds.md
dossier sign workflow.ds.md --signed-by "you@example.com"
dossier verify workflow.ds.md

Registry

Browse and download dossiers from the public registry:

# List available dossiers
dossier list

# Get metadata for a dossier
dossier get myorg/deploy

# Download a dossier
dossier pull myorg/deploy

Publish your own dossiers (requires GitHub authentication):

dossier login
dossier publish workflow.ds.md

Environment Variables

Variable Description Default
DOSSIER_REGISTRY_URL Registry API URL https://dossier-registry-mvp.vercel.app
DOSSIER_SIGNING_KEY Default signing key name default
DOSSIER_LOG_LEVEL Log level (DEBUG, INFO, WARNING, ERROR) WARNING

Documentation

See docs/ for detailed documentation:

Development

# Clone and setup
git clone https://github.com/tal-liberio/dossier-tools.git
cd dossier-tools
make setup    # Install dependencies with uv

# Run tests
make test

# Format code
make format

# Check formatting and lint
make check

License

MIT

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

dossier_tools-0.1.3.tar.gz (103.7 kB view details)

Uploaded Source

Built Distribution

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

dossier_tools-0.1.3-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file dossier_tools-0.1.3.tar.gz.

File metadata

  • Download URL: dossier_tools-0.1.3.tar.gz
  • Upload date:
  • Size: 103.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dossier_tools-0.1.3.tar.gz
Algorithm Hash digest
SHA256 30dbb1a8b4730067f80e103b0ef39cd6bb0a44ee3cf563848958f17cc96f4a7a
MD5 121976f7821225d223e63aa00acc5595
BLAKE2b-256 a9e787fd82ac791e0580f5e8efb62c4242341430384237b54b47b26ad2853dac

See more details on using hashes here.

File details

Details for the file dossier_tools-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: dossier_tools-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dossier_tools-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 096f49c56dde7161d14c5ead0c57cc3844b4930236666a9206d8910a7b7664de
MD5 eb5ffeec993f6a15ba034c1457ce6d25
BLAKE2b-256 1b6140532f85ad891892adf1f6c2c4e3cd8f110f4a0dfb9d4f86e941e662854f

See more details on using hashes here.

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