Skip to content

complytime/gemara-content-service

Repository files navigation

Gemara Content Service

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

Target Description
make build Build the binary
make test Run tests with coverage
make test-race Run tests with race detection
make golangci-lint Run linter
make api-codegen Regenerate OpenAPI types and server
make help Show all targets

License

Apache 2.0

About

A content delivery and enrichment service for Gemara compliance artifacts.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors