backend-data-contracts

This repository is the single source of truth for all schema definitions used across the Owlboard backend communication and storage services. Language specific types are generated here and published to the Gitea package repository linked to the repo.

Directory Structure

Path Description
schemas JSON Schema files organised into clear subfolders
scripts Workflow Scripts

Code Generation and Publishing Workflow

The generation and release process is automated via Gitea Actions. It is triggered whenever a new SemVer tag (e.g., v1.0.0) is pushed to this repository.

To Consume the Contracts

1. Go Services

Since the package is hosted in the Gitea Package Registry, you must configure your environment to use the Gitea instance as a proxy.

Setup:

# Set the proxy to check our Gitea instance first
go env -w GOPROXY="https://git.fjla.uk/api/packages/OwlBoard/go,https://proxy.golang.org,direct"

# Trust our internal domain and skip the public Google checksum database
go env -w GONOSUMDB="git.fjla.uk"

The, you can simply run go get, as usual.

Container Usage

ARG GOPROXY=https://git.fjla.uk/api/packages/OwlBoard/go,https://proxy.golang.org,direct
ARG GONOSUMDB=git.fjla.uk
ENV GOPROXY=$GOPROXY
ENV GONOSUMDB=$GONOSUMDB

2. Typescript Services

You will need to configure .npmrc in your projects root directory to point to the correct repo:

@owlboard:registry=https://git.fjla.uk/api/packages/OwlBoard/npm/

Then you can install as usual:

npm install @owlboard/backend-data-contracts@0.1.0
Description
No description provided
Readme 160 KiB
Languages
Shell 100%