Overview

An OCI-compliant content delivery and enrichment service for Gemara compliance artifacts. Clients can discover and download Gemara content (L1 guidance, L2 catalogs, L3 policies) as OCI artifacts using standard tooling.

Features#

  • OCI Distribution API – Serves Gemara compliance YAML as OCI artifacts via the standard /v2/ registry endpoints
  • Enrichment API – Transforms compliance assessment results using configurable plugin mappers (POST /v1/enrich)
  • Content-addressable storage – Blobs stored on filesystem by SHA-256 digest, metadata indexed in embedded BBolt

⚠️ NOTE: To disable JWT when you build the tool for local running, ensure jwtAuth is set to false in config.yaml.

Quick Start#

Build#

make build

Run Locally (no Tls)#

./bin/compass --skip-tls --port 9090

Build Container Image Locally#

podman build -f images/Containerfile.compass -t gemara-content-service:local .

Run Tests#

make test

Generate Self-signed Certificates For Testing#

Refer to this

Project Structure#

cmd/compass/          Main entry point and server wiring
api/                  OpenAPI-generated types and server interface
internal/             Internal packages (logging, middleware)
mapper/               Enrichment plugin framework
service/              Core enrichment service logic
images/               Container build files
hack/                 Development utilities and sample data
docs/                 Configuration files

Development#

Prerequisites#

Useful Make Targets#

TargetDescription
make buildBuild the binary
make testRun tests with coverage
make test-raceRun tests with race detection
make golangci-lintRun linter
make api-codegenRegenerate OpenAPI types and server
make helpShow all targets

License#

Apache 2.0